1. 程式人生 > >NFS存儲服務部署(上)

NFS存儲服務部署(上)

數據同步 sys sync 請求 wid back 並且 互訪 samba


作者George

歸檔:學習筆記

2018/1/24




NFS存儲服務部署(上)

1.1 NFS服務介紹

1.1.1 什麽是NFS?

1. NFS——Network File Systemt網絡文件系統,叫稱為網絡共享文件系統

2. 作用:通過網絡(一般為局域網)讓不同主機系統之間可以共享文件

3. NFS服務和winodws系統的網絡共享很相似,但NFS無法部署在windows

4. windowslinux網絡共享使用FTPsamba,它們都支持windowslinux之間共享

5. 如大型網站,還可能用到分布式文件系統,如:moosefsmfs )、gfsfastdfs

1.1.2 什麽是文件系統?

1. 在磁盤或分區中組織管理文件的一種方式

2. 企業中:磁盤先做raid——分區——格式化(創建文件系統)——掛載使用

1.1.3 NFS在企業中的應用場景

1. 為什麽要用NFS軟件?

可以實現web集群中服務器數據一致性。

1. 因負載均衡服務器會將訪問流量分流處理,這樣不會便於用戶相互之間訪問

2. 服務器之間的數據同步雖然實現用戶互訪,但實現過程相對復雜

3. NFS服務器可以統一管理存儲用戶訪問數據,實現用戶互訪

技術分享圖片

1.1.4 共享存儲服務分類:

硬件存儲IBM oracle(收購了sunEMC (去IOE,用BAT

軟件存儲NFS mfs FTP samba

1.2 NFS系統原理

1.2.1 簡單描述NFS工作原理:

1. 部署好NFS服務,在NFS服務端創建一個video共享目錄

2. web服務器(NFS客戶端),創建一個本地video目錄,作為一個掛載點

3. web服務器通過mount命令實現網絡掛載(mount -nfs 172.16.1.41:/video),將NFS服務器上的

video目錄掛載到本地video掛載點上

4. web服務器(NFS客戶端)上在video目錄中,增刪改查的操作,都等價於在NFS服務器端video 目錄中的操作

1.2.2 NFS系統掛載結構

技術分享圖片

1.2.3 什麽是RPC

remote procedure call 遠程過程調用:端口號111

是一種通過網絡向遠程計算機上請求服務的一種協議。

1.2.4 NFS的工作流程

1. 啟動RPC服務,建立中介服務

2. 啟動NFS服務,開啟房源信息,向RPC服務進行註冊

3. RPC服務接收到NFS服務進程信息和對應端口號

4. NFS客戶端向RPC服務111端口發出請求(訪問共享目錄)

5. RPC服務響應NFS客戶端請求

6. NFS客戶端與NFS服務端共享目錄建立網絡連接,實現數據網絡存儲

下圖:用房東、中介、客戶舉例

技術分享圖片

下圖:沒有RPC的情況是這樣的,因每個服務進程對應的端口號不同,並且是隨機的,所有對於客戶端開說不知道該訪問哪個端口。

技術分享圖片

下圖:RPC服務的作用,NFS服務端的每個服務進程都會向RPC服務進程註冊,客戶端也只需訪問RPC服務的111端口即可,由RPC服務來告訴客戶端對於的服務與端口號。

技術分享圖片

1.2.5 當用戶通過掛載訪問NFS共享目錄時的工作流程

技術分享圖片

1.3 NFS網絡共享文件系統服務部署流程

1.3.1 NFS服務端部署流程

1. 檢查NFS服務相關軟件是否安裝

-qa |egrep 'rpcbind|nfs-utils'

如沒有,則yum install rpcbind nfs-utils -y 安裝一下。

2. 編寫NFS服務配置文件

vim /etc/exports

1)定義共享目錄,如下面的/data/目錄就是要共享的目錄

2)定義允許使用共享目錄的主機或網絡地址信息“24和(”之間沒有空格3)(定義共享目錄權限信息)

/data 172.16.1.0/24(rw,sync,all_squash)

保存退出

3)創建共享目錄

mkdir /data

4)授權共享目錄

系統默認有一個nfsnobody用戶

chown -R nfsnobody.nfsnobody /data

5)啟動rpcbind、nfs-utils服務

/etc/init.d/rpcbind start

/etc/init.d/rfs start

