天天看點

linux之nfs詳解

nfs(network filesystem):網絡檔案系統

filesystem:kernel space

mke2fs:user space 使用者空間

lpc(local procedure call):本地過程調用

RPC(remote procedure call):遠端過程調用

rpc的用戶端程式stub(存根)

rpm的服務端程式rpc-server

nfs檔案讀寫流程:程序向核心發起讀寫請求,核心發現讀的檔案系統是一個遠端的檔案系統。将請求交給了stub,stub将請求交給rpc-server,服務在本地完成客戶的請求,

将請求結果交給stub,stub交給核心核心交給發起的程序

linux中提供rpcserver的程式:portmap tcp:111 udp:111

rpc-server:是個架構,可以提供給多個程式調用,每一個程式要使用rpcserver需要向它注冊使用

nfs:隻有在兩台主機之間存取資料的時候才叫nfs,在伺服器本地,還是extX檔案系統

nfs:sun開發的一種檔案系統,nfsV1是sun公司内部使用,v2公開了,流行的v3版 最新版本是v4版本

nfs:會啟動三個程序

nfsd:nfs主服務 port:2049不會改變

mountd:接受用戶端的挂載請求的 啟動時會向rpc注冊端口

quotad:限定磁盤配額的

配置檔案格式:

/etc/exports

/filepath clentlist:

IP/NETMASK(mode) IP/NETMASK(mode)

多個用戶端之間使用空白字元分割

每個用戶端後面必須跟上小括号,裡面定義了此客戶通路的特性和權限

shoumount -e nfsipaddr 檢視伺服器共享出去的各檔案夾

用戶端使用nfs指令挂載

mount -t nfs NFS_SERVER:/PATH /LOCALPATH

shoumount -a nfsipaddr:檢視nfs伺服器所有被挂載的檔案系統及用戶端對應清單

shoumount -d nfsipaddr:顯示nfs伺服器 所有導出的檔案系統中被用戶端挂載了檔案系統的清單

exportfs

-a:導出或取消導出所有的檔案系統

-r:重新挂載檔案系統

-u:取消導出檔案系統

-v:顯示過程

導出屬性:

ro:隻讀

rw:讀寫

sync:同步

async:異步

root_squash:如果用戶端賬号的uid和gid為0那麼服務端預設檔案的屬主和屬組變更為nobody

no_root_squash:不轉化root的身份

all_squash:不管是任何身份都轉換成來賓賬号

anonuid、anongid:指定映射來賓賬号的uid和gid

注意:如果用戶端賬号的uid和gid服務端不存在。那麼建立檔案的屬主和屬組在服務端直接顯示uid和gid的id号,如果服務端的賬号正好和

用戶端建立檔案賬号的gid和uid相同,那麼檔案的屬主和屬組就是伺服器端的賬号

繼續閱讀