歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> NFS文件系統詳解

NFS文件系統詳解

日期:2017/2/28 13:51:55   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved