2018年3月26日 星期一

機房建置:超融合架構的本質之層次存儲

機房建置,本篇文章將進一步解釋在超融合架構中,層次存儲爲什麼是提升數據的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硬盤上,下圖是對11個開發人員桌面負載的I/O統計,包含了對5.1TB大小的存儲上的76億次IO訪問和28TB的數據傳輸。首先值得注意的是,有3.1TB(62%)的數據,在一年內從來沒有被訪問過,這意味着這些數據無論是放置在SSD上,還是SATA上,甚至放到U盤上拔走,對系統都沒有影響。熱數據週期性的同步到HDD硬盤,既爲用戶熱數據提供了高IOPS的保障,也通過SATA硬盤提供了更大的容量和可靠性。

沒有留言:

張貼留言