RHEL Dağıtımlarına NFS Sunucusu ve İstemcisi Nasıl Kurulur


Linux'ta, depolamayı ve dosyaları ağ üzerinden paylaşmak için kullanılan birkaç dosya paylaşım protokolü vardır. En yaygın kullanılanları Samba ve NFS'dir.

Samba, istemci-sunucu mimarisinde çalışan popüler bir açık kaynaklı uygulama paketidir. Linux, Windows ve macOS işletim sistemlerinde kesintisiz dosya paylaşımına olanak tanıyan platformlar arası uyumluluk sunar. Linux sisteminde barındırılan bir dosya paylaşımına çeşitli platformlardan erişilebilir, böylece işbirliği teşvik edilir.

Yaygın olarak kullanılan bir diğer dosya paylaşım protokolü ise Ağ Dosya Paylaşımı'nın kısaltması olan NFS'dir. Tıpkı Samba gibi, istemci-sunucu modeli üzerinde çalışır ve kullanıcının bir ağ üzerinden birden fazla uzak istemci kullanıcısıyla dizinleri ve dosyaları paylaşmasına olanak tanır.

Bu kılavuzda NFS sunucusunun ve istemcisinin Fedora, CentOS Stream, Rocky Linux ve AlmaLinux gibi RHEL tabanlı dağıtımlara nasıl kurulacağını kontrol edeceğiz.

NFS Hizmetleri

Şu anda NFS'nin 3 sürümü bulunmaktadır; en yenisi, internet üzerinden ve güvenlik duvarı üzerinden çalışabilme gibi özellikleri içeren NFSv4'tür. Ayrıca NFSv3 ve en eski protokol olan NFSv2 de bulunmaktadır.

NFS hizmeti, NFS Sunucusu ve istemciden oluşur. NFS sunucusu aşağıdaki anahtar dosyalardan oluşur:

  • nfs-server – Bu, istemci sistemlerinin NFS ile paylaşılan dosyalara erişmesine olanak tanır.
  • rpcbind – RPC programlarını evrensel adreslere dönüştürür.
  • nfs-idmap – Kullanıcı ve grup kimliklerinin adlara, kullanıcı ve grup adlarının kimliklere çevrilmesini gerçekleştirir.
  • portmap – Bu, RPC program numaralarını IP bağlantı noktası numaralarına dönüştüren bir sunucudur.
  • nfslock – NFS sunucusunun çökmesi durumunda nfslock gerekli RPC işlemlerini başlatır.

NFS Yapılandırma Hizmetleri

NFS'ye ilişkin önemli yapılandırma dosyalarından bazıları şunlardır:

  • /etc/exports – Uzak kullanıcılar tarafından dışa aktarılacak ve erişilecek dosya sistemlerini veya dizinleri belirleyen ana yapılandırma dosyası.
  • /etc/fstab – Bu, monte edilmiş bölümlerin girişlerini içeren bir dosyadır. NFS'de dosya, kalıcı olarak bağlanan ve yeniden başlatmaya devam edebilen NFS paylaşım dizinlerinin veya dosya sistemlerinin girişlerini içerir.
  • /etc/sysconfig/nfs – RPC hizmetlerinin çalıştırılması sırasında ihtiyaç duyulan bağlantı noktalarını tanımlar.

NFS Sunucusu ve İstemci Kurulumu

NFS paylaşımlarını ayarlamak için en az iki Linux/Unix makinesine ihtiyacımız olacak. Bu eğitimde iki sunucu kullanacağım.

  • NFS Sunucusu10.128.15.213 IP'li RHEL 9
  • NFS İstemcisi10.128.15.214 IP'li RHEL 9

NFS'yi Sunucu ve İstemciye Yükleme

Başlamak için her iki düğümde de (NFS sunucusu ve istemci) oturum açmanız ve NFS hizmetlerini yüklemeniz gerekir. Öncelikle paket bilgilerini gösterildiği gibi güncelleyin. Aşağıdaki dnf komutu ayrıca tüm heyecan verici paketleri en son sürümlerine yükseltecektir.

sudo dnf update 

Güncelleme tamamlandıktan sonra devam edin ve gerekli NFS hizmetlerini yükleyin.

sudo dnf install rpcbind nfs-utils -y

Bir sonraki adım, gösterildiği gibi NFS hizmetlerini etkinleştirmektir.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

NFS hizmetlerini de başlattığınızdan emin olun.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Tüm NFS hizmetlerinin çalıştığını doğrulamak çok önemlidir.

sudo systemctl status nfs-server
sudo systemctl status rpcbind

Ayrıca güvenlik duvarını, gelen NFS hizmetlerine izin verecek şekilde aşağıdaki gibi yapılandırdığınızdan emin olun.

sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload

NFS Paylaşım Dizini Oluşturun

Tüm NFS hizmetleri yüklenip beklendiği gibi çalıştığına göre, ağdaki NFS istemcilerinin erişeceği dosyaları içerecek olan NFS paylaşım dizinini oluşturmanın zamanı geldi.

Bu durumda ana dizinimizde my_nfsshare adında bir NFS paylaşım dizini oluşturacağız.

mkdir -p /home/tecmint/my_nfsshare

Daha sonra dizin izinlerini atayın. Gösterim amacıyla, NFS istemcilerine okuma, yazma ve yürütme izinlerini atayacak genel izinler atayacağız.

sudo chmod 777 -R /home/tecmint/my_nfsshare

NFS Paylaşım Dizinini Dışa Aktarma

Bir sonraki adım NFS paylaşım dizinini dışa aktarmaktır. Bunu başarmak için /etc/exports dosyasına bir giriş yapmamız gerekiyor. Bu nedenle dosyaya tercih ettiğiniz metin düzenleyiciyi kullanarak erişin. Bu durumda Vim editörünü kullanacağız.

sudo vim /etc/exports

Aşağıdaki girişi ekleyin. Sunucu ipini NFS sunucunuzun IP adresiyle değiştirdiğinizden emin olun.

/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)

Son olarak NFS paylaşım dizinini veya dosya sistemini dışa aktarın.

sudo exportfs -rv

NFS paylaşımlarını görüntülemek için aşağıdaki komutu çalıştırın.

showmount -e localhost

NFS İstemcisini Yapılandırma

Bu alıştırmanın geri kalan aşaması, NFS istemcisini paylaşılan dizine erişecek şekilde yapılandırmaktır. Öncelikle, NFS sunucusunda dışa aktarma listesini veya NFS paylaşımlarını görüntüleyebildiğinizi doğrulayın.

showmount -e 10.128.15.213

Bir sonraki adım, NFS paylaşımını sunucudan istemciye bağlamaktır. Bunun için öncelikle bir mount dizini oluşturmamız gerekiyor. Bu durumda nfs_backup adında bir dizin oluşturacağız.

mkdir nfs_backup

Daha sonra NFS paylaşımını kök home dizinde az önce oluşturduğumuz mount dizinine bağlayacağız.

mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare  ~/nfs_backup 

NFS paylaşımını sürdürmek için /etc/fstab dosyasını düzenleyin.

vim /etc/fstab

Daha sonra aşağıdaki girişi ekleyin.

10.128.15.213:/home/tecmint/my_nfsshare    /root/nfs_backup  nfs     defaults 0 0

Yapılandırma dosyasını kaydedin ve çıkın.

NFS Kurulumunu Test Etme

Son adım, NFS kurulumunun beklendiği gibi çalışıp çalışmadığını doğrulamaktır. Sunucuda birkaç dosya oluşturacağız ve bunların NFS istemci tarafında kullanılabilirliğini doğrulayacağız.

Sunucu tarafında dosyaları NFS paylaşım dizininde oluşturacağız.

sudo touch my_nfsshare/file{1..4}.txt

Dosyaların oluşturulduğunu doğrulamak için ls komutunu uygulayacağız:

ls -l my_nfsshare/

İstemci tarafına dönersek, aşağıdaki çıktıda görüldüğü gibi herhangi bir hizmetin yenilenmesi veya herhangi bir hizmetin yeniden başlatılması gerekmeden dosyaların bağlama dizininde mevcut olduğunu doğrulayın.

ls -l nfs_backup/

NFS Bağlantısını Çıkarma

Artık sisteminizde takılı dizine ihtiyacınız yoksa, aşağıdaki umount komutunu kullanarak bunların istemci tarafından bağlantısını kaldırabilirsiniz:

umount ~/nfs_backup

NFS Paylaşım Komutları

NFS için bazı önemli komutlar.

  • showmount -e – Yerel makinenizdeki mevcut paylaşımları gösterir
  • showmount -e ip adresiuzak sunucudaki mevcut paylaşımları listeler
  • showmount -d – Tüm alt dizinleri listeler
  • exportfs -v – Bir sunucudaki paylaşılan dosyaların ve seçeneklerin listesini görüntüler
  • exportfs -a/etc/exports dosyasında listelenen veya verilen addaki tüm paylaşımları dışa aktarır
  • exportfs -u/etc/exports dosyasında listelenen veya verilen addaki tüm paylaşımları dışa aktarmayı geri alır
  • exportfs -r/etc/exports'u değiştirdikten sonra sunucunun listesini yeniler
Çözüm

Bu, NFS sunucusunun ve istemcisinin RedHat tabanlı dağıtımlara nasıl kurulacağına ilişkin kılavuzumuzu tamamlıyor. Sunucuya NFS hizmetlerini yükledik, bir NFS paylaşım dizini oluşturduk ve son olarak paylaşım dizinini istemciye ekledik. Son olarak sunucuda oluşturulan dosyaya client tarafından ulaşarak NFS kurulumunu doğruladık.