儲存伺服器 nfs

2021-10-02 05:30:11 字數 4695 閱讀 5529

nfs是 network file system 的縮寫, 中文意思是網路檔案系統, 主要功能是通過網路(一般是區域網)讓不同的主機系統之間可以共享檔案或目錄

總結: 沒有nfs共享儲存時, 實現資料統一儲存會非常複雜

nfs的工作原理是使用客戶端/伺服器架構, 由乙個客戶端程式和伺服器程式組成. 伺服器程式向其他計算機提供對檔案系統的訪問, 其過程稱為輸出. nfs客戶端程式對共享檔案系統進行訪問時, 把它們從nfs伺服器中「輸送」出來. 檔案通常以塊為單位進行傳輸. 其大小是8kb(雖然它可能會將操作分成更小尺寸的分片). nfs傳輸協議用於伺服器和客戶機之間檔案訪問和共享的通訊,從而使客戶機遠端地訪問儲存在儲存裝置上的資料

a 在儲存客戶端建立本地儲存資料目錄

b 在儲存服務端建立共享儲存資料目錄

c 實現客戶端目錄和儲存目錄建立掛載

客戶端目錄中運算元據等價於儲存伺服器目錄中運算元據

1) 實現資料統一儲存

2) 節省磁碟購買成本

第一步: 安裝軟體程式
yum install -y rpcbind nfs-utils

rpm -qa rpcbind

rpcbind-0.2.0-48.el7.x86_64

rpm -qa nfs-utils

nfs-utils-1.3.0-0.65.el7.x86_64

第二步: 編寫配置檔案
vim /etc/exports

/data web*(rw)

配置檔案樣例

/projects		proj*.local.domain(rw)

/usr *.local.domain(ro) @trusted(rw)

① ② ③

① 設定定義資料儲存目錄

② 定義允許哪些主機儲存資料

1.定義網段資訊 2.定義位址資訊 3.定義主機名稱資訊

③ 定義儲存資料引數

第三步: 建立儲存目錄
mkdir /data

chown nfsnobody.nfsnobody /data

第四步: 編寫本地解析配置檔案 ( 本步驟視情況而配置 )
vim /etc/hosts

172.16.1.7 web01

172.16.1.8 web02

172.16.1.9 web03

注:

如果 /etc/exprots 配置檔案中定義的主機名則需要進行編寫本地解析配置檔案

第五步: 啟動服務程式

systemctl restart rpcbind

systemctl enable rpcbind

systemctl restart nfs

systemctl enable nfs

第一步: 安裝軟體程式
yum install -y  nfs-utils
第二步: 掛載應用儲存服務
mount -t nfs 172.16.1.31:/data  /mnt

df -h

172.16.1.31:/data 98g 1.7g 97g 2% /mnt

rw		--- 是否允許向儲存目錄中儲存資料  儲存目錄可讀可寫

ro --- 是否允許向儲存目錄中儲存資料 儲存目錄唯讀狀態

async --- 非同步傳輸資料 客戶端(儲存資料) ---- 服務端 (記憶體) ---> 服務端(磁碟)

sync --- 同步傳輸資料 客戶端(儲存資料) ---- 服務端 (磁碟)

root_squash --- 是否將使用者資訊做對映轉換 將root使用者身份進行轉換 (預設轉換使用者nfsnobody)

no_root_squash --- 是否將使用者資訊做對映轉換 將root使用者身份不做轉換

all_squash --- 是否將使用者資訊做對映轉換 將普通使用者身份進行轉換 (預設轉換使用者nfsnobody)

no_all_squash --- 是否將使用者資訊做對映轉換 將普通使用者身份不做轉換

anonuid --- 指定對映使用者身份資訊(uid 數值)

anongid --- 指定對映使用者身份資訊(gid 數值)

總結

配置儲存服務常用引數: root_squash,no_all_squash,anonuid=***,anongid=***

cat /var/lib/nfs/etab	--- 記錄nfs服務預設配置資訊

rpcinfo		--- 檢視nfs服務註冊資訊

