NFS介紹,NFS服務端安裝配置,NFS配置選項
筆記內容:
14.1 NFS介紹
14.2 NFS服務端安裝配置
14.3 NFS配置選項
筆記日期:2017-11-01
14.1 NFS介紹
NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件一樣。
NFS可以把A、B、C機器之間的文件數據進行共享,例如用戶上傳了一個文件到A機器上,用戶同樣的可以在B或C機器上訪問到上傳的文件,不一定需要在A機器上才能訪問,這就是NFS實現的功能。而且用戶如果在A機器上對該文件更新或修改了,那麽其他的機器都會進行同步。
從上圖可以看到服務端需要有一個NFS服務和一個RPC服務,而客戶端則只需要一個RPC服務,真正實現數據傳輸的是RPC服務,NFS服務是不監聽任何端口的,RPC服務則默認監聽111端口,所以NFS服務是需要借助RPC協議來進行通信的。
14.2 NFS服務端安裝配置
NFS大致介紹完了,現在就是嘗試安裝NFS,首先要準備兩臺機器,一個當服務端一個當客戶端,我這裏使用的是兩臺虛擬機來做實驗:
服務端需要安裝nfs-utils和rpcbind包,安裝命令:
yum install -y nfs-utils rpcbind
2. 客戶端需要安裝nfs-utils包,安裝命令:
yum install -y nfs-utils
在服務端的/etc/exports文件中加入如下內容:
/home/nfstestdir
192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
ip可以根據實際情況自定義,我這裏只是給出一個模板
4. 創建nfstestdir目錄:
mkdir /home/nfstestdir
把目錄設置為777權限:
chmod 777 /home/nfstestdir
查看兩臺機器有沒有監聽111端口:
一般來講安裝完包之後就會自動啟動服務並監聽端口的,如果沒有啟動的話,就手動啟動一下,命令如下:
systemctl start rpcbind
啟動之後查看一下進程是否如下:
啟動nfs服務:
systemctl start nfs
啟動之後查看一下進程有沒有問題:
在啟動nfs時會自動幫你啟動rpc相關的一些服務:
以上這些都是與nfs的關聯服務,如果沒有以上這些服務是無法正常使用nfs的。
以下兩個命令可以讓rpcbind和nfs服務開機啟動:
systemctl enable rpcbind
systemctl enable nfs
14.3 NFS配置選項
剛剛在/etc/exports文件中加入了如下內容:
192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
現在介紹一下這段內容的含義,這是一段nfs的配置選項,前面那段ip就不需要多解釋了,後面那一段才是具體的配置選項。
我們來看看可以進行哪些配置:
rw (read/write) 讀寫
ro (read/only) 只讀
sync 同步模式,內存數據實時寫入磁盤,但是相對的會降低磁盤的效率
async 非同步模式,不需要將內存數據實時寫入數據,雖然不會降低磁盤的效率,但是萬一斷電就會丟失一些數據。
no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大。
root_squash 與上面選項相對,客戶端上的root用戶使用NFS共享目錄時會受到約束,被限定成某個普通用戶
all_squash 客戶端上所有用戶都會在使用NFS共享目錄時都被限定為一個普通用戶
anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid
接下來就是客戶端掛載,因為之前已經安裝過nfs-util包了,所以不需要再安裝了。
先將兩臺機器都關掉防火墻:
systemctl stop firewalld
selinux也要關掉:
getenforce
2. 查看一下可以共享服務端的哪個目錄:
showmount -e 192.168.133.130 //該ip為NFS服務端ip
掛載共享目錄:
mount -t nfs 192.168.133.130:/home/nfstestdir /mnt
使用df -h可以看到掛載好的共享目錄:
cd進/mnt目錄下,創建一個文件,然後看看服務端有沒有更新:
可以看到用戶的屬主和屬組是mysql,至於為什麽會這樣,下面會提到。
服務端:
因為在nfs的配置文件中配置了:nonuid=1000,anongid=1000
所以在服務端中共享目錄下文件的屬主就為uid為1000的用戶,同樣的屬組就為gid為1000的用戶組。
在服務端中使用id 01這個命令,就可以看到01這個用戶的uid和gid:
客戶端也是一樣的:
所以這是因為在nfs配置文件中已經定義了文件的屬主和屬組的id,所以在此共享目錄下創建的文件,在服務端和客戶端上的屬主和屬組就會對應上這個id。
從以上實驗可以知道掛載完目錄之後,客戶端就可以像訪問本地目錄一樣去訪問這個服務器上的目錄,客戶端在此目錄下做出的改動也會同步到服務器上,以上的實驗只是簡單的使用兩臺虛擬機模擬服務端和客戶端,在實際應用中服務端和客戶端都不止一臺。但是從這個簡單的實驗,可以了解到NFS實現了什麽樣的功能,服務端和客戶端又是怎麽樣進行數據傳輸的。
本文出自 “zero” 博客,請務必保留此出處http://zero01.blog.51cto.com/12831981/1978079
NFS介紹,NFS服務端安裝配置,NFS配置選項