?
說明:本文是基于CentOS 6.3版本,5系列版本請另行參照其他文檔
一、安裝NFS對應的服務
1.安裝NFS 套件
? ?首先安裝NFS套件,命令如下:
yum?install?nfs-utils.x86_64(64位系統)
yum?install?nfs-utils(32位系統)
2.安裝RPC服務(注①)
yum?install?rpcbind(centos6)
centos 6、?
二、啟動NFS
1.啟動RPC服務
Service rpcbind start
2.啟動NFS服務
Service nfs start
?
三、配置NFS服務器端
1.設置共享目錄
? 建立共享目錄或者使用已有的目錄,本文創建/data/nfsshare作為共享目錄。
centos7安裝nfs????? 返回到根目錄 CD /
???? 創建目錄 mkdir –p /data/nfsshare??????? -p 的意思是父文件夾不存在就創建
?
2.編輯/etc/exports文件
?a) #vi /etc/exports ?注②
?b)按一下鍵盤 【i】 鍵進入編輯狀態
centos6掛載硬盤、?c)輸入nfs地址,具體命令格式:[目錄路徑]…? [目標主機名或IP地址(參數…)]…
例子:
/data/nfsshare ?10.10.225.*(rw,all_squash,anonuid=504,anongid=504)注③
[共享目錄]?? [第一臺主機(權限)]
?
centos安裝nfs、? d)保存文件,按【esc】鍵輸入【:w】保存
? e)退出vi,輸入【:q】退出Vi
3.重新加載exports文件
輸入exportfs –rv命令??? 注④
?
4.查看本機發布的nfs目錄
showmount –e 注⑤
centos磁盤分區,?
四、設置客戶端
1.查看可掛載的目錄
? showmount –e ip
?
2.掛載服務器目錄
? mount –t nfs –o nolock [主機名或IP]:[服務端目錄路徑] [客戶端目錄路徑]
?例子:
centos nfs、mount –t nfs –o nolock
10.10.225.178:/data/nfsshare? /data/clientshare
?
五、進行測試
在服務器的共享目錄里面建立一個文件,查看一下客戶端是否存在
?
問題:
1. RPC: Port mapper failure - RPC: Unable to receive
centos6.6、iptable沒關,把portmap的端口給阻擋了,禁用,service iptables? stop,一切OK!
?
2. mount.nfs:access denied by server while mounting
查看NFS Server端的/etc/exports文件設置是否有問題。
?
3.NFS客戶端不能寫文件問題
?? 是因為服務器端沒有設置NFS 共享目錄的讀寫權限,使用chmod進行更改文件夾的權限即可。
注解:
注① 為什么要安裝RPC(Remote Procedure Call)
centos7搭建nfs詳細步驟、因為NFS支持的功能相當的多,而不同的功能都會使用不同的程序來啟動,每啟動一個功能就會隨機啟動一些沒有被占用并且小于1024的端口來傳輸資料,因為NFS支持的功能沒有固定的端口。
這樣的話,就需要一個服務來獲得對應的端口號,而這個服務就是RPC服務。因為服務器在啟動NFS時會把隨機取得的端口主動注冊到RPC服務中,因此RPC就可以知道每個NFS功能對應的端口號,并且RPC服務是固定端口號111。
?這也就間接要求RPC服務必須先于NFS服務啟動。
詳見:【鳥哥的 Linux 私房菜------第十三章、檔案伺服器之一:NFS 伺服器】
http://linux.vbird.org/linux_server/0330nfs.php
centos7 nfs搭建、?
注② Vi的簡單操作
Vi有三種模式:命令模式、插入模式、底行模式。畫面啟動的時候就是命令模式,這個時候只能輸入各種命令,而不能進行輸入,所以需要按【i】鍵進入到插入模式,進行輸入文本,然后在按【Esc】鍵退出插入模式,進入命令模式。輸入:qw進行保存退出。
注③ 權限參數
參數值 | 內容說明 |
rw ro | 目錄分享權限是可讀寫(read-write)或者只讀(read-only),但最終能否讀寫還是與檔案系統的rwx以及身份相關 |
sync async | sync 資料會同步寫入內存和硬盤中, async 資料會先存入內存中,而不是直接寫入硬盤。 |
no_root_squash root_squash | 客戶端使用NFS的賬號若為root時,系統如何判斷這個賬號的身份? 默認情況下,客戶端root的身份由root_squash設定縮減為nfsnobody,這樣才能保證服務器系統的安全。 但若想開放客戶端的root身份來操作服務器檔案系統,就需要設置no_root_squash |
all_squash | 無論登入NFS的客戶端身份是什么,都會被縮減為匿名使用者,也就是nobody(nfsnobody) |
anonuid anongid | anon 代表anonymous (匿名用戶),前面關于*_squash提到的匿名用戶的UID設定值,通常為nobody(nfsnobody),但是你也可以自行設定這個UID的值!當然,這個UID必須存在你的/etc/passwd當中!anongid 則是群組的GID。 |
?
?
注④ Exportfs命令
Exportfs命令是使得本地目錄可以被NFS客戶端進行安裝,默認使用/etc/exports文件進行導出一個或者多個目錄。
參數:
?–r?? 重新讀取etc/exports文件中的設置,并使設置生效,而無需重啟NFS服務???? -v??? 顯示當前共享目錄及詳細的選項設置
? 其它具體設置,請參照exportfs的命令詳解。
?
注⑤ 用戶端查詢服務器分享資源的指令:/usr/sbin/showmount
這是另一個重要的NFS指令。exportfs是用于在NFS Server端進行設置,查詢的。而showmount則主要用于Client端,用于查看NFS分享出來的目錄資源。
-e?? 顯示導出服務器上的所有文件系統。
-a?? 顯示每個已安裝在服務器上的所有網絡文件系統 (NFS) 客戶端和目錄。
-d?? 顯示當前裝載 NFS 客戶端的服務器上的所有目錄。