Gluster の設定

前提条件
 PC:Dell PowerEdge R310 を4台使用
CPU:X3470
MEM:PC10400 RDIMM 8GB
HDD:SATA 7.2krpm 2TB × 2 (システム用とGluster用)
IBHCA:MHQH29B-XTR (Port1:Infiniband QDR Port2:10G Ethernet

・IB系と10G系と2つの閉じたネットワークを構築
  IB系 172.22.0.0/24
10G系 172.22.1.0/24
 このほかに管理用としてオンボード1G NICを生活線に接続

/etc/hosts には、
IB系 ibnode1 〜 ibnode4
10G系 node1 〜 node4
 をそれぞれ記載した。

 HDD2台のうち1台を XFS でフォーマットし、 /gluster-partial にマウントしている

1) Glusetr のバージョンチェック
同時期に apt でインストールしているので、バージョンの不一致はない筈であるが念のため確認しておく

% gluster -V
glusterfs 3.2.1 built on Jun 28 2011 07:43:58
Repository revision: v3.2.1
Copyright (c) 2006-2010 Gluster Inc. http://www.gluster.com
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU Affero General Public License.


2) GlusterFS に参加する、操作端末以外のノードを認識させる

% sudo gluster peer probe ibnode2
Probe successful
% sudo gluster peer probe ibnode3
Probe successful
% sudo gluster peer probe ibnode4
Probe successful


認識状況の確認

% sudo gluster peer status
Number of Peers: 3

Hostname: ibnode2
Uuid: ffa446a4-217e-4bc2-bb7e-07a989065fba
State: Peer in Cluster (Connected)

Hostname: ibnode3
Uuid: f42a65cf-cdae-4f38-91af-df2c3a7c3d2e
State: Peer in Cluster (Connected)

Hostname: ibnode4
Uuid: 30580991-0aaa-4c0a-ad1d-c2bf8de83cd8
State: Peer in Cluster (Connected)


★認識済みのノードを、削除する場合

% sudo gluster peer detach node#
Detach successful


3) GlusterFS の構築
ここでは、4台のノードを使用して x2 の冗長性を持った GlusterFS を作成する。ノード間の転送経路は RDMA を使用する。
注意点は、 "gluster peer status" で、 "Hostname: " に記載されているホスト名を記載する必要がある。

% sudo gluster volume create gfs replica 2 transport rdma ibnode1:/gluster-partial ibnode2:/gluster-prtial ibnode3:/gluster-partial ibnode4:/gluster-partial
Creation of volume gfs has been successful. Please start the volume to access data.


作成されたボリュームの確認

% sudo /usr/sbin/gluster volume info all

Volume Name: gfs
Type: Distributed-Replicate
Status: Created
Number of Bricks: 2 x 2 = 4
Transport-type: rdma
Bricks:
Brick1: ibnode1:/gluster-partial
Brick2: ibnode2:/gluster-partial
Brick3: ibnode3:/gluster-partial
Brick4: ibnode4:/gluster-partial


作成されたボリュームを有効にする

% sudo gluster volume start gfs
Starting volume gfs has been successful


有効になったボリュームを、ローカルマウントする

% sudo mount -t glusterfs -o log-level=WARNING,log-file=/var/log/gluster.log node1:/gfs /gfs

この状態で、 "df" を取っても "df: `/gfs': Transport endpoint is not connected" と怒られてしまう。
一旦 "/gfs" に何らかのアクセスを実行するとエラーは出なくなる。

とりあえず、100MBのファイルを書き込んでみる

% cd /gfs
% dd if=/dev/zero of=100M bs=1M count=1
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.595028 s, 176 MB/s

もう一度 "df" を取ってみると
% df
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 20G 2.6G 17G 14% /
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 1.6G 268K 1.6G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 4.0G 115M 3.8G 3% /run/shm
/dev/sdb1 1.9T 478M 1.9T 1% /gluster-partial
node1:/gfs 3.7T 11G 3.7T 1% /gfs

めでたく /gfs が見えました。 容量は、1.9TB×4 で x2 の冗長性なので 3.7TBと出ている


とりあえず、これで一通りのパフォーマンス測定を行なうことにする。