GlusterFS の準備
クラスタ構成では Docker Swarm 上で動作する各ホスト上の Kompira のコンテナからアクセス可能な共有ディレクトリが必要になります。 すでに、利用可能な共有ファイルサーバがある場合は、そのサーバ上のディレクトリを Docker Swarm の各ホストからマウントして利用することもできます。
ここでは、GlusterFS 分散ファイルシステムを用いて共有ディレクトリを準備します。
GlusterFS インストールと設定
各ホスト上で以下のコマンドを実行して、GlusterFS をインストールします。
[全ホスト]$ sudo dnf install centos-release-gluster10
[全ホスト]$ sudo dnf install glusterfs-server
次に、GlusterFS サービスの有効化と起動を行います。
[全ホスト]$ sudo systemctl enable --now glusterd
ファイアウォールの設定
各ホスト上で、以下のコマンドを実行してポートを開放します。
[全ホスト]$ sudo firewall-cmd --add-service=glusterfs --permanent
[全ホスト]$ sudo firewall-cmd --reload
プールの構築
どれか1つのノードで、gluster peer probe コマンドを実行し、他のサーバをプールに追加します。
ke2-server1 上で実行する場合:
[ke2-server1]$ sudo gluster peer probe ke2-server2
[ke2-server1]$ sudo gluster peer probe ke2-server3
プールを構成するサーバの一覧は、以下のコマンドで確認することができます。
[ke2-server1]$ sudo gluster pool list
UUID Hostname State
9d593742-d630-48b0-8570-066d15822c4d ke2-server2 Connected
9b7f2c39-a0ce-498f-9939-4fcf55a36fac ke2-server3 Connected
d47ce78a-0ffd-468f-9218-32fa2d97c431 localhost Connected
GlusterFS ボリュームの作成
ボリューム gvol0 を作成してスタートします。 GlusterFS クラスタ内のどれか1つのノード上で(以下の例では ke2-server1 を想定)以下を実行します。 (ここでは root パーティションに作成しているため、force オプションが必要です)
[ke2-server1]$ sudo gluster vol create gvol0 replica 3 ke2-server1:/var/glustervol0 ke2-server2:/var/glustervol0 ke2-server3:/var/glustervol0 force
[ke2-server1]$ sudo gluster vol start gvol0
ボリュームの マウント
作成した gvol0 ボリュームを各ノード上でマウントします。
[全ホスト]$ sudo mkdir /mnt/gluster
[全ホスト]$ sudo mount -t glusterfs localhost:/gvol0 /mnt/gluster
再起動時に自動的にマウントされるように以下を /etc/fstab に追加しておきます。
localhost:/gvol0 /mnt/gluster glusterfs _netdev,defaults 0 0