[4] GlusterFS + NFS-Ganesha

11 czerwca 2020 Wyłączono przez Adam [zicherka] Nogły

Zainstalujemy 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