NFS服務學習記錄與部署

NFS服務配置

NFS:Network File System網絡文件系統,主流異構平臺共享文件之一centos

NFS應用場景是:A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致服務器

 

nfs存儲工做原理

 

 

NFS工做原理
1.用戶進程訪問 NFS 客戶端,使用不一樣的函數對數據進行處理
2.NFS 客戶端經過 TCP/IP 的方式傳遞給 NFS 服務端
3.NFS 服務端接收到請求後,會先調用 portmap 進程進行端口映射。
4.nfsd 進程用於判斷 NFS 客戶端是否擁有權限鏈接 NFS 服務端。
5.Rpc.mount 進程判斷客戶端是否有對應的權限進行驗證。
6.idmap 進程實現用戶映射和壓縮
7.最後 NFS 服務端會將對應請求的函數轉換爲本地能識別的命令,傳遞至內核,由內核驅動硬件。
注意: rpc 是一個遠程過程調用,那麼使用 nfs 必須有 rpc 服務網絡

 

1.3 前提條件

1.nfs依賴於RPC服務來傳遞消息
2.NFS服務啓動的端口號是隨機的,啓動以後會向本地的RCP註冊
3.先啓動RPC服務,再啓動NFS服務
4.NFSRPC之間的通信是他們本身內部完成的,對於用戶來講無感知
5.NFS客戶端和服務端不會直接溝通,必須經過RPC服務傳遞消息
6.防火牆要開放RPC服務的端口app

NFS服務端部署async

yum install -y nfs-utils /安裝nfs,這個包裏面包括了rpcbind,若是最後沒有顯示這個包中包括了rpcbind的話就自行安裝rpcbind。函數

vi /etc/exports //編輯配置文件,在這個配置文件裏面寫入:ui

!!!不要回車spa

/home/nfstestdir 192.168.29.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)blog

 

rw 讀寫權限
ro 只讀權限
root_squash  NFS 客戶端以 root 管理員訪問時,映射爲 NFS 服務器的匿名用戶(不經常使用)
no_root_squash  NFS 客戶端以 root 管理員訪問時,映射爲 NFS 服務器的 root 管理員(不經常使用)
all_squash 不管 NFS 客戶端使用什麼帳戶訪問,均映射爲 NFS 服務器的匿名用戶(經常使用)進程

all_squash 客戶端上全部用戶在使用NFS共享目錄時都被限定爲 一個普通用戶

anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid
no_all_squash 不管 NFS 客戶端使用什麼帳戶訪問,都不進行壓縮
sync 同時將數據寫入到內存與硬盤中,保證不丟失數據
async 優先將數據保存到內存,而後再寫入硬盤;這樣效率更高,但可能會丟失數據
anonuid 配置 all_squash 使用,指定 NFS 的用戶 UID,必須存在系統

anongid 配置 all_squash 使用,指定 NFS 的用戶 UID,必須存在系統

 

 

編輯好配置文件後啓動NFS服務

mkdir /home/nfstestdir

chmod 777 /home/nfstestdir

systemctl start rpcbind

systemctl start nfs

systemctl enable rpcbind

systemctl enable nfs

setenforce 0

systemctl stop firewalld

客戶端掛載

yum install -y nfs-utils

showmount -e 192.168.29.138 (使用服務端ip地址) //-e查看nfs的共享狀況

[root@localhost mnt]# showmount -e 192.168.29.138

Export list for 192.168.29.138:

/home/nfstestdir 192.168.29.0/24

mount -t nfs 192.168.29.138:/home/nfstestdir /mnt/ //在客戶端上掛載NFS

[root@localhost mnt]# df -h

文件系統                         容量  已用  可用 已用% 掛載點

/dev/mapper/centos-root           18G  879M   17G    5% /

devtmpfs                         903M     0  903M    0% /dev

tmpfs                            913M     0  913M    0% /dev/shm

tmpfs                            913M  8.6M  904M    1% /run

tmpfs                            913M     0  913M    0% /sys/fs/cgroup

/dev/sda1                        497M  125M  373M   25% /boot

tmpfs                            183M     0  183M    0% /run/user/0

192.168.29.138:/home/nfstestdir   18G  946M   17G    6% /mnt

touch /mnt/dai.txt

ls -l /mnt/dai.txt

[root@localhost mnt]# ls -l /mnt/dai.txt

-rw-r--r--. 1 1000 1000 26 11月 18 17:14 /mnt/dai.txt

 

exportfs命令

-a:表示所有掛載或者卸載

-r:表示從新掛載

-u:表示卸載某一目錄

-v:表示顯示共享目錄

在服務端進行如下操做

vi /etc/exports

添加:/tmp/ 192.168.29.0/24(rw,sync,no_root_squash)

exports -arv

 

客戶端

mkdir /dai

mount -t nfs -onolock 192.168.29.138:/tmp /dai

touch /dai/test.txt

 

服務端

[root@localhost nfstestdir]# ls

aa  dai.txt

 

 

客戶端

[root@localhost mnt]# cd /mnt/

[root@localhost mnt]# ls

aa  dai.txt

相關文章
相關標籤/搜索