目前,在私有云建設(不少可能並非真正的私有云,也包括一些虛擬化平臺的建設)中,超融合出現的身影愈來愈多,本文算法
咱們探討下超融合技術。數據庫
既然在說超融合架構,那就確定有通常的融合架構,這其實也是目前行業內對於超融合定義爭論的焦點,也就是說哪些定義爲服務器
融合架構,哪些定義爲超融合架構。網絡
我的來講比較傾向於如下定義:自然地(Natively)將兩個或多個組件組合到一個獨立的單元中,這句話的關鍵詞是自然地架構
(Natively)。這種定義有個好處就是留了不少自由解釋的空間,沒有把這個邊界框得太死。分佈式
至於其餘的解釋,我的以爲太具體化了,太具體的東西就容易引起爭議。其實和不少IT領域裏面的技術名稱同樣,咱們不必定工具
要追求一個所謂的標準定義,可能起名稱的人原本就沒考慮這麼多。性能
傳統架構的業務系統在運行一段時間後,常常會遇到業務系統變慢,特別是在業務高峯期表現很是明顯,好比月底月初的財務操作系統
系統。設計
那在大多數的案例中,問題每每出如今存儲陣列上面,特別是虛擬化普及後,這種狀況表現得更加明顯。這主要是在陣列使用
一段時間後,隨着磁盤等部件的老化,磁盤陣列的性能會存在必定的性能降低;同時,業務系統的運行也存在着使用範圍愈來愈廣,
用戶愈來愈多,特別是虛擬化平臺上虛擬機越開越多的狀況。
那傳統的解決方案,每每是更換性能更高的存儲設備,特別是SSD盤的價格下調在必定程度上解決了陣列磁盤的讀寫問題,但
是,這時網絡和陣列控制器每每成爲了新的瓶頸。
在網絡方面,以Intel S3700系列固態硬盤爲例,其讀寫速度分別可達500MB/s和460MB/s,那不一樣的網絡帶寬能知足對應的SSD
盤理論讀寫速度以下:
就算是理論上支持40Gb的交換速度的IB交換機的出現,依然不能知足大規模固態盤使用的速度要求。
在存儲控制器方面:SSD對存儲架構的影響是巨大的,傳統機械硬盤的4K隨機性能只有300左右,而相似intel 3700這樣的
SSD則能夠達到超過7.5萬IOPS。雙控制器架構在閃存架構中會成爲瓶頸,好比EMC的Unity 650 能夠支持一千塊硬盤或SSD,
但31塊SSD的時候就到達瓶頸。
(1)分佈式存儲架構
分佈式存儲在亞馬遜、谷歌等大型公有云獲得了很好的應用,它基於X86服務器構建一個易擴展、高可靠的存儲資源池,這是
超融合的基礎。
(2)SSD盤的普遍使用
SSD的出現,解決了超融合架構中冷熱數據分層的問題,也使得數據的訪問速度相對比陣列訪問有了質的提升,下面是特定
I/O類型的不一樣延遲特性:
(3)CPU、網絡
CPU長期以來基本遵循了摩爾定律的發展,更增強大廉價的CPU能在同時知足計算和存儲需求。同時,萬兆網絡的普及解決了
不一樣服務器之間的數據橫向快速流動的要求。
超融合這個概念太熱,以致於除了咱們所熟知Nutanix、VMware等廠商外,大部分的傳統硬件廠商都推出了本身超融合產品,
好比HP、DELL、華爲、華三……,也有一些新晉玩家像深信服、SmartX等。
但這些廠商所走的超融合路線也有很大不一樣。
按照融合的程度,大體分爲兩大類:
以Nutanix、VMware爲表明的廠商,強調儘可能利用服務器本地資源來知足虛擬機的計算、存儲需求,計算資源、存儲資源沒有
在硬件層作硬性的劃分,他強調的是計算資源池、存儲資源池的概念,在超融合的底層讓虛擬化優先使用本地的存儲資源。
另一個技術路線的廠商大多借鑑Oracle數據庫一體機的實現方式,將X86服務器劃分爲計算節點和存儲節點,服務器之間採
用IB交換機相連,這和傳統的集中式存儲在邏輯架構上是一致的,區別只是用分佈式存儲取代了磁盤陣列。
在小型規模的應用上,以上兩種路線的區別不大,但在規模應用以後,第二種實現方式的網絡瓶頸就可能會顯現。本文介紹的
超融合技術,將以第一種爲參照。
因爲Nutanix在超融合領域的地位,其餘超融合廠商在技術實現或多或少的借鑑了Natanix,該部分主要借鑑Nutanix超融合技術
方案讓你們瞭解下具體的超融合技術實現,以免相關內容流於概念和表面。
在Nutanix的架構中,大體可分爲兩大塊,Prism和Acropolis。簡單的說就是一個是管理模塊(給管理人員用的),一個資源管
理模塊(如何去調度底層資源)。
Prism是一個分佈式的資源管理平臺,容許用戶跨集羣環境管理和監控對象及服務。
這部份內容不難理解,這裏不作太多介紹,感興趣的朋友能夠本身去查閱相關文檔。
Acropolis 是一個分佈式的多資源管理器,集協同管理和數據平臺功能於一身。它能夠被細分爲以下三個主要組件:
• 分佈式存儲架構 (DSF)
o 這是Nutanix 核心的賴以生存的組件,其基於分佈式文件系統(HDFS)擴展而來。
• 應用移動性架構 (AMF)
o 相似於 Hypervisor 把操做系統從硬件剝離而來,AMF 把工做負載(虛機、存儲和容器等)從 Hypervisor 抽象剝離開。這使
能在不一樣的Hypervisor 之間切換和移動工做負載。
• 虛擬化管理器(AHV)
o 一個基於 CentOS KVM hypervisor 的多用途虛擬化管理器組件。
下圖以概要的方式展現了 Acropolis 不一樣層次的結構和關係:
Nutanix 解決方案是一個融合了存儲和計算資源於一體的解決方案。它利用本地資源/組件來爲虛擬化構建一個分佈式的平臺,
亦稱做虛擬計算平臺。
每一個節點運行業界標準的 hypervisor(ESXi, KVM, Hyper-V)和 Nutanix 控制器虛機(CVM)。Nutanix CVM 中運行着
Nutanix 核心軟件,服務於全部虛機和虛機對應的 I/O 操做。得益於Intel VT-d(VM直接通路)技術,對於運行着VMware vSphere
的 Nutanix 單元,SCSI 控制(管理 SSD 和 HDD 設備)被直接傳遞到CVM。 下圖解釋了典型的節點邏輯架構:
Nutanix 平臺由下列宏觀組件構成:
Cassandra
• 關鍵角色: 分佈式元數據存儲
•描述:Cassandra 基於重度修改過的 Apache Cassandra,以分佈式環的方式存放 和管理全部的集羣元數據。Paxos 算法被
用來保證嚴密的一致性。在集羣中全部 節點上都運 行着這個服務。Cassandra 經過一個叫作 Medusa 的協議來訪問。
Zookeeper
• 關鍵角色: 集羣配置管理
• 描述:基於 Apache Zookeeper 實現,Zookeeper 存放了全部的集羣配置信息,包 括主機、IP 地址和狀態等。集羣中有三
個節點會運行此服務,其中的一個被選舉 成 leader。Leader 接收全部請求並轉發到它的組員。一旦 leader 失去了反應,新
的leader 會被自動選舉出來。Zookeeper 經過稱做 Zeus 的接口來訪問。
Stargate
• 關鍵角色: 數據 I/O 管理
• 描述:Stargate負責全部的數據管理和 I/O 操做,是 hypervisor 主要的接口(經過 NFS、iSCSI 或 SMB)。爲了供本地 I/O
操做的能力,集羣中全部節點都運行此服務。
Curator
• 關鍵角色:以 Mapreduce 方式管理和清理集羣
•描述:Curator 負責在整個集羣間分配和調度任務,諸如磁盤容量平衡、預清理等 。
Prism
• 關鍵角色:用戶界面和 API
•描述:Prism 是一個組件管理網關,它讓管理員能配置和監控 Nutanix 集羣。它提供多種管理手段,如 Ncli、HTML5 UI 和
REST API。Prism運行在集羣中的每一個節點,如同集羣中其餘組件同樣也採用 leader 選舉制。
Genesis
• 關鍵角色:集羣組件和服務管理
•描述:Genesis 是一個負責配置初始化和服務交互的進程,運行在每一個節點上。 Genesis 不依賴於集羣,即無論集羣是否配
置或運行與否,它都運行着。它惟一的前提是 Zookeeper 必須起來並運行着。
Chronos
• 關鍵角色:任務調度
• 描述:Chronos 負責把由 Curator 掃᧿產生的任務在節點間調度執行併合理分配。 Chronos 運行在每一個節點上,受控於主
Chronos(負責任務委託且和主 Curator 運行在同一節點)。
Cerebro
• 關鍵角色:數據複製和容災管理
• 描述:Cerebro 負責 DSF 中的數據複製和容災管理部分,包含快照的調度、遠程 站點的數據同步及站點的遷移和故障切換。
Cerebro 運行在 Nutanix 集羣的每一個節 點上,而且每一個節點都參與遠程站點/集羣的數據同步。
Pithos
• 關鍵角色:vDisk 配置管理
• 描述:Pithos 負責 vDisk(DSF 文件)的配置數據。Pithos 構建於 Cassandra 之 上,並運行在每一個節點。
在ESXi的部署中,控制器虛擬機(CVM)硬盤使用的 VMDirectPath I/O 方 式。這使得完整的PCI控制器(和附加設備)經過
直通方式鏈接 CVM並繞過虛擬化層。 這種設計讓其超融合技術和虛擬化軟件實現瞭解耦。
一個存儲池是一組物理存儲設備,大部分狀況下,單個集羣配置一個存儲池。
容器(container)從邏輯上劃分存儲池,幷包含一組虛擬機或者文件(即虛擬磁盤)。不少人可能不理解爲何Nutanix要提
出容器的概念,其實它是爲了數據存儲的靈活性,好比,在一個集羣內,不一樣的虛擬化對應的應用數據可能重要性不一樣,須要的副
本數也不一樣,這時,就須要採用不一樣的容器,進行不一樣的設定。因此在實際使用了,咱們常常將對存儲需求相似的虛擬機(含數據)
劃分到同一個容器內,這不只要考慮當前狀態,還有從此可能的變更。
KVM 中包含如下主要組成:
KVM-kmod : KVM 內核
Libvirtd: API 接口,針對 KVM 和 QEMU 的監控、管理工具。 Acropolis 經過 libvirtd 與 KVM/QEMU 進行通信。
Qemu-kvm : 一個「模擬器」(machine emulator),使得各個虛擬機可以獨立運行。 Acropolis 經過它來實現硬件的虛擬化,
並使得 VM 以 HVM 的形式運行。
如下是各個組成的邏輯示意圖:
處理器兼容性
相似於 Vmware 的 Enhanced vMotion Capability(EVC),它容許 VM 在不 同代次的處理器間進行遷移。Acropolis 將檢測
羣集中代次最老的處理器,並把 全部的 QEMU 限定在此級別上。這樣就能夠容許不一樣代次的處理器進行混 用,並確保主機之間可
以實現 VM 的在線遷移。
Nutanix的冗餘因子在集羣建立的時候就須要設置,而且後期不能改變,它肯定了集羣能同時壞掉多少臺物理服務器而不影響集
羣的正常運行,而複製因子是針對容器的(一個集羣通常包含多個容器),它表示了數據在容器的副本份數。應該來講,冗餘因子從
物理上保證了複製因子的實現,因此,複製因子不能大於冗餘因子,只能小於等於。
Acropolis 的 VM HA 能夠確保當主機或 Block 掉電時,VM 的持續運行。當某個主機宕機時,VM 將在集羣中某個健康節點中重
新啓動。其中,Acropolis Master 負責該 VM 的重啓操做。
Acropolis Master 經過 Libvirt 監測節點的健康情況:
超融合適合全部用戶嗎,這個回答見仁見智?不過我的認爲,如下狀況的客戶能夠優先考慮超融合:
一、若是在從此一段時間內,業務可能有較大增加;
二、對系統對IO性能有較高要求;
三、技術實力較強,想要對自身信息化架構充分掌控;
但若是沒有本身的技術力量,又很是看重硬件平臺的穩定性,對任何硬件故障有必定程度「恐懼」的客戶建議能夠再等等。
在將來幾年,能夠確信「超融合」架構,以其強大的性能、部署靈活性、使用方便性等多方面優點,將成爲主流的IT架構之一