1. 程式人生 > >超融合架構的本質是什麼?

超融合架構的本質是什麼?

超融合在2015年關注度非常高,但各家廠商的超融合架構實現方法各有不同。我們不評判對錯,也不去探究這些是不是真正的超融合,而是重新追本溯源,思考為什麼超融合現在被關注,什麼樣的IT架構更“合適”於當今的商業。本文作者來自SmartX創始人徐文豪。

傳統集中儲存落後於現代企業資料中心發展

首先,SmartX選擇超融合架構的原因,是傳統儲存解決不了現在企業資料中心的問題。

據麥肯錫研究顯示,全球的IT資料每年在以40%的速度增加中。資料正在逐步影響商業,企業通過資料的分析來做決策與管理。完成快速的分析決策和管理,就需要藉助強大的資料中心。下圖為傳統SAN儲存:

圖片描述

圖一、傳統SAN儲存

但是,光靠越來越快、核數越來越多的CPU是不夠的,瓶頸在於傳統儲存的硬碟太慢了,CPU大部分計算能力都空閒或者說在等待儲存資料傳輸過來。傳統儲存容量和效能不具備和”計算能力“匹配的可擴充套件性,不能滿足企業進行資料訪問的需求。

圖片描述

圖二、傳統SAN儲存遭遇I/O瓶頸

這個問題並不是現在才有。Google很早遇到這個問題。那麼Google是如何做的呢?

作為一個給全世界網際網路網民提供資料檢索的企業,Google考慮過EMC、IBM,還有當年的SUN儲存產品,但是都解決不了它的問題。無論是容量還是效能,這些公司的產品都無法滿足Google的規模需求。於是Google只能自己建立一個適合自己的資料搜尋的儲存結構了。

Google優秀的電腦科學家們,打破了傳統的儲存思維,利用伺服器的本地硬碟和軟體構建了一個容量和效能不斷可擴充套件的分散式檔案系統,並在其上構建了其搜尋和分析的計算引擎:

不用把資料從儲存端取出來,然後通過網路傳輸到計算端,而是將計算直接分發到儲存上執行,將“計算”作為傳輸單元進行傳輸,這樣大量的儲存資料都是本地訪問,不需要再跨網路上傳輸了,自然訪問很快。於是乎,自然而然地,“計算”和“儲存”執行(“融合”)在了一個伺服器上,這裡我們也看到超融合架構的一個優勢就是,本地訪問資料,不必跨網路。

圖片描述

圖三、超融合架構示意圖

現代企業的資料量越來越大,應用越來越多,他們開始面臨當年Google遇到的問題,CIO要考慮怎麼更高效的構建自己的計算和儲存的基礎架構,來滿足應用的資料訪問需求。

虛擬化為更容易的管理應用而生,它解決了CPU、記憶體資源閒置的問題。但隨著虛擬化的大規模應用,虛擬機器越來越多,虛擬機器在傳統儲存上執行卻越來越慢了。“慢”造成“體驗差”,“體驗差”成為了限制虛擬化應用的最大的瓶頸。這裡面的最重要原因自然是,儲存的I/O效能不夠,大量的虛擬機器和容器同時執行,I/O的混合,使得隨機讀寫急劇增加,傳統儲存的結構無法承受大量的隨機I/O。

超融合恰恰是為了解決這個問題,才被帶到了虛擬化和容器領域。同時,業內也存在不同的解決I/O問題的方法,我們先嚐試分析下其他的解決方法:

解決方法一:在儲存裝置採用SSD做Cache,加速I/O。這在一定的規模下可能有效,但是儲存裝置的SSD Cache通常比例較小,不足5%的容量比的情況下,自然滿足不了使用者的熱資料的快取需求。另外,仍然無法隨需擴充套件,所有的資料仍然要從集中的儲存控制器流出,這個集中的“收費站”勢必堵塞“高速公路”。

解決方法二: 使用伺服器側SSD做Cache,加速I/O。這種類似的解決方案,通常缺乏高可靠性軟體的支撐,伺服器端的Cache如果用做寫Cache,存在單點失效的問題,需要在多個伺服器的Cache裝置上,做副本來提供可靠性,可以說這是一個閹割版的超融合架構,將Cache放到伺服器端,仍然使用傳統儲存,當Cache滿,需要被寫回傳統儲存的時候,仍然被傳統儲存的“控制器”限制整體效能。

我們看到,上面的兩種方案都是受限於傳統儲存的結構,超融合儲存則不一樣,通過完全去掉傳統儲存,利用分散式檔案系統來提供“不可限量”的效能和容量,在這個基礎上,再通過Cache進行加速,甚至全部使用快閃記憶體(全快閃記憶體產品)來構建都是自然而然,不被限制了。

因此,超融合架構不是為了讓單臺伺服器的儲存飛快,而是為了讓每增加一臺伺服器,儲存的效能就有線性的提升,這樣的儲存結構才不限制企業業務的執行,並保證業務的可靠性。

圖片描述

圖四、超融合將儲存池化,效能線性提升

正因為這種擴充套件性很好的共享儲存,使得整個Google的業務得以順暢地運轉。SmartX在做的就是這樣的更好的、更穩定的基礎服務。