註:如果須重啟服務,使用relod重新加載配置文件

6)本地檢查測試

rpcinfo -p localhost 查看RPC服務中是否有註冊的進程服務和對應端口號

showmount -e 172.16.1.31 檢查是否有可以共享的目錄



1.3.2 NFS客戶端部署流程

1. 確認是否安裝NFS服務相關軟件

rpm -qa |egrep 'rpc|nfs'

2. 檢查局域網中是否存在共享存儲服務(目錄)

rpcinfo -p 172.16.1.31 查看RPC服務中是否有註冊的進程服務和對應端口號

showmount -e 172.16.1.31 檢查是否有可以共享的目錄

3. 實現共享目錄應用(局域網掛載)

mount -t nfs 172.16.1.31:/data/ /mnt

df -h

1.3.3 NFS服務常見進程

rpc.statd主要作用:檢查數據存儲的一致性

rpc.rquotad主要作用:控制磁盤配額

rpc.mountd主要作用:核對/etc/exports配置文件中的權限,和NFS服務器端本地文件系統權限

rpc.idpamd主要作用:實現用戶壓縮/映射(經用戶壓縮後,身份轉換為nfsnobody)


ps -ef |grep "nfs|rpc" #查看與NFS相關的進程

技術分享圖片

1.3.4 NFS服務配置文件格式說明

1. man exports 查看格式

技術分享圖片

第一段:要共享的目錄(每個目錄獨占一行)

第二段:用於哪個網段或某個主機訪問(主機:10.0.0.30,網絡:10.0.0.0/24),後面沒有空格接著寫(權限)

1.3.5 影響訪問NFS服務器的權限

1. NFS配置文件權限,中小括號內的rw權限

2. 本地文件系統權限,為了安全一般更改其屬主

1.3.6 企業生產環境常見NFS案例

技術分享圖片

1.3.7 NFS配置參數權限

1. rw參數:可讀寫

2. ro參數:只讀

/data 172.16.1.0(ro,sync,all_squash) ro權限給開發人員用於讀取配置文件,而不能修改

3. sync參數的作用:同步,保證數據的可靠性

同步異步對比:

異步:傳輸數據快、不可靠,容易丟(先存到內存中處理完後,最後在寫到硬盤)

同步:安全可靠、傳輸數據慢(先經過內存,在寫入到硬盤,在處理)

技術分享圖片

4. async參數:ups AB雙路電源

5. no_all_squash參數:所有用戶都不映射(什麽身份過來就是什麽身份)

6. all_squash參數:所有用戶都映射(成指定nfsnobody

7. root_squash參數:root用戶映射(成指定nfsnobody

8. no _root_squash參數:不對root用戶映射(進來NFS服務器後是root身份,權限 很大)

下圖說明4567參數的作用:

技術分享圖片

下圖根據不同的用戶是否進行身份壓縮的一個說明:

技術分享圖片 技術分享圖片

1.3.8 企業實戰需求:

問題 1. /data/共享目錄權限固定為www用戶管理

2. NFS配置文件中,設置了all_squash參數(全部用戶都壓縮/映射)

3. NFS客戶端可以向共享目錄存儲數據

實現過程:

1. 設置/data/目錄權限信息

chown www.www /data/

先保證有 www 用戶

2. 編寫NFS配置文件

1)先查看www用戶的uid,gid信息

id www

2)配置文件中小括號內加入www對應的uid,gid(anonuid=502,anongid=502)

/data 172.16.1.0/24(rw,sync,all_squash,anonuid=502,anongid=502)

註:anonuid和anongid參數作用:將所有訪問的用戶進來NFS服務器後映射為www用戶

1. 客戶端要有NFS配置文件anonuid和anongid指定用戶(如沒有對應的用戶,只有對應的uid也可以 訪問,但ls -l /mnt查看目錄信息時屬主會顯示為uid)

2. 所以客戶端和服務端創建的映射用戶,uid和gid信息需要保持一致(否則會權限不足)

3)重新加載nfs

/etc/init.d/nfs reload

3. 客戶端重新掛載共享目錄

1)先卸載

umount /mnt

2)再掛載

mount -t nfs 172.16.1.31:/data /mnt

4. 進程數據輸出測試

touch /mnt/kai.txt 創建測試文件查看屬主信息是否為www

ls -l /mnt/kai.txt 查看用戶屬組信息


NFS存儲服務部署(上)