LINUX伺服器配置NFS服務,掛載外部儲存實現目錄共享
安裝nfs rpcbind
一、服務端配置
安裝 NFS 伺服器所需的軟體包:nfs 和 rpcbind
# yum install nfs-utils
# yum install rpcbind(預設系統已安裝)
設定啟動
# chkconfig nfs on
# chkconfig rpcbind on
啟動NFS服務
1)先啟動rpcbind service rpcbind start
2)再啟動nfs service nfs start
配置伺服器端共享目錄
1)編輯配置檔案
假設服務端 目錄為/home/data
# vi /etc/exports
格式:
要共享的目錄(使用絕對路徑) 客戶端主機IP......(可多個IP,之間空格隔開)
/home/data 10.1.0.2(rw,sync,all_squash,anonuid=0,anongid=1000) 10.1.0.3(rw,sync,all_squash,anonuid=0,anongid=1000)
括號裡的引數:
rw:read-write,可讀寫;
ro:read-only,只讀;
sync:檔案同時寫入硬碟和記憶體;
async:檔案暫存於記憶體,而不是直接寫入硬碟;
no_root_squash:NFS客戶端連線服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,也擁有root許可權。顯然開啟這項是不安全的。
root_squash:NFS客戶端連線服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,擁有匿名使用者許可權,通常他將使用nobody或nfsnobody身份;
all_squash:不論NFS客戶端連線服務端時使用什麼使用者,對服務端分享的目錄來說都是擁有匿名使用者許可權;
anonuid:匿名使用者的UID值,通常是nobody或nfsnobody,可以在此處自行設定;
anongid:匿名使用者的GID值。
其它選項
secure 限制客戶端只能從小於1024的tcp/ip埠連線nfs伺服器(預設設定);
insecure 允許客戶端從大於1024的tcp/ip埠連線伺服器;
sync 將資料同步寫入記憶體緩衝區與磁碟中,效率低,但可以保證資料的一致性;
async 將資料先儲存在記憶體緩衝區中,必要時才寫入磁碟;
wdelay 檢查是否有相關的寫操作,如果有則將這些寫操作 一起執行,這樣可以提高效率(預設設定);
no_wdelay 若有寫操作則立即執行,應與sync配合使用;
subtree 若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的許可權(預設設定);
no_subtree 即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,這樣可以提高效率;
2)載入配置檔案
exportfs 引數
引數:
-a 全部掛載/etc/exports 檔案內的設定
-r: 重新掛載/etc/exports中的設定,此外同步更新/etc/exports 及 var/lib/nfs/xtab中的內容。
-u:解除安裝某一目錄
-v:在export時將共享的目錄顯示在螢幕上。
3)配置伺服器端防火牆
開啟服務端防火牆埠2049
# vi /etc/sysconfig/iptables
新增一行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT 儲存退出
# /etc/init.d/iptables restart 重啟生效
二、客戶端配置
同服務端一樣安裝nfs和rpcbind服務 並啟動 開啟2049埠
使用monut 命令進行掛載
假設客戶端要掛載的目錄為/home/client 服務端IP為10.1.0.1
mount -t nfs 10.0.1.1:/home/server /home/client
umount -a 取消所有掛載