網絡文件共享NFS

一、定義

  NFS:network file system,網絡文件系統,一般在內核中運行

  NFS在文件傳送依賴於RPC協議,RPC(remote procedure call)遠程過程調用是使客戶端執行

   其它系統中程序的一種機制。NFS本身沒有提供傳輸協議和功能,但NFS使用了一些傳輸協議,而這些協議要用RPC功能。

 二、安裝

   NFS的安裝:

   nfs-utils:包括基本的NFS命令與監控程序

   rpcbind:支持安全NFS RPC服務的連接

   NFS系統守護進程:

   nfsd:管理客戶端能否登錄服務器

   mountd:管理NFS的文件系統

   rpcbind:進行端口映射工作。當客戶端嘗試連接並使用RPC提供的服務(NFS)時,rpcbind會將管理的服務端口提供給客戶端,從而客戶端可以通過端口向服務器請求服務

   NFS常用目錄:

   /etc/exports  NFS服務的主要配置文件

   /usr/sbin/exportfs   NFS服務的管理命令

   /usr/sbin/showmount  客戶端的查看命令

   /var/lib/nfs/etab   記錄曾經登錄過的客戶端信息

   /etc/exports不一定存在,需要手動創建。

 三、內容格式:

   <輸出目錄>[客戶端1 選項 (訪問權限,用戶映射,其它)][客戶端2 選項 (訪問權限,用戶映射,其它]

   1、輸出目錄:共享使用的目錄

   2、 客戶端:可以訪問共享目錄的計算機

       常用的指定方式

       指定IP:192.168.0.100

       指定IP段:192.168.0.0/24

       所有主機:*

       3、選項:

       訪問權限

       只讀:ro

       讀寫:rw

  4、用戶映射選項

      all_squash:將遠程訪問的所有普通用戶及所屬組都映射爲匿名用戶或用戶組(nfsnobody);

      no_all_squash:與all_squash取反(默認設置);

      root_squash:將root用戶及所屬組都映射爲匿名用戶或用戶組(默認設置);

      no_root_squash:與rootsquash取反;

      anonuid=xxx:將遠程訪問的所有用戶都映射爲匿名用戶,並指定該用戶爲本地用戶(UID=xxx);

      anongid=xxx:將遠程訪問的所有用戶組都映射爲匿名用戶組賬戶,並指定該匿名用戶組賬戶爲本地用戶組賬戶(GID=xxx);

  5、其它選項

      secure:限制客戶端只能從小於1024的tcp/ip端口連接nfs服務器(默認設置);

      insecure:允許客戶端從大於1024的tcp/ip端口連接服務器;

      sync:將數據同步寫入內存緩衝區與磁盤中,效率低,但可以保證數據的一致性;

      async:將數據先保存在內存緩衝區中,必要時才寫入磁盤;

      wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);

      no_wdelay:若有寫操作則立即執行,應與sync配合使用;

      subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置);

      no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;

四、NFS服務器的啓動與停止

   1、啓動NFS服務器

    #service rpcbind start
    #service nfs start

  2、查詢NFS服務器狀態

   

#service rpcbind status
    #service nfs status

  3、停止NFS服務器狀態

    #service rpcbind stop
    #service nfs stop

五、實例:

    #vim /etc/exports
    /home/test 172.16.0.0/16(rw)
    #service rpcbind start
    #service nfs start
    #exportfs
    #chmod 777 /home/test
    #showmount -e #查看自己共享的服務

  客戶端掛載NFS服務器中的共享目錄

    #mount NFS服務器IP:共享目錄 本地掛載點目錄
    #mount 172.16.21.68:/home/test /tmp/test

    客戶端以root用戶創建文件時,屬主和屬組都是nobody

    #cat /var/lib/nfs/etab  查看完整共享文件權限

    root_squash是把root映射成nobody

    exportfs

       -a 全部掛載或卸載/etc/exports中的內容

       -r:重新讀取/etc/exports中的信息,並同步更新/etc/exports、/var/lib/nfs/xtab

       -u:卸載單一目錄

       -v:使用export的時候,將詳細信息輸出到屏幕上


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章