Merhaba,
Bu yazımda sizlere Centos7 ile NFS Server kurulumunu aktarmaya çalışacağım.
Öncelikle NFS nedir ve ne için kullanılır sorularına yanıt vermek isterim.
Network File System, Sun Microsystems tarafından 1984 yılında geliştirilmiş, ağa bağlı sistemlerin ağ üzerindeki NFS hizmeti veren sunuculardaki paylaşımları yerel diskleri gibi kullanmasına olanak veren, RPC temelli dağıtık dosya sistemi yapısıdır.
Gömülü Linux sistemimiz üzerinde geliştirme yaparken, cihazımızı doğrudan üzerindeki depolama biriminden değil de (NAND Flash, eMMC, MMC vb.) ağ üzerindeki (genellikle geliştirme yaptığımız kendi bilgisayarımızdaki) bir NFS dosya paylaşımı üzerinden açmak çok kullanışlı ve zaman kazandırıcı bir uygulamadır.
Öncelikle NFS’i kurabilmemiz için bize Linux OS tabanlı bir server gereklidir. Kurulumu için aşağıdaki adımlar takip edeceğiz.
Öncelikle bir Linux altyapılı bir OS’in kurulum iso dosyasını indirmemiz gerekiyor. Buradaki linkten Centos7 OS indirebilirsiniz.
Centos7 Kurulumu
Kurulumu iso dosyasından başlatıp aşağıdaki kurulum ekranına ulaşalım.
İlk kurulum kısmından Dil ve Klavye ayarlarının İngilizce seçilip devam edilmesi önemli bir detaydır.


Kurulum için seçtiğimiz ayarladan sonra tüm kurulumun olduğu pencere karşımıza çıkacak. Bu ektan açıldığında tüm seçeneklerin aktif olmasını bekleyiniz. Tüm seçenekler aktif olduktan sonra devam edebiliriz.


Bu ekranda DATE & TIME sekmesine tıklayıp Time Zone‘u İstanbul Türkiye olarak seçelim. ( Başka bir ülkede yaşıyorsanız bulunduğunuz şehrin ve ülkenin konumunu seçmelisiniz.)


Zone ayarlarını seçtikten sonra eğer sizin ayrıca kullandığınız NTP serverlarınız var ise ekranın sağ üst kısmında bulunan Network Time kısmında bulunan Settings butonuna basalım. Karşımıza çıkan Default gelen NTP adreslerinin tik’lerini kaldırıp kendi NTP adreslerimizi ekleyebiliriz. Ekledikten sonra Network Time’ı OFF’dan ON’a çekelim.
Tekrardan ana kurulum ekrana gelip Keyboard sekmesine geçiş yapalım. Ben + butonuna basarak İngilizce klavyeye ek olarak Türkçe klavye ekliyor ve var olan İngilizce klavyeyi 2. klavye olarak ayarlıyorum. Bu kısımda sizler isteğinize göre ayarlayabilirsiniz. Done yapıp ana menüye dönelim.


Ana menüye geldiğimizde SOFTWARE SELECTION sekmesine geçiş yapalım. Burada Centos7’yi hangi amaç doğrultusunda kuracağımızı seçmemiz gerekiyor. Biz burada NFS Server olarak kurmak istediğimizden seçenekleri aşağıdaki gibi seçelim.
Infrastructure Server > File and Storage Server (CIFS, SMB, NFS, iSCSI, iSER, and iSNS network storage
server)


İlk kurulumda bu seçeneklerle ilerleme sebebimiz OS kuruluma başlayınca direk olarak NFS dosyalarını indirecektir. Direk kurulum ilerlememiz durumunda os kurulumu sonrası yum install nfs-utils
komutu ile kuruluma başlayabiliriz. Done seçeneğine basıp ana menüye geri dönelim.
Ana menüden INSTALLATION DESTINATION seçeneğinden disk yapılandırmasını ayarlayacağız.
INSTALLATION DESTINATION menüsüne giriş yaptığımızda aşağıdaki ekran görüntülerindeki seçenekleri seçip ilerleyelim.


Manual Partitioning


