GlusterFSにて、n1、n2にレプリカを持たせる設定を施して、実際にファイルを配置してみた。
ここでは新たにn3を追加して、glusterコマンドによる再配置を行ってみた。
n3のスペックはn1、n2と同じで
[root@n3 ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 512000 sda1
8 2 1048576 sda2
8 3 6827008 sda3
8 16 16777216 sdb
[root@n3 ~]#
としている。sdbを丸ごとxfsにします。
[root@n3 ~]# yum install xfsprogs
[root@n3 ~]# mkfs.xfs -i size=512 /dev/sdb
[root@n3 ~]# mkdir /brick
[root@n3 ~]# echo "/dev/sdb /brick xfs defaults 1 2" >> /etc/fstab
[root@n3 ~]# mount -a
[root@n3 ~]# df -lTh
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 6.3G 1.1G 5.0G 17% /
tmpfs tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 ext4 477M 47M 405M 11% /boot
/dev/sdb xfs 16G 33M 16G 1% /brick
[root@n3 ~]#
次にn1からglusterFSのパッケージを貰い受けて、インストール。そして再起動を行う
[root@n3 glusterfs]# yum localinstall \
./glusterfs-server-3.6.1-1.el6.x86_64.rpm \
./glusterfs-cli-3.6.1-1.el6.x86_64.rpm \
./glusterfs-fuse-3.6.1-1.el6.x86_64.rpm \
./glusterfs-libs-3.6.1-1.el6.x86_64.rpm \
./glusterfs-3.6.1-1.el6.x86_64.rpm \
./glusterfs-api-3.6.1-1.el6.x86_64.rpm
[root@n3 glusterfs]# reboot
n1サイトにてn3を追加します。取敢えずn3を加える前の状態は、
[root@n1 ~]# gluster peer status
Number of Peers: 1
Hostname: n2
Uuid: 80f808eb-8afc-424b-a40d-e0370c609cd8
State: Peer in Cluster (Connected)
[root@n1 ~]#
[root@n1 ~]# gluster pool list
UUID Hostname State
80f808eb-8afc-424b-a40d-e0370c609cd8 n2 Connected
3175c53c-aeff-49ae-bce9-af8a0314aedf localhost Connected
[root@n1 ~]#
となっている。この状態でn3を加えると、
[root@n1 ~]# gluster peer probe n3
peer probe: success.
[root@n1 ~]#
[root@n1 ~]# gluster peer status
Number of Peers: 2
Hostname: n2
Uuid: 80f808eb-8afc-424b-a40d-e0370c609cd8
State: Peer in Cluster (Connected)
Hostname: n3
Uuid: 8bce0401-0f26-48b2-be71-f4e4b079d553
State: Peer in Cluster (Connected)
[root@n1 ~]#
[root@n1 ~]# gluster pool list
UUID Hostname State
80f808eb-8afc-424b-a40d-e0370c609cd8 n2 Connected
8bce0401-0f26-48b2-be71-f4e4b079d553 n3 Connected
3175c53c-aeff-49ae-bce9-af8a0314aedf localhost Connected
[root@n1 ~]#
と追加に成功。
現在提供しているボリュームは、
[root@n3 ~]# gluster volume info
Volume Name: gv0
Type: Replicate
Volume ID: e046add7-0334-493c-b0c1-b9dc006b8119
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: n1:/brick/gv0
Brick2: n2:/brick/gv0
[root@n3 ~]#
とgv0である。n3に/brick/gv0というBrickを用意して、追加してみる
[root@n3 ~]# mkdir /brick/gv0
[root@n3 ~]# gluster vol add-brick gv0 n3:/brick/gv0
volume add-brick: failed: Incorrect number of bricks supplied 1 with count 2
[root@n3 ~]#
とエラーが発生。どうやら2つのBrickで構成したので増やすには2の掛け算分のBrickが必要みたい。2台構成が4台構成へ。。。そんなことはしたくない。。。
っで、3Brickともに同じデータを持つ方法ならある。っでファイルは常に2つのBrickでのみ保持してほしかったのだが、、、
[root@n3 ~]# gluster vol add-brick gv0 replica 3 n3:/brick/gv0
volume add-brick: success
[root@n3 ~]# gluster vol info
Volume Name: gv0
Type: Replicate
Volume ID: e046add7-0334-493c-b0c1-b9dc006b8119
Status: Started
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: n1:/brick/gv0
Brick2: n2:/brick/gv0
Brick3: n3:/brick/gv0
[root@n3 ~]#
だがこの時点ではまたn3:/brick/gv0に変化は起こらない。
clinetからこのボリュームにアクセスしたときにrebalanceが自動的に開始された。