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:

Bash:
sudo apt update
sudo apt install nfs-common

RHEL / CentOS / Fedora / AlmaLinux:

Bash
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.

Bash:
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_alan dizinine 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.

Bash:
sudo mkdir -p /mnt/sirket_verileri

Adım 2: Bağlama Komutu Söz dizimi: mount -t nfs <sunucu_ip>:<uzak_dizin> <yerel_dizin>

Bash
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:

Bash
sudo nano /etc/fstab

En alt satıra şu formatta ekleme yapın:

Plaintext
# <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):

Bash
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:

Plaintext:
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.

    Bash
    sudo 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/exports dosyası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_squash devredeyken 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/wsize değerlerini kontrol edin. Ayrıca sync yerine sunucu tarafında async kullanmak 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/yedek klasörüne tıkladığınız (veya cd yaptığı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

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Başlangıç Onarma