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機器 比如你的開發板 訪問的資...