一、什麼是nfs伺服器
因為nfs支援的功能相當多,而不同的功能都會使用不同的程式來啟動,每啟動乙個功能就會啟用一些埠來傳輸資料,因此nfs的功能對應的埠並不固定,客戶端要知道nfs伺服器端的相關埠才能建立連線進行資料傳輸,而rpc就是用來統一管理nfs埠的服務,並且統一對外的埠是111,rpc會記錄nfs埠的資訊,如此我們就能夠通過rpc實現服務端和客戶端溝通埠資訊。
通訊步驟:
1)首先伺服器端啟動rpc服務,並開啟111埠;
2)伺服器端啟動nfs服務,並向rpc註冊埠資訊;
3)客戶端啟動rpc(portmap服務),向服務端的rpc(portmap)服務請求服務端的nfs埠;
4)服務端的rpc(portmap)服務反饋nfs埠資訊給客戶端;
5)客戶端通過獲取的nfs埠來建立和服務端的nfs連線並進行資料的傳輸。
三、部署前準備
測試機1(服務端):
ip:192.168.100.10
系統:centos7
關閉防火牆和selinux
測試機2(客戶端):
ip:192.168.100.20
系統:centos7
關閉防火牆和selinux
四、nfs服務端配置
1、安裝所需安裝包和依賴包
[root@ftp_nfs1 ~]
# yum -y install nfs-utils rpcbind
[root@ftp_nfs1 ~]
# systemctl start rpvbind
[root@ftp_nfs1 ~]
# systemctl start nfs
[root@ftp_nfs1 ~]
# systemctl enable rpvbind
[root@ftp_nfs1 ~]
# systemctl enable nfs
2、建立掛載目錄,並更改所屬使用者和所屬組
[root@ftp_nfs1 ~]
# mkdir /nfs
[root@ftp_nfs1 ~]
# chown -r nobody.nobody /nfs
3、nfs配置檔案/etc/exports的格式
nfs的共享目錄 nfs客戶端位址1(引數1,引數2,……)
nfs的共享目錄 nfs客戶端位址2(引數1,引數2,……)
nfs客戶端位址型
客戶端位址
具體位址
授權單一戶端訪問nfs
192.168.100.10
授權整個網段(最常見)
192.168.100.0/24
授權某個網域名稱客戶端訪問(一般不使用)
nfs.linux.com
授權整個網域名稱客戶端訪問(一般不使用)
*.linux.com
nfs配置檔案的常見引數
引數作用
rw表示可讀寫許可權
ro表示唯讀許可權
sync
請求或寫入資料時,資料同步寫入到nfs server的硬碟後才返回,優點:資料安全不會丟,缺點:效能比不啟用該引數要差
async
寫入資料時會先寫到記憶體緩衝區,直到硬碟有空檔才會在寫入磁碟,這樣可以提公升寫入效率。風險是若伺服器宕機或不正常關機,會損失緩衝區中未寫入硬碟的資料(解決辦法:伺服器主機板電池或ups不間斷電源)
no_root_squash
訪問nfs server共享目錄的使用者如果是root的話,它對該目錄具有root許可權。這個配置原本為無盤使用者準備的。使用者應避免使用!
root_squash
對於訪問nfs server共享目錄的使用者,如果是root的話會被壓縮成為nobody使用者身份。
all_squash
不管訪問nfs server共享目錄的使用者身份如何包括root,它的許可權都將被壓縮成為匿名使用者,同時他們的udi和gid都會變成nobody或nfsnobody賬戶的uid,gid。在多個nfs客戶端同時讀寫nfs server資料時,這個引數很有用可以確保大家寫入的資料的許可權是一樣的。但不同系統有可能匿名使用者的uid,gid不同。因為此處我們需要服務端和客戶端之間的使用者是一樣的。比如說:服務端指定匿名使用者的uid為2000,那麼客戶端也一定要存在2000這個賬號才可以
例:
[root@ftp_nfs1 ~]
# cat /etc/exports
/nfs/ 192.168.100.0/24(rw,sync,no_root_squash)
[root@ftp_nfs1 ~]
# systemctl reload nfs
[root@ftp_nfs1 ~]
# exportfs -rv
使用showmount檢查是否成功配置
[root@ftp_nfs1 ~]
# showmount -e localhost
export list for localhost:
/nfs 192.168.100.0/24
可以看到/nfs目錄已經成為100網段的共享目錄
五、客戶端配置
1、安裝所需軟體(安裝nfs-utils軟體的目的是為了使用showmount等功能,所以客戶端最好也裝上,但是不啟動nfs服務)
[root@ftp_nfs2 ~]
# yum -y install nfs-utils rpcbind
[root@ftp_nfs2 ~]
# systemctl start rpvbind
[root@ftp_nfs2 ~]
# systemctl enable rpvbind
2、建立掛載目錄,並更改所屬使用者和所屬組
[root@ftp_nfs1 ~]
# mkdir /nfs
3、使用showmount進行測試是否能夠連線到服務端
[root@ftp_nfs2 ~]
# showmount -e 192.168.100.10
export list for 192.168.100.10:
/nfs 192.168.100.0/24
4、進行掛載使用
[root@ftp_nfs2 ~]
# mount -t nfs 192.168.100.10:/nfs /nfs
六、測試是否能夠同步
在客戶端上執行
[root@ftp_nfs2 ~]
# cd /nfs/
[root@ftp_nfs2 nfs]
# touch 1.txt
到客戶端上檢視
[root@ftp_nfs1 ~
]# ll /nfs/
total 0
-rw-r--r--
1 root root 0 mar 1121:
301.txt
七、永久掛載
方法1:
/etc/rc.local將掛載命令寫到這個裡面,每次開機都會自動去執行命令!
[root@ftp_nfs2 nfs]
# vim /etc/rc.local
mount -e nfs 192.168.100.10:/nfs /nfs
Linux中NFS伺服器的搭建
在搭建伺服器前要保證linux上有網,能夠ping通 可使用橋接模式 檢視防火牆當前狀態 systemctl status firewalld 關閉防火牆 systemctl stop firewalld 永久關閉防火牆 開機不自啟 systemctl disable firewalld安裝 yum...
Linux移植一 ubuntu搭建NFS
1 安裝nfs server apt get install nfs kernel server2 建立nfs專用資料夾 mkdir data disk13 配置nfs vi etc exports data disk1 rw,sync,no root squash,no subtree check...
Linux搭建nfs共享服務
nfs network file system 網路檔案系統,類似windows中的資料夾共享,如下有三颱機器a,b,c,它們需要訪問同乙個目錄,目錄中都是,傳統的做法是把這些分別放到a,b,c。但是使用nfs只需要放到a上,然後a共享給b和c即可。訪問的時候,b和c是 通過網路的方式去訪問a上的那...