CentOS Stream 8
Sponsored Link

GlusterFS 10 : 分散 + レプリカ構成2022/04/14

 
GlusterFS によるストレージクラスターの設定です。
例として、6 ノードを使用した 分散 + レプリカ 構成のボリュームを作成します。
スプリットブレインの対策として Arbiter Volume も設定します。
6 ノードが 3 ノードずつの 2 組に分かれ、1 組 3 ノード中の 2 ノードでレプリカ構成をとりつつ、残りの 1 ノードが Arbiter ノードとして、ファイルネームとメタデータのみを保持します。
それら 2 組のレプリカ構成のクラスターノード間で、ファイル単位でデータが分散保管されます。
                                  |
+----------------------+          |          +----------------------+
| [GlusterFS Server#1] |10.0.0.51 | 10.0.0.54| [GlusterFS Server#4] |
|   node01.srv.world   +----------+----------+   node04.srv.world   |
|                      |          |          |                      |
+----------------------+          |          +----------------------+
                                  |
+----------------------+          |          +----------------------+
| [GlusterFS Server#2] |10.0.0.52 | 10.0.0.55| [GlusterFS Server#5] |
|   node02.srv.world   +----------+----------+   node05.srv.world   |
|                      |          |          |                      |
+----------------------+          |          +----------------------+
                                  |
+----------------------+          |          +----------------------+
| [GlusterFS Server#3] |10.0.0.53 | 10.0.0.56| [GlusterFS Server#6] |
|   node03.srv.world   +----------+----------+   node06.srv.world   |
|                      |                     |                      |
+----------------------+                     +----------------------+
           ⇑                                             ⇑
     file1, file3 ...                             file2, file4 ...

 
前提として、クラスターを構成するノード群では GlusterFS に割り当てる領域は / パーティションとは別であることが推奨です。
( / 配下の任意のディレクトリでも設定は可能だが、非推奨のため、設定の際に強制オプションの付加が必要 )
[1]
[2] 全ノードで、ボリュームに割り当てるディレクトリを作成しておきます。
( 当例では、全ノードで [sdb1] を [/glusterfs] にマウント済み )
[root@node01 ~]#
mkdir -p /glusterfs/dist-replica

[3] いずれかのノードで以下のように設定します。
# 他のノードを探す

[root@node01 ~]#
gluster peer probe node02

peer probe: success.
[root@node01 ~]#
gluster peer probe node03

peer probe: success.
[root@node01 ~]#
gluster peer probe node04

peer probe: success.
[root@node01 ~]#
gluster peer probe node05

peer probe: success.
[root@node01 ~]#
gluster peer probe node06

peer probe: success.
# 状態を表示

[root@node01 ~]#
gluster peer status

Number of Peers: 5

Hostname: node02
Uuid: 1d800595-6436-40be-8724-0cb7976afa6e
State: Peer in Cluster (Connected)

Hostname: node03
Uuid: f41f6ea1-26d5-4114-813a-4ef1b3345425
State: Peer in Cluster (Connected)

Hostname: node04
Uuid: 0069025b-34d8-4163-806f-71f99571fa74
State: Peer in Cluster (Connected)

Hostname: node05
Uuid: a0e11cc6-ac70-4dcd-9ae0-f010bed4f81e
State: Peer in Cluster (Connected)

Hostname: node06
Uuid: 382f150d-8a95-4dd5-a91a-982e24729854
State: Peer in Cluster (Connected)

# ボリュームを作成

[root@node01 ~]#
gluster volume create vol_dist-replica replica 3 arbiter 1 transport tcp \
node01:/glusterfs/dist-replica \
node02:/glusterfs/dist-replica \
node03:/glusterfs/dist-replica \
node04:/glusterfs/dist-replica \
node05:/glusterfs/dist-replica \
node06:/glusterfs/dist-replica

volume create: vol_dist-replica: success: please start the volume to access data
# 作成したボリュームを起動

[root@node01 ~]#
gluster volume start vol_dist-replica

volume start: vol_dist-replica: success
# ボリューム情報確認

[root@node01 ~]#
gluster volume info


Volume Name: vol_dist-replica
Type: Distributed-Replicate
Volume ID: 1afcc58f-6c6d-435f-a282-13e880d80d83
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x (2 + 1) = 6
Transport-type: tcp
Bricks:
Brick1: node01:/glusterfs/dist-replica
Brick2: node02:/glusterfs/dist-replica
Brick3: node03:/glusterfs/dist-replica (arbiter)
Brick4: node04:/glusterfs/dist-replica
Brick5: node05:/glusterfs/dist-replica
Brick6: node06:/glusterfs/dist-replica (arbiter)
Options Reconfigured:
cluster.granular-entry-heal: on
storage.fips-mode-rchecksum: on
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
[4]
GlusterFS ボリュームをマウントして利用するための クライアント側の設定はこちらを参照ください
関連コンテンツ