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