linux中NFS的搭建

2021-10-03 17:53:02 字數 3821 閱讀 8216

一、什麼是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上的那...