Linux搭建NFS服務


一、NFS服務簡單介紹

NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件一樣。

二、NFS權限參數說明

權限

說明

rw

表示可讀寫權限

ro

表示只讀權限

sync

請求或寫入數據時,數據同步寫入到NFSServer的硬盤才返回(優點,數據安全不會丟,缺點,性能比不啟用該參數要差)

async

寫入時數據會先寫到內存緩沖區,只到硬盤有空檔才會再寫入磁盤,這樣可以提高寫入效率!;風險為若服務器宕機或不正常關機,會損失緩沖區為寫入磁盤的數據(解決辦法:服務器主板加電池或加UPS不間斷電源)!

no_root_squash

訪問NFS Server共享的用戶如果是root的話,它對該共享目錄具有root權限。這個配置原本是為無盤客戶端准備的,用戶避免應用

root_squash

如果訪問NFS Server共享目錄的用戶是root,則它的權限將被壓縮或匿名用戶,同時它的UID和GID通常會變成nfsnobody帳號身份

all_squash

不管訪問NFS Server共享目錄的用戶身份如何,它的權限都將被壓縮成匿名用戶,同時它的UID和GID通常會變成nfsnobody帳號身份。在早期多個NFS客戶端同時寫入NFS Server數據時,這個參數很有用

*在生產中配置NFS的重要技巧

1)、確保所有客戶端服務器對NFS共享目錄都具備相同的用戶訪問權限

       a、all_squash把所有客戶端都壓縮成固定的匿名用戶(UID相同)

       b、就是aninuid,anongid指定的UID和GID的用戶

2)、所有的客戶端和服務端都需要有一個相同的UID和GID用戶,即nfsnobody(UID必須相同)

anonuid

參數以anon*開頭即指anonymous匿名用戶,這個用戶的UID設置值通常為nfsnobody的UID值,當然也可以自行設置這個UID值。但是,UID必須存在於/etc/passwd中。在多NFS Clients時,如多台Web Server共享一個NFS目錄,通過這個參數可以使得不同的NFS Clients寫入的數據對所有NFS Clients保持同樣的用戶權限,即為配置的匿名UID對應用戶權限,這個參數很有用,一般默認即可

anongid

同anonuid,區別就是把uid(用戶id)換成gid(組id)

noatime

在文件系統上不更新inode訪問時間

nosuid

不允許設置用戶標識或設置組標識為才能生效

intr

當服務器宕機或者無法到達時,允許中斷NFS請求

noexec

當服務器宕機或者無法到達時,允許中斷NFS請求

rsize=8192和wsize=8192

通過設定大的同時傳輸的數據塊大小(bytes),以提高NFS讀寫的速度

nodiratime

不允許更新文件系統上的目錄 inode 訪問記錄

三、搭建NFS服務

1、NFS服務搭建環境說明

系統環境:CentOS7.5  64位

NFS服務端:

•主機名:nfs-master

•IP地址:172.16.2.31

NFS客戶端

•主機名:nfs-client

•IP地址:172.16.2..32

2、NFS服務端搭建步驟

第一步:安裝並檢查NFS和RPC服務

yum install nfs-utils rpcbind -y
rpm -qa nfs-utils rpcbind

第二步:啟動RPC服務和NFS服務 (必須先啟動RPC服務,然后再啟動NFS服務)

systemctl start rpcbind
systemctl start nfs
ps -ef|grep rpc
ps -ef|grep nfs
lsof -i:111
rpcinfo -p localhost

第三步:設置開機自啟動並檢查

systemctl enable rpcbind
systemctl enable nfs
systemctl list-unit-files --type=service|grep "enabled"|egrep "rpcbind|nfs"

第四步:創建共享目錄

mkdir /data 
chown -R nfsnobody.nfsnobody /data
ls -ld /data

第五步:配置共享/data目錄

cat>>/etc/exports<<EOF
#NFS server share directories
/data 172.16.2.0/24(rw,sync)
EOF
cat /etc/exports

第六步:平滑重啟NFS服務並檢查服務

systemctl reload nfs
cat /var/lib/nfs/etab

第七步:本地查看掛載目錄

showmount -e 172.16.2.31

3、NFS客戶端搭建步驟

第一步:安裝NFS和RPC服務並檢查

yum install nfs-utils rpcbind -y
rpm -qa nfs-utils rpcbind

第二步:啟動RPC服務(不需要啟動NFS服務,原因是不安裝NFS服務的話沒有showmount這個命令)

systemctl start rpcbind 
ps -ef|grep rpc
lsof -i:111

第三步:設置開機自啟動並檢查

systemctl enable rpcbind
systemctl list-unit-files --type=service|grep "enabled"|grep "rpcbind"

第四步:檢查服務端的NFS掛載目錄是否OK

showmount -e 172.16.2.31

第五步:掛載設置開機自動掛載

mount -t nfs 172.16.2.31:/data /mnt
echo "mount -t nfs 172.16.2.31:/data /mnt">>/etc/rc.local

#提示:也可以放入/etc/fstab,如果要放入/etc/fstab,需啟用netfs服務。這是因為fstab會優先於網絡被Linux系統加載。網絡沒啟動時執行fstab會導致連不上NFS服務器端,無法實現開機自動掛載。

第六步:查看是否掛載成功

[root@nfs-client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 57G 1.6G 53G 3% /
devtmpfs 225M 0 225M 0% /dev
tmpfs 236M 0 236M 0% /dev/shm
tmpfs 236M 5.6M 230M 3% /run
tmpfs 236M 0 236M 0% /sys/fs/cgroup
/dev/sda1 190M 93M 84M 53% /boot
tmpfs 48M 0 48M 0% /run/user/0
172.16.2.31:/data 57G 1.6G 53G 3% /mnt

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM