前提条件
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と出ている
とりあえず、これで一通りのパフォーマンス測定を行なうことにする。