「獨具匠心」哪有什麼一夜成名?其實全是百鍊成鋼

從去年11月份到今年春節前後,華為存儲研發骨幹曹長斌幾乎每天都夜不能寐,因為他參與的OceanStor新一代智能分佈式存儲研發項目遇到各種棘手難題。那段時間,他甚至連吃飯、跑步都會想著如何解決研發面臨的問題。

OceanStor D系列智能分佈式存儲是華為存儲近年來最重要的戰略級產品。它不僅是華為存儲產品線的一次重大升級,也承載著華為面向智能時代打造海量多樣性數據底座的願景。

時光荏苒,時鐘不經意間來到 5 月 15 日。這一天,華為 OceanStor D 系列新一代智能分佈式存儲產品正式對外發布。此刻,曹長斌如釋重負,連續奮戰多日帶來的疲憊並不能掩蓋住激動之情:“如果需要打分,我願意給它打十分,它不僅在整體架構、性能、功能等方面遙遙領先,更是華為存儲研發以客戶需求為中心,通過全球化協作、率先克服業界眾多挑戰而打造出來的產品。”

OceanStor D 系列實現了分佈式存儲性能全球第一,單節點性能高達 16.8 萬 IOPS 和 1 毫秒以內時延,在業界標準 SPC-1 測試中排名第一;首次實現在一套存儲中同時支持塊、文件、對象、HDFS 協議;並且,率先將人工智能技術融入到存儲全生命週期管理。

在這一系列靚麗數字的背後,其實是華為北京、上海、深圳、成都、波士頓、硅谷等地的跨地域研發團隊緊密協作,先後進行了近十個版本的迭代,反覆打磨、優化的成果。

簡而不減

“客戶經常跟我們的架構師們反饋,存儲真的太複雜了。”身為研發的曹長斌會定期與架構師交流。華為存儲架構師們每年會花費30%的時間與一線客戶進行交流,從而將一線業務需求儘可能地反饋給研發人員,進而精準研發出符合客戶需求的產品和解決方案。

存儲的複雜性是一直困擾著用戶的數據中心,這種複雜性主要體現為,經過長期的信息化建設,用戶數據中心普遍面臨著多種類型的存儲,生產、備份、容災通常採用了不同廠商的不同存儲產品,煙囪式的存儲環境帶來了巨大的管理複雜度,還無法讓數據之間很好地流動、共享和價值挖掘。

曹長斌以電信行業為例:“IoT、4K/8K、AR/VR 等新業務不斷湧現,充滿著不確定性,傳統存儲產品很難去滿足新業務從小到大的成長,用戶們希望更簡單的存儲架構,來靈活支撐多樣性業務的發展。”

事實上,OceanStor D 系列研發之前,華為已經對產品醞釀了很久。最終,華為將它定位為一個戰略級的平臺產品,在保持分佈式存儲的靈活性和高擴展性之時,可以長出其他豐富的功能,包括塊、文件、對象、大數據,支撐企業數據湖構建。

打通性能的任督二脈

分佈式存儲最大的優勢在於靈活性,但性能也很容易遇到瓶頸。特別是隨著節點數量的增加,性能達到一定量級之後,往往會因為硬件、網絡等原因,各種意想不到的“瓶頸”接踵而至。因此,單節點穩定性、性能是考驗分佈式存儲成色的重要因素。

在曹長斌看來,性能問題是研發過程中遇到的最大挑戰之一。“從立項設計時,我們就希望 OceanStor D系列能夠達到企業級全閃存陣列的性能,單節點性能能夠達到 14 萬 IOPS,並且時延控制在 1 毫秒之內。研發團隊為此做了很多預研究的工作,但落地時還是遇到了巨大的挑戰。”曹長斌所言的挑戰即是性能波動問題。

分佈式存儲節點的性能波動浮動範圍大且不穩定,從而給整個分佈式存儲性能提升帶來瓶頸。單節點性能達到 10 萬 IOPS 之後,性能始終上不去。令研發團隊更加頭疼的是,產生性能波動的“隱形瓶頸”很多,需要研發人員去逐個發現和解決,整個性能波動問題的解決前前後後花了4個月時間,幾乎每天都討論和研究到凌晨2、3點。

此時,華為強大的跨領域研發能力起到了關鍵作用。當項目組一籌莫展時,全球研發體系中的操作系統專家、網絡專家和芯片專家,加入了隊伍並肩作戰,從不同的角度去探索性能波動的問題所在。“我們首先發現中斷分配不均的問題,有些服務器中斷過度,使得服務器性能發揮不出來。因此,經過多個方案探索之後,實現了中斷均攤化,將單節點性能提升了 20%。解決這個優化點之後,研發團隊再從業務干擾、軟件堆棧、分佈式鎖等方面進行優化,最終達到了最初設計的性能目標。”

經過華為研發團隊優化、落地、再優化的螺旋上升式的改進,最終打通了性能的任督二脈,對於服務器硬件、網絡等方面的控制越來越精準,實現了非鯤鵬節點 14 萬IOPS、鯤鵬節點 16.8 萬 IOPS 的穩定性能。

鑄就數據可靠的生命線

在性能不斷提升的同時,研發團隊還面臨另一個大挑戰:在高性能、大併發的數據讀寫情況下如何保持數據一致性。

