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