クイックスタートガイド
15 Minutes to MogileFS
15分でMogileFSのテストをセットアップするMogileFS APIとどうやって遊ぶの?コードの書き方、パッチのテスト、バグの修正はどうやるの?テストインスタンスを素早く作るには以下のガイドに従ってください。 debian, ubuntu あるいはredhat-y システムを持っていると仮定します。. OS Xは似ていますが、いくつか足りないステップがあります。MogileFSのインストールのセットアップをする方法のもっと完全なガイドはInstallHowToを参照してください No attempts to time this guide have actually been made; YMMV. 新しいローカルユーザを追加し、ログインします adduser mogilefs # ...etc... su - mogilefs $ ローカルにインストールしたperlモジュールを素早く立ち上げるためにApp::cpanminus を使います。(注意: wgetのバグが多いバージョンを使っている場合は、--no-certificate-checkを付ける必要があるかもしれません) wget -O- http://cpanmin.us | perl - local::lib PERL5LIB="/home/`whoami`/perl5/lib/perl5" perl -Mlocal::lib >> ~/.bashrc source ~/.bashrc libdbd-mysql-perl (debian) あるいは DBD::mysql をyumを使ってインストールします。MySQLを使っていなくてもこれは必要です。 apt-get install libdbd-mysql-perl ... or ... yum install perl(DBD::mysql) Gas up cpanm again to pull in all dependencies for MogileFS. なんらかのビルドの失敗がある場合は、注意深く出力を読みます。 cpanm IO::AIO MogileFS::Server MogileFS::Client MogileFS::Utils このスクリプトをmogstoreds.shとして保存します。必要なものを全て編集します。それはmogstoredのテストのセットを開始と停止するためのものです。アプリケーションのテストに便利なように、以下の例のHOSTSは 二つの /24 の空間に分割しています。 cat > mogstoreds.sh <<END #!/bin/bash BASEDIR="/home/mogilefs/mogdata/" PERL5LIB="$PERL5LIB" MOGSTORED="mogstored" HOSTS="127.0.0.20 127.0.0.25 127.0.15.5 127.0.15.10" if [ $1 = "start" ] ; then echo "Starting a few mogstored's" for host in $HOSTS ; do echo "starting host $host" $MOGSTORED -d --httplisten $host:7500 --mgmtlisten $host:7501 \ --docroot ${BASEDIR}${host} done elif [ $1 = "stop" ] ; then echo "Stopping mogstored's" for host in $HOSTS ; do echo "shutdown" | nc $host 7501 done fi END $ chmod +x mogstoreds.sh いくつかのディレクトリとデータを事前作成する mkdir -p \ mogdata/{127.0.0.20/{dev1,dev2},127.0.0.25/{dev3,dev4},127.0.15.5/{dev5,dev6},127.0.15.10/{dev7,dev8}} インストールしたい場合にはsysstatをインストールする(iowait 統計情報を提供する) apt-get install sysstat データベースの準備、mogdbsetupを使ってインストールする。よく分かっていれば、以下を調整します。全てのオプションを見るにはmogdbsetup --help を実行する。 mysql> CREATE DATABASE mogilefs; GRANT ALL PRIVILEGES ON mogilefs.* TO \ 'mogile'@'%' IDENTIFIED BY 'mogilepass'; # I don't know postgres very well ;) mogdbsetup --dbhost=127.0.0.1 --dbname=mogilefs --dbuser=mogile \ --dbpass=mogilepass # Follow any dialogs. トラッカーの設定を準備する。 cat > mogtracker.conf <<END db_dsn = DBI:mysql:mogilefs:host=127.0.0.1 db_user = mogile db_pass = mogilepass listen = 127.0.1.5:7001 query_jobs = 2 delete_jobs = 1 replicate_jobs = 1 reaper_jobs = 1 fsck_jobs = 1 rebalance_ignore_missing = 1 END mogstoredを始動する。 ./mogstoreds.sh start mogilefs トラッカーを始動する。テストのためにフォアグラウンドあるいはスクリーンセッションで実行することをお勧めします。そうすればエラーを素早く、簡単に見ることができます。. mogilefsd --config=./mogtracker.conf クライアントユーティリティの設定ファイルを作成します。 echo "trackers = 127.0.1.5:7001 domain = toast" >> ~/.mogilefs.conf mogtrakerのホストとデバイスを追加します mogadm host add nearone --ip=127.0.0.20 --status=alive mogadm host add neartwo --ip=127.0.0.25 --status=alive mogadm host add farone --ip=127.0.15.5 --status=alive mogadm host add fartwo --ip=127.0.15.10 --status=alive mogadm device add nearone 1 mogadm device add nearone 2 mogadm device add neartwo 3 mogadm device add neartwo 4 mogadm device add farone 5 mogadm device add farone 6 mogadm device add fartwo 7 mogadm device add fartwo 8 テストするためのドメインを作成します。 mogadm domain add toast 数秒待ち、全てがチェックアウトされたか調べます mogadm check 何かをmoguploadします echo "Hello, world" | mogupload --key="/hellothere" --file="-" mogfetch で取り出します mogfetch --key="/hellothere" --file="-" おめでとう! あともう5分ありますか?あともう5分ありますか?ハッキングを開始する準備はできていますか?Githubに向かいます (あるいはメーリングリストのリンクから来た場合は、代わりにそこに行ってください)。リポジトリを取り出します(MogileFS-Serverなど)。 make test を安全に実行したいなら、上で設定したかも知れないインスタンスの実行を確実に全て停止してください。 ./mogstoreds stop echo "shutdown" | nc 127.0.0.1 7001 # kill the tracker. ctrl-c でも動作します。 gitを使うのが楽ならば、リポジトリをチェックアウトします git clone https://github.com/mogilefs/MogileFS-Server.git あるいは単に右上の"downloads"リンクをクリックして新しいtarballを取得します。 解凍し、インストールあるいはperlを使ってテストを実行します。 perl Makefile.PL make make test make install もっと実行のテストをしたい場合は、MySQLデータベースを使います export MOGTEST_DBHOST="192.168.1.50" export MOGTEST_DBPORT="3306" export MOGTEST_DBUSER="mogtest" export MOGTEST_DBPASS="mogtest" export MOGTEST_DBNAME="mogtest" export MOGTEST_DBTYPE="MySQL" perl Makefile.PL make make test prove を使って個々のテストを簡単に実行することができます # Edit some file in t/* or lib/* prove -l -v t/05-that-bug-you-fixed.t |
MogileFSをデバッグする例をもっとここに追加してくれれば素敵です。私はmogilefsd -d はトラッカーのデバッグモードを有効にすることを見つけました。