Aşağıdaki görselde dikkat etmemiz gereken disk bölümlerini kapasiteleri olacak. Burada home dizinin kapasitesi en yüksek olarak karşımıza gelecek. Buradaki bölümlerin boyutlarını aşağıdaki gibi yapalım.
Not: Ben 500Gb’lik bir örnek üzerinden gidiyorum. Sizler ise kapasiteniz üstünden ilerlemelisiniz. Kapasitenin büyük kısmını Root dizinine doğru aktarmalısınız.
Tüm disk ayarlarını tamamladıktan sonra Done‘a basarak ana menüye dönelim.


Ana menü üzerinden NETWORK & HOST NAME sekmesine geçiş yapalım. Bu sekmeden NFS serverımızın host name bilgilerini ve ip bilgilerinin girişini yapacağız.


Burada dikkat etmemiz gereken noktalar mevcut. Host Name bölümünden serverımızın ismini girip Apply butonuna basıp kayıt edelim. Bu ekrana ilk giriş yaptığımızda network kartımız OFF durumda olacaktır. Bunu aktif etmeden önce Configure deyip ip bilgilerimizi girelim. NFS serverımızın sabit bir ipsi olması için ip bilgilerini statik olarak ayarlayalım. İp bilgilerimizi girdikten sonra bu ekrana geri gelip Network kartımızı ON statüsüne çekelim ve Done ile ana menüye dönelim.
Son adım olan CONFIGURATION ekranına gelip Root hesabımıza bir password veriyoruz ve kurulumun tamamlanmasını bekliyoruz.


Kurulum tamamlandığında Serverı yeniden başlatıp açılmasını bekliyoruz.
NFS Kurulumu
Serverımız açıldığında kurulum sırasında atadığımız ip üstünden server’a SSH ile bağlantı sağlayalım.
SSH ile bağlantı sağladığımızda ilk dizini görmek için ls
komutunu çalıştırıyoruz. Çalıştırdığımızda root dizini yerine home dizininde olduğumuzu göreceğiz. Bizim root dizinine geçiş yapmamız gerekiyor bu sebeple cd ..
komutu ile root dizine inelim ve dosyaları görmek için ls
komutunu çalıştıralım.


Root dizini altına artık NFS alanımızı oluşturabiliriz. Bunun için root dizini içinde bir adet klasör oluşturmamız gerekiyor. Aşağıdaki komutu kullanarak klasörü oluşturabiliriz.
mkdir /nfs_share
Klasörü oluşturduktan sonra ls
komutu ile klasörü görüntüleyebiliriz.


Oluşturduğumuz nfs_share klasörüne full yetki tanımlamasını yapalım. Bunu yapmazsak bir ortama bağladığımızda klasöre yazma ve okuma yapamayız. Aşağıdaki komutları kullanarak yetki tanımlamalarını yapalım.
chmod -R 755 /nfs_share
chown nfsnobody:nfsnobody /nfs_share
İzin tanımlamalarını yaptığımıza göre NFS servislerini aktif edebiliriz. Aşağıdaki komutları kullanarak servisleri aktif edelim.
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap


Servisleri aktif ettikten sonra NFS server a bağlanacak ip bloklarını config dosyasına ekleyelim. Bunu aktif etmemiz durumunda NFS klasörümüze erişim sağlanmayacaktır. Aşağıdaki komut ile config dosyasının içine girelim.
vim /etc/exports


Config dosyasının içine giriş yaptıktan sonra Insert aktif edip ip blokuna ve ya belirli bir ipye Read/Write yetkilerini veriyoruz.


İlgili NFS izin komutlarının açıklamalarına buradan ulaşabilirsiniz.
Aşağıdaki komut ile birlikte nfs servisini restart edelim.
systemctI restart nfs-server


Nfs servisini restart ettikten sonra local firewall üstünden nfs servisini aşağıdaki komut ile birlikte izin verelim.
firewall-cmd --permanent --zone=public --add-service-nfs
firewall -cmd --permanent --zone=public --add-service-mountd
firewall-cmd --permanent --zone-public--add-service-rpc-bind
firewall-cmd --reload


Firewall izinlerini de verdikten sonra nfs servisinin durumunu kontrol edelim.
systemctl status nfs


Servis kontrolü sonrası Centos7 ile NFS server kurulumunu tamamladık.
Bir sonraki yazımızda görüşmek üzere. Faydalı olması dileğiyle.