集群搭建 NFS

2021-09-24 09:27:22 字數 4924 閱讀 5047

nfs介紹

nfsnetwork 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/exports
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)

5. 建立共享目錄
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 . 檢查服務端的nfs
showmount -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 目的 在嵌入式的交叉編譯環...