NFS文件服務

NFSNetwork File System

    傳統意義上,文件系統在內核中實現;

 

RPC:函數調用(遠程主機上的函數) Remote Procedure Call protocol

         一部分功能由本地程序完成,另一部分功能由遠程主機上的函數完成

         

 wKioL1VYjoDQ7CLZAADsXUCxpXg239.jpg


由於無法確認如 123爲字符還是數字,使用半結構數據,使用半結構數據定義。

半結構數據:

      XML eXtended Mark Language(重量級)

      JSON    (輕量級)           

       現在很多使用RESful的調用方式,藉助於http,跨越互聯網網發送。

NFS: Sun研發

         NFSv1

         NFSv2 ,基於udp

         NFSv3

         NFSv4現在主要使用

         NFSv4.1 4.2

              pNFS: parallel ,並行NFS

 

NFSv4上有一個進程imapd,爲用戶映射爲NFSnobody

 

NFS:基於IP的認證,監聽在  tcp/udp 2049端口

 

nfs的三個服務:nfsd mountd  impad

mountd:當客戶端連接到服務器端時,首先由mountd進程進行認證,是否在允許訪問列表內;

nfsd:不文件負責存儲,用於理解用戶的rpc請求,並轉發給本地內核,存儲在本地;

impad:在NFSv4上有一個進程imapd,爲用戶映射爲NFSnobody,即在服務器端看到的用戶爲NFSnobody,在客戶端爲用戶名。

 

           提供RPC的公共服務叫portmapper,監聽在port111

          rpcinfo   : report RPF information

                  -p 

         rpcinfo -p 192.168.191.5 也可以查看其它主機的rpc相關信息

         

wKiom1VYjTTTHMCXAADv8jtzX_Y804.jpg

 

 

     通常來說nfs-utils 已經安裝,若沒有安裝則需要安裝

           啓動服務 service nfs start

 

        /etc/exports爲主配置文件;更改配置文件後需要重啓nfs服務

        例:/shared/nfs     172.16.249.139(rw) 172.16.0.1(ro)

 

    查看NFS服務器端共享的文件系統:

            showmount -e NFSserver_ip

wKioL1VYjtzQjRn7AABYI_N7m1s706.jpg

 

    掛載NFS文件系統:

            mount -t nfs SERVER:/path/tosharedfs  /path/to/mount_point

   

      nfs服務器端的/shared/nfs掛載至本地客戶端的/mnt目錄下,即可共享服務器端/shared/nfs目錄內的文件;

wKiom1VYjYKQUxrjAABpsCy3psw210.jpg

 

開機自動掛載:nfs  /etc/fstab

SERVER:/PATH/TO/EXPORTED_FS /mount_point  nfs  defaults,_netdev(用於說明是網絡設備) 0 0

 

/etc/exports:

      文件系統      客戶端(選項) 客戶端(選項)

      客戶端: IPFQDNDOMAINNETWORK

exportfs:維護exports文件導出的文件系統表的專用工具:

             export -ar :重新導出所有的文件系統

             export -au  : 關閉導出的所有文件系統

             export  -u FS :關閉指定的導出的文件系統


wKiom1VYlHnD8ArVAADWu1acFgk965.jpg



補充材料:

    常用選項

        有幾個常用的選項可以對 NFS 實現進行定製。這些選項包括:

          secure 這個選項是缺省選項,它使用了 1024 以下的TCP/IP 端口實現 NFS 的連接。指定insecure 可以禁用這個選項。

         rw 這個選項允許 NFS 客戶機進行讀/寫訪問。缺省選項是隻讀的。

         async 這個選項可以改進性能,但是如果沒有完全關閉 NFS 守護進程就重新啓動了 NFS 服務器,這也可能會造成數據丟失。

        no_wdelay 這個選項關閉寫延時。如果設置了 async,那麼 NFS 就會忽略這個選項。

           nohide 如果將一個目錄掛載到另外一個目錄之上,那麼原來的目錄通常就被隱藏起來或看起來像空的一樣。要禁用這種行爲,需啓用 hide 選項。

          no_subtree_check 這個選項關閉子樹檢查,子樹檢查會執行一些不想忽略的安全性檢查。缺省選項是啓用子樹檢查。

         no_auth_nlm 這個選項也可以作爲 insecure_locks 指定,它告訴 NFS 守護進程不要對加鎖請求進行認證。如果關心安全性問題,就要避免使用這個選項。缺省選項是 auth_nlm secure_locks

        mp (mountpoint=path) 通過顯式地聲明這個選項,NFS 要求掛載所導出的目錄。

         fsid=num 這個選項通常都在 NFS 故障恢復的情況中使用。如果希望實現 NFS 的故障恢復,請參考 NFS 文檔。

                         

           用戶映射

        通過 NFS 中的用戶映射,可以將僞或實際用戶和組的標識賦給一個正在對 NFS 捲進行操作的用戶。這個 NFS 用戶具有映射所允許的用戶和組的許可權限。對 NFS 卷使用一個通用的用戶/組可以提供一定的安全性和靈活性,而不會帶來很多管理負荷。

        在使用 NFS 掛載的文件系統上的文件時,用戶的訪問通常都會受到限制,這就是說用戶都是以匿名用戶的身份來對文件進行訪問的,這些用戶缺省情況下對這些文件只有只讀權限。這種行爲對於 root 用戶來說尤其重要。然而,實際上的確存在這種情況:希望用戶以 root 用戶或所定義的其他用戶的身份訪問遠程文件系統上的文件。NFS 允許指定訪問遠程文件的用戶——通過用戶標識號(UID)和組標識號(GID),可以禁用正常的 squash行爲。

                                  

           用戶映射的選項包括:

         root_squash 這個選項不允許 root 用戶訪問掛載上來的 NFS 卷。

         no_root_squash 這個選項允許 root 用戶訪問掛載上來的 NFS 卷。

        all_squash 這個選項對於公共訪問的 NFS 捲來說非常有用,它會限制所有的 UID GID,只使用匿名用戶。缺省設置no_all_squash

         anonuid anongid 這兩個選項將匿名 UID GID 修改成特定用戶和組帳號。


上面就是NFS的簡單應用介紹


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