在本文中,我們將與廣大讀者朋友們共同研究關于私有云的關鍵要求和組件——其中包括容器平臺的使用,以及在數據中心存儲中使用私有云所帶來的影響。
對于大多數人來說,云服務通常都意味著公共云服務基礎設施,例如由亞馬遜網絡服務(AWS)和微軟的Azure所提供的基礎設施。
而相比之下,私有云傾向于通過在企業內部部署相應的基礎設施,來提供與公共云服務類似的功能特征,通過基于服務的交付模型來提供對資源的訪問。
那么,構建一款私有云將會涉及到什么呢,同時其又將對企業數據中心的存儲產生怎樣的影響呢?
而在我們深入了解如何部署和實現私有云服務之前,我認為我們應該先花一點時間來回顧一下關于云服務的一般性通用特性。
云服務,無論其是私有云服務還是公共云服務,都應符合以下條件:
彈性——具備能夠根據用戶的需求橫向或縱向進行規模化縮放的功能。從用戶的角度來看,云資源通常被視為是“無限制的”,盡管在私有云服務中往往會存在預算方面的限制,這使得無限的概念很可能受到約束限制。
基于服務的——云服務資源作為服務提供,借助服務定義,并從使用這些服務的硬件提供抽象。請求是針對虛擬實例的——而不是服務器——或基于性能和延遲需求的存儲容量。
多租戶——基礎設施架構需要能夠支持多用戶,而且,這些用戶不會在同一平臺上感知到彼此或影響到其他用戶。
按需訪問——具備通過門戶或應用程序編程接口(API)進行自動請求和配置資源的能力。
計費結算和報告——具備可以報告使用情況的統計信息,按照高級別的細粒度(通常是每小時或每天)進行計費結算的功能(請注意,公共云服務提供商按照每小時收費,這對于私有基礎設施可能是不切實際或不合適的)。
對于私有云服務而言,某些在公共云服務中所見到的某些功能特征并不一定是必需的。
例如,一些企業組織可能選擇不實施計費(或甚至退款),因為用于這些企業組織可能不存在直接為業務部門計費的財務機制。
“無限”這一概念通常不是私有云服務的要求,因為企業的IT預算通常是受到限制的,無論是業務部門或IT部門的支出都是受限的。
私有云業務流程
私有云服務的一大關鍵部分是根據客戶請求提供資源協調的框架。這些包括開源平臺(如OpenStack和CloudStack),專有工具(如VMware的vRealize Suite云管理平臺和即將推出的Azure堆棧),微軟公共Azure的內部部署自動化套件。
還有一些平臺,如Mesosphere,Kubernetes和Docker Swarm,它們能夠提供開源解決方案,均能夠部分的實現私有云服務。
最后,我們應該提及供應商,如Zerostack和Platform 9,這些供應商們都在尋求優化我們上文已經提到的一些工具。
私有云存儲
當我們查看這些平臺使用存儲的方式時,我們會看到各種各樣的部署方式。
而其中最成熟、且最容易理解的存儲選項便可能是VMware。
VMware vSphere是vRealize Suite套件的核心組件,支持一系列現有的block塊(光纖通道,iSCSI)和基于文件(NFS)的系統。供應商的支持是廣泛的,一旦將存儲配置到基礎架構中,就可以作為虛擬機創建的一部分自動配置。
OpenStack有一系列的存儲支持選項,稱為項目,包括了塊存儲(Cinder)、文件存儲(Manila)和對象存儲(Swift)。每個項目定義了供應商可以編碼的一組API,并通過OpenStack平臺自動配置,映射存儲平臺到實例(虛擬機)。
相同水平的應用編程接口支持也可在Kubernetes中獲得,實現為容器實例的持久性的存儲配置。
這可以包括傳統的協議(如iSCSI和NFS),而且可以擴展存儲,如GlusterFS和Ceph。還有一個假設,用戶需要人工手動管理存儲(也許只是局部的JBODs),但存儲硬件供應商已經開始加入Kubernetes卷的支持。這方面的一個例子便是NetApp的Trident項目的自動化存儲配置。
Docker部署傾向于使用存儲配置,在主機上運行容器,這些容器可以是本地的文件系統或安裝到服務器的塊設備。 Flocker是一款開源工具,通過一組API為供應商提供支持,從而從塊設備到容器實現自動化的配置供應。借助其EMCCode,Dell EMC公司支持將其許多現有的存儲平臺連接到Docker系統。這項工作大部分是最好的,但只提供社區支持,因此也許不適合關鍵的生產環境。
向私有云添加存儲
我們可以從私有云消費存儲的方式看到,必須考慮一定的差異。最明顯的是自動化。存儲器應該以一種方式插入到業務流程框架中,以便于通過業務流程工具自動配置邏輯單元號(LUN)和文件共享。
而這種自動化代表了兩個問題。
首先,有安全性的問題。是從資源池提供存儲,還是業務流程平臺可以訪問整個存儲陣列或環境?
第二,有什么控制來限制存儲資源的消耗?我們可以設想一種場景,在這種場景下,私有云的按需能力可能耗盡可用的存儲容量。
這個問題需要我們考慮維護的問題。 存儲解決方案的可擴展或更換到底有多容易?
通常,企業會為消耗大量資源的大項目部署存儲遷移。但這不是作為公共云環境中的問題出現的,其中存儲問題從客戶方面被模糊化了。
在私有云中如何管理存儲遷移?
當實例被創建或銷毀時,可以從新的存儲容量中配置新的應用程序。這使得現有實例的遷移得以處理。這些可能必須離線遷移或通過某種快照過程遷移。無論采用哪種方式,都需要以對服務的影響最小的方式,實現新的存儲平臺的引入。
值得注意的是,上述大多數問題尚未得到充分解決。因此,整個存儲平臺可以提交到云解決方案,而不是與其他用戶共享,因為所需的安全控制不存在。這在大型環境中可能是實用的,但在較小的IT企業組織則可能導致問題。
選擇合適的云服務供應商
選擇一家供應商或一款存儲產品需要考慮業務流程平臺和存儲供應商的可支持性。
較舊的(更可能被歸類為傳統遺留的)的平臺將更難以集成整合,因為它們通常沒有本地自動化功能。這些往往是以后添加的。NetApp SolidFire是能夠提供本機API的存儲平臺的一個示例,支持集成到所有通用配置平臺。
另一種方法是選擇橫向擴展的存儲解決方案,無論是開源平臺還是SDS提供商的解決方案。Ceph是一個直接集成到OpenStack中的解決方案,可以提供對象、塊和文件支持。
還有橫向擴展的解決方案,如StorPool(塊存儲),StorageOS(專用于容器),來自EMC的ScaleIO,來自HPE的StoreVirtual以及來自VMware的本地Virtual SAN。
使用這些平臺的優點是存儲可以被部署為服務器的一部分,而不是具有專用的存儲軟件。例如,Virtual SAN等集成整合的解決方案在vSphere中直接支持,從而為虛擬實例啟用了基于策略的存儲配置。
構建私有云和持久存儲的選項范圍廣泛,并且初看起來可能會造成混亂。但請記住遵循公共云服務(彈性,按需,多租戶和基于服務)的主要原則,是為了幫助為您的私有云基礎架構選擇最合適的解決方案提供良好的基礎。