另外,超融合近幾年得以快速發展的原因,這要歸功於硬體裝置。CPU核數越來越多,伺服器的記憶體容量越來越大,SSD裝置和網路網際網路裝置越來越快,這意味著:

  • a. 伺服器的資源除了執行業務以外,仍然可以預留出來足夠的CPU,記憶體資源來執行儲存軟體。將儲存軟體和業務執行到一塊,既減少了裝置量,減少了電力使用,本地讀取也提高了I/O的存取效率。這在幾年前是做不到的,因為CPU和記憶體太有限了。

  • b. 網路互聯越來越快,無論是萬兆,40Gb乙太網,還是Infiniband(無限寬頻技術),使得我們的軟體能夠將獨立的儲存裝置進行互連,通過分散式檔案系統形成共享的儲存池,供上層應用使用。

  • c. 如果說SSD等硬體廠商讓單個儲存裝置跑的更快,我們的軟體的意義在於,讓超大量的這些儲存裝置,一起工作,提供無止境的整體效能和容量。

在超融合架構中,層次儲存為什麼是提升資料的I/O效能的最好選擇。

首先,讓我們追溯到現代計算機體系結構中,解決系統性能瓶頸的關鍵策略:Cache。

現代計算機體系結構是基於馮·諾依曼體系結構構建的,馮.諾依曼體系結構將程式指令當做資料對待,程式和資料儲存在相同的儲存介質(記憶體)中,CPU通過系統匯流排從記憶體中載入程式指令和相應的資料,進行程式的執行。

馮·諾依曼體系結構解決了計算機的可程式設計性問題,但是帶來了一個缺點,因為程式指令和資料都需要從記憶體中載入,儘管CPU的速度很快,卻被系統匯流排和記憶體速度的限制,不能快速的執行。為解決這個問題,Cache的理念被提出,通過在CPU和記憶體之間加入更快速的訪問介質(CPU Cache),將CPU經常訪問的指令和資料,放置到CPU Cache中,系統的整體執行速度大幅度提升。

I/O效能瓶頸問題轉移到了儲存

如果記憶體的訪問速度相對CPU太慢,那麼磁碟的I/O訪問速度相對CPU來說就是“不能忍”了。下表是不同儲存介質的訪問延時,在虛擬化環境下或雲環境下,由於I/O基本都是隨機I/O,每次訪問都需要近10ms的尋道延時,使得CPU基本處於“等待資料”的狀態,這使得核心業務系統運轉效率和核心應用的使用者體驗都變得很差,直觀的感受就是業務系統和桌面應用“很卡”。

圖片描述

基於SSD構建平衡系統

和前人解決記憶體訪問延時問題的思路類似,現在的主流方法是使用記憶體和SSD作為Cache來解決I/O效能瓶頸。儲存系統能夠分析出資料塊的冷熱程度,將經常訪問的資料塊快取到記憶體和SSD中,從而加速訪問。

不論是全快閃記憶體儲存,還是混合介質儲存,從某種意義上講都是層次儲存,只不過混合陣列多了一層磁碟介質。

學過計算機體系結構的人都聽說過著名的Amdahl定律,這裡我們要介紹一個Amdahl提出的“不那麼著名”的經驗法則:

“在一個平衡的平行計算環境中,每1GHz的計算能力需要1Gbps的I/O速度與之匹配”

假設一臺伺服器有2顆E5-4669 v3的CPU,每顆CPU有18個核,36個超執行緒,主頻是2.1GHz,那麼我們可以計算一下,這樣的一臺伺服器需要151Gbps (即~19GBps)的頻寬。在大規模的雲端計算(虛擬機器算)環境中,極端情況下,大量的I/O併發使得儲存收到的I/O都變成隨機I/O,在這麼一個併發環境中,假設我們的訪問大部分都是8KB的讀寫,根據上面的計算,我們需要為一臺伺服器配備近250萬的IOPS讀取速度。

在不考慮系統匯流排的情況下,如果我們用SAS/SATA硬碟來提供這個IOPS,即使每個SAS/SATA盤可以提供近250的IOPS(實際數值更小),僅為構建一臺平衡的伺服器計算儲存環境,就需要大概1萬個SAS/SATA硬碟。在稍大規模的虛擬化環境,想要搭出一個平衡的系統,用傳統的SAS/SATA硬碟幾乎不可能完成任務。但是如果採用能夠提供10萬“寫IOPS”的SSD裝置,25塊SSD就夠了。

層次儲存的優勢

“層次儲存”是相對“全快閃記憶體”而言,是指將容量大但是速度較慢的HDD和速度快的SSD同時構建在系統中,通過資料的訪問特性,將經常訪問的熱資料放置在SSD中,而冷資料放置在HDD中。

首先,為構建一個平衡的虛擬化環境,需要大量的SSD裝置來提供足夠的IOPS。但是SSD也不是完美的。目前的SSD擦寫次數有限、價格高。層次儲存將熱資料放置在SSD層中,而大量的冷資料仍然放置在SATA硬碟上,熱資料週期性的同步到HDD硬碟,既為使用者熱資料提供了高IOPS的保障,也通過SATA硬碟提供了更大的容量和可靠性。

下圖是對11個開發人員桌面負載的I/O統計,包含了對5.1TB大小的儲存上的76億次IO訪問和28TB的資料傳輸。首先值得注意的是,有3.1TB(62%)的資料,在一年內從來沒有被訪問過,這意味著這些資料無論是放置在SSD上,還是SATA上,甚至放到U盤上拔走,對系統都沒有影響。

圖片描述

圖引自:《The 80/20 rule… for storage systems》by Andy Warfield

資料是有冷熱的,這也是為什麼我們為什麼既可以為使用者提供高性價比的層次儲存方案,又能夠讓使用者得到類似全快閃記憶體儲存體驗的原因。

作者簡介:徐文豪,SmartX聯合創始人,創業前在Nimbula(AWS EC2創始人Chris Pinkham創立)工作,2013年回國與清華大學同學一同創業,成立SmartX,致力解決傳統IT架構存在的問題。