1. 程式人生 > 其它 >安裝NFS服務

安裝NFS服務

技術標籤:Linuxdockercentos運維

1 伺服器部分

1.1 檢視系統是否已安裝NFS

# 檢視是否安裝過nfs
rpm -qa | grep nfs
rpm -qa | grep rpcbind

1.1 安裝NFS

yum -y install nfs-utils rpcbind

1.3 建立共享目錄並授權

# 建立準備共享的目錄
mkdir -p /nfs

# 賦予許可權
chmod 666 /nfs

# chmod 命令更改檔案/資料夾的屬性:
# chmod 666 /nfs 表示所有使用者都可以讀寫但不能執行檔案/資料夾;
# chmod 777 /nfs 允許所有使用者的所有操作(一般的暴力解決辦法)
# chmod 744 /nfs 只允許使用者(所有者)執行所有操作;組和其他使用者只允許閱讀。

1.4 編輯export配置檔案

# 建立配置檔案
vim /etc/exports 

# 配置檔案內容
/nfs 27.1.100.0/8(rw,no_root_squash,no_all_squash,sync)

# 注:
# 第一列代表共享哪個目錄
# 第二列代表允許哪些客戶端訪問(可以是ip也可以是ip段)
# 第三列共享目錄的一些許可權設定

# 所有人
# ro:共享目錄只讀;
# rw:共享目錄可讀可寫;
# all_squash:所有訪問使用者都對映為匿名使用者或使用者組;
# no_all_squash(預設):訪問使用者先與本機使用者匹配,匹配失敗後再對映為匿名使用者或使用者組;
# root_squash(預設):將來訪的root使用者對映為匿名使用者或使用者組; # no_root_squash:來訪的root使用者保持root帳號許可權; # anonuid=<UID>:指定匿名訪問使用者的本地使用者UID,預設為nfsnobody(65534); # anongid=<GID>:指定匿名訪問使用者的本地使用者組GID,預設為nfsnobody(65534); # secure(預設):限制客戶端只能從小於1024的tcp/ip埠連線伺服器; # insecure:允許客戶端從大於1024的tcp/ip埠連線伺服器; # sync:將資料同步寫入記憶體緩衝區與磁碟中,效率低,但可以保證資料的一致性;
# async:將資料先儲存在記憶體緩衝區中,必要時才寫入磁碟; # wdelay(預設):檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率; # no_wdelay:若有寫操作則立即執行,應與sync配合使用; # subtree_check(預設) :若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的許可權; # no_subtree_check :即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,這樣可以提高效率;

1.5 使配置生效

exportfs -r

# 不重啟nfs服務應用更新,相關選項如下:
# -a 全部掛載或解除安裝 /etc/exports中的內容
# -r 重新讀取/etc/exports 中的資訊 ,並同步更新/etc/exports、/var/lib/nfs/xtab
# -u 解除安裝單一目錄(和-a一起使用為解除安裝所有/etc/exports檔案中的目錄)
# -v 在export的時候,將詳細的資訊輸出到螢幕上。

1.6 啟動rpcbind、nfs服務

# 啟動服務
systemctl start rpcbind
systemctl start nfs

# 開機自啟
systemctl enable rpcbind.service
systemctl enable nfs.service

1.7 查詢共享狀態

showmount -e localhost

# 查詢結果如下
# Export list for localhost:
# /nfs 27.1.100.0/8

# 選項與引數:
# -a :顯示目前主機與客戶端的 NFS 聯機分享的狀態;
# -e :顯示某部主機的 /etc/exports 所分享的目錄資料。

2 客戶端部分

2.1 安裝nfs-utils客戶端

yum -y install nfs-utils

2.2 檢視伺服器的共享目錄資訊

showmount -e 27.1.100.128

# 顯示的共享目錄資訊如下:
# Export list for 27.1.100.128:
# /nfs 27.1.100.0/8

2.3 建立掛載目錄

mkdir /nfs

# 掛載共享目錄
mount -t nfs 27.1.100.128:/nfs /nfs

2.4 測試掛載結果

2.4.1 檢視掛載結果

df -h

# 查詢結果如下,27.1.100.128:/nfs就是我們掛載的共享目錄

# 檔案系統                 容量  已用  可用 已用% 掛載點
# devtmpfs                 7.8G     0  7.8G    0% /dev
# tmpfs                    7.8G     0  7.8G    0% /dev/shm
# tmpfs                    7.8G   44M  7.8G    1% /run
# tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
# /dev/mapper/centos-root   35G  2.3G   33G    7% /
# /dev/sda1               1014M  153M  862M   16% /boot
# tmpfs                    1.6G     0  1.6G    0% /run/user/0
# 27.1.100.128:/nfs         35G  3.0G   32G    9% /nfs

2.4.2 在服務端操作

# 在服務端寫入資料
echo "test" > /nfs/test.txt

2.4.3 在客戶端操作

# 在客戶端檢視資料並寫入資料
cat /nfs/test.txt 
# 查詢結果如下
test

# 寫入資料
echo "204" >> /nfs/test.txt 

2.4.4 在伺服器操作服

cat /nfs/test.txt 
# 查詢結果如下
test
204

2.4.5 解除安裝已掛在的NFS

# 解除安裝掛載的NFS
umount /nfs

# 檢視解除安裝情況,可以看到27.1.100.128:/nfs已經沒有了
df -h

# 檔案系統                 容量  已用  可用 已用% 掛載點
# devtmpfs                 7.8G     0  7.8G    0% /dev
# tmpfs                    7.8G     0  7.8G    0% /dev/shm
# tmpfs                    7.8G   44M  7.8G    1% /run
# tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
# /dev/mapper/centos-root   35G  2.3G   33G    7% /
# /dev/sda1               1014M  153M  862M   16% /boot
# tmpfs                    1.6G     0  1.6G    0% /run/user/0
# 27.1.100.128:/nfs         35G  3.0G   32G    9% /nfs