centos7 nfs安裝


server端安裝

  • 下載
yum -y install nfs-utils rpcbind
#centos7自帶了rpcbind,rpc監聽在111端口。
  • 配置
#創建配置文件
vim /etc/exports
[root@node4 ~]# cat /etc/exports
/data/hab_data	172.16.230.0/24(rw,no_root_squash,async,fsid=0)
#/data/hab_data 為共享目錄
#再次修改后,執行exportfs –rv讓配置立即生效
  • 啟動server端
#啟動順序一定是rpcbind->nfs

# systemctl start rpcbind.service
# systemctl enable rpcbind.service
# systemctl start nfs.service
# systemctl enable nfs.service

client安裝

  • 下載
yum install -y nfs-utils rpcbind
# 此處nfs-utils 只安裝不啟動,方便執行查看命令。
  • 啟動
systemctl start rpcbind
systemctl enable rpcbind
  • 掛載
1,直接掛載
#  mount -t nfs 172.16.230.17:/data/hab_data data
也可將掛載配置寫入fstab文件中,與普通磁盤掛載一樣,掛載時同樣可以指定權限,只是類型為nfs。
2,autofs掛載
# yum -y install autofs
# vi /etc/auto.master
#添加一行
/-    /etc/auto.mount
# vi /etc/auto.mount
#添加一行
/data -fstype=nfs,rw  172.16.230.17:/data/hab_data

#啟動服務
# systemctl start autofs 
# systemctl enable autofs

故障

1、nfs只能掛載為nobody

同時修改服務端、客戶端/etc/idmapd.conf中的Domain為一樣的值,隨后重啟rpcidmapd服務,或重啟所有服務

2、客戶端無法卸載nfs目錄

umount.nfs4: /var/nfs: device is busy

執行fuser -km /var/nfs/,然后再執行umount

3,卸載
sudo fuser -m -v -i -k /app/file
sudo umount /app/file
# 直接使用 umount /app/file 可能會報“Device is busy”錯誤。

權限說明

  • 1、普通用戶

當設置all_squash時:訪客時一律被映射為匿名用戶(nfsnobody)

當設置no_all_squash時:訪客被映射為服務器上相同uid的用戶,因此在客戶端應建立與服務端uid一致的用戶,否則也映射為nfsnobody。root除外,因為root_suqash為默認選項,除非指定了no_root_squash

  • 2、root用戶

當設置root_squash時:訪客以root用戶訪問NFS服務端時,被映射為nfsnobody用戶

當設置no_root_squash時:訪客以root用戶訪問NFS服務端時,被映射為root用戶。以其他用戶訪問時同樣映射為對應uid的用戶,因為no_all_squash是默認選項

選項說明
ro:共享目錄只讀
rw:共享目錄可讀可寫
all_squash:所有訪問用戶都映射為匿名用戶或用戶組
no_all_squash(默認):訪問用戶先與本機用戶匹配,匹配失敗后再映射為匿名用戶或用戶組
root_squash(默認):將來訪的root用戶映射為匿名用戶或用戶組
no_root_squash:來訪的root用戶保持root帳號權限
anonuid= :指定匿名訪問用戶的本地用戶UID,默認為nfsnobody(65534)
anongid= :指定匿名訪問用戶的本地用戶組GID,默認為nfsnobody(65534)
secure(默認):限制客戶端只能從小於1024的tcp/ip端口連接服務器
insecure:允許客戶端從大於1024的tcp/ip端口連接服務器
sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性
async:將數據先保存在內存緩沖區中,必要時才寫入磁盤
wdelay(默認):檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率
no_wdelay:若有寫操作則立即執行,應與sync配合使用
subtree_check(默認) :若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限
no_subtree_check :即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率

以nfsuser(uid=1000)創建共享目錄,參數默認rw

# mkdir /var/nfs
# chown nfsuser. -R /var/nfs  
# vim /etc/exports  
/var/nfs    192.168.1.0/24(rw)
# exportfs -r  #重載exports配置
# exportfs -v  #查看共享參數
/var/nfs      	192.168.1.0/24(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)
  • exportfs參數說明
-a 全部掛載或卸載 /etc/exports中的內容
-r 重新讀取/etc/exports 中的信息 ,並同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸載單一目錄(和-a一起使用為卸載所有/etc/exports文件中的目錄)
-v 輸出詳細的共享參數

轉自:


免責聲明!

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



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