R&Dトレンドレポート

第4回 分散環境でTokyoCabinetを動かす

この記事を読むのに必要な時間:およそ 5 分

kumofsの登場

前回は,TokyoCabinetを単体で動作させてみました。今回はTokyoCabinetを分散環境で動かしてみたいと思います。

TokyoCabinetのデータベースエンジン+分散フレームワークの構成で構築されたアプリケーションがkumofsになります。こちらにkumofsのドキュメントがありますが,kumofsの特色をいくつかご紹介したいと思います。

kumofsの特色(ドキュメントから一部引用)

  • データは複数のサーバーにレプリケーションされます
  • データは複数のサーバーに分散して保存されます
  • 一部のサーバーがダウンしても正常に動き続けます

→アベイラビリティの向上

  • システムを止めずにサーバーを追加できます
  • システムを止めずにダウンしたサーバーを復旧できます
  • 2台から60台程度までスケールします(60台以上はまだ検証されていません)

→スケーラビリティの向上

シンプルなKVSとそれを横に拡散させる分散環境を組み合わせることによって

  • アベイラビリティの向上
  • スケーラビリティの向上
が実現されているようです。

それでは実際に環境を構築してみましょう。

kumofsのインストール

環境は前回インストールしたマシンと同様です。

OSCentOS_5.4(32ビット)
必要なライブラリなどLinux2.6.18
g++4.1
ruby1.8.6
Tokyo_Cabinet1.4.10
MessagePack_for_C++0.3.1
MessagePack_for_Ruby0.3.1
libcrypto_(openssl)
zlib

基本的にkumofsのドキュメントに書かれているインストールガイドのまま進めていきます。TokyoCabinetのインストールは前回済んでいますね。まだの方は前回を参考にしてください。以下に,私の環境で必要だったものを記述しておきます。参考にしてください。

g++はCentOSの場合は,以下のようにインストールします。

# yum install gcc-c++

rubyのインストールは以下のように行います。

# yum install ruby
# yum install ruby-devel

注意

このとき,rubyのバージョンが1.8.6以上であることを確認してください。もし1.8.5の場合は以下の要領で1.8.6にupdateする必要があります。

/etc/yum.repos.d/ruby.repoを以下の内容で作成。

[ruby]
name=ruby
baseurl=http://repo.premiumhelp.eu/ruby/
gpgcheck=0
enabled=0
# yum --enablerepo=ruby install ruby ruby-rdoc ruby-devel

これで1.8.6になると思います。

gemのインストールは以下のように行います。

# wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
# tar zxvf rubygems-1.3.1.tgz
# cd rubygems-1.3.1
# ruby ./setup.rb

libcrypt(openssl-devel)のインストールは以下のように行います。

# yum install openssl-devel

kumofsの構成

kumofsは3種類のデーモンで構成されます。

kumo-server実際にデータを保存するノード。少なくとも1台必要です。後から追加できます。
kumo-managerkumo-server群を管理するノード。1台または2台で動かします。
kumo-gatewayアプリケーションからのリクエストをkumo-serverに中継するプロキシ。アプリケーションを動かすホスト上で1つずつ起動しておきます。

ここでもドキュメントのチュートリアルに従って進めていきます。私の環境でも同様に3台のサーバを用いて環境を構築します。

サーバkumo-managerkumo-serverkumo-gateway
serv1
serv2
serv3

サーバサイドの環境構築や開発においてはLinuxマシンが必須になります。私の場合は,MacBook Pro 17にVMware Fusionを導入し,各種OSをゲストとして起動させています。今回の環境についても同様で,CentOSはVMwareのイメージをダウンロードして起動させています。1台のマシンで複数の環境を持ち運びできるというのは本当に強力です。

著者プロフィール

脇本武士(わきもとたけし)

都内中小IT企業(メイサンソフト(株))に所属。某大手自動車会社でのシステム開発,運用を経て,現在は研究開発部署に席をお借りしています。DB周りの保守サポート,ウェブ技術開発を主に手がけてきました。現在は大規模計算フレームワークの活用とKVSに注目しています。普段はOS Xを使用していますが一番よく使うアプリはTerminalです(笑)。

R&Dトレンドレポート(てくらぼ)

コメント

コメントの記入