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相同,那麼檔案的屬主和屬組就是伺服器端的賬号