rpcinfo -p 172.16.1.31

showmount --- 檢視可用掛載目錄資訊

showmount -e 172.16.1.31

exportfs --- 管理nfs服務執行狀態

exportfs -rv

臨時掛載操作

永久掛載操作

方法一: 利用/etc/rc.local 

方法二: 利用/etc/fstab

172.16.1.31:/data /mnt nfs defaults 0 0

cat /proc/mounts

172.16.1.31:/data /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0

mount -o 掛載引數

rsize 提示資料儲存效率,減緩儲存伺服器壓力 在客戶端記憶體中設定了快取

wsize 提公升資料讀取效率,減緩儲存伺服器壓力 在客戶端記憶體中設定了緩衝

hard 實現長連線掛載操作 (對於架構而言,配置hard容易造成耦合度過程) 架構師

soft 實現長連線掛載操作(具有超時時間timeo=600) (對於架構而言,配置soft可以實現解耦) 架構師

atime 訪問儲存資料時,會消耗磁碟io, 影響磁碟效能

noatime 訪問儲存資料時,不要更改atime屬性資訊, 不會消耗磁碟io, 減少磁碟效能消耗 優化

diratime 訪問儲存目錄時,會消耗磁碟io, 影響磁碟效能

nodiratime 訪問儲存目錄時,不要更改目錄atime屬性資訊, 不會消耗磁碟io, 減少磁碟效能消耗 優化

1)儲存服務端配置檔案引數沒有設定正確

2) 儲存服務端儲存目錄本身許可權配置問題

3)儲存客戶端掛載引數配置問題

4)儲存目錄許可權繼承關係 ( 服務端配置檔案中不要有目錄層級配置 )

棄用nfs案例: 如何解決nfs服務單點故障

讀取資料時: 棄用nfs服務 ( 將儲存資料和web伺服器資料做同步), 讓使用者讀取web伺服器本地資料

寫入資料時: 棄用nfs服務 ( 寫入資料到本地 將資料進行恢復同步), 讓使用者寫入web伺服器本地資料

分布式儲存

a主機 新的資料  -實時同步- b主機 資料備份

如何實現資料實時同步:

1)發現資料變化 inotify(監控軟體)

2)進行資料備份 rsync\

第乙個歷程:按照監控資料變化軟體
yum install -y inotify-tools
注: 確認 epel 源可以正常使用

第二個歷程:監控命令使用

/usr/bin/inotifywait	--- 監控資料變化命令

/usr/bin/inotifywatch --- 統計資料變化次數 新增 刪除 修改

inotifywait 引數 目錄

永久監控目錄中資料變化: inotifywait -m 目錄

-m|--monitor keep listening for events forever.

保持永久監控

實現目錄中資料遞迴監控: inotifywait -rm 目錄

-r|--recursive watch directories recursively.

監控目錄中子目錄資料變化

利用指令碼實現實時同步: inotifywait + rsync利用實時同步軟體實現: sersync

nfs伺服器共享儲存

nfs的使用 主機 192.168.189.129 備份機 192.168.189.130 詳解見 公社詳解nfs共享儲存服務 實驗操作 準備一台伺服器當儲存伺服器,在其上部署nfs 192.168.189.129 yum y install rpcbind nfs utils開啟服務,並在主伺服器...

3 1儲存伺服器 NFS服務端安裝

1.簡介 2.檢視nfs軟體包是否已經安裝 rpm aq nfs utils rpcbind 3.安裝nfs4.啟動nfs服務5.配置開機自啟動6.nfs程序檢視7.服務端配置8.配置引數說明 引數名稱 引數用途 rwread write,表示可讀寫許可權 roread only,表示唯讀許可權 s...

nfs伺服器配置

nfs伺服器可以讓linux作業系統之間資料的傳送,比如你跑有linux系統的開發板和你linux電腦間資料傳送 在 etc exports 檔案中加一句話 nfs ser 192.168.0.rw,no root squash 儲存退出 nfs ser 其他linux機器 比如你的開發板 訪問的資...