目錄
- 第一步:NFS系統簡單概述
- 第二步:先決條件
- 第三步:測驗環境
- 第四步:CentOS 8上安裝NFS服務器
- 第五步:客戶端系統上設定NFS客戶端
第一步:NFS系統簡單概述
網路檔案系統(NFS)也稱為客戶端/服務器檔案系統,是一種流行的跨平臺分布式檔案系統協議,用于通過網路匯出本地檔案系統,以便客戶端可以通過網路與其他用戶共享目錄和檔案并進行互動與它們一樣,好像它們已安裝在本地,
在CentOS / RHEL 8中,受支持的NFS版本是NFSv3和NFSv4,默認的NFS版本是4.2,其特征是支持訪問控制串列(ACL),服務器端副本,稀疏檔案,空間保留,標記為NFS,布局增強和多得多,
在本文中,您將學習如何在CentOS / RHEL 8 Linux發行版上安裝和配置NFS服務器和NFS客戶端,
第二步:先決條件
- CentOS 8安裝指南
- 主機IP配置完成
第三步:測驗環境
| KVM主機 | NFS客戶端 | |
|---|---|---|
| 主機名 | nfsserver | nfsclient |
| IP資訊 | 192.168.6.58 | 192.168.6.149 |
第四步:CentOS 8上安裝NFS服務器
1.首先在NFS服務器上安裝所需的軟體包,軟體包是nfs-utils,它為內核NFS服務器和相關工具(例如包含showmount程式)提供了守護程式,
運行以下命令以將軟體包安裝在NFS服務器上(如果以非root用戶身份管理系統,請使用sudo),
# dnf install nfs-utils -y

2.安裝完成后,啟動nfs-server服務,使其能夠在系統引導時自動啟動,然后使用systemctl命令驗證其狀態,
# systemctl start nfs-server.service
# systemctl enable nfs-server.service
# systemctl status nfs-server.service
systemctl restart nfs-server.service

請注意,運行NFS服務器或裝入NFS共享所需的其他服務(例如nfsd,nfs-idmapd,rpcbind,rpc.mountd,lockd,rpc.statd,rpc.rquotad和rpc.idmapd)將自動啟動,
NFS服務器的組態檔為:
-
/etc/nfs.conf – NFS守護程式和工具的主要組態檔,
-
/etc/nfsmount.conf-NFS安裝組態檔,
3.接下來,創建要在NFS服務器上匯出或共享的檔案系統,本文中,我們將創建四個檔案系統,其中三個部門的三個部門的作業人員使用三個檔案系統:運維,網路和資料庫以及共享檔案,而另一個則用于root用戶備份,
[root@nfsserver mnt]# mkdir -p /mnt/nfs_shares/{system,network,dba}
[root@nfsserver mnt]# mkdir -p /mnt/backups
[root@nfsserver mnt]# ls -l /mnt/nfs_shares/
total 0
drwxr-xr-x. 2 root root 6 Dec 6 21:32 dba
drwxr-xr-x. 2 root root 6 Dec 6 21:32 network
drwxr-xr-x. 2 root root 6 Dec 6 21:32 system
[root@nfsserver mnt]# ls -l /mnt/
total 0
drwxr-xr-x. 2 root root 6 Dec 6 21:32 backups
drwxr-xr-x. 5 root root 46 Dec 6 21:32 nfs_shares
[root@nfsserver mnt]#
4.然后將以上檔案系統匯出到NFS服務器/etc/exports組態檔中,確定NFS客戶端可以訪問到本地物理檔案系統,
[root@nfsserver mnt]# vi /etc/exports
/mnt/nfs_shares /system 192.168.6.0/24(rw,sync)
/mnt/nfs_shares /network 192.168.6.0/24(rw,sync)
/mnt/nfs_shares /dba 192.168.6.0/24(rw,sync)
/mnt/backups 192.168.6.149/24(rw,sync,no_all_squash,root_squash)
以下是一些匯出選項
- rw –允許對檔案系統進行讀寫訪問,
- sync –告訴NFS服務器在請求時寫入操作(將資訊寫入磁盤)(默認情況下適用),
- all_squash –將客戶端請求中的所有UID和GID映射到匿名用戶,
- no_all_squash –用于將客戶端請求中的所有UID和GID映射到NFS服務器上的相同UID和GID,
- root_squash –將來自客戶端的root用戶或UID / GID 0的請求映射到匿名UID / GID,
5.要匯出上述檔案系統,請運行帶有以下標志的exportfs命令:
-a匯出或取消匯出所有目錄,-r意味著重新匯出所有目錄,
將/ var/lib/nfs/etab與/etc/exports和/etc/ exports下的檔案同步, d和-v啟用詳細輸出,
[root@nfsserver mnt]# exportfs -arv

? 匯出NFS共享
6.要顯示當前的匯出串列,請運行以下命令,請注意,匯出表還應用了一些未明確定義的默認匯出選項,如以下螢屏截圖所示,
[root@nfsserver mnt]# exportfs -s

? 列出NFS共享
7.接下來,如果您正在運行Firewalld服務,則需要允許通過防火墻的流量通過必要的NFS服務(mountd,nfs,rpc-bind),然后重新加載防火墻規則以應用更改,如下所示,
[root@nfsserver mnt]# firewall-cmd --permanent --add-service=nfs
[root@nfsserver mnt]# firewall-cmd --permanent --add-service=rpc-bind
[root@nfsserver mnt]# firewall-cmd --permanent --add-service=mountd
[root@nfsserver mnt]# firewall-cmd --reload
[root@nfsserver mnt]# firewall-cmd --list-all
[root@nfsserver mnt]# firewall-cmd --state #查看狀態

第五步:客戶端系統上設定NFS客戶端
8.在客戶端節點上,安裝必要的軟體包以訪問客戶端系統上的NFS共享,運行命令:
[root@nfsclient ~]# dnf -y install nfs-utils nfs4-acl-tools

9.然后運行showmount命令以顯示NFS服務器的安裝資訊,該命令在客戶端上輸出匯出的檔案系統,如螢屏截圖所示,
[root@nfsclient ~]# showmount -e 192.168.6.58

10.接下來,創建用于掛載遠程NFS檔案系統的本地檔案系統/目錄,并將其掛載為ntf檔案系統,
[root@nfsclient ~]#mkdir -p /mnt/backups
[root@nfsclient ~]#mount -t nfs 192.168.6.58:/mnt/backups /mnt/backups
11.然后通過運行mount命令和filter nfs mounts確認已安裝遠程檔案系統,
[root@nfsclient ~]# mount | grep nfs
12.要使掛載即使在系統重新引導后也能夠持久進行,請運行以下命令在/ etc / fstab中輸入相應的條目,
# echo "192.168.6.58:/mnt/backups /mnt/backups nfs defaults 0 0">>/etc/fstab
# cat /etc/fstab

13. 通過在服務器上創建檔案來測驗NFS設定是否作業正常,并檢查是否可以在客戶端中看到該檔案,
# touch /mnt/backups/file_created_on_server.text [On NFS Server]
# ls -l /mnt/backups/file_created_on_server.text [On NFS client]
[1].NFS服務端創建檔案

[2].NFS 客戶端查看檔案

然后進行相反的操作,
# touch /mnt/backups/file_created_on_client.text [On NFS Client]
# ls -l /mnt/backups/file_created_on_client.text [On NFS Server]
[3].NFS客戶端創建檔案
[root@nfsclient backups]# touch /mnt/backups/file_created_on_client.text
[root@nfsclient backups]# echo "client created file" > /mnt/backups/file_created_on_client.text
[root@nfsclient backups]#
提示:無權限,查找可能是因為服務端沒有讀寫權限

修復方法:給NFS共享的目錄添加權限即可, chmod go+w /mnt/backups/ 重啟NFS和rpcbind服務后生效


[4].NFS服務端查看創建檔案
[root@nfsserver mnt]# ls /mnt/backups/file_created_on_client.text
/mnt/backups/file_created_on_client.text
[root@nfsserver mnt]# cat /mnt/backups/file_created_on_client.text
client created file

14.在客戶端上卸載遠程檔案系統,
# umount /mnt/backups

請注意,如下面的螢屏快照所示,如果要在遠程檔案系統中進行操作,則無法卸載該檔案系統,
| 選項 | 描述 |
|---|---|
| w | 允許在NFS卷上進行讀寫請求, |
| RO | 僅允許讀取NFS卷上的請求, |
| 同步 | 僅在將更改提交到穩定存盤后才回復請求,(默認) |
| 異步的 | 此選項允許NFS服務器違反NFS協議并在對該請求進行的任何更改提交到穩定存盤之前答復該請求, |
| 安全 | 此選項要求請求源自小于IPPORT_RESERVED(1024)的Internet埠,(默認) |
| 不安全的 | 此選項接受所有埠, |
| wdelay | 如果它懷疑另一個相關的寫請求可能正在進行中或可能很快到達,則稍微延遲向磁盤提交寫請求,(默認) |
| no_wdelay | 如果還設定了異步,則此選項無效,如果NFS服務器懷疑另一個相關的寫請求可能正在進行中或可能很快到達,則通常會稍稍延遲向磁盤提交寫請求,就可以將多個寫入請求提交到磁盤,從而提高性能,如果NFS服務器主要接收小的無關請求,則此行為實際上可能會降低性能,因此no_wdelay可用于將其關閉, |
| subtree_check | 此選項啟用子樹檢查,(默認) |
| no_subtree_check | 此選項禁用子樹檢查,這對安全性有輕微的影響,但在某些情況下可以提高可靠性, |
| root_squash | 將請求從uid / gid 0映射到匿名uid / gid,請注意,這不適用于可能同樣敏感的任何其他uid或gid,例如用戶bin或組人員, |
| no_root_squash | 關閉根擠壓,此選項主要對無磁盤客戶端有用, |
| all_squash | 將所有uid和gid映射到匿名用戶,對于NFS匯出的公共FTP目錄,新聞假脫機目錄等有用, |
| no_all_squash | 關閉所有壁球,(默認) |
| anonuid = UID | 這些選項顯式設定匿名帳戶的uid和gid,此選項主要對PC / NFS客戶端有用,在PC / NFS客戶端中,您可能希望所有請求看起來都是來自一個用戶的,作為示例,請考慮以下示例部分中/ home / joe的匯出條目,該條目將所有請求映射到uid 150, |
| anongid = GID | 閱讀以上內容(anonuid = UID) |
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/230870.html
標籤:Linux