一直以來,數據可靠和一致是存儲產品的生命線。“在存儲產品中,數據一致是核心中的核心。如果寫進去的數據和讀出來的數據不一樣,那將對用戶的業務產生巨大影響。”曹長斌表示。與傳統存儲不同,分佈式存儲產品必須採用不一樣的實現數據可靠和一致的方法。並且隨著集群節點的不斷擴展,分佈式存儲系統的複雜性隨之提高,對於數據一致性也帶來更大的挑戰。

在性能調優期間,團隊就遇到了較多數據不一致的情況。“當時為了提升性能,有些數據不一定馬上寫到盤中,而是寫入內存,之前一些併發機制導致了老數據把新數據覆蓋了,出現數據不一致的情況。”曹長斌回憶到。

經過將近一個月時間的反覆討論,波士頓團隊提出了一套新的日誌機制與工具來解決數據不一致難題。“通過新的日誌機制,在數據訪問入口和數據落盤前的出口,進行關鍵信息的打印,加上 CRC 校驗,來發現和解決數據不一致性的問題。”曹長斌表示,“通過對 IO 通道從頭到尾的追蹤,可以具體定位到整個 IO 通道哪個模塊、具體模塊中哪個具體函數導致的數據不一致,層層推進來解決問題。

最終,團隊完成上千個節點等不同場景下的數據不一致情況的檢驗,解決了將近 30 個業務 IO 異常的問題,完美地鑄就了OceanStor D系列分佈式存儲強大的生命線。

性能與成本兼得之道

海量數據成為常態,分佈式存儲的數據可用性也變得至關重要。分佈式存儲中的冗餘功能可以提升數據可靠性和存儲系統的可用性。通常,業界採用數據複製或者糾刪碼功能來實現數據冗餘。相比於數據複製對存儲空間的巨大消耗,糾刪碼技術可以在更小的存儲空間實現更優的容錯和安全性,但是對於存儲系統的性能也有著較大影響。因此,分佈式存儲中的糾刪碼功能如何做到存儲空間利用率與性能二者兼得就成為業界的難題。如何在保證數據可靠性和性能的前提下,減少數據冗餘,成為了分佈式存儲降成本的關鍵技術。

數據爆炸增長,“存不下”的問題日益凸顯,影響“存不下”一個很大的原因,就是成本。業界採用多副本或者糾刪碼功能(Erasure Code,簡稱EC)來實現數據冗餘,如何在保證數據可靠性和性能的前提下,減少數據冗餘,成為了分佈式存儲降成本的關鍵技術。

“EC 功能有兩大難題,一個是打開功能之後對主機性能的影響,有些存儲產品在該項功能打開之後對主機性能影響可以達到 30% 左右;另外一個就是,如何做到大比例的 EC。”曹長斌表示。為此,華為存儲研發團隊設計出多套模型和備選方案來降低EC功能對主機性能的影響,經過多次驗證之後,彈性 EC 功能實現了性能和容量的完美平衡。

“在高併發和高負載的情況下,彈性 EC 功能通過 IO 聚合,並利用存儲盤的特質,將隨機讀寫改成順序讀寫,來解決性能問題。另外,對於大比例 EC,我們採用了追加寫的方式,這意味著修改某個數據時,不需要讀老數據和校驗,從而大幅降低對性能的影響。”

冰凍三尺非一日之寒

“我們希望在 OceanStor D 系列中做出業界競爭對手沒有的東西,形成自己的差異化優勢。”作為華為存儲研發的一名老兵,曹長斌見證和參與了 OceanStor D 系列分佈式存儲從 1.0 到 8.0 的全過程。

眾所周知,存儲是一個技術門檻較高、相對封閉的領域,國外存儲巨頭常年處於領先的位置,中國本土存儲品牌多年以來一直處於跟隨者的角色。曹長斌對此深有感觸:“在過去,競爭對手做什麼,我們就跟著做什麼,採用的是‘Me too,But cheaper’的策略;之後隨著自身不斷成長,在技術層面迎頭趕上,則變成了‘Me too,But Better’。現在則是去尋求開發出別人沒有的功能和技術,確定自身的差異化優勢。”

OceanStor 分佈式存儲基於華為在企業存儲領域十多年企業級可靠性和性能的積累,融入了華為公有云在海量擴展能力、數據縮減能力方面的領先技術打造而成。“放眼全球,既做公有云、也做企業存儲、同時還提供自研芯片的分佈式存儲廠商,僅此一家”曹長斌自豪地說,“我們有什麼理由不好好做、不做好?”

「獨具匠心」哪有什麼一夜成名?其實全是百鍊成鋼

研發團隊挑燈夜戰

寫在最後

華為OceanStor D系列分佈式存儲誕生於2012年,源自於華為公司內部大量數據庫一體機替代的這個想法。一路走來,從1.0成長到8.0,這是華為存儲人堅持不懈和精益求精的精神,也是華為存儲人解決一個個業界難題、逐步實現當初想法的過程,更是中國分佈式存儲的從無到有、從弱到強的真實寫照。

未來,隨著5G、物聯網、人工智能等應用的興起,一個更加豐富、更加智能的新數據時代也將到來。華為OceanStor D系列分佈式存儲不僅讓海量多樣性數據底座的願景在新數據時代走向落地,也將開啟華為智能數據與存儲戰略嶄新的一頁。


分享到:


相關文章: