Note of MogileFS #03 - MogileFS Serverのインストール(覚書)
はじめに
まだ勉強中なんで内容は物凄い無保証です。w
あと基本的にSixApartではDebianでの動作が多いらしいのでDebian使いの方は少し幸せかもしれません。
それとziguzaguさんの記事を非常に参考にさせて頂きました。この場を借りてお礼申し上げます。
下準備
とりあえずMySQLは必要です!
今回はtrackerはhttpセットアップとします。
As we've said, MogileFS can use NFS or HTTP, but we highly recommend an HTTP-based setup! Linux NFS is horrible and we've experienced no end of lowmem problems, file corruption (4k pages of zeros), and NFS server problems where you can't do "nohide" mounts to wildcard hosts. NFS is hell. Avoid it.
Bradさんは相当NFSが嫌いみたいですね。*1
と言う訳でNFSでのセットアップはしないでHTTPのみでやっていきます。実際NFSでセットアップしても…って感じですしねぇ。
CPANから事前にインストール
最終的に必要で事前にあった方が楽なCPANモジュール*2を予めインストールしておきます。
# perl -MCPAN -e "install IO::AIO" # perl -MCPAN -e "install Net::Netmask" # perl -MCPAN -e "install Perlbal" # perl -MCPAN -e "install MogileFS::Client"
事前に簡単に準備できるのはここまでみたいです。
SixApartのsvnからmogilefs-serverをインストール
とりあえず適当なディレクトリにでもmogilefsのtrunkをcheckoutしておきましょう。
# mkdir -p /usr/local/src/mogilefs # cd /usr/local/src/mogilefs # svn co http://code.sixapart.com/svn/mogilefs/trunk/ ./
ちなみにtrunkの中には大きく分けてserver, api, utilとあります。
これらの詳しい話はまたの機会かShibuya.pmのTechnical Talk #7でお話します。*4
で早速serverをインストールしましょう。
# cd server
ここに入っているのがmogilefs-serverなので、入っているMakefile.PLをお決まりどおりに実行しましょう。
# perl Makefile.PL # make # make install
僕の手元のテスト環境がFC3なんですが、どうしてもmake testが上手く行かなかったので、今回は割愛します。
このときに、
Installing /usr/bin/mogdbsetup Installing /usr/bin/mogautomount Installing /usr/bin/mogilefsd
と言った具合に3つのコマンドがインストールされます。mogilefs-serverをインストールすることによって出来るコマンドは大体下記のような用途になります。*5
- mogdbsetup
- mogilefsdの為のデータベースをsetupするコマンドです
- mogautomount
- 調査中ですorz...*6
- mogilefsd
- client側からのリクエストに対して設定されたデータベースの設定値に基づき、適切なstorage nodesを選びレスポンスを返すdaemonです。
- mogstored
- MogileFS Clientからのリクエストを受けつけ、レスポンスを返します。
MogileFSの各パッケージではそれぞれいろんなコマンドが存在します。
その中にはMANIFESTにはあるけど、インストールされないコマンドなんてのも存在するので、SixApartがやっているように、specfile化*7しちゃうとか工夫が必要そうです。
MogileFS::Utilsのインストール
このモジュールはCPANにはまだcommitされていないので、自分でsvnから持ってきてインストールする必要があります。
先のmogilefs-serverのときにcheckoutしているので、
# cd ../utils
がそれに当たります。
こちらも同様にして、
# perl Makefile.PL # make # make install
で完了です。ちなみにtestは現時点*8では入ってないのでskipしてます。
ここまでが必要なPerlモジュールのインストールになります。
mogilefs-serverのセットアップに関して
ここら辺を見ると概ね下記のような流れでセットアップを行っていくようです。
- storage nodesの管理用データベースをMySQLで作る
- trackers(mogilefsd)のセットアップ
- mogstoredのセットアップ
またこれらが終わった後に二つのdaemonの起動順として、
- http://www.danga.com/mogilefs/setup_http.bml
- http://durrett.net/mogilefs_setup.htmlのRunning MogileFS辺り
- http://mogilefs.schtuff.com/another_how_to_install_mogilefs_debian_sarge
とあるように
- mogstored
- mogilefsd
の順番で起動してからmogadmで確認するって言うフローになってるみたいなので、
それに沿ってやっていきます。
*1:僕も以前に何度も痛い目にあってるのでnfsは嫌いです。
*2:http://www.sixapart.jp/techtalk/2006/10/dev_mogilefs_install.html Linux::AIOが入れられるならそっちがいい。またNet::Netmaskなんかも必要みたいです。
*3:MogileFS::Utilってモジュールがmogilefs-serverに含まれているので混同しないように注意
*4:きちんと話せるかgkbrですけどw
*5:この記述、後できちんと書きます。自信無し
*6:まだ上手く動かせてない
*7:via DECON 2006 で講演してきました: blog.bulknews.net にあるpdf参照