SwiftはOpenStackで開発されているオブジェクトストレージです。
元々はCloudFiles?という、Rackspaceのオブジェクトストレージサービスでしたが、オープンソースで公開されました。
CloudFiles?と同じプロトコルに対応しており、CyberDuck?等から利用できます。
Swiftを構成するサーバとしてはAuth、Proxy、Object、Container、Accountがあります。
利用にあたり、認証を行ないます。
認証後にTokenが発行され、その後の操作に使用されます。
窓口としてクライアントとやりとりを行います。
クライアントはProxy Serverとのみ通信を行ないますが
裏ではProxy Serverが他のサーバと通信を行って、目的のファイル等を提供しています。
他のサーバの場所(IPアドレスやport番号)については
Ringというファイルを参照しています。
シンプルなストレージサーバで、オブジェクトの取り出し・削除・保存が可能です。
オブジェクトはxattrsというメタデータと共に保存されるそうです。
オブジェクトを削除した場合は0バイトの.tsファイルになり、それを複製することで複製先でも削除しているようです。
オブジェクトのリストを扱うサーバです。
ファイルシステムにおける、ディレクトリのように機能します。
アカウントの情報を扱っています。
ユーザに割り当てられた、コンテナのリストを扱うという形で実現しています。