2021-05-12 14:32:11
NFS檔案系統詳解
NFS(Network File System)即網路檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網路中的計算機之間通過TCP/IP網路共用資源。在NFS的應用中,本地NFS的用戶端應用可以透明地讀寫位於遠端NFS伺服器上的檔案,就像存取本地檔案一樣。
nfs工作流程圖:
server:
安裝:
[root@sherry ~]# yum install nfs-utils rpcbind -y
啟動:
[root@sherry ~]# /etc/init.d/rpcbind start
[root@sherry ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ] #磁碟檢查
Starting NFS mountd: [ OK ] #等待用戶端掛載 掛載守護行程,負責用戶端來源認證的進程
Starting NFS daemon: [ OK ]#守護行程 檔案讀寫nfs
Starting RPC idmapd: [ OK ]#id號對映
進程說明:
12345678 [root@sherry ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper #rpc
100005 3 tcp 48973(隨機) mountd
100003 2 tcp 2049 nfs #檔案讀寫
100227 3 tcp 2049 nfs_acl #存取控制列表
100021 1 udp 41315(隨機) nlockmgr #鎖管理器
100011 2 tcp 875 rquotad #磁碟資源配額
組態檔:
幫助:
[root@sherry ~]# man exports
/etc/exports:
檔案系統 用戶端1(檔案系統匯出屬性) 用戶端2(檔案系統匯出屬性)
檔案系統
用戶端:
IP: 172.16.100.8
Hostname: *.magedu.com
Network:
常用檔案系統匯出屬性:
rw
async 預設非同步
sync 同步效能差
root_squash:預設 壓縮root使用者,基於imapd,將root通過網路存取時轉換為nfsnobody使用者
no_root_squash: 不壓縮root使用者;
all_squash: 壓縮所有使用者;
anonuid, anongid: 指定匿名使用者對映為的UID和GID;
[root@sherry nfsshared]# vim /etc/exports
/nfsshared/node1 192.168.1.0/24(rw)
#/nfsshared/node1 192.168.1.0/24(rw,anonuid=304) 304 nginx
#/nfsshared/node1 192.168.1.0/24(rw,all_squash) nfsnobody
重新啟動服務:
[root@sherry nfsshared]# /etc/init.d/nfs restart
Shutting down NFS daemon: [ OK ]
Shutting down NFS mountd: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down RPC idmapd: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
client:
[root@marvin ~]# yum install nfs-utils rpcbind -y
[root@marvin ~]# rpcinfo -p sherry #nfs用戶端執行 需要安裝rpcbind
program vers proto port service (每項都多個)
100000 2 udp 111 portmapper
100011 2 tcp 875 rquotad
100005 3 tcp 33671 mountd
100003 2 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100021 4 tcp 36734 nlockmgr
[root@marvin ~]# showmount -e sherry #nfs用戶端執行 需要安裝nfs-utils
Export list for sherry:
/nfsshared 192.168.1.0/24
用戶端掛載:
[root@marvin ~]# mkdir /mnt/nfs/node1 -pv
mkdir: created directory `/mnt/nfs'
mkdir: created directory `/mnt/nfs/node1'
[root@marvin ~]# mount -t nfs sherry:/nfsshared/node1 /mnt/nfs/node1/
[root@marvin ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv1 5.7G 2.6G 2.9G 47% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 29M 155M 16% /boot
/dev/mapper/vg0-lv3 3.0G 69M 2.8G 3% /mydata
sherry:/nfsshared/node1 2.5G 67M 2.3G 3% /mnt/nfs/node1
模擬nginx程式寫檔案:
伺服器:
[root@sherry nfsshared]# vim /etc/exports /nfsshared/node1
192.168.1.0/24(rw,anonuid=304)
[root@sherry nfsshared]# /etc/init.d/nfs start
[root@sherry nfsshared]# setfacl -m user:nginx:rwx node1/
測試:
#client
[root@marvin node1]# touch a
#server
[root@sherry nfsshared]# cd node1/
[root@sherry node1]# ll
total 0
-rw-r--r-- 1 nginx nfsnobody 0 May 26 23:02 a
組態檔reload:
exportfs -rav
exportfs:
-a: 操作所有檔案系統
-ra: 重新匯出所有檔案系統
-ua: 取消匯入的所有檔案系統
-v: 顯示詳細資訊
over
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-06/131940.htm
相關文章