RedHatにより開発されている分散ファイルシステムの一種。
ファイルシステムではあるがコアプログラムはアプリケーション層(ユーザ空間)で動作する。
ファイルシステムのマウントもFUSE・NFSなど様々な物が用意されている為、
用途・環境に併せてシステム構成を変更出来る。
GlusterFSは、RAID0/1/5相当の処理をアプリケーションとして実装しているが、
大容量ファイルの処理が早い為、10GigabitEthernetを積んでHCI環境で利用する場合が多い。
Parameter | Node-A | Node-B | Node-C |
---|---|---|---|
IP Address | 10.0.0.1 | 10.0.0.2 | 10.0.0.3 |
Brick HDD | /dev/sdb | /dev/sdb | /dev/sdb |
Brick DIR | /brick | /brick | /brick |
Brick FS | xfs | xfs | xfs |
Mount SYS | FUSE | FUSE | FUSE |
Volume DIR | /gluster | /gluster | /gluster |
Volume FS | glusterfs | glusterfs | glusterfs |
# zypper addrepo https://download.opensuse.org/repositories/filesystems/openSUSE_Leap_42.3/filesystems.repo # zypper refresh # zypper install glusterfs fuse
# systemctl unmask glusterd # systemctl enable glusterd # systemctl start glusterd # ps -ef | grep glusterd
# vi /etc/logrotate.d/glusterfs --- /var/log/glusterfs/*.log /var/log/glusterfs/bricks/*.log { weekly compress rotate 4 missingok ifempty create 600 root root sharedscripts postrotate systemctl restart glusterd.service > /dev/null endscript }
# fdisk /dev/sdb # mkfs.xfs -i size=512 /dev/sdb1 # mkdir /brick # mount -p /dev/sdb1 /brick # blkid /dev/sdb1 # echo "UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /brick xfs defaults 1 2" >> /etc/fstab
Protocol | Port | Description |
---|---|---|
TCP | 111 | portmap/rpcbind |
UDP | 111 | portmap/rpcbind |
TCP | 2049 | NFS |
UDP | 2049 | NFS |
TCP | 24007 | GlusterFS Daemon |
TCP | 24008 | GlusterFS Management |
TCP | 24009~Brick | GlusterFS versions earlier than 3.4 |
TCP | 38465~38467 | Required for GlusterFS NFS service |
TCP | 49152~Brick | GlusterFS versions 3.4 and later |
補足事項 |
# gluster peer status # gluster peer probe 10.0.0.2 # gluster peer probe 10.0.0.3 # gluster pool list --- UUID Hostname State XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 10.0.0.2 Connected XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 10.0.0.3 Connected XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX localhost Connected
コマンド |
コマンド |
・スプリットブレイン時、ノードが55%以上参加するクラスタをMasterとして稼働 # gluster vol set all cluster.server-quorum-ratio 55% ・Quorumの算出方法をクラスタ内のノード数に設定 # gluster vol set volgfs cluster.server-quorum-type server ・Quorumのデフォルト値をノード過半数に設定 # gluster vol set volgfs cluster.quorum-type auto ・死活監視の間隔を5秒に設定 # gluster vol set volgfs network.ping-timeout 5 ・GlusterFSのNFSマウント機能を停止 # gluster vol set volgfs nfs.disable true ・GlusterFSのキャッシュメモリを512MBに変更 # gluster vol set volgfs performance.cache-size 512MB ・GlusterFSの最大ファイルキャッシュサイズを64MBに設定 # gluster vol set volgfs performance.cache-max-file-size 64MB ・GlusterFSの最小ファイルキャッシュサイズを1KBに設定 # gluster vol set volgfs performance.cache-min-file-size 1KB
0-management: readv on /var/run/gluster/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.socket failed (Invalid argument)
# gluster volume set all nfs.disable true # systemctl stop glusterd # rm /var/log/glusterfs/etc-glusterfs-glusterd.vol.log # systemctl start glusterd
GlusterFSがBrickに接続する際、宛先ポートはTCP:49152から昇順にアクセスするが、
ローカルポートはTCP:1024から開いている番号の降順に利用する。
その為、GlusterFS環境下でIMAPS(TCP:993)やPOP3S(TCP:995)を構築するとポート番号の衝突が多々発生する。
この場合、GlusterFSの「開いている番号を降順に利用」する仕様を応用し、
GlusterFSが起動する前に、IMAPS/POP3Sのサービスを起動する事で回避出来る。
コマンド 4. ブリック追加・削除
ブリックを追加・削除する際は、ノードをクラスタに追加した後にボリューム操作を実行する。
この時、追加先のボリュームでノード数固定(replica-3など)をしている場合、
先にノード数を変更した後にブリック操作を行う。
コマンド