nfs安裝和配置

前提

最近項目做負載均衡的時候多個服務之間的數據需要同步,同步的方案有:
1.NFS文件掛載
2.rsync等數據同步工具
3.fastdfs分佈式文件系統
考慮到易用性以及文件不會太多,將每個服務的數據掛載到同一個地方是最簡單的方法了。

NFS簡介

NFS是Network File System的縮寫,即網絡文件系統。客戶端通過掛載的方式將NFS服務器端共享的數據目錄掛載到本地目錄下。

NFS工作流程

1、由程序在NFS客戶端發起存取文件的請求,客戶端本地的RPC(rpcbind)服務會通過網絡向NFS服務端的RPC的111端口發出文件存取功能的請求。
2、NFS服務端的RPC找到對應已註冊的NFS端口,通知客戶端RPC服務。
3、客戶端獲取正確的端口,並與NFS daemon聯機存取數據。
4、存取數據成功後,返回前端訪問程序,完成一次存取操作。

centos7下配置nfs並遠程掛載
首先檢查是否缺少基礎環境

rpm -qa | grep nfs-utils
rpm -qa | grep rpcbind

沒有則通過以下命令安裝

yum -y install nfs-utils rpcbind

開機啓動

systemctl enable rpcbind
systemctl enable nfs-server
#取消開機啓動
systemctl disable rpcbind
systemctl disable nfs-server

查看服務狀態及啓動命令

systemctl status rpcbind
systemctl status nfs

systemctl start rpcbind
systemctl start nfs

創建共享目錄並配置權限

mkdir /data/images
chmod 777 -R /data/images

配置NFS服務

vi /etc/exports

#內容爲
#[共享目錄]   [客戶端地址1(參數1,參數2,...)]        [客戶端地址2(參數1,參數2,...)] ,例如
/data/images 192.168.126.0/24(rw,sync,all_squash)

#設置並保存成功後執行exportfs -r命令刷新

配置詳解

1.共享目錄要用絕對路徑,可被nfsnobody讀寫

2.NFS客戶端地址:
指定IP: 192.168.0.1
指定子網所有主機: 192.168.126.0/24
指定域名的主機: test.com
指定域名所有主機: *.test.com
所有主機: *

3.參數:
ro:目錄只讀
rw:目錄讀寫
sync:將數據同步寫入內存緩衝區與磁盤中,效率低,但可以保證數據的一致性
async:將數據先保存在內存緩衝區中,必要時才寫入磁盤
all_squash:將遠程訪問的所有普通用戶及所屬組都映射爲匿名用戶或用戶組(nfsnobody)
no_all_squash:與all_squash取反(默認設置)
root_squash:將root用戶及所屬組都映射爲匿名用戶或用戶組(默認設置)
no_root_squash:與rootsquash取反
anonuid=xxx:將遠程訪問的所有用戶都映射爲匿名用戶,並指定該用戶爲本地用戶(UID=xxx)
anongid=xxx:將遠程訪問的所有用戶組都映射爲匿名用戶組賬戶

NFS其它常用目錄

/usr/sbin/exportfs NFS服務的管理命令 
/usr/sbin/showmount 客戶端的查看命令 
/var/lib/nfs/etab 記錄NFS分享出來的目錄的完整權限設定值 
/var/lib/nfs/xtab 記錄曾經登錄過的客戶端信息

相關命令

exportfs -r    #修改了/etc/exports後立即生效
nfsstat       #查看NFS的運行狀態
rpcinfo     #查看rpc執行信息,可以用於檢測rpc運行情況的工具,利用rpcinfo -p 可以查看出RPC開啓的端口所提供的程序
showmount -e ip   #顯示此IP地址分享出來的目錄

掛載測試

#當修改了服務配置並生效後,我們就可以掛載相應的目錄到共享目錄,nfs服務再101,我們在102執行以下命令
mount -t nfs 192.169.126.101:/data/images /data/images

df -h   #查看掛載情況,掛載成功則可以新增數據測試數據是否同步

umount /data/images    #卸載掛載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章