kumofsをMacにインストールしてみたよ
近頃都に流行るもの。分散KVS「kumofs」をMacにインストールしてみました。分散KVSといえばFacebookのCassandraとか楽天のROMAなどもよく聞きますね。最近はNoSQLと言うほうが良いのかな。
参考にしたのはこの辺りのサイトです。
kumofsをインストールして遊んでみた。@BLOGKID
kumofsを使う@さくらインターネット創業日記
kumofsとは
kumofs(クモエフエス)は、実用性を重視した分散データストアです。レプリケーション機能を備え、一部のサーバーに障害が発生しても動作し続けます。単体でも高い性能を持ちながら、サーバーを追加することで読み・書き両方の性能が向上する特徴を持ち、低コストで極めて高速なストレージシステムを構築・運用できます。
: 分散Key-Valueストア「kumofs」を公開しました!@ 古橋貞之の日記
インストール手順
TokyoCabinetとMessagePackを先にインストールしておく必要があります。
TokyoCabinetのインストール
TokyoCabinetは言わずと知れたmikioさんによるDBM実装。この方も天才ハカーですね。TCは単体で使うというよりはDBMクライアント(TokyoTyrantとかFlareとか)からストレージとして使うイメージ。kumofsもバックエンドストレージにTCを使っているんすね。
TCは、いわゆるDBMの系譜のデータベースライブラリで、単純なハッシュテーブルをファイル上で永続化するだけの機能を提供します。
: Inside Tokyo Cabinet その壱@mixi Engineer's blog
http://1978th.net/tokyocabinet/tokyocabinet-1.4.43.tar.gz tar xvfz tokyocabinet-1.4.43.tar.gz ./configure make sudo make install
お決まりのconfigure-make-make installでOK
MessagePackのインストール
(MessagePackは)簡単に言い換えれば「速いJSON」です。JSONと比較するとシリアライズ後のデータサイズが小さく、CPUへの負荷が小さくて、ずっと高速です。
: Introducing the MessagePack @ 古橋貞之の日記
MessagePackそのものも色々使えそうですごく興味深いプロダクトです!
http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fmsgpack%2F46155%2Fmsgpack-0.4.2.tar.gz ./configure make sudo make install
MessagePack for Rubyのインストール
sudo gem install msgpack
kumofs本体のインストール
いよいよ本体のインストールです。
wget http://github.com/etolabo/kumofs/tarball/kumofs-0.3.2 tar xvfz etolabo-kumofs-3d4dc92.tar.gz cd etolabo-kumofs-3d4dc92 ./bootstrap ./configure make sudo make install
- bootstrapしたときにgit -ほげほげしていたので、gitインストールしていないとうまく動かないかも。
- 参考サイトではconfigureオプションが必要とあるが、今は要らなくなっている模様
動作確認
kumofsサービスの起動
kumofsは以下の3つのサービスで動くので全部起動してあげます。
kumo-manager -l localhost -v >>2010-04-08 04:48:49 ./manager/init.h:43: start manager 127.0.0.1:19700kumo-manager kumo-server -m localhost -l localhost:19801 -L 19901 -s ./kumodb1.tch >>2010-04-08 04:57:53 server/framework.cc:74: new node 0 127.0.0.1:19700 kumo-gateway -m localhost -t 11211 >>
kumoctlコマンドで確認してみる。
kumoctl localhost status >>hash space timestamp: Thu Apr 08 05:29:58 +0900 2010 clock 1234 attached node: 127.0.0.1:19801 (active) not attached node:
Telnetで接続してデータ保存と取得をしてみる
telnet localhost 11211 Trying ::1... telnet: connect to address ::1: Connection refused Trying fe80::1... telnet: connect to address fe80::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. set name 0 0 6 iskata STORED get name VALUE name 0 6 iskata END
やったね!!kumofs++
クラスタの設定方法・memcachedと比較したパフォーマンスのベンチマークなど、今度試してみる予定です。