在linux中,nfs是指“網路檔案系統”,是能使用戶存取伺服器的檔案系統;它可以將遠端的磁碟掛載到本地,當作本地磁碟使用。透過NFS,使用者和程式可像存取本機檔案一樣存取遠端系統的檔案;NFS採用C/S架構,服務端需開啟TCP2049連接埠。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
NFS是Network File System(網路檔案系統),是能讓使用者存取伺服器的檔案系統。主要功能是透過網路讓不同的伺服器之間可以共用檔案或目錄。
NFS是一種可以將遠端的磁碟掛載到本機,當作本機磁碟所使用的技術。透過NFS,使用者和程式可以像存取本機檔案一樣存取遠端系統上的檔案。
NFS採用C/S架構,服務端開啟TCP2049埠等待客戶端連線。
在NFS安裝時,由於NFS是基於rpcbind,因此在安裝NFS時,需要先安裝rpcbind,NFS服務安裝指令為:
yum install -y rpcbind nfs-utils
同樣的,在啟動時,也是先啟動rpcbind,再啟動NFS,相關命令如下:
systemctl start rpcbind systemctl start nfs-utils
NFS服務啟動後,會監聽本地2049端口,如下所示:
要進行NFS的設置,首先需要在服務端配置允許掛載的客戶端IP位址和權限,需要開啟/etc/exports文件,在文件中寫入:
/nfs 192.168.136.101(rw)
其中,前面的/nfs表示允許掛載的目錄,後面的192.168.136.101表示允許掛載的客戶端,也可以用*表示允許任意主機進行掛載,rw表示掛載的權限是讀寫權限。
除了rw權限外,其他常用的權限有:
1、ro——表示唯讀權限
2、sync——表示資料同步寫入到記憶體和磁碟中
3、async ——表示資料先存於記憶體中,而非直接寫入磁碟
4、secure——表示NFS在傳輸檔案時使用1024以下的連接埠
5、insecure——表示NFS在傳輸檔案時使用1024以上的連接埠
6、all_squash——表示檔案的UID和GID為anonymous,適合共享目錄配置
7、no_all_suash——表示保留檔案的UID和GID
在完成上述操作後,需要執行指令:
exportfs -rv
進行重新讀取NFS的設定檔。
接下來,在客戶端上,執行掛載指令:
showmount -e 192.168.136.210mount 192.168.136.210/nfs /media
就可以成功掛載文件,掛載成功後,執行指令df -h查看掛載結果,如下所示:
注意:在進行掛載操作之前,必須關閉服務端的防火牆!否則掛載會失敗。
但是,這樣雖然可以成功掛載,並且在服務配置上有讀寫權限,但是在實際操作中,可能在客戶端並沒有對掛載目錄的寫入權限,這是因為在服務端系統中還存在一個權限檢查的問題。由於NFS服務預設是由使用者nfsnobody運行的,而如果該使用者對/nfs目錄並沒有寫權限的話,客戶端就也不能對該目錄進行寫如操作,因此,我們需要授予nfsnobody使用者寫的權限,如:
chonw nfsnobody.nfsnobody -R /nfs
這樣,我們就可以像本地掛載一樣,使用NFS檔案系統了。
在上述實戰中,我們雖然可以進行NFS的掛載,並完成了預期的效果,但是在實戰場景中,為了提升NFS的讀寫速度,我們不會使用如下的mount指令:
mount -t nfs -o noatime,nodiratime,rsize=131072,wsize=131072,intr 192.168.126.210:/nfs /media
在上述指令中,-t參數表示指定掛載的目標檔案系統為nfs,noatime表示取消更新檔案系統上的inode存取時間,nodirtime表示取消更新檔案系統上的directory inode存取時間,在高並發環境下可以使用這兩個選項以提升系統效能,rsize和wsizei表示讀取和寫入的區塊的大小,這個設定值UID影響客戶端和伺服器寫入資料的緩衝儲存量,在裝置效能較高的情況下,可以將該值設定的大一些,以提升NFS系統進行檔案傳輸的能力。
相關推薦:《Linux影片教學》
以上是linux nfs是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!