Linux İstemci Tarafında NFS Yapılandırması
NFS İstemci yapılandırması, sunucudaki kadar kritik bir konudur. Yanlış bir yapılandırma; sistemin açılışta takılmasına (boot hang), ağ koptuğunda uygulamaların donmasına veya performans sorunlarına yol açabilir.
NFS İstemcisi (Client), uzaktaki bir sunucunun paylaştığı dizini, kendi yerel dosya sisteminin bir parçasıymış gibi sisteme dahil eden (mount eden) taraftır.
1. Gerekli Paketlerin Kurulumu
NFS protokolü Linux çekirdeğinde desteklense de, mount komutunun NFS konuşabilmesi için yardımcı araçlara ihtiyacı vardır.
Debian / Ubuntu / Pardus:
sudo apt update
sudo apt install nfs-common
RHEL / CentOS / Fedora / AlmaLinux:
sudo dnf install nfs-utils
2. Keşif: Sunucuda Neler Var?
Bağlantı kurmadan önce, karşıdaki sunucunun neleri paylaştığını görmek iyi bir pratiktir. Bunun için showmount komutunu kullanırız.
showmount -e 192.168.1.100
Çıktı Örneği:
Plaintext:Export list for 192.168.1.100: /var/nfs/yedek 192.168.1.20 /ortak_alan *(Bu çıktı,
/ortak_alandizinine erişebileceğimizi gösterir.)
3. Manuel (Geçici) Bağlama
Test etmek veya tek seferlik veri transferi için manuel mount işlemi yapılır.
Adım 1: Bağlantı Noktası (Mount Point) Oluşturma Linux'ta bir diski bağlayabilmek için boş bir klasöre ihtiyacınız vardır.
sudo mkdir -p /mnt/sirket_verileri
Adım 2: Bağlama Komutu
Söz dizimi: mount -t nfs <sunucu_ip>:<uzak_dizin> <yerel_dizin>
sudo mount -t nfs 192.168.1.100:/ortak_alan /mnt/sirket_verileri
Adım 3: Kontrol
Bağlantının başarılı olup olmadığını df -h komutu ile kontrol edebilirsiniz. Listede sunucu IP'sini görüyorsanız işlem tamamdır.
4. Kalıcı Bağlama: /etc/fstab Yapılandırması
Sistem her yeniden başlatıldığında (reboot) bağlantının otomatik kurulması için /etc/fstab dosyasına kayıt girmemiz gerekir. Sistem yöneticisinin ustalığı burada belli olur çünkü yanlış parametreler sistemi açılmaz hale getirebilir.
Dosyayı açın:
sudo nano /etc/fstab
En alt satıra şu formatta ekleme yapın:
# <Sunucu>:<Dizin> <Yerel_Dizin> <Tip> <Seçenekler> <Dump> <Pass>
192.168.1.100:/ortak_alan /mnt/sirket_verileri nfs defaults,_netdev 0 0
Değişiklikleri test etmek için (reboot etmeden):
sudo mount -a
(Hata vermiyorsa yapılandırma doğrudur.)
5. Hayat Kurtaran fstab Parametreleri
Yukarıdaki örnekte defaults kullandık ancak NFS için özel parametreler kullanmak performansı ve kararlılığı artırır.
A. Ağ Bağlantısı Koruması (_netdev)
NFS bir ağ protokolüdür. Bilgisayar açılırken henüz ağ kartı IP almadan NFS bağlamaya çalışırsa sistem dakikalarca bekler veya açılışta takılır.
_netdev: "Bu bir ağ cihazıdır, ağ gelene kadar bekle" der. Mutlaka kullanılmalıdır.
B. Hata Davranışı (hard vs soft)
Sunucuya ulaşılamadığında (elektrik gitti, kablo koptu) istemcinin ne yapacağını belirler. Bu en kritik ayrımdır.
hard(Varsayılan/Önerilen): Sunucu cevap verene kadar uygulamayı dondurur (sonsuz dener). Veri bütünlüğü için kritiktir. Eğer sunucu kapanırsa, o klasörü kullanan terminal veya program "donar" ve kill edilemez.soft: Sunucu cevap vermezse, belirli bir süre dener ve sonra uygulamaya "I/O Error" (Girdi/Çıktı Hatası) döndürür. Uygulama donmaz ama veri kaybı riski vardır.
C. Performans Ayarları (rsize ve wsize)
NFS üzerinden veri okurken (read) ve yazarken (write) kullanılacak paket boyutunu (byte cinsinden) belirler.
Modern sistemler bunu otomatik ayarlar ancak yavaş ağlarda veya çok eski sunucularda manuel ayar gerekebilir.
Örnek:
rsize=8192,wsize=8192
D. Arka Planda Bağlama (bg)
Eğer sistem açılırken sunucu kapalıysa, mount komutu varsayılan olarak hata verip vazgeçebilir (veya hard ise sistemi dondurabilir).
bg: İlk deneme başarısız olursa, mount işlemini arka plana atar ve sistemin açılmasına izin verir. Arka planda denemeye devam eder.
İdeal Bir /etc/fstab Satırı Örneği
Bir sistem yöneticisi için en güvenli ve performanslı satır genellikle şöyledir:
192.168.1.100:/data /mnt/data nfs defaults,_netdev,bg,noatime 0 0
6. Sık Karşılaşılan Sorunlar ve Çözümleri
"Stale File Handle" Hatası
Bu, NFS dünyasının en meşhur hatasıdır.
Sebep: İstemci dosyayı açık tutarken, sunucu tarafında dosya silinmiş veya sunucu servisi yeniden başlatılmış ancak dosya inode numaraları değişmiş olabilir.
Çözüm: Bağlantıyı zorla koparıp tekrar bağlamak gerekir.
Bashsudo umount -f -l /mnt/sirket_verileri sudo mount -a(Buradaki
-l(lazy) parametresi çok işe yarar; meşgul olsa bile bağlantıyı hemen koparır, işlemi arka planda temizler.)
"Access Denied" (Erişim Reddedildi)
Kontrol 1: Sunucudaki
/etc/exportsdosyasında istemcinin IP'si doğru yazılmış mı?Kontrol 2: İstemci NAT arkasında mı? Sunucu istemciyi farklı bir IP olarak görüyor olabilir.
Kontrol 3:
root_squashdevredeyken root olarak mı yazmaya çalışıyorsunuz?
Performans Sorunları
Eğer dosya kopyalama çok yavaşsa, ağ bağlantınızın MTU ayarlarını veya
rsize/wsizedeğerlerini kontrol edin. Ayrıcasyncyerine sunucu tarafındaasynckullanmak performansı ciddi oranda artırır (veri güvenliği riskiyle birlikte).
7. Profesyonel İpucu: autofs (Otomatik Bağlama)
Eğer yüzlerce sunucunuz varsa veya dizüstü bilgisayar kullanıyorsanız (sürekli ağ değiştiriyorsunuz), /etc/fstab hantal kalabilir.
Bunun yerine AutoFS servisi kullanılır.
Dizin sürekli bağlı kalmaz.
Siz
/mnt/yedekklasörüne tıkladığınız (veyacdyaptığınız) anda sistem otomatik olarak mount eder.Belirli bir süre (örneğin 5 dakika) kullanılmazsa otomatik olarak unmount eder.
Bu sayede ağ kopsa bile sisteminiz donmaz.
Yorumlar