1. 前言mysql
爲何要使用集中存儲? 使用集中存儲有個很大的優點是數據安全和統一管理,和集羣完美配合。 產品集成存儲經歷過幾個階段:nginx
1.單機本機存儲。 系統使用本地硬盤存儲sql
2.單網絡集中存儲。 局域網主機使用同一網絡內的磁盤陣列存儲單元docker
3.分佈式集羣本地存儲。 集羣節點使用本身本地硬盤存儲。安全
4.分佈式集羣集中存儲。集羣節點使用集中存儲(其背後能夠是單一存儲也能夠是分佈式存儲,集中存儲至關於一個代理入口)服務器
其中雲計算用的最多的是 3,4 這幾個。主要適應於網絡架構的分佈式設計和基本雲計算存儲,如多機房,多地存儲。使用集中存儲給運維帶來的最大網絡
優點就是核心數據保存,不怕應用崩潰,各類docker容器均可以隨時拋棄,重建。不用擔憂數據問題。架構
2. Rancher中使用集中存儲NFS運維
Rancher對Docker集羣的管理已是很是方便,默認是沒有加載共享存儲的,咱們這裏使用RancherNFS插件來實現一個統一的存儲,分佈式
固然也能夠選擇其餘的插件,目前官方只有這一個,其餘非官方的如CephFS,FastDfs等請自行添加插件或自寫插件來實現。在此不作過多解讀
點擊Rancher應用商店,搜索nfs,找到官方插件並添加
填寫主機地址:IP
目錄: 建議不要填 / 而是指向NFS服務器存儲的一個目錄
ON_Remove: Purge: 刪除映射目錄時會刪除NFS遠程對應的數據 Retain:不刪除遠程數據
點「啓動」便可 ,Rancher會在各個宿主機上面添加NFS驅動
查看NFS驅動,每一個宿主機都已啓動完畢
使用NFS:
咱們在添加服務的時候, 能夠配置下卷 name:/容器對應目錄
填 logs:/opt/logs 會對應遠程NFS裏面 新建的 logs目錄
若是填 /logs:/opt/logs 則是經常使用的卷映射,會寫入宿主機本地的/logs目錄
驅動填寫默認的 rancher-nfs
這樣 容器裏面讀寫的文件就直接操做遠程Nfs服務器了
查看效果:
啓動應用後,容器的日誌已經輸出到NFS裏面了。
用途及注意事項:
主要是針對日誌類的,能夠統一作日誌蒐集。
針對於數據持久化的,如MySQL數據 能夠 經過映射 mysql/data:/var/lib/mysql 把數據集中存儲到NFS上
注意:1. 集中存儲要考慮到同時讀寫的問題,即Lock。 有的程序沒法同用一套數據,這時候要考慮到單獨讀寫或放到多個變量子目錄
如MySQL沒法同時起2個實例讀寫一套數據。
2. NFS插件還有不完善的地方, 如只能映射目錄,沒法映射文件 ,咱們經常使用的 -v /nginx.conf:/nginx.conf 就沒法使用了。
3. 多NFS服務器配置,沒法從UI界面添加, 只能從YML文件來處理。
4. 集中存儲必定要考慮速度問題,畢竟網絡傳輸沒有本地傳輸速度快,儘可能選擇公有云/私有云網絡是走光纖通道的。儘可能不要跨地域傳輸,如深圳的使用上海的NFS服務器
5. 儘量使用可靠性有保障的存儲,畢竟服務器,容器神碼的均可以丟棄,數據是要絕對安全的。推薦阿里雲的NFS服務,能夠保障9個9的安全性。