GlusterFSでは、ボリュームに2つのノード(サーバー)があるとします。ボリューム情報が次のようになっているとします。
Volume Name: volume-www
Brick1: gluster-server-01:/volume-www/brick
Brick2: gluster-server-02:/volume-www/brick
クライアントからわかるように、volume-www
1つのサーバーからボリュームをマウントする必要があります。良い:
mount -t glusterfs gluster-server-01:/volume-www /var/www
まだ接続だけになっていてボトルネックがあるような感じがしますgluster-server-01
。
- 失敗したらどうなりますか?
もちろん、他の通常のサーバーから手動で再マウントすることもできます。しかし、この問題を解決するためのより賢明な方法(産業的アプローチ)がありますか?
答え1
これを行うとき:
mount -t glusterfs gluster-server-01:/volume-www /var/www
最初はGlusterボリュームを構成するノードの1つに接続しますが、FUSEベースのGluster Native Clientは他のノードに関する情報を受け取りますgluster-server-01
。クライアントは他のノードについて知っているので、フェールオーバーシナリオを適切に処理できるようになりました。
答え2
OpenUserX03の答え正確ではありません。
クライアントがGlusterサーバーノードに接続すると、すべてのノードに関する情報が表示されます。その後、複数のノードと同時に通信を開始します。したがって、ノードがシャットダウンすると、「障害アクション」は発生せず、ノードのみが失われますが、他のノードとの通信は維持され続けます。
記録ノートから:
mount コマンドで指定されたサーバーは、ボリューム名を記述する Gluster 構成 volfile を取得するためにのみ使用されます。その後、クライアントはvolfileに記載されているサーバー(マウントに使用されているサーバーを含まない可能性があります)と直接通信します。
答え3
次の2つの方法があります。
- backupvolfile オプション fstab の使用
server1_name:/media /media glusterfs デフォルト、_netdev,backupvolfile-server=server2_name,log-level=WARNING,log-file=/var/log/gluster.log 0 0
- データファイル /etc/datastore.vol 生成例
volume mymedia-client-0 type protocol/client option clnt-lk-version 1 option volfile-checksum 0 option volfile-key /mymedia option client-version 3.8.12 option process-uuid server01.vn-7565-2017/10/03-02 option fops-version 1298437 option ping-timeout 42 option remote-host 192.168.10.79 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-client-1 type protocol/client option clnt-lk-version 1 option volfile-checksum 0 option volfile-key /mymedia option client-version 3.8.12 option process-uuid server01.vn-7565-2017/10/03-02 option fops-version 1298437 option ping-timeout 42 option remote-host 192.168.10.80 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-replicate-0 type cluster/replicate subvolumes mymedia-client-0 mymedia-client-1 end-volume volume mymedia-client-2 type protocol/client option ping-timeout 42 option remote-host 192.168.10.81 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-client-3 type protocol/client option ping-timeout 42 option remote-host 192.168.10.82 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-replicate-1 type cluster/replicate subvolumes mymedia-client-2 mymedia-client-3 end-volume volume mymedia-dht type cluster/distribute option lock-migration off subvolumes mymedia-replicate-0 mymedia-replicate-1 end-volume volume mymedia-write-behind type performance/write-behind subvolumes mymedia-dht end-volume volume mymedia-read-ahead type performance/read-ahead subvolumes mymedia-write-behind end-volume volume mymedia-readdir-ahead type performance/readdir-ahead subvolumes mymedia-read-ahead end-volume volume mymedia-io-cache type performance/io-cache subvolumes mymedia-readdir-ahead end-volume volume mymedia-quick-read type performance/quick-read subvolumes mymedia-io-cache end-volume volume mymedia-open-behind type performance/open-behind subvolumes mymedia-quick-read end-volume volume mymedia-md-cache type performance/md-cache subvolumes mymedia-open-behind end-volume volume mymedia type debug/io-stats option log-level INFO option latency-measurement off option count-fop-hits off subvolumes mymedia-md-cache end-volume volume meta-autoload type meta subvolumes mymedia end-volume
fstabの内容と比較:
/etc/datastore.vol /media glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0