Glusterのインストール

12710 ワード

Glusterのインストール
(ミラー)
 
1.環境準備
マシン名
eth0
説明
server01
192.168.100.30/24
Centos 6.3 64 bit、ディスクを複数用意
server02
192.168.100.31/24
Centos 6.3 64 bit、ディスクを複数用意
Client
192.168.100.60/24
Centos 6.3 64bit
 
2.ディスクのフォーマットとマウント(両方のノードで次のように設定)
mkfsをインストールします.xfsコマンドパッケージ
yum install xfsprogs  
mkfs.xfs -i size=512 /dev/sdb 
mkdir -p /export/brick1

パーティションテーブルvi/etc/fstabの末尾追加の変更
/dev/sdb        /export/brick1                  xfs     defaults        1 2
mount –a &&mount

 
3.glusterのインストール(すべてのノードにインストールが必要)
ソースの追加
wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

glusterのインストール
yum install glusterfs{-fuse,-server}

サービスの開始
service glusterd start
service gluster status

 
4.glusterの構成
注意:次の設定は、1つのノードで実行できます.
エンド・ツー・エンドの信頼ノード(ミラー・サーバ)の構成
gluster peer probe 192.168.100.31
ミラーリング機能を持つクラスタボリュームを作成します(ドメイン名を使用できます).
gluster volume create gv0 replica 2 192.168.100.30:/export/brick1 192.168.100.31:/export/brick1
gluster volume start gv0

ボリューム情報の表示
 [root@server01 brick1]# gluster volume info
Volume Name: gv0
Type: Replicate
Volume ID: 3bf26a6a-63ce-44ed-bd57-fffd52352130
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 192.168.100.30:/export/brick1
Brick2: 192.168.100.31:/export/brick1

 
5.検証
クライアント192.168.100.60でglusterを検証し、
1.glusterをインストールする、つまりステップ3のserverコンポーネントにクライアントが含まれている
2.クライアントコンポーネントのみインストール
yum -y install fuse fuse-libs
yum install glusterfs glusterfs-fuse glusterfs-rdma
自動マウント変更/etc/fstabファイルserver 1:/test-volume/mnt/glusterfs glusterfs defaults,netdev 0 0 192.168.100.30:/gv0/mnt glusterfs defaults,netdev 0 0 
mount -t glusterfs 192.168.100.30:/gv0 /mnt
[root@node mnt]#  mount -l 
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sr0 on /media/CentOS_6.3_Final type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500) [CentOS_6.3_Final]
/dev/sr0 on /media/cdrom type iso9660 (ro) [CentOS_6.3_Final]
192.168.100.30:/gv0 on /mnt type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)

 
gv 0を/mntディレクトリにマウントし、クライアントディレクトリの下に100ファイルを作成しました.
for i in `seq -w 1 100`; do cp -rp /var/log/messages  /mnt/copy-test-$i; done
[root@node mnt]# ls
copy-test-001  copy-test-013
[root@node mnt]# ls -lA /mnt | wc -l
101

サーバ192.168.100.30で検証を表示
[root@server01 brick1]# ls
copy-test-001  copy-test-013
[root@server01 brick1]# ls -l  | wc -l
101

サーバ192.168.100.31での検証の表示
[root@server02 brick1]# ls
copy-test-001  copy-test-013  
[root@server02 brick1]#  ls -l  | wc -l
101

説明:上記の例では、2台のサーバ上の1つのハードディスクでミラー冗長化され、クライアントがファイルをアップロードすると、2台のサーバのglusterボリュームに自動的に同期します.
 
1.フェイルオーバ検証
現在のマウント状況を表示します.マウントされているのはserver 01のアドレスです.
[root@node mnt]# mount 
192.168.100.30:/gv0 on /mnt type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)

現在のデータを表示server 01とserver 02は空です
クライアントでテストデータを作成し、データを2台のサーバに同期
[root@server02 brick1]# ls
copy-test-001  copy-test-013  copy-test-025

現在のmountのアドレスはserver 01のアドレスであるため、server 01がネットワークを切断した後も、クライアントがserver 02のボリュームとインタラクティブにトラフィックを中断しないことを保証できるかどうかを確認します.
[root@node mnt]# ping 192.168.100.30
PING 192.168.100.30 (192.168.100.30) 56(84) bytes of data.
From 192.168.100.60 icmp_seq=1 Destination Host Unreachable
^C
--- 192.168.100.30 ping statistics ---
3 packets transmitted, 0 received, +1 errors, 100% packet loss, time 2423ms
 
[root@node mnt]# ls
copy-test-001  copy-test-013  copy-test-025

このように、server 01がネットワークを切断した後も、クライアントはserver 02とデータを対話することができる.
このとき、クライアントがデータを削除して更新すると、server 02は依然として切断前のデータであり、回復後にserver 01からデータを同期して戻すことができるかどうか.
クライアントで作成したテストデータを削除し、ファイルtestを新規作成し、server 01は同期します.
[root@node mnt]# rm -rf * 
[root@node mnt]# touch test
[root@node mnt]# ls
Test
[root@node mnt]# netstat -antulp |grep 192.168.*
tcp 0  52 192.168.100.60:22  192.168.100.1:49994         ESTABLISHED 2106/sshd           
tcp 0 1 192.168.100.60:1023   192.168.100.30:24009        SYN_SENT    2358/glusterfs      
tcp 0 1 192.168.100.60:1022   192.168.100.30:24007        SYN_SENT    2358/glusterfs      
tcp 0 0 192.168.100.60:1021  192.168.100.31:24009        ESTABLISHED 2358/glusterfs   
[root@server02 brick1]# ls
Test
server01       ,        
[root@server01 brick1]# ls
copy-test-001  copy-test-013
     ,      ,  server02   server01   
