Swiftを使ってクラウドストレージサービスを構築する 4ページ
Swiftの稼働テスト
最後に、swiftコマンドを使って実際にSwiftにデータを格納する操作を行い、正しくSwiftが稼働しているかどうかを確認しておこう。まず、「ST_AUTH」および「ST_USER」、「ST_KEY」環境変数に認証のためのURLや使用するテナント名およびユーザー名、パスワードを設定しておく。
export ST_AUTH=http://<keystoneが稼働しているホスト名>:5000/v2.0 export ST_USER=<テナント名>:<ユーザー名> export ST_KEY=<パスワード>
続いて、swiftの利用状況を確認する「swift stat」コマンドを実行する。正しくSwiftが稼働していれば、以下のように利用状況が表示されるはずだ。
# swift stat Account: AUTH_******************************** Containers: 0 Objects: 0 Bytes: 0 Accept-Ranges: bytes X-Timestamp: 1361870000.09871
それでは、実際にファイルをSwiftに格納してみよう。まず、「swift post」コマンドでファイルを格納するコンテナを作成する。
# swift post container01
この状態で「swift list」コマンドを実行すると、作成されたコンテナが確認できるはずだ。
# swift list container01
続いて、「swift upload」コマンドで作成したコンテナに適当なファイルをアップロードする。ここでは「container01」というコンテナに、ローカルにあるtest.txtというファイルをアップロードしている。
[root@fusion ~]# swift upload container01 test.txt test.txt
「swift list <コンテナ名>」コマンドを実行すると、ファイルが格納されていることが確認できる。
[root@fusion ~]# swift list container01 test.txt
このとき、「swift stat」コマンドを再度実行するとその出力が変化していることが分かる。
# swift stat Account: AUTH_******************************** Containers: 1 Objects: 1 Bytes: 18 Accept-Ranges: bytes X-Timestamp: 1361870000.09871
ファイルのダウンロードは、「swift dwonload」コマンドで実行できる。
# cd /tmp # swift download container01 test.txt test.txt [headers 0.145s, total 0.145s, 0.000s MB/s]
コンテナやファイルの削除は「swift delete」コマンドで行える。
# cd /tmp # swift delete container01
OpenStack Dashboard(Horizon)からコンテナにアクセスする
OpenStackのGUI管理コンソールであるOpenStack Dashboard(Horizon)を利用している場合、ここからもSwiftにアクセスできる。「プロジェクト」で対象とするテナントを選択し、左メニューの「コンテナー」を選択すると、アクセス権限があるコンテナが一覧表示される。ここでコンテナの作成や削除が行えるほか、コンテナ名をクリックするとそのコンテナ内に含まれるオブジェクト(ファイル)の確認やコンテナへのアップロード、オブジェクトの削除といった操作が行える(図3)。
独自のクラウドストレージを容易に構築可能、プライベートクラウド以外にもさまざまな利用できる
以上のように、Swiftを利用することで容易に独自のクラウドストレージを構築できる。SwiftではRAIDではなく、データを複製して複数のノードに分散配置することで冗長性を確保しているため、低コストで信頼性の高いストレージサービスを構築できるのが特徴だ。
もちろん、AmazonやGoogleなどのサービスを利用する場合と比べると、自前でこのようなストレージサーバーを構築・管理する手間は少なくない。しかし、セキュリティポリシなどの関係でこれらのクラウドサービスを利用できないケースもあるだろう。必ずしもクラウドストレージを利用することが正解というわけではないが、たとえば大量の画像データなどを扱うようなWebサイトなど、目的によってはクラウドストレージは非常に有用だ。目的と構成に応じて利用を検討してみてはいかだろうか。