首頁 > 軟體

NFS檔案系統詳解

2020-06-16 17:40:29

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


IT145.com E-mail:sddin#qq.com