[root@server01 brick1]# ls
Test
 
[root@node mnt]# netstat -antulp |grep 192.168.*
tcp        0     52 192.168.100.60:22           192.168.100.1:49994         ESTABLISHED 2106/sshd           
tcp        0      0 192.168.100.60:1023         192.168.100.30:24009        ESTABLISHED 2358/glusterfs      
tcp        0      0 192.168.100.60:1022         192.168.100.30:24007        ESTABLISHED 2358/glusterfs      
tcp        0      0 192.168.100.60:1021         192.168.100.31:24009        ESTABLISHED 2358/glusterfs  

 
このように、サーバに障害が1台ある場合、クライアントのビジネスは継続でき、影響を受けません.障害サーバが回復すると、障害が発生していないサーバからデータを同期し、データの一貫性を確保します.
 
7拡張gluster volume
Server 01とserver 02はいずれも10 Gサイズのハードディスクを追加し、従来は20 Gのハードディスクが互いにミラーリングされていたが、glusterボリュームに10 Gサイズのスペースを追加した.
[root@server01 ~]# mkfs.xfs -i size=512 /dev/sdc
mkdir -p /export/brick2

vi/etc/fstabの編集の最後に追加
/dev/sdc               /export/brick2          xfs     defaults       1 2
元のボリュームのサイズ
[root@node /]# df -h /mnt
Filesystem            Size  Used Avail Use% Mounted on
192.168.100.30:/gv0    20G   33M   20G   1% /mnt

Glusterボリュームの状況
[root@server01 ~]# gluster volume info
 
Volume Name: gv0
Type: Replicate
Volume ID: 3bf26a6a-63ce-44ed-bd57-fffd52352130
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 192.168.100.30:/export/brick1
Brick2: 192.168.100.31:/export/brick1

新しい10 Gサイズのボリュームを追加
# gluster volume add-brick gv0 192.168.100.30:/export/brick2 192.168.100.31:/export/brick2
[root@server01 brick1]# gluster volume info
Volume Name: gv0
Type: Distributed-Replicate
Volume ID: 3bf26a6a-63ce-44ed-bd57-fffd52352130
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 192.168.100.30:/export/brick1
Brick2: 192.168.100.31:/export/brick1
Brick3: 192.168.100.30:/export/brick2
Brick4: 192.168.100.31:/export/brick2

クライアントによる拡張ボリュームの表示
[root@node /]# df -h /mnt
Filesystem            Size  Used Avail Use% Mounted on
192.168.100.30:/gv0    30G   65M   30G   1% /mnt

これでglusterミラーボリュームの拡張が順調に完了しました.
8.ボリュームの削除
ボリュームを削除すると、ボリューム上のデータが他の使用可能なボリュームに移行します.
gluster volume remove-brick gv0192.168.100.32:/export/brick1 192.168.100.33:/export/brick1 start
gluster volume remove-brick gv0192.168.100.32:/export/brick1 192.168.100.33:/export/brick1 commit
情報を確認すると、server 3とserver 4のボリュームが削除され、ボリュームのデータが失われず、使用可能なボリュームに移行していることがわかります.
gluster> volume info
Volume Name: gv0
Type: Distributed-Replicate
Volume ID:3bf26a6a-63ce-44ed-bd57-fffd52352130
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 192.168.100.30:/export/brick1
Brick2: 192.168.100.31:/export/brick1
Brick3: 192.168.100.30:/export/brick2
Brick4: 192.168.100.31:/export/brick2
9.アクセス制限
アクセス制限により、特定のホストがストレージにアクセスできるようにし、特定のホストがストレージにアクセスすることを拒否します.
gluster volume set gv0 auth.allow192.168.100.32,192.168.100.60
gluster volume set gv0 auth.reject
gluster> volume info
Volume Name: gv0
Type: Distributed-Replicate
Volume ID:3bf26a6a-63ce-44ed-bd57-fffd52352130
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 192.168.100.30:/export/brick1
Brick2: 192.168.100.31:/export/brick1
Brick3: 192.168.100.30:/export/brick2
Brick4: 192.168.100.31:/export/brick2
Options Reconfigured:
auth.reject: none
auth.allow: 192.168.100.32,192.168.100.60
diagnostics.latency-measurement: on
diagnostics.count-fop-hits: on
 
10.単機でglusterを作る
Server 03には2つのハードディスクsdb、sdcがあり、glusterを介してこの2つのハードディスク間でミラーバックアップを行いたい
2つのディスクをフォーマットしてマウントします.次のようにします.
/dev/sdc on/export/brick2 type xfs (rw)
/dev/sdb on/export/brick1 type xfs (rw)
 
gluster volume create gv0 replica 2192.168.100.32:/export/brick1 192.168.100.32:/export/brick2
Multiple bricks of a replicate volume arepresent on the same server. This setup is not optimal.
Do you still want to continue creating thevolume?  (y/n) y
Creation of volume gv0 has been successful.Please start the volume to access data.
[root@server03/]# gluster volume start gv0
Starting volume gv0 has been successful
[root@server03/]# gluster volume status
Status of volume: gv0
Gluster process                                        Port    Online  Pid
------------------------------------------------------------------------------
Brick 192.168.100.32:/export/brick1                     24009   Y      2252
Brick 192.168.100.32:/export/brick2                     24010   Y      2259
NFS Server on localhost                                 38467   Y      2265
Self-heal Daemon on localhost                           N/A     Y      2271
 
デクライアントマウントテスト
[root@node/]# mount -t glusterfs192.168.100.32:/gv0/volume/
[root@node/]# mount
192.168.100.32:/gv0 on/volume typefuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)