replica[複製]

複数ノード間で同じファイルを複製するボリュームを作る。必要なBrickの数は、指定したreplicaの整数倍です。
なのでreplica係数が2なら、Brick数は、2、4、6、8 とかとなる。
間違った数のBrickを指定すると *ここではreplicaが2なのにBrickを3つ指定した場合

[root@n1 ~]# gluster volume create gv0 replica 2 n1:/brick/gv0 n2:/brick/gv0 n3:/brick/gv0  * Brick数が3
number of bricks is not a multiple of replica count
 
[root@n1 ~]#

と注意される。
下は順当に2つのBrickreplicaなボリューム(gv0)作っている

[root@n1 ~]# gluster volume create gv0 replica 2 n1:/brick/gv0 n2:/brick/gv0
volume create: gv0: success: please start the volume to access data
[root@n1 ~]# gluster volume start gv0
volume start: gv0: success
[root@n1 ~]# ls -ld /brick/gv0
drwxr-xr-x 2 root root 6  1月 25 11:21 2015 /brick/gv0
[root@n1 ~]#

2つのBrickには元々、/brickだけ用意していたが、上記が成功すると
自動的に/brick/gv0と必要なフォルダを作ってくれるようだ。そして、クライアントマシンからマウントして容量を確認してみる。

[root@client ~]# mount -t glusterfs n1:gv0 /home
[root@client ~]# df -Th
Filesystem     Type            Size  Used Avail Use% Mounted on
...
n1:gv0         fuse.glusterfs   16G   33M   16G   1% /home
[root@client ~]#

各ノードのBrick部分を16GBとしていて、replica設定の2台構成なので16GBの提供は合っている。
次に作成したボリューム(gv0)を一旦破棄して、replica係数を2のまま、4つのBrickで構築してみる。

[root@client ~]# umount /home                          * クライアントでマウント解除
 
[root@n1 ~]# gluster volume stop gv0                   * gv0を停止
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: gv0: success
[root@n1 ~]# gluster volume delete gv0                 * gv0を削除
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: gv0: success
[root@n1 ~]# gluster volume create gv0 replica 2 n1:/brick/gv0 n2:/brick/gv0 n3:/brick/gv0 n4:/brick/gv0 force  *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@client ~]# mount -t glusterfs n1:gv0 /home
[root@client ~]# df -Th
Filesystem     Type            Size  Used Avail Use% Mounted on
...
n1:gv0         fuse.glusterfs   32G   65M   32G   1% /home

と2倍の32GBになった。

この時のボリューム情報は下記になる

[root@n1 ~]# gluster volume info gv0
 
Volume Name: gv0
Type: Distributed-Replicate
Volume ID: 09d3980e-96c7-4b59-b04f-ae48e955f10f
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-Replicate と表記されることに注目
冒頭の2つのBrickreplicaを作った場合は、

[root@n1 ~]# gluster volume info gv0
 
Volume Name: gv0
Type: Replicate
Volume ID: 0b4a19e4-d8d8-48bf-9fd6-6355b68d8a3a
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: n1:/brick/gv0
Brick2: n2:/brick/gv0
[root@n1 ~]#

とボリュームタイプは、 Replicate と表記される。
次に実際にファイルをNFS経由で落としてみる。

動作試験

GlusterFS/動作テストのスクリプトを使ってファイルを作成してみた。
ファイル作成後、クライアント側からは

[root@client ~]# df -Th
Filesystem     Type            Size  Used Avail Use% Mounted on
(略)
n1:gv0         fuse.glusterfs   32G  452M   32G   2% /home
[root@client ~]#

と452MB消費された。n1ノードの/brickは231704kB。n2ノードの/brickも231704kB。n3ノードは230656kB。n4ノードは230656kB。
どこかに定義されている箇所があるかもしれないが、n1とn2。n3とn4がペアとなっているようだ。
実際のファイルを見て見ると

[root@n1 ~]# ls -lX /brick/gv0/A001/ | head -5
合計 2048
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00001.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00002.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00005.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00006.txt
[root@n1 ~]#
 
[root@n2 ~]# ls -lX /brick/gv0/A001/ | head -5
合計 2048
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00001.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00002.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00005.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00006.txt
[root@n2 ~]#

とn1とn2は同じ。欠けている file00003.txtとfile00004.txtは、n3とn4側に存在している

[root@n3 ~]# ls -lX /brick/gv0/A001/ | head -5
合計 1952
-rw-r--r-- 2 root root 1010  1月 25 14:58 2015 file00003.txt
-rw-r--r-- 2 root root 1010  1月 25 14:58 2015 file00004.txt
-rw-r--r-- 2 root root 1010  1月 25 14:58 2015 file00007.txt
-rw-r--r-- 2 root root 1010  1月 25 14:58 2015 file00013.txt
[root@n3 ~]#
 
[root@n4 ~]# ls -lX /brick/gv0/A001/ | head -5
合計 1952
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00003.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00004.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00007.txt
-rw-r--r-- 2 root root 1010  1月 25 15:00 2015 file00013.txt
[root@n4 ~]#

[n1、n2]ペアと[n3、n4]ペアとでDistributedされている形である


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2015-02-02 (月) 23:53:25 (1694d)