A. linux 環境下搭建NFS服務
NFS(Network File System),網路文件存儲系統,它最早是由 Sun 公司開發的,也是 FreeBSD 支持的文件系統中的一個,它允許網路中的計算機之間通過TCP/IP 網路共享資源。通過 NFS 協議,我們本地 NFS 的客戶端應用可以透明的讀寫位於服務端 NFS 伺服器上的文件,就像訪問本地文件一樣方便。簡單的理解,NFS 就是可以透過網路,讓不同的主機,不同的操作系統可以共享存儲的服務。
NFS 在文件傳送或信息傳送過程中依賴 RPC(Remote Procere Call)協議,即遠程過程調用,NFS的各項功能都必須向 RPC 來注冊,如此一來 RPC 才能了解 NFS 這服務的各項功能 Port,PID,NFS 在伺服器所監聽的 IP 等,而客戶端才能透過 RPC 的詢問找到正確對應的埠,所以 NFS 必須要有 RPC 存在是才能成功的提供服務,簡單的理解二者關系:NFS 是一個文件存儲系統,而 RPC 是負責信息的傳輸。
通過上面的簡介,我們知道 NFS 服務需要依賴 RPC 服務,所以這里 NFS 服務端需要安裝 rpcbind 和 nfs-utils ,客戶端只需要安裝 nfs-utils 即可,由於我們選用 CentOS 系統,所以可以使用 yum 快速的安裝。
然後安裝 NFS 服務
另:Ubuntu 16.04 安裝命令
我們在服務端創建一個共享目錄 /data/share ,作為客戶端掛載在遠端入口,然後設置許可權
然後,修改 NFS 配置文件 /etx/exports
說明一下,這里配置後邊有很多參數,每個參數有不同的含義,具體可以參考下邊。此處,我配置了將 /data/share 文件目錄設置為允許IP為 192.168.0.0/24 區間的客戶端掛載。然後,如果客戶端IP不在該區間也想要掛載的話,可以設置IP區間更大或者設置為 * 即允許所有客戶端掛載,例如: /home *(ro, sync,insecure,no_root_squash) 設置 /home 目錄允許所有客戶端只讀掛載。
接下來,我們先啟動 RPC 服務
我們發現,啟動了 NFS 服務後,RPC 注冊的埠列表明顯增多。現在服務端都啟動起來了,在服務端看下是否正確載入了設置的 /etc/exports 配置
最後,在另一台Linux虛擬機上測試一下,是否能夠正確掛載。首先,我們可以在客戶端查看下NFS服務端設置可共享的目錄信息
然後,在客戶端創建掛載目錄/share
最後,掛載遠端目錄到本地 /share 目錄
可以看到,可以正確將遠端 NFS 目錄掛載到本地。注意:掛載點 /share 目錄必須已經存在,而且目錄中沒有文件或子目錄
最後,我們在 NFS 服務端 /data/share 目錄下創建一個文件,看下客戶端能否正確讀取並修改
都可以了,這里因為上面設置了 NFS 遠端目錄許可權為 rw 擁有讀寫許可權,如果設置為 ro ,那麼客戶端只能讀取,不能寫入。根據實際應用場景合理配置。
NFS 默認使用 UDP協議進行掛載,為了提供 NFS 的穩定性,可以使用 TCP 協議掛載,那麼客戶端掛載命令如下:
最後,卸載命令
B. linux下nfs服務允許所有用戶訪問如何做
在/etc/exports中加上一句
/mnt/share *(ro,async,no_root_squash,nohide)
然後執行
exportfs -rv
上面括弧上中的ro為只讀,如果為rw的話,就是讀寫許可權
C. LINUX怎樣安裝和使用NFS服務
舉例,有台機器叫AAA,想把自己機器根下的一個叫abc的目錄極其裡面的所有文件都共享給一台叫BBB的機器。
在這里AAA就可看成是伺服器,BBB為客戶端,方法如下:
(在AAA上先配置)
1.
vi /etc/exports
(用vi編輯器打開共享資源,在裡面填寫共享的屬性,linux下nfs的共享資源路徑為etc下的exports)
打開編輯器後,裡面可能什麼都沒有,需要自己填寫,然後保存即可,在這里填寫
2.
/abc BBB(ro)
之後按Esc停止文字錄入,然後按Shift+;鍵,在出來的冒號後輸入wq,表示保存退出!
(這個的格式是這樣的:先給出要共享的路徑,然後空格,後面寫共享給誰,可以是IP地址或主機名。再後面的括弧里表示以什麼方式來共享,ro是客戶端只能讀,如果想讓客戶端可以改,可設為rw,即可讀寫)
D. linux掛載aixnfs沒有寫許可權
應該是文件系統的許可權不正確引起的。此時,請檢查AIX NFS伺服器上的文件系統的許可權設置,確保Linux主機有讀寫許可權,或者執行mount -o remount命令將Linux掛載後的文件系統重新掛載一次,這樣就能夠獲得寫操作的許可權。