[4] GlusterFS + NFS-Ganesha
11 czerwca 2020Zainstalujemy teraz NFS-Ganesha i zintergrujemy ją z GlusterFS, aby można było montować Volumeny GlusterFS z użyciem protokołu NFS.
NFS-Ganesha obsługuje protokół NFS w wersjach v3, v4.0, v4.1, pNFS.
Skonfiguruj ustawienia NFS Export w volumenie GlusterFS [vol_distributed01].
[1] Wyłącz usługę NFS w GlusterFS na WSZYSTKICH węzłach. Dodatek NFS w GlusterFS jest powszechnie i oficjalnie niepraktykowany. Jeśli serwer NFS jest uruchomiony, zatrzymaj i wyłącz go również.
# OK jeśli [nfs.disable: on] (ustawienia domyślne) [root@lsr02vm ~]# gluster volume get vol_distributed01 nfs.disable Option Value ------ ----- nfs.disable on # jeżeli [nfs.disable: off], wyłącz funkcję [root@lsr02vm ~]# gluster volume set vol_distributed01 nfs.disable on volume set: success # jeśli serwer NFS pracuje, wyłącz go [root@lsr02vm ~]# systemctl disable --now nfs-server
[2] Zainstaluj i skonfiguruj NFS-Ganesha na węźle GlusterFS.
[root@lsr01vm ~]# dnf install centos-release-nfs-ganesha30 [root@lsr01vm ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-NFS-Ganesha-3.repo [root@lsr01vm ~]# dnf --enablerepo=centos-nfs-ganesha3 install nfs-ganesha-gluster [root@lsr01vm ~]# mv /etc/ganesha/ganesha.conf /etc/ganesha/ganesha.conf.org [root@lsr01vm ~]# mcedit /etc/ganesha/ganesha.conf # tworzymy nowy NFS_CORE_PARAM { mount_path_pseudo = true; Protocols = 3,4; } EXPORT_DEFAULTS { Access_Type = RW; } EXPORT { Export_Id = 101; Path = "/vol_distributed01"; FSAL { name = GLUSTER; hostname = "192.168.100.1"; volume = "vol_distributed01"; } Squash="No_root-squash"; Pseudo="/vfs_distributed01"; SecType = "sys"; } LOG { Default_Log_Level = WARN; } [root@lsr01vm ~]# systemctl enable --now nfs-ganesha # sprawdzamy poprawność montowania [root@lsr01vm ~]# showmount -e localhost Export list for localhost: /vfs_distributed01 (everyone)
[3] Jeśli jest uruchomiony i działa SELinux – trzeba zmienić jego politykę odnośnie NFS_Gganesha’y
[root@lsr01vm ~]# mcedit nfs-ganesha.te
# tworzymy nowy plik
module nfs-ganesha 1.0;
require {
type var_lib_nfs_t;
type init_t;
class dir create;
}
#=============== init_t =============
allow init_t var_lib_nfs_t: dir create;
[root@lsr01vm ~]# checkmodule -m -M -o nfs-ganesha.mod nfs-ganesha.te
[root@lsr01vm ~]# semodule_package --outfile nfs-ganesha.pp --module nfs-ganesha.mod
[root@lsr01vm ~]# semodule -i nfs-ganesha.pp
[4] Jeżeli Firewalld działa, także dla niego trzeba stworzyć nowe wyjątki
[root@lsr01vm ~]# firewall-cmd --add-service=nfs --permanent success [root@lsr01vm ~]# firewall-cmd --reload success
[5] Sprawdźmy poprawność montowania NFS na kliencie
[root@lclt01vm ~]# dnf install nfs-utils
# wpisz Pseudo ścieżkę ustawioną w [Pseudo=***] w ganesha.conf
[root@lclt01vm ~]# mount -t nfs4 lsr01vm:/vfs_distributed01 /mnt
[root@lclt01vm ~]# df -hT
System plików Typ rozm. użyte dost. %uż. zamont. na
devtmpfs devtmpfs 475M 0 475M 0% /dev
tmpfs tmpfs 491M 0 491M 0% /dev/shm
tmpfs tmpfs 491M 6,6M 485M 2% /run
tmpfs tmpfs 491M 0 491M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 6,2G 1,5G 4,8G 24% /
/dev/sda1 ext4 976M 153M 756M 17% /boot
tmpfs tmpfs 99M 0 99M 0% /run/user/0
lsr01vm:/vfs_distributed01 nfs4 991M 12M 922M 2% /mnt