一、NFS簡單概述
NFS 是Network File System 的縮寫及網(wǎng)絡文件系統(tǒng)瞭恰。NFS 主要功能是通過局域網(wǎng)絡讓不同的主機系統(tǒng)之間可以共
享文件或目錄。
NFS 系統(tǒng)和Windows 網(wǎng)絡共享适篙、網(wǎng)絡驅動器類似, 只不過windows 用于局域網(wǎng), NFS 用于企業(yè)集群架構中, 如果是
大型網(wǎng)站, 會用到更復雜的分布式文件系統(tǒng)FastDFS,glusterfs,HDFS
1.1 為什么要使用數(shù)據(jù)存儲共享服務昵观?
實現(xiàn)多臺服務器之間數(shù)據(jù)共享
實現(xiàn)多臺服務器之間數(shù)據(jù)一致
1.2 NFS的應用場景
軟件
NFS服務
分布式存儲:GlusterFS、Fastdfs(擴展)
1.3 NFS服務的執(zhí)行過程或工作流程圖
1.4 NFS的工作原理圖
注:RPC服務的端口為111愉老,rsync服務的端口873
二场绿、NFS服務操作
2.1 環(huán)境準備
1>準備測試機
NFS客戶端:web01(外網(wǎng):10.0.0.7;內(nèi)網(wǎng):172.16.1.7)
NFS服務端:nfs01(外網(wǎng):10.0.0.31嫉入;內(nèi)網(wǎng):172.16.1.31)
2>涉及軟件:
RPC服務:rpcbind(CentOS6 7)焰盗;portmap(CentOS5)
NFS服務:nfs-utils
3>軟件安裝
NFS服務端:nfs-utils(NFS服務)、rpcbind(RPC服務)
NFS客戶端:nfs-utils(NFS服務)
4>啟動服務
NFS服務端:
啟動rpcbind:systemctl restart rpcbind.service
查看rpc服務的注冊信息:rpcinfo -p
啟動nfs:systemctl restart nfs-server.service
用戶映射基礎:
rpc.ibmap(不管哪個用戶進入nfs,都屬于nfsnobody咒林,在安裝nfs時默認創(chuàng)建了這個用戶)
2.2 NFS服務配置
nfs服務端
1>編寫NFS配置文件/etc/exports
格式:NFS共享目錄 NFS共享客戶端地址(參數(shù)1熬拒,參數(shù)2,……)
如:/data 172.16.1.0/24(rw)
注:系統(tǒng)中一定要有這個共享目錄垫竞,沒有創(chuàng)建
2>啟動nfs服務
systemctl reload nfs
reload:平滑重啟/優(yōu)雅重啟---不中斷當前正在處理的請求澎粟,只影響新的請求。 注意:盡量不要使用restart欢瞪,使用之后會卡住90秒
3>檢查服務端可以掛載的信息:showmount -e 172.16.1.31
4>本地實測:mount -t nfs 172.16.1.31:/upload/ /mnt
mount參數(shù)補充(-t:指定掛載的文件系統(tǒng)類型)
nfs客戶端
1>首先在客戶端創(chuàng)建掛載目錄活烙,如:創(chuàng)建/video
2>將服務端的共享目錄臨時掛載到/video下
mount -t nfs 172.16.1.31:/upload/ /video
df參數(shù)補充(-T:顯示文件系統(tǒng)類型,如:df -hT)
[root@web01 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 18G 1.8G 17G 10% /
devtmpfs devtmpfs 980M 0 980M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 9.6M 981M 1% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 105M 93M 54% /boot
172.16.1.31:/app/w nfs4 18G 1.8G 17G 10% /data/w
tmpfs tmpfs 199M 0 199M 0% /run/user/0
[root@web01 ~]#
三引有、NFS權限控制
配置文件中權限/etc/exports
Linux服務端共享目錄權限755 nfsnobody
三瓣颅、NFS排錯流程
確保道路通暢
如:ping 172.16.1.31
rpc服務狀態(tài)
如:rpc -p 172.16.1.31
nfs服務共享信息
如:showmount -e 172.16.1.31
四、NFS配置文件詳情
權限 | 詳細解釋 |
---|---|
rw* | 讀寫權限 |
ro | 只讀權限 |
root_squash | 當NFS 客戶端以root 管理員訪問時譬正,映射為NFS 服務器的匿名用戶(不常用) |
no_root_squash | 當NFS 客戶端以root 管理員訪問時宫补,映射為NFS 服務器的root 管理員(不常用) |
all_squash | 無論NFS 客戶端使用什么賬戶訪問,均映射為NFS 服務器的匿名用戶(常用) |
no_all_squash | 無論NFS 客戶端使用什么賬戶訪問曾我,都不進行壓縮 |
sync* | 同時將數(shù)據(jù)寫入到內(nèi)存與硬盤中粉怕,保證不丟失數(shù)據(jù) |
async | 優(yōu)先將數(shù)據(jù)保存到內(nèi)存,然后再寫入硬盤抒巢;這樣效率更高贫贝,但可能會丟失數(shù)據(jù) |
anonuid* | 配置all_squash 使用,指定NFS 的用戶UID,必須存在系統(tǒng) |
anongid* | 配置all_squash 使用,指定NFS 的用戶UID,必須存在系統(tǒng) |
作業(yè)練習
實例一:
共享/data目錄給10.0.0.0/24整個網(wǎng)段的主機讀寫(該例將實現(xiàn)把nfs server上的/data目錄共享給10.0.0.0/24整個網(wǎng)段的主機,且可讀寫)
服務端:
[root@nfs01 ~]# cat /etc/exports
/data 10.0.0.0/24(rw)
[root@nfs01 ~]#
[root@nfs01 ~]# chown nfsnobody.nfsnobody /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 nfsnobody nfsnobody 6 May 22 19:30 /data
[root@nfs01 ~]# tree /data
/data
└── oldboy.txt
0 directories, 1 file
[root@nfs01 ~]#
客戶端:
[root@web01 ~]# mkdir /data
[root@web01 ~]# mount -t nfs 10.0.0.31:/data /data
[root@web01 ~]# touch /data/oldboy.txt
[root@web01 ~]#
實例二:
nfs服務器172.16.1.31
共享下面兩個目錄
/app/w 要求的權限可讀寫,同步數(shù)據(jù)稚晚,所有用戶都壓縮為匿名用戶
/app/r 要求的權限為只讀崇堵,同步數(shù)據(jù),所有用戶都壓縮為匿名用戶
[root@nfs01 ~]# vim /etc/exports
/data 10.0.0.0/24(rw)
/app/w 172.16.1.0/24(rw,sync,all_squash)
/app/r 172.16.1.0/24(ro,sync,all_squash)
[root@nfs01 ~]# mkdir -p /app/w /app/r
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /app/r /app/w
[root@nfs01 ~]# ls -ld /app/r /app/w
drwxr-xr-x 2 nfsnobody nfsnobody 21 May 22 20:33 /app/r
drwxr-xr-x 2 nfsnobody nfsnobody 6 May 22 19:53 /app/w
2 directories, 0 files
[root@nfs01 ~]#
客戶端上面的要求:
backup服務器 把 nfs服務器的/data/r 掛載到 /data/r
[root@backup ~]# mount -t nfs 172.16.1.31:/app/r /data/r
[root@backup ~]# file /data/r
/data/r: directory
[root@backup ~]# touch /data/r/aaa.txt
touch: cannot touch ‘/data/r/aaa.txt’: Read-only file system
[root@backup ~]#
web01 服務器 把 nfs服務器的/data/w 掛載到 /data/w
[root@web01 ~]# mount -t nfs 172.16.1.31:/app/w /data/w
[root@web01 ~]# touch /data/w/abc.txt
[root@web01 ~]# ls -ld /data/w/abc.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 May 22 20:43 /data/w/abc.txt
如何讓nfs永久掛載???
1>寫入到/etc/rc.local開機自啟動文件中
2>追加到/etc/fstab開機自動掛載文件中
[root@backup ~]# tail -1 /etc/fstab
172.16.1.31:/app/r /data/r nfs defaults 0 0
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.8G 17G 10% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
172.16.1.31:/app/r 18G 1.8G 17G 10% /data/r
tmpfs 199M 0 199M 0% /run/user/0
[root@backup ~]#
【面試題】Rsync(全網(wǎng)備份)和NFS(文件系統(tǒng))
http://www.reibang.com/p/216c31a57844
未寫完……