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 Sunucusu – 10.128.15.213 IP'li RHEL 9
- NFS İstemcisi – 10.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 adresi – uzak 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.