1. 程式人生 > >再不擁抱Docker容器,你的儲存就out了!

再不擁抱Docker容器,你的儲存就out了!

以Docker為代表的容器,在人們眼中是平臺層面的技術。與屬於基礎架構層面的虛擬機器相比,容器看似與底層 儲存裝置沒有什麼必然的聯絡,甚至許多情況下使用本地儲存就可以了。那麼Docker到底有沒有 企業儲存方面的需求?它與傳統儲存陣列之間有哪些需要配合的地方呢?

從企業儲存生態系統到Docker結合點

儲存極客 | 再不擁抱Docker容器,你的儲存就out了!

Copy-On-Write機制的Docker儲存卷,支援LVM、ZFS、BTRFS、AUFS和OverlayFS等幾種供給格式。

隨著每一輪新技術熱潮的來襲,從事技術工作的筆者都會有一種“危機感”,畢竟包括企業級在內的IT行業更新太快,不堅持學習就很容易落伍。

虛擬化雲端計算大資料,一直到軟體定義無不如此,我們謹慎地關注著每個概念中有多少炒作的泡沫?當然也會有真正改變使用者IT消費方式的變革,包括與傳統基礎設施,特別是 伺服器、儲存裝置的結合點;還有公共雲服務、Server  SAN/超融合這樣的顛覆。

具體到技術和廠商,比如下圖中的 VMware

微軟( Hyper-V和Azure);新一輪還在發展完善中的開源虛擬化管理/雲平臺OpenStack;還有本文要討論的重點——Docker容器。

現 在有一種比較激進的思想,未來一切都是軟體定義的,傳統商業儲存陣列將會慢慢失去市場。我們看到了VSAN的出現——至少目前它的應用還是有侷限,而不是 萬能的;我們也看到搭車OpenStack/KVM而火熱的Ceph開源 分散式儲存,但它距離成熟易用還有很大的一段距離。因此在當前,虛擬化/雲端計算平臺一直在加強對傳統外部共享儲存的支援,容器也不例外。

儲存極客 | 再不擁抱Docker容器,你的儲存就out了!

本文中引用了一些來自 戴爾的資料,但它們都具有普適性,我們接下來的話題也會圍繞通用技術趨勢,而不是專屬於某一傢俱體的產品。

上圖列出了 儲存系統與領先的技術合作夥伴間的管理整合,這些是行業內一線廠商基本都要去做的工作。大致包括以下幾個方面:

虛擬化整合:VMware VAAI、VASA、VVOL,微軟Hyper-V對應的API支援等,由於本文主題在這裡不詳細介紹了。

雲平臺整合:OpenStack針對塊儲存裝置支援的Cinder driver等。

應用保護整合:生成和管理具備 Oracle 資料庫等應用程式一致性的 快照/恢復點,也包括Windows VSS、VMware虛擬機器的支援。

備份軟體整合:通 過流行的備份軟體對生成快照的資料進行保護,從而確保可恢復性,這裡列出了 賽門鐵克(嚴格說現在算Veritas)和CommVault。如果是基於戴爾 SC儲存快照的備份,應該還有自家的NetVault備份軟體可以支援。(詳見:《DellWorld2015快訊:NetVault Backup11智慧備份詳解》)

應用監控整合:如Foglight,是戴爾收購Quest獲得的高階應用監控解決 方案。我記得 EMC等廠商也提供類似的軟體產品

Docker容器整合:針對SAN共享塊儲存裝置的容器卷管理系統。

Flocker擁有“無限可能”的卷管理器

儲存極客 | 再不擁抱Docker容器,你的儲存就out了!

目前我們看到包括EMC、戴爾SC系列在內的幾家儲存廠商/產品家族,都在與ClusterHQ公司的Flocker合作——一個針對Docker應用開源的容器資料卷管理器,它能夠像本地儲存那樣對基於塊的共享儲存提供良好支援。

儲存極客 | 再不擁抱Docker容器,你的儲存就out了!

Flocker帶來了靈活性和擴充套件性,它提供的工具能夠:

●遷移資料

●執行容器化狀態的服務(例如資料庫)

●可移動性 - 在叢集中的任意容器上使用

●管理Docker容器和資料卷

●卷跟隨容器在主機之間(移動)

●由控制服務提供的REST API介面

儲存極客 | 再不擁抱Docker容器,你的儲存就out了!

與 Flocker結合之後,儲存陣列擁有“無限可能”。Flocker可以支援較高版本的CentOS和 Ubuntu  Linux伺服器(不排除有更新增加);可以使用的資料卷除了共享塊儲存之外,還有“本地”儲存——我們理解後者中也包括被虛擬機器視為本地儲存的 Amazon EBS、OpenStack Ceph RBD和Swift中的映象掛載,還有RackSpace雲設施裡類似的實現。

Flocker還可以與 Linux上執行的任意資料庫一起工作,這 裡面包括傳統關係型的 MySQL、PostgreSQL,也有新興的MongoDB、Redis和RabbitMQ等。上圖中並未列出Oracle,應該 是因為Oracle已經有並且推薦使用自己的儲存管理器ASM,直接控制到 磁碟/ SSD/LUN一級,Oracle一直不官方支援除自家VM之外的虛擬機器 環境,我們也沒聽說過有人在容器中使用。

共享塊儲存容器遷移、能否做HA?

儲存極客 | 再不擁抱Docker容器,你的儲存就out了!

我們來看一下使用了Flocker之後 有何不同。在原生Docker環境,當一臺伺服器上執行的容器化有狀態服務(資料庫)遷移至另一臺時,其資料卷會留在原地,在新的伺服器上啟動的容器沒有任何資料。也就是說,在遷移之前需要先手動停止容器並複製資料到新的伺服器才能使用。

而在使用了Flocker之後,當容器移動時資料卷與它一起移動,您的資料庫(容器)能夠保持其資料狀態。這裡大家有沒有 聯想到VMware的vMotion呢?傳統並且最實用的vMotion虛擬機器遷移是需要vmdk映象位於共享儲存上的,在這裡戴爾SC陣列是同樣的角色,我想與Flocker合作的其他傳統儲存廠商也是類似情況。

儲存極客 | 再不擁抱Docker容器,你的儲存就out了!

最後,具體到戴爾的儲存是如何與Flocker一同工作呢?如上圖,我們看到SC陣列上有一個100TB的LUN 10對映到2臺伺服器,其中Ubuntu Docker Host 1在上面運行了一個MongoDB容器。當Flocker遷移容器時,會一併傳送指令給戴爾儲存外掛(由儲存廠商與Flocker合作開發)遷移捲到Ubuntu Docker Host 2。

這裡並不需要真正的資料拷貝,簡單理解應該是一個把MongoDB卷從Host 1的容器上解除註冊,然後將其註冊到Host 2上的過程。

進一步思考,按照從vMotion到vSphere HA的思路,容器是否也可以在兩臺主機之間做高可用呢?在偵測到Host 1出現故障時,上面提到容器遷移的後半部分——即在備用主機註冊共享儲存上的資料卷,然後啟動容器這一過程,實現起來並不複雜。

我們預計,隨著Docker應用的不斷普及,企業級資料遷移、高可用需求的不斷出現,主流儲存廠商會陸續提供這方面的支援