複数のノードにファイルを分割して配置するボリュームを作る
こちらもreplica 同様とに参加させるBrickの数は、指定したはstripeの整数倍となる。
もし間違ったBrick数を指定すると
[root@n1 ~]# gluster volume create gv0 stripe 2 n1:/brick/gv0 n2:/brick/gv0 n3:/brick/gv0
number of bricks is not a multiple of stripe count
[root@n1 ~]#と注意される。
stripeの数を2、Brickの数を2とした場合は下記になる。
[root@n1 ~]# gluster volume create gv0 stripe 2 n1:/brick/gv0 n2:/brick/gv0 force
volume create: gv0: success: please start the volume to access data
[root@n1 ~]# gluster volume start gv0
volume start: gv0: success
[root@n1 ~]#この時のボリューム情報は下記になる
[root@n1 ~]# gluster volume info gv0
Volume Name: gv0
Type: Stripe
Volume ID: d156a173-52bc-4bc5-8a26-181a7c9e8152
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: n1:/brick/gv0
Brick2: n2:/brick/gv0
[root@n1 ~]#単純な Stripe として定義されている
次に、一端構築したボリューム(gv0)を削除して、stripeの数を2として4つのBrickでボリューム(gv0)を作ってみる。
まずは既存のgv0を削除します。
[root@n1 ~]# gluster volume stop gv0
[root@n1 ~]# gluster volume delete gv0
[root@n1 ~]# rm -rf /brick/gv0
[root@n2 ~]# rm -rf /brick/gv0
[root@n1 ~]# gluster volume create gv0 stripe 2 n1:/brick/gv0 n2:/brick/gv0 n3:/brick/gv0 n4:/brick/gv0
[root@n1 ~]# gluster volume start gv0この時のボリューム情報は下記になる
[root@n1 ~]# gluster volume info gv0
Volume Name: gv0
Type: Distributed-Stripe
Volume ID: bc5a1a41-9ab9-4a2f-b5ca-75fee2f9ef11
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: n1:/brick/gv0
Brick2: n2:/brick/gv0
Brick3: n3:/brick/gv0
Brick4: n4:/brick/gv0
[root@n1 ~]#ボリュームタイプが Distributed-Stripe と表記されることに注目
NFSマウントして容量をチェックしてみると、
[root@client ~]# mount -t glusterfs n1:gv0 /home
[root@client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 15G 3.0G 11G 23% /
tmpfs tmpfs 3.9G 72K 3.9G 1% /dev/shm
/dev/sda1 ext4 477M 47M 405M 11% /boot
n1:gv0 fuse.glusterfs 64G 130M 64G 1% /home
[root@client ~]#replicaのような複製ではなく、ファイルをノード間に分割したstripeなので各Brickの総和がNFS容量となる。
そして、実際にファイルを配置してみる。GlusterFS/動作テスト参照
っが、http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Setting_Volume_Options
によるとstripeするにも、
cluster.stripe-block-sizeの既定値は128kBなので上記のGlusterFS/動作テストでは1ファイルが1kBほどしかないから分割されないみたい。
なので1.3GBほどのテキストファイルをコピーしてみた。
[root@client ~]# ls -lh /home/chembl_01.sdf
-rw-r--r-- 1 root root 1.3G 2月 4 01:01 2015 /home/chembl_01.sdf
[root@client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
(略)
n1:gv0 fuse.glusterfs 64G 1.4G 63G 3% /home
[root@client ~]#各Brickでは
[root@n1 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
(略)
/dev/sdb xfs 16G 33M 16G 1% /brick
[root@n1 ~]# ls -lh /brick/gv0
合計 0
[root@n1 ~]#
[root@n2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
(略)
/dev/sdb xfs 16G 33M 16G 1% /brick
[root@n2 ~]# ls -lh /brick/gv0
合計 0
[root@n2 ~]#とn1、n2には分割配布されていない。
[root@n3 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
(略)
/dev/sdb xfs 16G 681M 16G 5% /brick
[root@n3 ~]# ls -lh /brick/gv0
合計 649M
-rw-r--r-- 2 root root 649M 2月 4 01:01 2015 chembl_01.sdf
[root@n3 ~]#
[root@n4 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
(略)
/dev/sdb xfs 16G 681M 16G 5% /brick
[root@n4 ~]# ls -lh /brick/gv0
合計 649M
-rw-r--r-- 2 root root 649M 2月 4 01:03 2015 chembl_01.sdf
[root@n4 ~]#とn3、n4に分割されて配置されていた。