Linux NFS掛載優化,inotify+rsync實時備份

查看客戶端掛載的參數

image.png

image.png

強制卸載


image.png

高併發情況下,可以通過明確加上noatime,以達到提升優化I/O性能


ro:以只讀方式掛載一個文件系統

rw:   以可寫的方式掛載一個文件系統

 

defaults(默認):這是fstab裏的默認值,包括rwsuiddevexecautonouserand async

默認情況下,都用的默認。

 

mount掛載性能優化參數選項

1、禁止更新目錄及文件時間戳掛載:

mount -t nfs -o noatime,nodiratime 172.16.1.31:/data /mnt

 

2、安全加優化的掛載方式

mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 172.16.1.31:/data /mnt

 

3、默認掛載

mount -t nfs 172.16.1.31:/data /mnt

 

如果是本地文件系統

mount /dev/sdb1 /mnt -o defaults,async,noatime,data=writeback,barrier=0


一般6.6系統可使用如下參數

mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime, rsize=131072,wsize=131072 172.16.1.31:/data /mnt

 

不過CentOS6.6默認的掛載參數性能還不錯

具體的要根據業務需要來設定

 

NFS內核優化建議(服務器端):

 

NFS內核調優;調整接收/發送套接字緩衝區大小 
cat /proc/sys/net/core/rmem_default  默認
cat /proc/sys/net/core/rmem_max    最大

 

cat /proc/sys/net/core/wmem_default  默認
cat /proc/sys/net/core/wmem_max    最大

 

上述文件對應命令如下:

cat >>/etc/sysctl.conf<<EOF

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.wmem_max = 16777216

net.core.rmem_max = 16777216

EOF

 

執行sysctl -p生效

 

企業場景NFS共享存儲優化:

1ssd,多塊,raid5/raid10。網卡至少千兆(多塊bond

2、配置文件:

image.png

all_squash 不論登入NFS的使用者身份爲何,他的身份都會被壓縮成爲匿名使用者,通常也就是nobody

anonuid 可以自行設定這個UID的值,這個UID必需要存在於你的/etc/passwd當中
anongid anonuid,但是變成groupID就是了 
sync 資料同步寫入到內存與硬盤當中 
async 資料會先暫存於內存當中,而非直接寫入硬盤 

3、客戶端掛載優化配置命令:

mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime, rsize=131072,wsize=131072 172.16.1.31:/data /mnt

兼顧性能安全

 

NFS優點:

簡單,容易上手

NFS文件系統內數據是在文件系統之上的,也就是說數據是能看得見的

部署快速,維護簡單方便,可控

可靠,從軟件層面上看,數據可靠性高

服務非常穩定

 

 

NFS侷限:

存在單點故障,如果NFS Server宕機了,都不能訪問(可通過高可用彌補)

大數據高併發場合,性能有限(2千萬/日以下PV的網站不是瓶頸)

客戶端認證是基於ip和主機名,權限要根據ID識別,安全性一般(用於內網則問題不大)

NFS數據是明文的,NFS本身不對數據完整性作驗證

多臺客戶機掛載一個NFS服務器時,連接管理維護麻煩(耦合度高),尤其NFS服務端出問題後,

所有客戶端都處於掛掉狀態(測試環境可用autofs自動掛載解決,正式環境可修復NFS或強制卸載)

 

生產場景應該多把數據的訪問往前推,儘量把靜態存儲裏的資源通過CDN或緩存服務器提供服務

 

showmount一般用於從NFS客戶端檢查NFS服務器共享目錄的情況,其常用參數如下

-e 顯示NFS服務器輸出的目錄列表

-d 顯示NFS服務器提供的共享目錄

image.png

exportfs命令

exportfs -rv 命令相當於/etc/init.d/nfs reload

exportfs -o rw,sync,all_squash,anonuid=888,anongid=888 10.0.0.0/24:/data

image.png有啥卵用???


防火牆控制

一般內網環境,不需要,如果要配置的話,兩選一

image.png

image.png

image.png

image.pngimage.png

image.png

image.png



image.png

image.png

image.png

image.png

image.png

這個源比較特殊

image.png

image.png

image.png

image.png

image.png

inotify 可以監視的文件系統常見事件包括:
IN_ACCESS:文件被訪問
IN_MODIFY:文件被修改
IN_ATTRIB,文件屬性被修改
IN_CLOSE_WRITE,以可寫方式打開的文件被關閉
IN_CLOSE_NOWRITE,以不可寫方式打開的文件被關閉
IN_OPEN,文件被打開
IN_MOVED_FROM,文件被移出監控的目錄
IN_MOVED_TO,文件被移入監控着的目錄
IN_CREATE,在監控的目錄中新建文件或子目錄
IN_DELETE,文件或目錄被刪除
IN_DELETE_SELF,自刪除,即一個可執行文件在執行時刪除自己
IN_MOVE_SELF,自移動,即一個可執行文件在執行時移動自己

 

測試創建

image.png

測試刪除

image.png

測試關閉-

image.png

測試關閉-寫時,創建也能監測

image.png


簡化輸出

image.png


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

有時重啓會失效,所以放rc.local

image.png

image.png

image.png

image.png





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章