nfs介紹
nfs是network file system的縮寫,即網路檔案系統。它的主要功能是通過網路(一般是區域網)讓不同的主機系統之間可以共享檔案或目錄。nfs客戶端(一般為應用伺服器,例如web)可以通過掛載(mount)的方式將nfs服務端共享的資料目錄掛載到nfs客戶端本地系統中(就是某乙個掛載點下)。從nfs客戶端本地看,nfs服務端共享的目錄就好像是客戶自己的磁碟分割槽或者目錄一樣,而實際上確是遠端的nfs服務端的目錄。
nfs服務端搭建
1. 檢查並安裝nfs
# 檢視
rpm -aq nfs-utils rpcbind
# 安裝
yum install nfs-utils rpcbind -y
2. 啟動rpc及nfs服務並檢查# centos6啟動方法
/etc/init.d/rpcbind start
/etc/init.d/nfs start
# centos7啟動方法
systemctl start rpcbind.service
systemctl start nfs.service
# 檢視rpc是否啟動成功
netstat -lntup|grep rpc
# 檢視rpc監控資訊
rpcinfo -p localhost
必須先啟動rpcbind服務,後啟動nfs服務,因為rpcbind服務啟動之後,監控nfs服務
3. 設定開機自啟動並檢查
# centos6
chkconfig rpcbind on
chkconfig nfs on
# centos6檢查方式
chkconfig --list nfs
chkconfig --list rpcbind
# centos7
systemctl enable rpcbind
systemctl enable nfs
# centos7檢查方式
systemctl list-unit-files|grep enabled
4 配置/etc/exports5. 建立共享目錄cat >>/etc/exports<nfs配置檔案的格式
1 nfs共享的目錄 nfs客戶端位址(參1,參2,……) nfs客戶端位址2(參1,參2,……)
2 nfs共享的目錄 nfs客戶端位址(參1,參2,……)
上述各列引數的含義:
nfs共享的目錄:為nfs服務端要共享的實際目錄,要用絕對路徑如(/data)。注意共享目錄的本地許可權,如果需要讀寫共享,一定要讓本地目錄可以被nfs客戶端的使用者(nfsnobody)讀寫。
/etc/exports配置檔案格式書寫詳細表
常用格式說明
例項
案例1/data 172.16.1.0/24(rw,sync) 允許客戶端讀寫,並且資料同步寫到伺服器的磁碟裡
案例2/data 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888) 允許客戶端讀寫,並且資料同步寫到伺服器的磁碟裡,並且指定客戶端的uid和gid,早期生產環境中的一種配置,適合多客戶端共享乙個nfs單目錄,如果所有伺服器的nfsnodoby賬戶的uid相同,則本案例就沒什麼意義了
案例3/data 172.16.1.0/24(ro) 唯讀共享,用途:例如在生產環境中開發人員有檢視伺服器日誌的需求,但是又不希望給開發伺服器的許可權,那麼就可以給開發提供從某個測試伺服器nfs客戶端上檢視某個生產伺服器日誌目錄(nfs共享目錄)的許可權。
為nfs服務端授權的可訪問共享目錄的nfs客戶端位址,可以為單獨的ip位址或主機名、網域名稱等,也可以為整個網段的位址,還可以用」*」來匹配所有的客戶端伺服器,這裡所謂的客戶端一般為前端的業務伺服器,例如web服務。
客戶端位址
具體位址
說明
單一客戶端訪問nfs
172.16.1.41
一般情況下,生產環境中此配置不多
整個網段訪問nfs
172.16.1.0/24
指定網段為生產環境中最常見的配置,配置簡單、維護方便
整個網段可訪問nfs
172.0.0.*
指定網段的另外寫法(不推薦使用)
某個網域名稱客戶端訪問
nfs.aisay.com
生產環境中不推薦不使用
整個網域名稱客戶端訪問
*.aisay.com
生產環境中不推薦不使用
nfs配置引數許可權
引數名稱
引數用途
rwread-write,表示可讀寫許可權
sync
請求或寫入資料時,資料同步寫入到nfs server的硬碟後才返回。資料安全不會丟,缺點,效能下降。
async
請求或寫入資料是,先返回請求,再將資料寫入到記憶體快取和硬碟中,即非同步寫入資料。此引數可以提公升nfs效能,但是會降低資料的安全。因此,一般情況下建議不用,如果nfs處於瓶頸狀態,並且執行資料丟失的話可以開啟此引數提公升nfs效能。寫入時資料會先寫到記憶體緩衝區,等硬碟有空檔再寫入磁碟,這樣可以提公升寫入效率,風險若伺服器宕機或不正常關機,會損失緩衝區中未寫入磁碟的資料(解決辦法:伺服器主機板電池或加ups不間斷電源)。(電商秒殺是非同步)
all_squash
不管訪問nfs server共享目錄的使用者身份如何,它的許可權都被壓縮成匿名使用者,同時它的uid和gid都會變成nfsnobody賬號身份。在早期多個nfs客戶端同時讀寫nfs server資料時,這個引數很有用。
anonuid
引數以anon*開頭即值anonymous匿名使用者,這個使用者的uid設定值通常為nfsnobody的uid值,當然我們也可以自行設定這個uid值。但是,uid必須存在於/etc/passwd中。在多個nfs clients時,如多台web server共享乙個nfs目錄時,通過這個引數可以使得不同的nfs clients寫入的資料對所有nfs clients保持同樣的使用者許可權,即為配置的匿名uid對應使用者許可權,這個引數很有用。
anongid
同anonuid,區別是把uid(使用者id)換成gid(組id)。
cat /var/lib/nfs/etab
# 配置檔案詳情資訊:
# /data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
mkdir /data
chowm -r nfsnobody.nfsnobody /data
6.載入nfs服務並檢查# centos6
/etc/init.d/nfs reload
# reload 即平滑啟動服務(伺服器已經連線的服務,繼續服務,直到服務完成;沒重新啟動前,沒連線的服務,不進行服務,直到服務重新開啟再進行服務)
# centos7
systemctl reload nfs.service
# 檢視
showmount -e localhost
# 結果:
# export list for localhost:
# /data 172.16.1.0/24
nfs客戶端
1. 檢查並安裝nfs
# 檢視
rpm -aq nfs-utils rpcbind
# 安裝
yum install nfs-utils rpcbind -y
2. 啟動rpc服務# centos6
/etc/init.d/rpcbind
# centos7
systemctl start rpcbind.service
3. 設定開機自啟動# centos6
chkconfig rpcbind on
# centos7
systemctl enable rpcbind
4 . 檢查服務端的nfsshowmount -e 172.16.1.31
# 出現下面結果,則成功:
# export list for 172.16.1.31:
# /data 172.16.1.0/24
5. 掛載# 掛載
mount -t nfs 172.16.1.31:/data /mnt # -t 掛載的型別
# 檢視
df -h
# 出現結果:
# 172.16.1.31:/data 17g 1.6g 16g 10% /mnt
6. 把掛載點寫的開機自啟動echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local
hadoop集群搭建之NFS服務
linux作業系統 ubuntu 12 nfs環境規劃 nfs伺服器 192.168.1.201 nfs客戶端 192.168.1.202 192.168.1.203 1.nfs伺服器安裝及配置 使用root賬號 1.1 首先檢視下本機是否安裝nfs dpkg list grep nfs 如果有安裝...
利用NFS共享搭建CTDB集群
0 環境配置 1 安裝軟體 通過yum工具安裝ctdb軟體 2 建立共享儲存 在node4建立乙個共享目錄 share,並設定許可權777,在 etc exports檔案中新增如下 share sync,rw 然後在節點4上執行如下命令 exportfs ar 注 若出現找不到exportfs命令現...
搭建nfs服務
記錄一下,留著以後用。這裡是以龍芯3210為例,其他開發板可以參考。工作環境 ubuntu 10.04 虛擬機器7.13 目標平台 龍芯3210開發板 開發包核心原始碼目錄 home linux 3210 開發包核心版本 2.6.18.1 交叉編譯工具 gcc 3.4.6 目的 在嵌入式的交叉編譯環...