Swift環境構築編2016.5.29Tweetはじめに前回のKeystoneに続けて、今回はOpenStackのコンポーネントの1つであるSwiftを紹介したいと思います。Files」で使われていた技術をベースとしているクラウドストレージサービスです。その仕組みはかなり複雑で、OpenStackのコンポーネントの中でも理解し難いものになっています。理解のためには手動でインストールしてみるのが一番です。手動インストールを通してSwiftを理解していきましょう。認証の動作swiftに限らず、ほとんどのOpenStackコンポーネントはKeystoneに認証しています。Swiftを例に認証の動きを整理してみたいと思います。1コマンドラインクライアントよりユーザ名とパスワードをKeystoneに送信し認証依頼を行う。2ユーザ名、パスワードが正しければ認証され、認証トークンとSwiftのURLがコマンドラインに表示させる。3コマンドラインから認証トークンを利用してSwiftへ処理を依頼する。4SwiftからKeystoneに認証依頼をする。5認証の許可、否認をする。6Swiftからコマンドラインクライアントに結果を返信する。前回Keystoneをインストールした状態のマシンに、公式ドキュメントのObjectStorageサービスの追加に則ってインストールを進めていきます。途中で物理ディスクをインストールする個所が出てきますので、z1d1とz2d1という2つの仮想ディスクを作成して、Swiftのストレージとします。dist-upgradeシステムログにログを記録するようにします。-/var/log/messagesリスタートします。/var/logメッセージがとれているか確認します。/var/log/messagesOpenStackのリリース名を確認します。/etc/apt/sources.list.dadminユーザーの環境スクリプトを実行します。ユーザーを作成します。パスワードはubuntuとします。swift』でもユーザを作成できます。こちらでは対話型ではなくコマンド内でパスワードを指定できます。OPCELの試験範囲になりますので覚えておきましょう!ユーザが作成されたか確認しましょう。listadminロールをswiftユーザーに追加しましょう。serviceswiftサービスエンティティーを作成します。object-store作成されたか確認してみましょう。エンドポイントを作成します。http://controller:8080/v1作成したエンドポイントを3つ確認します。swiftそれではパッケージをインストールしましょう!swiftのコンテナとはオブジェクトを格納する入れ物です。Windowsではフォルダー、Linuxではディレクトリーと同じです。swiftのオブジェクトとはデータの格納単位です。イメージとしてはWindowsやLinuxのファイルです。xfsprogsコンフィグファイルのひな形を/etc/swift配下にダウンロードします。後程、これを順番に編集していきます。/etc/swift/バックアップをとっておきましょう。/etc/fstab.bakバックアップがとれていることを確認できたら次にいきましょう。-lproxy-serverの設定を書き換えていきます。proxy-serverはKeystoneと連係した認証を行いつつデータの入出力も行う、Swiftのすべての入り口に相当する機能を受け持ちます。そのための各種設定を行っていきましょう。passwordの部分は先ほど、swiftユーザ作成時に設定したものを使用します。ここでは「ubuntu」をいれています。127.0.0.1:11211設定が変更されているか確認しましょう。続いてストレージの設定を行います。本来であれば物理的なハードディスクを準備すべきですが、今回はループバックデバイスを用います。ループバックデバイスを使えば、一般的なファイルをハードディスクのように扱ってマウントすることができます。diskdisk1.imgとdisk2.imgという51MBの空ファイルを作成します。/var/diskdisk1.imgとdisk2.imgをループバックデバイスに設定します。-aループバックデバイスをxfsでフォーマットします。/dev/loop1ループバックデバイスをマウントします。/srv/nodefstabに書き加えておきましょう。/etc/fstabaccount-serverの設定を変更します。bind_ipには自身(ストレージノード)のIPアドレスを設定しましょう。"^\s*#"container-serverの設定を行います。"^\s*#"object-serverの設定を行います。bind_ipは自身(ストレージノード)のIPアドレスとなります。"^\s*#"ストレージの所有者を変更します。/var/cacheリングの設定リングを設定していきます。one環境で実施しているのでわかりにくくなっていますが、ここからはコントローラノードに対する設定になります。リングはデータをストレージ上から見つける為に利用されます。アカウント名やオブジェクト名等から導き出されるハッシュをこのリングに当てはめることで、どのディスクのどのパーティションにデータが保存されたかを導き出すことができるようにできています。リングは、アカウント、コンテナ、オブジェクトそれぞれに対して作ります。アカウントのリングを作成します。アカウントのリングを使うことで、アカウントデータベースがどこに格納されたかを見つけることができます。アカウントデータベースには、アカウントに関する情報とコンテナ一覧が格納されています。リングの作成にはリングビルダーファイルが使われます。リングビルダーファイルにデバイスを設定し、最後にrebalanceコマンドを実行することで、リングビルダーファイルからリングが作られます。account.builderリバランスしてリングを作成します。rebalance続いて、コンテナのリングを作成します。コンテナのリングをつかうことで、コンテナデータベースがどこに格納されたかを見つけることができます。コンテナデータベースには、コンテナに関する情報とオブジェクト一覧が格納されています。アカウントのときと同様にリングビルダーファイルにデバイスを登録して、リバランスを実行します。100リングビルダーファイルの中身を確認しましょう。container.builderリバランスします。rebalanceオブジェクトのリングを作成します。オブジェクトのリングを使うことで、オブジェクトがどこに格納されたのかを見つけることができます。オブジェクトとはユーザが保存したファイルそのものですね。リングビルダーファイルを作成してからリバランスしていきます。object.builderリバランスします。rebalanceリングが作られたかどうか確認してみましょう。/etc/swift/*.ring.gz次はswift.confを設定していきます。ハッシュを生成するオブジェクト名等につける接頭語(プレフィックス)と接尾語(サフィックス)を設定します。ランダムの数字を付けておくことでハッシュのセキュリティを高めるのに使われます。106f0853d40c34a4256544取得した数値を設定します。swiftSwiftに関するすべてのプロセスをリスタートします。startエラーがないかどうかシステムログを確認しましょう。動作確認をしていきます!クライアント環境スクリプトをAPIバージョン3を使用するように変更します。demoユーザの環境スクリプトを実行します。demo-openrc.shSwiftのアカウント、コンテナ、オブジェクト等に関する情報を表示してみましょう。ちなみにswiftコマンドではkeystone認証のクライアントが古いものが使用されていて警告がでます。stat「testfile.txt」を作成し、Swiftにアップロードします。testfile.txtSwiftに格納されているコンテナ、オブジェクトの一覧を表示してみましょう。listSwiftのコンテナ(container1)に格納されているオブジェクト(testfile.txt)をダウンロードしてみましょう。-lopenstackコマンドも試しておきます。コンテナ(test)を作成してみましょう。こちらはswiftコマンドのように警告はでません。今後はopenstackコマンドの利用が推奨されているようです。testコンテナ(container1)に入っているオブジェクトを表示してみましょう。container1おわりに前回のKeystoneに引き続きでSwiftの手動インストールを紹介しました。最初は何をやっているのかよくわからないのですが、何度か実施しているとなんとなく意味が分かってきます。繰り返し実施してみてくださいね。今回も最後までお付き合いを頂き、ありがとうございました。9新年あけましておめでとうございます。3何故、それが読まれたか~上半期・エンジニアブログ閲覧数ランキング~2013.6.12「何」を知っているかではなく、「誰」が知っているか2013.5.28戦後、人間尊重の信念を貫きとおした1人の経営者がいた!2013.5.24健康な心が、健康な会社を作る。2iPhone5発売!LTE普及には切実な背景が...2012.9.12「だれを選ぶか」をまず決めて、その後に「何をすべきか」を決める。2012.8.17会社を回すのに大事な3つの感覚。7プロジェクトはたいてい失敗に終わるんです。6月刊『ニュートップリーダー』に記事掲載&"想いを語る夕べ"体験会やります!2012.1.31【第4回】想いを語る夕べ~フォロー編~2012.1.23タニタの社員食堂は"トップの想い"から生まれた!?2012.1.13【第3回】想いを語る夕べ~実施編~2011.12.27オフィスで簡単エクササイズ!2011.12.13【第2回】想いを語る夕べ~準備編~2011.11.24【第1回】想いを語る夕べ~誕生編~2011.11.17「責任感だけで仕事をしていた・・・。