この記事は、CentOS®7およびUbuntu®18.04へのGlusterFS®7のインストールをカバーするように更新されています。 レプリカを使用してボリュームを作成する手順を除いて、このドキュメントの元の作業はすべて同じです。 キーワード。
GlusterFSの使用を開始する前に、環境に必要なボリュームのタイプを決定する必要があります。次の方法は、さまざまな結果を達成するために最も頻繁に使用されます。
このタイプのボリュームは、複数のブリック間でファイルレプリケーションを提供します。これは、高可用性、高信頼性、およびスケーラブルなストレージを必要とする環境に最適です。このボリュームタイプは、たとえばWebサーバーのドキュメントルート( /var/www
)としてGlusterFSボリュームをセルフマウントする場合に適しています。 )または同様の場所で、すべてのファイルがそのノードに存在する必要があります。 レプリカに渡された値 ボリューム内のノードの数は同じです。
独立ディスクの冗長アレイ(RAID-1)と同様に、ファイルはボリューム内の各ブリックにコピーされます。ただし、3つ以上のブリック、または奇数のブリックを使用できます。使用可能なスペースは1つのブリックのサイズであり、1つのブリックに書き込まれたすべてのファイルが他のすべてのブリックに複製されます。このタイプのボリュームは、ほとんどの環境で読み取りパフォーマンスも向上し、クライアントがGlusterFSノード自体の外部にある場合に使用される最も一般的なタイプのボリュームです。
RAID-10と同様に、偶数のブリックを使用する必要があります。使用可能なスペースは、レプリカに渡される結合されたレンガのサイズです。 価値。たとえば、 20ギガバイト(GB)のブリックが4つある場合 レプリカ2に合格します 作成時に、ファイルは2つのノード(40 GB)に分散され、2つのノードに複製されます。 20GBのレンガ6個 およびレプリカ3 、ファイルは3つのノード(60 GB)に分散され、3つのノードに複製されます。レプリカ2を使用した場合、それらは2つのノード(40 GB)に分散され、ペアで4つのノードに複製されます。この分散とレプリケーションは、クライアントがローカルのセルフマウントではなく、クラスターの外部にある場合に使用されます。
- 個別のストレージを備えた2台以上のサーバー。この記事の例は、CentOS7およびUbuntu18.04サーバーに基づいています。
- サーバー間のプライベートネットワーク。この記事の例では、
192.168.0.0/24
を使用しています 。
このドキュメントで説明するビルドは、次のセットアップを使用します。
-
/dev/xvde
を使用した4つのRackspaceCloudサーバーイメージ 各ブリックですぐに使用できるパーティション -
192.168.0.0/24
上の1つのクラウドプライベートネットワーク GlusterFS通信用 - ベンダーパッケージリポジトリからインストールされたGlusterFS7.1
次の構成とインストールを実行して、サーバーを準備します。
-
/etc/hosts
を構成します 。 - オペレーティングシステム(OS)の更新をインストールします。
- GlusterFSソフトウェアをインストールします。
- ネットワークアクセスを構成します。
- GlusterFSノードを接続します。
DNSを使用する代わりに、 /etc/hosts
を準備します すべてのサーバーで、サーバーが相互に通信できることを確認します。すべてのサーバーの名前はgluster N ホスト名としてglus Nを使用します サーバー間のプライベート通信レイヤー用。
# vi /etc/hosts
192.168.0.1 glus-01
192.168.0.2 glus-02
192.168.0.3 glus-03
192.168.0.4 glus-04
# ping -c2 glus-01; ping -c2 glus-02; ping -c2 glus-03; ping -c2 glus-04
このセクションのコマンドを実行して、次の手順を実行します。
- OSアップデートをインストールします。
- GlusterFSリポジトリとGlusterFSパッケージをインストールします。
CentOS
yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server
Ubuntuオペレーティングシステム
デフォルトのUbuntuリポジトリにはGlusterFS3.13.2がインストールされています。次のコマンドを使用して7.1をインストールします。
apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server
CentOS
次のコマンドを使用して、ノード間のGlusterトラフィックを許可し、クライアントマウントを許可します。
firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent
Ubuntuオペレーティングシステム
次のコマンドを使用して、プライベートネットワークセグメント上のすべてのトラフィックを許可し、Gluster通信を容易にします。
ufw enable
ufw allow from 192.168.0.0/24
このセクションのコマンドを実行して、次の手順を実行します。
- パーティションブロックデバイス。
- 論理ボリュームマネージャー(LVM)基盤を作成します。
- ボリュームブリックを準備します。
基盤となるブリックは、標準のファイルシステムとマウントポイントです。ユーザーがディレクトリに変更して、基になるブリック自体に書き込むことを思いとどまらせるような方法で、各ブリックをマウントします。
警告: ブリックに直接書き込むと、ボリュームが破損します。
ブリックはノードごとに一意である必要があり、ボリュームの作成に使用するディレクトリがマウントポイント内にある必要があります。マウントポイントの最上位レベルを使用して複製ボリュームを作成しようとすると、サブディレクトリの使用手順でエラーが発生します。
すべてのノード
parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
-
glus-01
mkdir /var/lib/gvol0/brick1
-
glus-02
mkdir /var/lib/gvol0/brick2
-
glus-03
mkdir /var/lib/gvol0/brick3
-
glus-04
mkdir /var/lib/gvol0/brick4
GlusterFSを設定する
以下の手順を使用して、GlusterFSセットアップを実行します。
glusterfsdデーモンを起動します
次のコマンドを使用して、実行時にデーモンを再起動できます。
systemctl enable glusterd
systemctl start glusterd
ピアグループは、信頼できるストレージプールと呼ばれます。 GlusterFSで。
-
glus-01
gluster peer probe glus-02 gluster peer probe glus-03 gluster peer probe glus-04 gluster peer status
-
glus-02
gluster peer status
-
glus-03
gluster peer status
-
glus-04
gluster peer status
これで、ノードとglusterサーバープールのステータスを確認できます。
[root@gluster1 ~]# gluster pool list
UUID Hostname State
734aea4c-fc4f-4971-ba3d-37bd5d9c35b8 glus-04 Connected
d5c9e064-c06f-44d9-bf60-bae5fc881e16 glus-03 Connected
57027f23-bdf2-4a95-8eb6-ff9f936dc31e glus-02 Connected
e64c5148-8942-4065-9654-169e20ed6f20 localhost Connected
デフォルトでは、glusterd NFSはボリュームの作成中にグローバルな読み取り/書き込みを許可するため、プライベートサブネットのみに基本認証制限を設定する必要があります。 glusterd
各サーバーでNFSdを自動的に起動し、各ノードからNFSdを介してボリュームをエクスポートします。この動作の理由は、クライアントにボリュームをマウントするためにユーザースペースのネイティブクライアントファイルシステム(FUSE)を使用するには、クライアントがまったく同じバージョンのGlusterFSパッケージを実行する必要があるためです。バージョンが異なると、サーバーとクライアントで使用されるハッシュアルゴリズムに違いが生じる可能性があり、クライアントは接続できなくなります。
次の例では、4つのノードすべてへのレプリケーションを作成します。各ノードにはすべてのデータのコピーが含まれており、ボリュームのサイズは単一のブリックのサイズです。出力には1 x 4 = 4
が表示されることに注意してください 。
1つのノードのみ :
gluster volume create gvol0 replica 4 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0
[root@gluster1 ~]# gluster volume info gvol0
Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
この例では、2x2ノードへの分散レプリケーションを作成します。ノードの各ペアにはデータが含まれており、ボリュームのサイズは2つのブリックのサイズです。出力には2 x 2 = 4
が表示されることに注意してください 。
1つのノードのみ :
gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0
[root@gluster1 ~]# gluster volume info gvol0
Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
クライアント(ローカルまたはリモート)がボリュームをマウントしていないことを確認したら、次のコマンドを使用してボリュームを停止し、削除できます。
gluster volume stop gvol0
gluster volume delete gvol0
ブリックがボリュームで使用されており、それらを削除する必要がある場合は、次のいずれかの方法を使用できます。
GlusterFSは、ブリックサブディレクトリに属性を設定します。この属性をクリアすると、レンガを再利用できます。
-
glus-01:
setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick1/setfattr -x trusted.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs
-
glus-02:
setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x trusted.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs
-
glus-03:
setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick3/setfattr -x trusted.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs
-
glus-04:
setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x trusted.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs
または、サブディレクトリを削除してから再作成することもできます。
-
glus-01
rm -rf / var / lib / gvol0 / brief1mkdir / var / lib / gvol0 / brief1
-
glus-02:
rm -rf / var / lib / gvol0 / brief2mkdir / var / lib / gvol0 / brief2
-
glus-03:
rm -rf / var / lib / gvol0 / brief3mkdir / var / lib / gvol0 / brief3
-
glus-04:
rm -rf / var / lib / gvol0 / brief4mkdir / var / lib / gvol0 / brief4
実行中のボリュームにブリックを追加できます。次のコマンドを使用して、上記のレプリケートされたボリュームの例にブリックを追加します。
gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5
add-brick
を使用できます ボリュームのレイアウトを変更するコマンド。たとえば、2ノードの分散ボリュームを4ノードの分散複製ボリュームに変更します。このような操作の後、ボリュームのバランスを取り直す必要があります。新しいファイルは新しいノードに自動的に作成されますが、古いファイルは移動されません。
gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status
## If needed (something didn't work right)
gluster volume rebalance gvol0 stop
構成されたボリュームオプションを表示するには、次のコマンドを実行します。
gluster volume info gvol0
次に出力例を示します。
Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
ボリュームのオプションを設定するには、設定を使用します キーワードは次のとおりです:
gluster volume set gvol0 performance.write-behind off
volume set: success
ボリュームのオプションをクリアしてデフォルトに戻すには、リセットを使用します キーワードは次のとおりです:
gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful
クライアントがGlusterFSボリュームをマウントするための推奨される方法は、ネイティブFUSEクライアントを使用することです。 GlusterFSがNFS-Ganesha®と連携してデプロイされている場合、NFSマウントが可能です。
FUSEクライアントを使用すると、GlusterFSの「ラウンドロビン」スタイルの接続でマウントを実行できます。 / etc / fstab内 、1つのノードの名前が使用されます。ただし、内部メカニズムによりそのノードに障害が発生し、クライアントは信頼できるストレージプール内の他の接続されたノードにロールオーバーします。
CentOS :
yum install -y centos-release-gluster7
yum install -y glusterfs-fuse
Ubuntu :
add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client
共通 :
vi /etc/hosts
192.168.0.2 glus-01
192.168.0.4 glus-02
192.168.0.1 glus-03
192.168.0.3 glus-04
`modprobe fuse
echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
mkdir -p /mnt/gluster/gvol0
mount /mnt/gluster/gvol0`
- https://www.gluster.org/announcing-gluster-7-0/
- https://docs.gluster.org/en/latest/
- https://wiki.centos.org/HowTos/GlusterFSonCentOS
- https://kifarunix.com/install-and-setup-glusterfs-on-ubuntu-18-04/
- https://launchpad.net/~gluster
GlusterFSのトラブルシューティング