ref: https://medium.com/swlh/quick-fix-sharing-persistent-disks-on-multiple-nodes-in-kubernetes-ef5541fd8376
這篇文章是 kubernetes 與 Storage 整合的經驗分享文,該文章包括了下列內容
Cloud Storage, NFS, Kubernetes, PV/PVC.
Kubernetes 內針對這些儲存相關的使用方式有
1. 使用 ephemeral 的儲存設備
ephemeral 只適合暫存資料使用,因為該儲存設備不是持久保存的,這意味 Container 如果重啟,資料就會消失。
2. 使用 Bind Mount 的方式將資料從節點掛載到容器中
就如同過往使用 Docker 時會使用 -v 的方式將同節點中的儲存目錄給掛載到容器中來使用。
基本上有任何永久性儲存的需求都會採用(2) 這個方式來處理,而目前很多 Cloud Provider 都有提供相關的儲存裝置讓你的 VM(k8s Node)
可以輕鬆存取與使用。
舉例來說,AWS 有 EBS, GCP 有 GPD,這類型的 Block Storage Device 本身支援動態掛載與卸載,所以就算 Kubernetes 將目標 Container 重新部署到
不同節點上也不需要擔心資料會不同,因為這些 Storage 可以隨者不同節點動態掛載上去,讓你的 Container 看到相同的資料。
但是以上兩個裝置都有一個限制,就是並不支援同時多人寫入的動作,於 Kubernetes 只能使用 Read/Write 模式。
這意味每個 Storage 同時只能有一個 Container 去進行讀寫操作(but Azure 的服務就沒有這個限制)
作者假設今天有一個服務底層是由三個元件組成,這些元件會需要針對相同一個資料集一起處理。
舉例來說有服務 A,B,C
A: 將資料寫入到儲存系統中
B: 從儲存系統中讀入資料進行二次處理,處理完畢再寫回去儲存系統中
C: 將資料從儲存系統中讀出並且供外部使用
上述情境簡單說就是一個儲存設備,會有三個服務同時想要讀取,一個專心寫,一個同時讀寫,一個專心讀。
這種需求就沒有辦法單純使用 EBS/GPD等裝置來使用,因此作者接下來就會針對如何使用 NFS 這套網路儲存系統來搭建一個符合上述需求的用法。
該解決方案流程如下
1) 透過 EBS/GPD 的方式掛載一個儲存空間到 k8s 節點中
2) 部署一個 NFS Server 的容器到 Kubernetes 中,該 NFS Server 會使用 EBS/GPD 作為其儲存空間的來源
3) NFS Server 透過 service 分享服務
4) 部署 PV/PVC 物件到 Kubernetes 中
5) A,B,C 三種容器透過 PVC 的方式來存取 NFS Server
因為 NFS 本身就是一個可多重讀寫的解決方案,作者透過這種方式讓多個應用程式可以同時讀寫,同時將這些資料保存到 EBS/GPD 的儲存空間中。
不過這種用法帶來的問題可能就是速度問題,從同節點直接存取變成透過網路存取,所以如果本身對於存取有非常高的頻寬需求時,使用這種解決方案也許會遇到
很難解決的瓶頸,畢竟大部分人的 k8s 叢集都是 data/control 兩種資料交雜於底層的網路架構中,沒有辦法將 data plane/control plane 給分開來。
有興趣看作者如何一步一步搞定上述流程的可以參考全文
「nfs server」的推薦目錄:
- 關於nfs server 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於nfs server 在 OSSLab Geek Lab Facebook 的最佳解答
- 關於nfs server 在 OSSLab Geek Lab Facebook 的精選貼文
- 關於nfs server 在 kubernetes-sigs/nfs-ganesha-server-and-external-provisioner 的評價
- 關於nfs server 在 Configure NFS Share Windows Server 2016! - YouTube 的評價
- 關於nfs server 在 [Kubernetes] 設定StorageClass (以NFS 為例) | 小信豬的原始部落 的評價
nfs server 在 OSSLab Geek Lab Facebook 的最佳解答
企業級軟體式存儲SDS介紹 (二)免費的vSAN :EMC ScaleIO
其實還要再說一次Hyper Converged架構就是 盡量利用本機Storage而
不需要昂貴的Share Storage.(SAN,iSCSI,NFS Storage)
像vSAN就是典型Hyper Converged架構,而 Sacle IO 是目前非商業使用免費的vSAN ,也可以搭配其他Hypervisor(HyperV,KVM,XEN)
跟vSAN 一樣,ScaleIO最小node也為三點(三台Server) 但是最大node 1024 猛甩掉了 vSAN 32 node.
ScaleIO跟ceph 一樣 .非常強調越多node,性能可以推的更上去.
ScaleIO 跟vSphere整合性不錯,有vCenter Plugin,
還準備了VM特製驅動(VM與Lun掛載是使用iSCSI協議, 但vSphere 顯示Raw disk為EMC Fibre Channel disk 這方面表示驅動應該有優化過)
另外Host Ram Cache ,vSAN 可是到6.2才有.ScaloIO很早就有了
開啟後FIO可以跑2x萬iops
其他:Tiers Storage,Snapshot, Fault Set,Quality of Service (QoS) 基本上SDS該有的都有
價格:
Internal Business Purposes 非商業使用不用錢
真實報價不知
介紹
https://www.ithome.com.tw/review/96775
安裝跟操作(大推)
http://www.netadmin.com.tw/article_content.aspx…
http://www.netadmin.com.tw/article_content.aspx…
下載
https://store.emc.com/…/Dell…/p/EMC-ScaleIO-Elastic-Storage…
架構
https://www.emc.com/…/h14344-emc-scaleio-basic-architecture…
最後一說 CEPH vs Scaleio 測試結果挺有趣的
https://juliocal.wordpress.com/…/storage-parallelism-opens…/
沒想到ScaleIO大勝
OSSLab Geek Lab
#資料救援問題解決專家
nfs server 在 OSSLab Geek Lab Facebook 的精選貼文
企業級軟體式存儲SDS介紹 (一) EMC UnityVSA
Netapp,EMC,HGST,3PAR等 這些頂級Storage 價格非常昂貴.
比起NAS大概特點在於
1.通常使用COW(連續寫入)檔案系統.
2.多node支持 ,檔案系統支持Distributed.
3.因為COW架構 可輕易實現快照, SHRINK 等功能.
4.支持VMware的VAAI、VASA、VVol
實際上 上述一線 Storage 很多都有SDS軟體版本可供選擇
拿一台電腦,Server或虛擬化環境就可以安裝
可用來
1.真實部署:但SDS版本有可能會比硬體版本功能+效能縮水.
2.學習操作 瞭解設備功能
3.資料救援應用:逆向檔系系統結構分析.
OSSLab 將會分享每家Storage技術特長 ,SDS載點
EMC UnityVSA 軟體vs Unity 硬體
服務:NFS ,iSCSI,SMB
軟體版功能省略
無法多node(這影響最大)、FAST SSD Cache、加密、同步遠端複製、整合RecoverPoint備份等幾項功能外
軟體版保留的功能
Thin Provisioning,Snapshot,非同步遠端複製,Block Device I/O效能限制,FAST VP自動分層儲存, VMware vSphere 6.0,VVols管理。
價格:
4TB 免費版 ,10TB版 US 6600.
介紹
https://www.ithome.com.tw/review/109325
下載
https://www.emc.com/p…/trial-software-download/unity-vsa.htm
手冊
https://www.emc.com/…/h15572-dell-emc-unity-nas-capabilitie…
OSSLab Geek Lab
#醫生連病人都沒看過都說能解各種絕症?
#等到資料掛了再研究只能XX
nfs server 在 [Kubernetes] 設定StorageClass (以NFS 為例) | 小信豬的原始部落 的推薦與評價
2019-05-06 更新 · NFS Provisioner:會在k8s 中啟動一個NFS server 來使用 · NFS-Client Provisioner:這部份跟下面原本介紹的相同,使用者必須先設定好 ... ... <看更多>
nfs server 在 kubernetes-sigs/nfs-ganesha-server-and-external-provisioner 的推薦與評價
nfs -ganesha-server-and-external-provisioner is an out-of-tree dynamic provisioner for Kubernetes 1.14+. You can use it to quickly & easily deploy shared storage ... ... <看更多>