最近気になっていた、kumofsをWEBサーバ群に投入すべく、まずは一台のサーバにインストールを行いました。
kumofsの概要
まずは、kumofsって何?というところのまとめです。
- えとらぼ株式会社が、オープンソースソフトウェアとして公開している。ライセンスは、Apache License 2.0。
- 分散Key-Valueストア(KVS)である。
- チープなサーバを組み合わせていくことで可用性を高めていく、スケールアウトが可能なシステム。
- 複数のサーバにレプリケーションとして保存し、障害が発生すると自動検出して切り離す。
- 動的にサーバの追加、離脱が可能。
- サーバの台数や構成は、アプリケーションから隠蔽されるので、システムを変更しても、アプリケーションに影響がない。
- memcachedと互換性のあるプロトコルを実装している。
- Ficiaで使用している。(運用実績)
kumofsのインストール
それでは、インストール作業です。
必要パッケージのインストールを行います。
# yum install gcc openssl-devel zlib-devel bzip2-devel libtoolruby ruby-devel
※[追記]Rubyは現状、yumを使わずに手動でインストールを行う必要があるようです。詳細は、
CentOSのyumでインストールしたRubyをバージョンアップ(インストール)を確認下さい。
以下のページを参考にして、gcc/g++ 4.4 をインストールします。
# yum install gcc44 gcc44-c++
gcc/g++ 4.1だとkumofs のビルドに失敗します( _syncandaddfetch_4 がどうとか言われる)。なので、先にgcc/g++ 4.4をインストールしておく。
Centos 5. 1 に kumofs 0.3.1 をインストール – I CAN ’CAUSE I THINK I CAN!
ここで注意!
私の環境で ./configure && make した際、インストールは無事完了したものの、いざライブラリを使おうと思うと、__sync_sub_and_fetch_4が無いとのエラーが出ました。
kumofsを使う (さくらインターネット創業日記)
RubyGemsをインストールします。
# yum install rdoc
# wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz # tar zxvf rubygems-1.3.5.tgz # cd rubygems-1.3.5 # ruby setup.rb RubyGems 1.3.5 installed
Tokyo Cabinetをインストールします。
# wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.43.tar.gz # tar zxvf tokyocabinet-1.4.43.tar.gz # cd tokyocabinet-1.4.43 # ./configure # make # make install
MessagePack for C++をインストールします。
# wget http://downloads.sourceforge.net/project/msgpack/msgpack/cpp/msgpack-0.4.3.tar.gz # tar zxvf msgpack-0.4.3.tar.gz # cd msgpack-0.4.3 # CC=gcc44 CXX=g++44 ./configure # make # make install
MessagePack for Rubyをインストールします。
# gem install msgpack
kumofsをインストールします。
# wget http://github.com/etolabo/kumofs/tarball/kumofs-0.3.2 # tar zxvf etolabo-kumofs-3d4dc92.tar.gz # cd etolabo-kumofs-3d4dc92 # ./bootstrap # CC=gcc44 CXX=g++44 ./configure # make # make install
これで、インストール作業は完了です。
とりあえず起動
とりあえず、kumo-manager を起動してみます。
# export LD_LIBRARY_PATH=/usr/local/lib # kumo-manager -v usage: kumo-manager -l-p -p --partner master-slave replication partner -a --auto-replace enable auto replacing -Rs --replace-delay delay time of auto replacing in sec. -k --keepalive-interval keepalive interval in seconds -Ys --connect-timeout connect timeout time in seconds -Yn --connect-retry-limit connect retry limit -Ci --clock-interval clock interval in seconds -TW --write-threads number of threads for asynchronous writing -TR --read-threads number of threads for asynchronous reading -o --log output logs to the file -g --binary-log enable binary log -v --verbose -d --daemon v0.3.2 revision error: required but not set: -l
いちおう動作するようです。
今後の予定
いまのところ、まだ、情報鵜呑み状態ですが、すごくよさげなので、(財布と相談しながら)複数台を並べたシステムを完成させて、はやく実用的に使えるようにしたいと思っています。
参考ページ
- 分散Key-Valueストア「kumofs」を公開しました! – 古橋貞之の日記
http://d.hatena.ne.jp/viver/20100118/p1 - kumofs関連資料まとめ – 古橋貞之の日記
http://d.hatena.ne.jp/viver/20100117/p1 - etolabo’s kumofs at master – GitHub
http://github.com/etolabo/kumofs - doc/doc.ja.md at master from etolabo’s kumofs – GitHub
http://github.com/etolabo/kumofs/blob/master/doc/doc.ja.md - kumofsを使う (さくらインターネット創業日記)
http://tanaka.sakura.ad.jp/archives/001054.html - Centos 5. 1 に kumofs 0.3.1 をインストール – I CAN ’CAUSE I THINK I CAN!
http://www.tnzk.org/blog/2010/01/centos-5-1-kumofs-031.html - Ruby on Rails: Download
http://rubyonrails.org/download - データベースマネージャ Tokyo Cabinet
http://1978th.net/tokyocabinet/ - The MessagePack Project
http://msgpack.sourceforge.net/


![[Web開発者のための]大規模サービス技術入門](http://images-jp.amazon.com/images/P/4774143073.09._SCMZZZZZZZ_SX100_.jpg)
![WEB+DB PRESS 総集編 [Vol.1~60]](http://images-jp.amazon.com/images/P/4774148318.09._SCMZZZZZZZ_SX100_.jpg)




ピンバック: 「kumofs」を使って、分散key-Valueストレージシステムを構築 « FlatLabs Blog
ピンバック: 「kumofs」のストレージシステムにサーバを追加する « FlatLabs Blog
ピンバック: 分散Key-Valueストア「kumofs」のインストール(0.4.13版) - FlatLabs