NFS
Önceki TCP/IP Sonraki
NFS
NFS (Network File System), bir ağ üzerinden disklerin paylaşımını sağlamak üzere geliştirilmiştir. NFS sayesinde bir makinada yeralan belirli bir disk bölümü, başka makinalar tarafından okunabilir veya yazılabilir. Bu işleme özellikle büyük organizasyonlarda, disk alanından tasarruf etmek için başvurulur. Her makinada aynı dosyalar, çalıştırılabilir programlar olması yerine bunlar tek sunucuda toplanır, diğer bilgisayarlar bu alanı ortaklaşa paylaşırlar. Paylaşılan dizin, sanki yerel makinanın bir diziniymiş gibi davranır. Kendi disk alanını paylaştıran makinaya NFS sunucusu, bu diske erişim yapan makinalara da NFS istemcisi adı verilir.
NFS kullanımının pek çok avantajı sayılabilir. Bunlar kısaca:
  • Yerel bir işletmede tüm kullanıcılar tek bilgisayar üzerindeki aynı disk alanını paylaşabilirler. Diğer bilgisayarlar açıldıktan sonra bu diskleri kendi dosya sisteminlerine bindirebilirler. NFS'in NIS ile birlikte kullanımı sayesinde bir kullanıcı herhangi bir makinaya girip diğer kullanıcılarla birlikte aynı dosya yapısı ile çalışabilir.
  • Paylaşım sayesinde büyük disk alanı isteyen programlar tek bir sunucuda toplanabilir ve bu sayede önemli miktarda diskten tasarruf sağlanabilir.
  • Bir makina üzerinde yapılan değişiklik, her makinada yapılmış gibi olur. Böylece aynı yazılımı örneğin 20 bilgisayara yüklemek zorunda kalmazsınız.
Ağ Üzerinde Paylaşım
NFS'in çalışması, yerel bir diskin mount edilmesi kadar kolaydır. Örnek olarak NFS sunucusu olan aspendos makinasında yeralan /home dizinini, yerel makinadaki /users dizinine yerleştirmek için:
# mount -t nfs aspendos:/home /users
kullanılır. mount, karşı makinanın erişim izinleri doğru olduğunu teyit ettiği anda bu işlemi gerçekleştirir. Sunucu ile istemci arasındaki mesaj alış-verişini mountd programı üstlenir.
NFS kullanabilmek için çekirdekte NFS desteği olması şarttır. Çekirdeğin hangi dosya sistemlerini desteklediğini /proc dosya sistemi altındaki filesystems dosyasını okuyarak anlayabilmek mümkündür. Eğer aşağıdaki satırlarda nfs kelimesi geçmiyorsa çekirdeğe NFS desteği verilerek tekrar derlenmesi gerekir.
$ cat /proc/filesystems
        minix
        ext2
        msdos
nodev   proc
nodev   nfs
NFS için mount programının genel kullanımı şu şekildedir:
mount -t nfs <sunucu-adresi:paylasma-dizini> <yerel-dizin> -o <secenekler>
Sistem açılırken /etc/fstab dosyasında yeralan bilgilerle uzak makinanın diski otomatik olarak paylaştırılabilir. Mount programı bazı seçenekleri destekler. Bu seçenekler -o yardımıyla komut satırında verilebildiği gibi /etc/fstab içinde de belirtilebilir. Her iki durumda da birden fazla seçenek kullanılırsa bunlar birbirlerinden virgülle ayrılırlar.
Açılış sırasında news makinasındaki /usr/spool/news dosyasını yerel makinadaki /usr/spool/news dizini altına yerleştiren /etc/fstab satırı
news:/usr/spool/news  /usr/spool/news   nfs   timeo=20
şeklinde yazılır. NFS ile kullanılan timeo seçeneğinin karşısında yeralan sayı (saniyenin onda biri olarak), bağlantının kurulabilmesi için geçecek maksimum zamanı gösterir. Bu zamanın aşılması halinde sunucuyla bağlantı kesilir.
NFS Kurulumu
Yerel makinanın sunucu olabilmesi için nfsd ve mountd programlarının çalıştırılması gerekir. Bu yazılımlar açılış esnasında aşağıda görülen /etc/rc.d/rc.inet2 dosyasından başlatılırlar. telnetd, fingerd ve benzeri süreçlerin aksine bu iki program inetd tarafından yönetilmezler. Dikkat etmeniz gereken bir durum da nfsd ve mountd programlarının rpc.portmap programından sonra çalıştırılması gerektiğidir:
if [ -x /usr/sbin/rpc.mountd ]; then
# (rpc.mountd programi var ve calistirilabilir mi ?)
        /usr/sbin/rpc.mountd; echo -n " mountd"
fi
if [ -x /usr/sbin/rpc.nfsd ]; then
# (rpc.nfsd programi var ve calistirilabilir mi ?)
        /usr/sbin/rpc.nfsd; echo -n " nfsd"
fi
Sunucunun hangi dizinlerini, hangi istemci(ler) tarafından paylaşılabileceği /etc/exports dosyasında belirtilir. Örnek bir exports dosyasının görünümü aşağıdaki gibidir:
/home            davul.cclub.metu.edu.tr, ordek.cclub.metu.edu.tr
/usr/ftp         (ro)
/cdrom           *.edu.tr
Her satır, yerel makinadaki dizin ismi ile başlar, bu dizini mount etmeye izin verilen bilgisayar isimleri ile devam eder. Makina isimlerinde ? veya * joker karakterleri kullanılabilir. Dosyanın üçüncü satırı, sonu .edu.tr ile biten tüm makinaların /cdrom dizinine ulaşabileceğini belirtir.
Aynı dizini paylaşacak birden fazla makina adı, aralarında virül konarak yazılabilir. Parantez içinde yeralan ro kelimesi, dizinlerin salt okunur mount edilmesi gerektiğini belirtir.
Daha geniş bilgi için mount programının man dosyasına göz atmanızı tavsiye ederim.
Önceki Üst Ana Başlık Sonraki
Yönlendirme Başlangıç Uzaktan Bağlantı Kurulması
Bir Linux Kitaplığı Sayfası