RedHatにより開発されている分散ファイルシステムの一種。
ファイルシステムではあるがコアシステムはアプリケーション層(ユーザ空間)で動作する。
ファイルシステムのマウントもFUSE・NFSなど様々な物が用意されている為、
用途・環境に合わせて組み替えて使用する事が出来る。
また、RAID0/1/5相当の処理が簡単に実装できる点や、
大容量ファイルの処理が早い為、10G-NICを積んでHCI環境で利用する場合がある。
今回は下記条件で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 | PortNumber | 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 |
PC/Count | GlusterFS v3.3 | GlusterFS v3.4 |
1PC/1Brick | TCP:24009 | TCP:49152 |
1PC/2Brick | TCP:24009~24010 | TCP:49152~49153 |
1PC/3Brick | TCP:24009~24011 | TCP:49152~49154 |
2PC/1Brick | TCP:24009 | TCP:49152 |
2PC/2Brick | TCP:24009~24010 | TCP:49152~49153 |
2PC/3Brick | TCP:24009~24011 | TCP:49152~49154 |
# iptables -I INPUT -s ${srcIP} -p tcp --dport 111 -j ACCEPT # iptables -I INPUT -s ${srcIP} -p udp --dport 111 -j ACCEPT # iptables -I INPUT -s ${srcIP} -p tcp --dport 2049 -j ACCEPT # iptables -I INPUT -s ${srcIP} -p udp --dport 2049 -j ACCEPT # iptables -I INPUT -s ${srcIP} -p tcp --dport 24007:24008 -j ACCEPT # iptables -I INPUT -s ${srcIP} -p tcp --dport 24009:24017 -j ACCEPT # iptables -I INPUT -s ${srcIP} -p tcp --dport 38465:38467 -j ACCEPT # iptables -I INPUT -s ${srcIP} -p tcp --dport 49152:49160 -j ACCEPT
# gluster peer status # gluster peer probe 10.0.0.2 # gluster peer probe 10.0.0.1 # gluster pool list
・ボリューム作成 # gluster vol create gluster replica 3 10.0.0.1:/brick 10.0.0.2:/brick 10.0.0.3:/brick force --- volume create: gluster: success: please start the volume to access data ・ボリューム開始 # gluster vol start gluster --- volume start: gluster: success ・ステータス確認 # gluster vol status --- Status of volume: gluster
・ノードA # mkdir /gluster # mount -t glusterfs 10.0.0.1:/gluster /gluster # mount -t glusterfs 10.0.0.1:/gluster /gluster -o backup-volfile-servers=10.0.0.2:10.0.0.3 # echo "10.0.0.1:/gluster /gluster glusterfs defaults,_netdev,backup-volfile-servers=10.0.0.2:10.0.0.3 0 0" >> /etc/fstab ・ノードB # mkdir /gluster # mount -t glusterfs 10.0.0.2:/gluster /gluster # mount -t glusterfs 10.0.0.2:/gluster /gluster -o backup-volfile-servers=10.0.0.3:10.0.0.1 # echo "10.0.0.2:/gluster /gluster glusterfs defaults,_netdev,backup-volfile-servers=10.0.0.3:10.0.0.1 0 0" >> /etc/fstab ・ノードC # mkdir /gluster # mount -t glusterfs 10.0.0.3:/gluster /gluster # mount -t glusterfs 10.0.0.3:/gluster /gluster -o backup-volfile-servers=10.0.0.1:10.0.0.2 # echo "10.0.0.3:/gluster /gluster glusterfs defaults,_netdev,backup-volfile-servers=10.0.0.1:10.0.0.2 0 0" >> /etc/fstab
# gluster vol set all cluster.server-quorum-ratio 60% # gluster vol set gluster cluster.quorum-type auto # gluster vol set gluster cluster.server-quorum-type server # gluster vol set gluster network.ping-timeout 3 # gluster vol set gluster nfs.disable on # gluster vol set gluster nfs.disable true # gluster vol set gluster performance.cache-size 256MB # gluster vol set gluster performance.cache-max-file-size 128MB # gluster vol set gluster 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