Project Home Downloads Wiki Issues Source
クイックスタートガイド  
15 Minutes to MogileFS
Updated Jan 9, 2012 by dorma...@rydia.net

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分ありますか?

完全なHTTPアクセスの例をセットアップします

ハッキングを開始する準備はできていますか?

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
Comment by haa...@gmail.com, Jun 1, 2012

MogileFSをデバッグする例をもっとここに追加してくれれば素敵です。私はmogilefsd -d はトラッカーのデバッグモードを有効にすることを見つけました。


Sign in to add a comment
Powered by Google Project Hosting
TOP
inserted by FC2 system