1. 程式人生 > >linux初學者-NFS網絡文件系統篇

linux初學者-NFS網絡文件系統篇

系統資源 掛載 網絡文件 忘記 linux系統 fill dir 查看 4.0

linux初學者-NFS網絡文件系統篇

在上一篇的SAMBA篇中介紹了linux系統和windows系統之間共用的網絡文件系統CIFS,主要用於客戶端是windows的情況。在linux系統之間,所用的網絡文件系統是NFS。下文將對NFS的一些配置及用法進行介紹。

1、NFS的安裝以及配置

"yum install nfs-utils -y"。安裝NFS服務,"systemctl start nfs"、"systemctl enable nfs-server",開啟服務且設置開機自動啟動。"systemctl stop firewalld",關閉防火墻或者配置防火墻。

技術分享圖片

"vim /etc/exports"。這是編寫共享目錄的文件,這個文件是空的,需要自己填寫。如下圖所示,建立一個共享目錄"/sharedir",在裏面建立三個文件"sharefile{1..3}",在"/etc/exports"文件中寫入"/sharedir *(sync)",表示共享"/sharedir","*"表示,所有主及均可使用,(sync)是共享權限為文件同步。保存退出後輸入"exportfs -rv"刷新,建議不要重啟服務,因為重啟速度比較慢。

技術分享圖片技術分享圖片

"showmount -e IP"。可以查看這個IP是否有共享文件,例如輸入"showmount -e 172.25.254.202"就可以看到上述設置的共享目錄"/sharedir"。

技術分享圖片

"mount 172.25.254.202/sharedir /mnt"。與CIFS網絡文件系統不同,NFS不能通過登陸來查看共享內容,只能進行掛載。

技術分享圖片

2、權限及文件所有人

在配置文件"vim /etc/exports",可以設置某個或者某些主機可以進行共享目錄掛載,如下圖所示,輸入"/sharedir 172.25.254.2(sync)"表示只有"172.25.254.2"這臺主機可以進行掛載。

技術分享圖片技術分享圖片

配置文件中輸入"sync"代表文件同步,還可以輸入"rw"代表開啟讀寫權限,"ro"表示只讀。更多的權限設置可以通過"man 5 exports"查看。

如下圖所示,在掛載了共享目錄後,在其中建立一個文件"file1",這個文件的所有人是"nfsnobody",這是NFS的匿名用戶。

技術分享圖片技術分享圖片

可以對配置文件做以下設置來改變建立文件的所有人:

a、將文件的所有人改為root。

在配置文件中的權限內輸入"no_root_squash",如下圖所示,掛載後建立一個文件"file2",可以看到,文件"file2"的所有人和所有組都為root。

技術分享圖片技術分享圖片

b、指定文件的所有人和所有組

在配置文件中的權限內輸入"anonuid=xxxx,anongid=xxxx",列入輸入"anonuid=1000,anongid=1001"。刷新後掛載,建立文件"file4",在客戶端可以看到,文件的所有人為"1000",所有組為"kiosk",因為kiosk用戶組的gid為1001。在服務端可以看到文件的所有人為"uid=1000"的student用戶,所有組為"gid=1001"的class組。

技術分享圖片技術分享圖片技術分享圖片

3、客戶端的自動掛載和自動取消

掛載一般是需要手動掛載和取消掛載的,在使用完後需要取消掛載,這無疑增加了操作的復雜程度,如果忘記取消掛載也會占用系統資源,帶來麻煩。如果可以自動掛載和取消就可以避免這個問題了。

在客戶端裝載軟件可以實現這個功能。"yum install autofs",在客戶端安裝autofs軟件可以實現共享目錄的自動掛載和自動取消掛載。

技術分享圖片

"systemctl start autofs",開啟這個服務後,會自動生成一個"/net"目錄,"cd /net/172.25.254.202"可以直接看到共享目錄。而且也可以看到自動掛載在了這個目錄"/net"下。

技術分享圖片

"vim /etc/sysconfig/autofs"。第15行的"timeout"後面的值表示自動取消掛載的時間,如下圖所示,將其設置為"3",則表示退出這個目錄3秒後自動取消掛載。

技術分享圖片技術分享圖片

4、客戶端的指定掛載目錄

客戶端的自動掛載不僅僅可以掛載在"/net"下,也可以自己設置目錄掛載點。

例如欲將共享目錄"/sharedir"掛載在客戶端的"/nfs/sharedir"目錄下。先建立一"/nfs"目錄,在配置文件"/etc/auto.master"中編輯"/nfs /etc/auto.nfs",如下圖所示,"/nfs"目標掛載點的上級目錄,"/etc/auto.nfs"為記錄配置共享目錄目標掛載點文件。

技術分享圖片

"vim /etc/auto.nfs"。在這個文件中寫入"sharedir 172.25.254.202:/sharedir"。這是配置共享目錄目標掛載點。重啟服務後進入"/nfs/sharedir"就可以自動掛載了,離開這個目錄3秒之後會自動取消掛載。

技術分享圖片技術分享圖片

5、存儲分離

存儲分離是將共享目錄掛載在客戶端上,將文件存儲在共享目錄中,這樣如果客戶端的主機出現問題,也不會導致數據丟失。

例如將共享目錄掛載在客戶端的student用戶家目錄下,那麽student用戶登陸時,會自動掛載這個共享目錄,且student用戶所儲存的文件會存在這個共享目錄下,退出student用戶時也可以看到這些文件。具體做法為:

在服務端建立一個"/sharedir/student"的共享目錄。在配置文件"/etc/exports"中編輯"/sharedir/student 172.25.254.0/24(rw,anonuid=1000,anongid=1000)"。將這個目錄共享出去。

技術分享圖片技術分享圖片

在客戶端編輯"/etc/auto.master",在其中編輯"/home /etc/auto.home"。

技術分享圖片

"vim /etc/auto.home"。編輯"student 172.25.254.202:/sharedir/student"。也可以編輯"* 172.25.254.202:/sharedir/&","*"代表任意共享目錄,"&"代表與"*"匹配的目錄,用於共享目錄下有許多目錄時使用。

技術分享圖片

重啟服務後,切換到student用戶,則自動掛載到家目錄下,建立"file{1..5}"5個文件,退出後3秒自動取消掛載,在服務端的共享目錄裏就可以看到這5個文件。

技術分享圖片技術分享圖片技術分享圖片

linux初學者-NFS網絡文件系統篇