如果你不是當代科幻小說或量子物理學理論的愛好者,你可能不會熟悉“平行宇宙理論”。但如果你的工作和利用電子數(shù)據(jù)技術(shù)的存儲相關(guān),你就必須努力補習這些課題了。
平行宇宙理論假定無限數(shù)量的宇宙并行存在——也就是說,平行宇宙中也會存在另一個你自己。每一個平行宇宙的歷史時間線都可能我們熟知的這個宇宙有所不同(例如,一個歷史事件沒有發(fā)生或產(chǎn)生了不同的結(jié)果)。它可能有一組完全不同的物理定律(例如,可能沒有重力)。它可能是一個完全不同于我們所感受到的世界(所以《星際迷航》里面的史波克先生可能會有表情,也長著胡子)。
如果我們能利用平行宇宙,那么維度壓縮或“平面空間技術(shù)”的概念就有可能實現(xiàn)。維度壓縮可以消除平行宇宙假說中描述的“宇宙空泡”,從而可以一次性存儲整個宇宙。利用這種技術(shù),我們可以創(chuàng)建具備無限容量的存儲設備——就像《黑衣男》里面容納整個銀河系的玻璃球,還有在 2006年的科幻動作片《紫外線》里超級英雄用來存儲海量武器彈藥的腕帶。
一個基于維度壓縮的存儲介質(zhì)原則上可以存儲直到宇宙和時間盡頭的一切數(shù)據(jù)。夢想很美滿,可惜,在每年的存儲聚會上都沒有聽說維度壓縮存儲的議題。和假設的平行宇宙理論不同的是,對于利用并行機制來提升工作負載性能的探索,——尤其是虛擬化工作負載的性能的并行優(yōu)化——已經(jīng)被實現(xiàn)。而且,將兩者混作一談還是很有意思的。
存儲: 拒絕認罪
毫無疑問,很多消費者已經(jīng)輕松接受虛擬計算,而虛擬化平臺開發(fā)商都會宣稱低速的存儲是拖慢虛擬機(VM) 工作負載性能的罪魁禍首。使用總線擴展電纜和交換機(如SAN、NAS、共享陣列)連接,位于共享拓撲中的基于共享機電技術(shù)的存儲設備(HDD)的性能如果遇到問題,廠商都會聲稱原因在于I/O路徑中存在擁塞故障點。這些故障點會導致延遲和“背壓反饋”,讓虛擬機運行減速。
想象一下浴室里擁塞的下水道?如此大量的 I/O 在排隊等待執(zhí)行他們的寫入請求,然而低速存儲設備或低速總線擴展互聯(lián)設施會拖累系統(tǒng),產(chǎn)生等同于頭發(fā)和香皂阻止水流進入下水道的效果。結(jié)果,水槽會灌滿和溢出,你必須停下你的工作流(刮胡子,洗衣服等),直到造成擁塞的殘渣被清除。
為了緩解 I/O 隊列負擔,虛擬化平臺廠商會建議撤除共享存儲換成內(nèi)部存儲或直連存儲,也就是他們現(xiàn)在選用的融合或超融合存儲,而且這些名字聽起來也很酷。當然,追趕虛擬化潮流的閃存存儲供應商也會極力推銷,讓我們藉此機會以硅基非易失閃存替換所有老舊的機電系列存儲。
推銷者承諾:“照我們的清單抓藥,保證虛擬機性能問題藥到病除!”唯一的問題是,殘酷的預算限制讓我們不大可能用的起這種藥方,畢竟這里是,我們這個,宇宙。
罪魁禍首就是...
對虛擬機系統(tǒng)緩慢問題的最簡單檢查辦法就是,查詢 I/O 隊列狀態(tài)是“shallow”還是沒有隊列。最快的狀況下,I/O 無需排隊等待就可以立即寫入存儲。實際上,很明顯存儲互連設施 (電纜和交換機) 和共享的存儲平臺 (SAN、 NAS 和等等) 都不太應該被視為系統(tǒng)中延遲的罪魁禍首。
你還會發(fā)現(xiàn)系統(tǒng) CPU 占用率超過正常水平——“一直在全速運行!”這通常反映出原始 I/O 操作正在 CPU 這里堆積,例如遇到阻礙處理順序 I/O 操作的一些問題。工作負載生成 I/O請求,但是芯片不能及時將請求轉(zhuǎn)發(fā)到 I/O 總線。因此,在現(xiàn)實環(huán)境中多核芯片的順序 I/O 處理問題會更加明顯。
然而這并非簡單的南北向性能問題——單個工作負載能多快速地在總線上完成處理,多核芯片多了一個東西向問題: 許多連續(xù)順序I/O處理功能運行在多個邏輯核心時,必須有統(tǒng)一的順序I/O處理邏輯。
并行視角
值得慶幸的是,在擁有維度壓縮技術(shù)的那些平行宇宙里,我們不需要解決工作負載性能的問題;可惜這個宇宙里的問題無法回避……
還好我們可以另辟蹊徑,抓住順序處理的關(guān)鍵點:讓順序業(yè)務可以被并行處理,從而使大量的順序 I/O請求可以被多核芯片上的相鄰核心協(xié)作處理,快速高效地到達數(shù)據(jù)總線。雖然難度很大,但是:在存儲的平行宇宙里,不同供應商總會找到實現(xiàn)并行處理的辦法。
例如, ioFABRIC公司的并行技術(shù)重點關(guān)注如何緩解延遲和擴充工作負載性能,使用簡單的策略將操作分布到多個目標、多個磁盤或閃存驅(qū)動器,這些目標獲得實現(xiàn),各種資源也被更有效地利用。對于 ioFABRIC 來說,他們的軟件提供的并行處理策略能在每個芯片核心實現(xiàn)高達 250,000 IOPS的性能。
對喜歡PCIe非易失性內(nèi)存 (NVMe)的廠商來說,他們希望人人都采取他們建議的策略部署 PCIe 總線閃存存儲,在這里,并行就是指使用更多 ——多達 64,000個并行連接 CPU的通道來消滅瓶頸,加速每個設備內(nèi)部閃存芯片的 I/O 性能。和之前基于SAS/SATA方式安裝的閃存存儲相比,CPU到NVMe存儲的數(shù)據(jù)傳輸性能獲得了巨大的提升。利用以上技術(shù)甚至可以獲得與理論完全一致的、前所未有的低延遲和超快的虛擬機性能。
還有 DataCore Software公司的動態(tài)并行I/O技術(shù),在 2016 的Storage Performance Council(存儲性能協(xié)會)的一次基準測試中實現(xiàn)了 0.28 毫秒的響應時間和超過 500 萬 IOPS 性能。該技術(shù)的工作原理是:充分利用多核芯片的空閑或未使用邏輯內(nèi)核,使用它們來創(chuàng)建一個“并行 I/O 處理引擎”,為其它繁忙的邏輯內(nèi)核提供高效的南北向/東西向IO輸出服務。
這些并行處理技術(shù)是否會相互排斥?還是可以互相聯(lián)合,進一步獲得最高的吞吐量和極低延遲?也許在另一個平行宇宙里,這些組合的可能性已經(jīng)被充分驗證了。