搜索搜索

糾刪碼=低效能?Bigtera 打破刻板印象,突破 EC 效能瓶頸!

應用案例2022-02-11

提起糾刪碼,儲存領域業者絕對不陌生。糾刪碼 (Erasure coding) 技術簡稱 EC,是一種資料保護技術。最早用於通信產業資料傳輸中的資料恢復,是一種編碼容錯技術。在儲存系統中,糾刪碼技術主要是透過糾刪碼演算法將原始的資料進行編碼獲得校驗,並將資料和校驗一併儲存起來,以達到容錯目的。

糾刪碼的引入,在保證儲存可靠性的前提下,大幅提升了儲存的容量利用率,能提供接近於本地 RAID 5/6 的有效磁碟空間,但代價是犧牲了效能。糾刪碼在隨機寫⼊,特別是改寫和重建 (Rebuild) 時產生的 I/O 懲罰更大,對應的叢集網路流量比副本保護模式更高。在規劃儲存方案時,為了保證更高儲存效能,我們普遍會採用雙副本甚至三副本的儲存策略,但若要追求更高的容量利用率,則只能選擇犧牲部分效能,改用糾刪碼儲存策略,以換取更高空間利用率。

若以三副本與糾刪碼 (4+2) 為例,三副本可用空間利用率為 33.3%,EC 4+2 可用空間利用率為 66.6%,但是從效能表現上,糾刪碼效能往往只能達到副本效能的 1/2~2/3。因此,許多客戶不得不在效能與可用空間中做選擇。

EC (4+2) 編解碼簡介

 

受到疫情影響,在當前經濟形勢低迷的大環境下,發掘現有儲存系統的效能潛力成為使用者的必然選擇,不過追求效能只是面向一。如何在有限的硬體條件下,實現更高的儲存空間利用率,盡可能提供高儲存價值,成為儲存廠商努力的方向。

一直以來,Bigtera 為了提升在糾刪碼上的效能表現,做了許多技術上的研究與實踐,特別是在 VirtualStor 8.0版本之後,我們針對糾刪碼在讀寫方面的劣勢,如小物件隨機寫入及未命中的隨機讀寫場景,對於 IO 負載龐大,導致 HDD 的配置下效能表現不佳的狀況,以獨有技術進行最佳化,大幅提升了物件儲存在 EC 策略下的效能表現:

  • 內建物件儲存索引池:S3 的中繼資料用於記錄檔案的屬性資訊,Bigtera 自行研發的智慧型儲存引擎 BigteraStore 會自動將中繼資料資訊存放於高效能儲存媒體如 SSD 中,以提升在巨量物件檔案場景下的物件搜尋能力,搭配內建分佈式索引搜尋服務,可以在數毫秒內便可產生億級資料量的搜尋結果。
  • 支援小物件聚合技術:在小物件讀寫較多的場景,透過高效能副本池,先行聚合隨機寫入的小物件,然後將其更新至資料 (EC) 池中,並且可以由使用者根據應用場景資料量彈性設定更新週期。透過小物件聚合功能,不僅避免因 EC 條帶化而浪費的原始使用空間,而且透過寫入快取,提升了小量資料寫入效能。此外,由於Cache保存了更多小物件,也提高資料讀取的命中率,進而大幅提升整體讀取效能。

透過這些技術,Bigtera 的 S3 物件儲存在糾刪碼配置情況下的效能表現優越,並且隨著業務資料不斷增加,能夠保證效能衰減穩定在峰值 10% 以內,以滿足業務對於資料讀取的效能要求。

仔細研究不同基礎資料的效能表現(見下圖),可發現在基礎資料量幾乎倍增的情況下,S3 糾刪碼池在不同資料區塊大小場景下的讀寫效能仍然保持驚人的穩定性,這代表可以為業務提供高品質、持續的讀寫服務。

一直以來,儲存系統的空間利用率與儲存效能往往被認為是魚與熊掌不可兼得。StorageIO 高級分析師 GregSchulz 表示:「為了達到應用所需的 IOPS 能力,部分儲存系統被設計得很大,透過大量磁碟和操作命令來提升 IOPS,但空間利用率卻非常低,反之,追求空間利用率的最大化往往需要藉助諸如糾刪碼、壓縮和重複資料刪除等等技術,但是這些功能會對系統效能帶來負面影響」。因此,達成高效儲存需要在容量和效能之間尋找平衡點,根據應用需求的不同,控制並最佳化容量、處理能力、效能以及成本。

Bigtera能針對糾刪碼池下的物件儲存效能進行深度最佳化,在有限的硬體配置情況下不斷發掘儲存潛能,可以廣泛應用於人臉辨識、道路違規攝影等需要儲存巨量小檔案的應用場景,兼顧儲存容量與效能,為使用者提供了更多可能性,真正站在使用者的角度,協助其降低建置成本,進而帶來更優越的使用者體驗。

超融合
試用