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コマンドパッケージ
パーティションテーブルvi/etc/fstabの末尾追加の変更
3.glusterのインストール(すべてのノードにインストールが必要)
ソースの追加
glusterのインストール
サービスの開始
4.glusterの構成
注意:次の設定は、1つのノードで実行できます.
エンド・ツー・エンドの信頼ノード(ミラー・サーバ)の構成
gluster peer probe 192.168.100.31
ミラーリング機能を持つクラスタボリュームを作成します(ドメイン名を使用できます).
ボリューム情報の表示
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
gv 0を/mntディレクトリにマウントし、クライアントディレクトリの下に100ファイルを作成しました.
サーバ192.168.100.30で検証を表示
サーバ192.168.100.31での検証の表示
説明:上記の例では、2台のサーバ上の1つのハードディスクでミラー冗長化され、クライアントがファイルをアップロードすると、2台のサーバのglusterボリュームに自動的に同期します.
1.フェイルオーバ検証
現在のマウント状況を表示します.マウントされているのはserver 01のアドレスです.
現在のデータを表示server 01とserver 02は空です
クライアントでテストデータを作成し、データを2台のサーバに同期
現在のmountのアドレスはserver 01のアドレスであるため、server 01がネットワークを切断した後も、クライアントがserver 02のボリュームとインタラクティブにトラフィックを中断しないことを保証できるかどうかを確認します.
このように、server 01がネットワークを切断した後も、クライアントはserver 02とデータを対話することができる.
このとき、クライアントがデータを削除して更新すると、server 02は依然として切断前のデータであり、回復後にserver 01からデータを同期して戻すことができるかどうか.
クライアントで作成したテストデータを削除し、ファイルtestを新規作成し、server 01は同期します.
このように、サーバに障害が1台ある場合、クライアントのビジネスは継続でき、影響を受けません.障害サーバが回復すると、障害が発生していないサーバからデータを同期し、データの一貫性を確保します.
7拡張gluster volume
Server 01とserver 02はいずれも10 Gサイズのハードディスクを追加し、従来は20 Gのハードディスクが互いにミラーリングされていたが、glusterボリュームに10 Gサイズのスペースを追加した.
vi/etc/fstabの編集の最後に追加
/dev/sdc /export/brick2 xfs defaults 1 2
元のボリュームのサイズ
Glusterボリュームの状況
新しい10 Gサイズのボリュームを追加
クライアントによる拡張ボリュームの表示
これで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)
(ミラー)
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)