從里德-所羅門算法到Flex EC,數學是華為云真正的“硬核”
“宇宙之大,粒子之微,火箭之速,化工之巧,地球之變,生物之謎,日用之繁,無處不用到數學”
----華羅庚
2012年,一本由吳軍博士編著的《數學之美》暢銷中國,書中將高深的數學原理講得更加通俗易懂,讓非專業讀者也能領略數學的魅力。吳軍博士在書中提到知名的計算機科學家Randy Katz發明了RAID(計算機獨立磁盤冗余陣列)系統,而正是RAID技術奠定了商用存儲系統高性能高可靠的根基。RAID的核心思想就是使用EC(Erasure Code)糾錯碼來靈活地配置數據冗余度,在保持存儲系統高性能高可靠的基礎上,提供比多副本技術更優的存儲利用率。
一.Erasure Code和Reed-SolomonCodes:
隨著云計算領域的發展,云端算力成指數型增長,5G和AI應用的崛起,海量的數據上云已經是不可逆的趨勢,而云存儲系統所管理的數據已經從傳統企業存儲TB級邁向了EB級(1EB = 1 000 000 TB),在云存儲發展初期,受限于技術能力,各云存儲廠商主要沿用多副本機制(通常是3副本),導致云存儲系統的空間利用率只有33%,數據存儲成本高居不下,而后業界通常采用EC方式來降低成本。
傳統的的EC(Erasure Code) 糾錯碼使用的是里德-所羅門碼(Reed-Solomon Codes,簡稱RS Codes),其在云存儲系統中應用方式為:
把云存儲(主要是公有云對象存儲系統)的所有存儲單元(單硬盤或存儲節點)視為一個Erasure Code存儲池,可以將對象按照N+M的方式存儲(N為對象的數據分片,M為校驗片),它將對象切分成N個數據片,M個校驗片。以6+3的EC為例,空間利用率可以達到67%,更大比例的N+M將會具有更高的空間利用率,在成本上非常具有競爭力,同時,系統的吞吐量較3副本(或多副本)有較大的提升。因此,EC技術在云存儲領域得到大規模的應用。
但是傳統的EC機制在公有云場景下,面臨著以下諸多問題:
1、在對象大小不確定的場景下,需進行補零和填充計算,浪費存儲空間,成本較高。
2、如不補零, 需進行多次覆蓋寫以保證EC成員組的原子性。會導致系統復雜度提升,吞吐量降低,需配置更快的CPU和更大的網絡帶寬,存儲成本增加。
3、此外,還有一種增加Cache-Tier的方式以避免EC時單元不滿的問題:先以3副本的形式寫入高性能的SSD Tier,湊滿EC單元后再進行計算和搬移至HDD Tier。這種off-line的EC方式,其缺點有:
a)額外的SSDTier,成本高;
b)持續寫入對SSD可靠性的挑戰;
c)數據搬移消耗大量內部帶寬。
4、傳統的EC在大比例N+M(如20+3)下,如果出現節點/介質故障,就需要讀取大量數據片和校驗片進行數據重構,會導致系統性能陡降。
基于以上,我們可以知道,衡量一個使用EC的數據存儲系統的優劣可以通過以下幾個維度來綜合考慮:
1、高效的空間利用率:一個系統能夠穩定地提供多少空間利用率,在給定的N+M,空間利用率恒定。
2、高效的寫入性能:無論業務層如何變化,對象的大小如何變化,應該有恒定的寫入帶寬、IOPS等。
3、高效的重構性能:盡可能少的系統重構IO帶寬,盡可能少的占用跨AZ/DC的網絡帶寬。
二.華為云“On-line Streaming Erasure Coding”和“Flex Erasure Coding”:
華為云OBS服務通過創新的“On-line Streaming Erasure Coding”和” Flex Erasure Coding”提供on-line的Erasure Coding存儲機制,在公有云對象存儲系統中解決了上述的幾個關鍵問題。
1、On-line Streaming Erasure Coding
如下圖所示,整系統的核心部件是Streaming ErasureCoding Unit, 多個對象的數據可以流入處理單元,由其進行encoding操作。通過多個對象數據的combine,可以消除對象不滿時,數據寫入補零計算浪費的空間。
此過程不需要復雜低效的分布式事務,也不需要讀取已經寫入的數據。通過這個Streaming ErasureCoding Unit,提供on-line的EC機制,避免內部的數據搬遷動作。
2、Flex Erasure Coding算法:
華為云通過應用全新的Flex Erasure Coding編解碼算法,在保持數據重構效率的基礎上,重構帶寬需求大幅度降低,極大地提升了故障時數據重構性能,有效地縮短了重構用時,保證數據的持久度和系統吞吐量。
通過上面2個自研算法,華為云OBS單流帶寬達到業界友商的3~5倍,超過300MB/S,超千萬并發鏈接能力,并且在高業務負荷下仍然保持穩定低時延,整體性能和空間利用率相比多副本或傳統EC技術大幅提升:
在大數據應用場景,由于寫放大極具減少,單流帶寬大幅提升,大數據對象case下性能倍數提升,用戶能更快地獲取數據分析結果。
在IOT場景,海量的IOT設備都需要實時向云端進行數據傳輸,而OBS超千萬的并發能力,能支撐數億IOT設備的連接訪問。
在視頻應用(視頻監控,直播和點播)場景,華為云OBS的穩定低時延支撐高畫質視頻快速播放且無卡頓。
在更多的應用場景中,華為云OBS 用同樣出色的表現證明:數學算法的優化能讓軟件產品能力再次領先業界一個時代。
三.軟件的靈魂是算法,算法的硬核是數學
“我認為用物理方法來解決問題已趨近飽和,要重視數學方法的突起。”——任正非
正是由于華為在數學領域長期持續的投入,讓其在云+AI+5G時代的產品具有領先的競爭力。
早在1999年,華為就在俄羅斯成立了專門的算法研究所,基于俄羅斯科學家的數學能力,連續突破了3G/4G移動網絡技術特殊瓶頸,使華為成為全球4G移動網絡設備的領導者。而在2016年,華為再次宣布在法國設立歐洲第二個數學研究所,繼續加強基礎科學研究。
除了在俄羅斯和法國建立的數學研究所,華為還積極參與并投資包括中國在內的全球數學家的科研項目,積極推動數學研究和數學成果在產業的落地。在華為的長期支持下,Erdal Arikan教授在Polar碼上取得了多項突破,最終成為5G控制信道編碼標準,推動了通信技術的發展。
而正是基于數學和其他基礎科學研究成果在芯片設計、集成電路開發、軟件算法和質量管理等方面的應用,華為才能成為ICT行業的長跑選手,并且能在外部環境風云變幻的當下,保持著持續前行的動力。
華為曾在其官方媒體上發表了《基礎研究與基礎教育是產業誕生和振興的根本》(鏈接)的文章,以官宣的方式闡述了基礎研究特別是數學研究對產業發展的貢獻,更是提出了“數學是開啟一切的工具”的論斷。
數學,是華為繼續前行指路燈,也是華為云真正的“硬核”實力。