NFS實(shí)現(xiàn)多服務(wù)器文件的共享的方法步驟
一、簡介
NFS是network file sytem的縮寫,它允許網(wǎng)絡(luò)中的計(jì)算機(jī)之間共享資源。在NFS的應(yīng)用中,本地NFS的客戶端應(yīng)用可以透明地讀寫位于遠(yuǎn)端NFS服務(wù)器上的文件,就像訪問本地文件一樣。
因?yàn)镹FS服務(wù)有很多功能,提供不同功能的進(jìn)程使用的端口號也就會各不相同,如果客戶端想要請求NFS服務(wù)器的某項(xiàng)功能,勢必需要先知道其功能的目的端口號,才能從NFS服務(wù)器哪里獲得服務(wù)。那么NFS服務(wù)這么多功能端口號,客戶端如何知道NFS服務(wù)器的某項(xiàng)功能使用的什么端口號呢?這就需要RPC遠(yuǎn)程過程調(diào)用協(xié)議來記錄NFS服務(wù)器各功能所使用的端口號。其過程如下:
1.首先在服務(wù)端,NFS服務(wù)啟動以后,就會隨機(jī)的使用一些端口號,然后NFS服務(wù)就會將自己使用的端口號告訴本系統(tǒng)內(nèi)的RPC服務(wù),RPC記錄下NFS各個(gè)功能所使用的端口。并開啟RPC服務(wù)的111端口等待客戶端通過RPC請求來獲取到NFS服務(wù)所使用的端口號。
2.客戶端啟動自身的RPC(portmap)服務(wù),向服務(wù)端的RPC(portmap)服務(wù)請求NFS文件共享服務(wù)開放的端口號。
3.服務(wù)端RPC服務(wù)收到用戶的請求后,查閱NFS服務(wù)所使用的端口號,并將其使用的端口號告訴給客戶端。
4.客戶端知道NFS服務(wù)器使用的端口號后,就可以通過獲取到的目的端口號與NFS服務(wù)器進(jìn)行數(shù)據(jù)傳輸。
注意:在服務(wù)端上,因?yàn)镹FS服務(wù)需要向RPC服務(wù)注冊自己所使用的端口號,因此RPC只有先于NFS服務(wù)啟動,NFS服務(wù)才能將自己使用的端口號注冊到本地的RPC服務(wù)上。
二、部署
1、準(zhǔn)備
我們這里準(zhǔn)備了三臺服務(wù)器,一臺服務(wù)端,兩臺客戶端進(jìn)行測試。
1、服務(wù)端和客戶端:安裝nfs-utils
yum -y install nfs-utils
2、服務(wù)端:創(chuàng)建共享目錄
# 創(chuàng)建兩個(gè)共享目錄 mkdir -p /root/nfs/files1 mkdir -p /root/nfs/files2 # 創(chuàng)建測試文件 touch /root/nfs/files1/111.txt touch /root/nfs/files1/222.txt touch /root/nfs/files2/333.txt touch /root/nfs/files2/444.txt
3、服務(wù)端:配置exports文件
# 默認(rèn)是空的,需要編輯 vi /etc/exports # 里面的內(nèi)容,我們將兩個(gè)目錄共享給另外兩臺服務(wù)器,配置詳細(xì)內(nèi)容請查看下面的附錄 /root/nfs/files1 192.168.56.11(rw,sync,no_root_squash) /root/nfs/files2 192.168.56.11(rw,sync,no_root_squash) /root/nfs/files1 192.168.56.12(rw,sync,no_root_squash) /root/nfs/files2 192.168.56.12(rw,sync,no_root_squash)
導(dǎo)出(廣播)編輯的文件,并啟動nfs服務(wù),如果已經(jīng)啟動可以直接重啟或者exportfs -r
# 可以使用exportfs命令使新修改的配置文件生效 exportfs -r # 啟動 systemctl start nfs # 重啟 systemctl restart nfs
4、客戶端掛載
注意:兩臺客戶端都需要執(zhí)行以下命令!
# 1、顯示NFS服務(wù)器(IP為192.168.56.10)的輸出目錄列表: # showmount 選項(xiàng) # -d:僅顯示已被NFS客戶端加載的目錄; # -e:顯示NFS服務(wù)器上所有的共享目錄。 [root@localhost ~]# showmount -e 192.168.56.10 Export list for 192.168.56.10: /root/nfs/files2 192.168.56.12,192.168.56.11 /root/nfs/files1 192.168.56.12,192.168.56.11 # 2、創(chuàng)建目錄,用于掛載 mkdir -p /root/nfs/files1 mkdir -p /root/nfs/files2 # 3、執(zhí)行掛載 mount -t nfs 192.168.56.10:/root/nfs/files1 /root/nfs/files1 mount -t nfs 192.168.56.10:/root/nfs/files2 /root/nfs/files2 # 4、查看是否掛載成功 [root@localhost files1]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 2.1G 0 2.1G 0% /dev tmpfs 2.1G 0 2.1G 0% /dev/shm tmpfs 2.1G 17M 2.1G 1% /run tmpfs 2.1G 0 2.1G 0% /sys/fs/cgroup /dev/sda1 40G 8.0G 33G 20% / 192.168.56.10:/root/nfs/files1 40G 8.0G 33G 20% /root/nfs/files1 192.168.56.10:/root/nfs/files2 40G 8.0G 33G 20% /root/nfs/files2 # 5、測試 # 任何一臺服務(wù)器在/root/nfs/files1修改文件,都會同步修改。
5、客戶端:卸載
#使用以下命令強(qiáng)行解除掛載 umount -l /root/nfs/files2 umount -l /root/nfs/files1 或者使用 #將會顯示使用這個(gè)模塊的pid fuser -m /root/nfs/files1 #將會直接kill那個(gè)pid fuser -mk /root/nfs/files1
三、附錄
1、NFS服務(wù)基本命令
systemctl start nfs 啟動NFS服務(wù) systemctl stop nfs 停止nfs服務(wù) systemctl restart nfs 重新啟動nfs服務(wù) systemctl status nfs 查看nfs服務(wù)狀態(tài) systemctl enable nfs 設(shè)置開機(jī)自啟動nfs服務(wù)
2、/etc/exports參數(shù)解釋
/etc/exports
是NFS服務(wù)器配置文件,它用于定義共享目錄和訪問權(quán)限。它的格式如下:
<目錄路徑> <允許訪問的主機(jī)>(<選項(xiàng)>)
其中,目錄路徑表示要共享的服務(wù)端目錄路徑,允許訪問的主機(jī)表示可以訪問該目錄的主機(jī)名或IP。
參數(shù)解釋:
(1) ro 該主機(jī)對該共享目錄有只讀權(quán)限
(2) rw 該主機(jī)對該共享目錄有讀寫權(quán)限
(3) root_squash 客戶機(jī)用root用戶訪問該共享文件夾時(shí),將root用戶映射成匿名用戶
(4) no_root_squash 客戶機(jī)用root訪問該共享文件夾時(shí),不映射root用戶
(5) all_squash 客戶機(jī)上的任何用戶訪問該共享目錄時(shí)都映射成匿名用戶
(6) anonuid 將客戶機(jī)上的用戶映射成指定的本地用戶ID的用戶
(7) anongid 將客戶機(jī)上的用戶映射成屬于指定的本地用戶組ID
(8) sync 資料同步寫入到內(nèi)存與硬盤中
(9) async 資料會先暫存于內(nèi)存中,而非直接寫入硬盤
(10) insecure 允許從這臺機(jī)器過來的非授權(quán)訪問
(11) subtree_check 如果共享/usr/bin之類的子目錄時(shí),強(qiáng)制NFS檢查父目錄的權(quán)限(默認(rèn))
(12) no_subtree_check 和上面相對,不檢查父目錄權(quán)限
(13) wdelay 如果多個(gè)用戶要寫入NFS目錄,則歸組寫入(默認(rèn))
(14 )no_wdelay 如果多個(gè)用戶要寫入NFS目錄,則立即寫入,當(dāng)使用async時(shí),無需此設(shè)置。
(15) hide 在NFS共享目錄中不共享其子目錄
(16) no_hide 共享NFS目錄的子目錄
(17) secure NFS通過1024以下的安全TCP/IP端口發(fā)送
(18) insecure NFS通過1024以上的端口發(fā)送
3、exportfs命令
exportfs命令提供了一系列參數(shù),?用于控制NFS共享的設(shè)置和狀態(tài)。?以下是一些常用的參數(shù)及其功能:? -a:?用于打開或取消所有目錄的共享。? -r:?重新共享所有目錄,?使/var/lib/nfs/xtab和/etc/exports同步,?刪除/etc/exports中已刪除的條目,?并移除內(nèi)核共享表中任何不再有效的條目。? -u:?取消一個(gè)或多個(gè)目錄的共享。? -f:?在“新”模式下,?刷新內(nèi)核共享表之外的任何東西,?任何活動的客戶程序?qū)⒃谒鼈兊南麓握埱笾械玫絤ountd添加的新的共享?xiàng)l目。? -v:?輸出詳細(xì)信息,?顯示在共享或取消共享時(shí)正在做什么,?以及顯示當(dāng)前共享列表時(shí)的共享選項(xiàng)。? 使用exportfs命令時(shí),?無需重啟NFS服務(wù)即可使配置文件生效,?這對于動態(tài)調(diào)整NFS共享非常有用。?例如,?當(dāng)修改了/etc/exports配置文件后,?可以通過執(zhí)行exportfs -arv命令來立即使更改生效,?而不是重新啟動NFS服務(wù)
參考資料
https://zhuanlan.zhihu.com/p/78114809
https://blog.csdn.net/liebe_u/article/details/139708752
https://www.cnblogs.com/hanfe1/p/16642948.html
到此這篇關(guān)于NFS實(shí)現(xiàn)多服務(wù)器文件的共享的方法步驟的文章就介紹到這了,更多相關(guān)NFS 多服務(wù)器文件共享內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何使用 Rails 和七牛云存儲,在 15 分鐘內(nèi)打造一個(gè)圖片分享社交應(yīng)用原型
今天,就讓我們一起來看看如何使用 Rails 和七牛云存儲,在 15 分鐘內(nèi)打造一個(gè)圖片分享社交應(yīng)用原型2016-03-03iptables如何配置NAT實(shí)現(xiàn)端口轉(zhuǎn)發(fā)
這篇文章主要介紹了iptables如何配置NAT實(shí)現(xiàn)端口轉(zhuǎn)發(fā),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06多核心服務(wù)器和高主頻服務(wù)器怎么選?cpu主頻高和核心多哪個(gè)更好?
這篇文章主要介紹了多核心服務(wù)器和高主頻服務(wù)器怎么選?cpu主頻高和核心多哪個(gè)更好?,需要的朋友可以參考下2023-07-07詳解aws免費(fèi)服務(wù)器申請及網(wǎng)絡(luò)代理搭建教程
這篇文章主要介紹了aws免費(fèi)服務(wù)器申請及網(wǎng)絡(luò)代理搭建教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12git標(biāo)簽管理_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了git標(biāo)簽管理的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Elasticsearch6.2服務(wù)器升配后的bug(避坑指南)
這篇文章主要介紹了Elasticsearch6.2服務(wù)器升配后的bug問題及解決方法,可以幫助有其他人避坑,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09win10下VSCode+CMake+Clang+GCC環(huán)境搭建教程圖解
這篇文章主要介紹了win10下VSCode+CMake+Clang+GCC環(huán)境搭建,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10