天天看點

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

作者:UCloud雲計算

前言

UCloud在2020年8月正式釋出了基于US3的全新一代歸檔存儲産品,該産品采用UCloud全新自研存儲架構,相較标準存儲降低近80%存儲成本的同時,與市場同類歸檔存儲産品相比降低近30%的價格。據IDC的預測,全球年新增資料量到2025年将達175ZB,真正能存儲下來的資料僅有15ZB左右,流失率超過91%。在目前企業資料的冰山模型裡,80%的資料量來源于冷資料。在公有雲領域,UCloud認為容量型存儲通過技術手段提升發展的空間還十分巨大。

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

如何最大化利用最新的高容量硬體來進一步降低存儲成本?如何在歸檔存儲長期儲存的場景下充分保障使用者的資料安全?這些都需要對US3歸檔存儲的整個IO路徑做較大的優化以及硬體适配工作,同時我們還需要保障産品的易用性,避免給使用者帶來額外的使用成本。

接下來本文将從UCloud如何利用硬碟技術提升存儲密度以及優化IO排程來降低營運成本這兩個角度,詳細解析US3歸檔存儲的底層存儲引擎的軟體以及硬體選型優化細節。

采用SMR盤+JBOD裝置提高存儲密度

降低硬體層面的成本,主要展現在提高存儲密度上。這裡我們探索過包括藍光,錄音帶、硬碟等不同的存儲媒體,也有參考過微軟的Pelican系統的硬體設計。考慮到我們最終實作的目标是期望使用者可以在緊急情況下分鐘内實作資料的激活與讀取,正常情況下可以在小時内完成激活與讀取,對于使用者的最短儲存時間不需要以年來計算。是以,UCloud結合自身的存儲技術優勢,暫時排除了藍光以及錄音帶的存儲媒體實作,主要采用高密度硬碟的方式來實作歸檔型的雲存儲服務。

這裡先介紹一下傳統硬碟是怎麼記錄資料的。

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

這種傳統的硬碟一般來說是屬于垂直磁記錄PMR類型的硬碟。資料通過寫入彼此平行而不重疊的磁道來記錄資料,提升資料存儲容量隻能通過提升磁道數量來提升。

相較于這種傳統的硬碟還有一種基于疊瓦磁記錄SMR的磁存儲資料記錄技術的硬碟可以提升存儲密度以及整體硬碟的存儲容量。這裡介紹SMR硬碟的硬體實作之前還需要先了解一個背景知識,首先我們将磁盤的磁頭放大來看。

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

由于實體上的原因,磁盤寫入磁頭所需要的寬度要比讀取的磁頭寬上很多,這就導緻了讀寫兩個操作對于磁道寬度的需求其實是不對等的,寫入需要的寬度更多,這就給提高磁盤密度帶來了可能性,下面我們再來看一下SMR磁盤的構造。

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

SMR硬碟寫入的新磁道與先前寫入的磁道部分重疊,進而使先前的磁道更窄,是以能擁有更高的磁道密度。由此可以看出,使用疊瓦磁技術的磁道互相重疊,與用作屋頂的瓦片堆疊方式類似,是以叫做疊瓦磁記錄硬碟。

從SMR硬碟的硬體構造我們不難看出在提升硬碟存儲容量的同時,對于寫入其實會造成很大的困難,一旦目前磁道的下一條磁道被寫入過資料,這個磁道如果再想寫入,由于磁道有重疊,寫入的磁頭又較大就會對後面的資料造成影響。是以從使用的角度來看,SMR硬碟會被劃分成若幹的Zone,每個Zone中的資料隻能夠進行追加寫入,這其中又會有1%的Zone,磁道不重疊,叫做CMR Zone,可以支援随機讀寫。

可想而知如果要對上層屏蔽SMR盤帶來的限制的話會帶來不少的代價,這裡有device managed、host aware兩種方式來簡單屏蔽掉SMR的順序寫入限制,但不論哪一種,都是将随機IO轉化為順序IO,這樣會帶來一定的寫放大以及讀性能下降,以及在特定IO場景下的硬碟壽命影響,且上層對其影響不可控。

UCloud存儲團隊在多個現有産品上,都有繞過檔案系統直接對塊層存儲操作的技術積累,為避免對底層存儲落地檔案系統有強依賴,我們選取了host managed的方式來對SMR盤進行讀寫管理。

在硬碟資料落地的同時,我們也将相關的少量中繼資料與資料合并在一起寫入,這樣做有三方面考慮:

  • 一是這部分少量中繼資料,我們會包含這一次IO的整體CRC,用于防止硬碟的靜默錯誤(Silent Data Corruption),提高使用者在使用US3歸檔存儲時的資料可靠性,是以在冷存儲這種海量且長期存儲場景硬碟的比特位反轉(bit flip)等錯誤還是需要我們特别關注的。
  • 二是當我們的中繼資料受到一些毀滅性的軟硬體問題導緻不可用時,我們可以通過重新讀取這些随IO寫入的中繼資料複原出整體的結構,當然這個代價也是比較大,預期也是在應對一些黑天鵝事件時的處理方案。
  • 三是可以降低我們的寫放大,在寫入時不會由于需要更新中繼資料而寫入兩次IO,這在随機IO能力不是強項的HDD硬碟場景下也格外重要。
存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

我們選取了其中頭部的若幹CMR Zone用于自解析目前盤的中繼資料,并備援多份,這裡由于自身1%的CMR Zone對于中繼資料來說還是較多,是以這裡我們将部分CMR Zone和隻能追加寫的SMR Zone都抽象成了隻能追加寫的Data Zone,來最大化的利用磁盤的空間。

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

至此我們提高了單塊磁盤的存儲密度,使單塊硬碟存儲空間提升150%,相較于之前,我們還提高了單機櫃的磁盤密度來進一步提升整體的存儲密度。相較于傳統36盤位的傳統高密機型,我們采用了JBOD的方式。這裡受益于 UCloud自建機房的優勢,先前單機櫃機房地闆承重以及高功率機櫃稀缺的限制不再存在,進而可以在單機櫃存放更多的JBOD儲存設備,使機關機架的存儲容量提升5.375倍,硬碟數量增加59%。

除此之外,我們還采用了雙機頭硬體架構,所有JBOD中的硬碟保證同時雙機頭可見,這樣保證了在單機當機的情況下,仍然可以通過我們的選主算法立刻切到另外一個機器上,保證服務的可用性。

優化IO排程算法降低營運成本

提高密度本質上降低的是我們的CAPEX(Capital Expenditure)資本性支出,在歸檔存儲的場景下長期的OPEX(Operating Expense)營運成本也占比較大。這裡我們做出的優化是在不影響使用者使用體驗及存儲性能的前提下降低我們的電費支出(即降低OPEX成本)。

為此我們在IO排程層增加基于硬碟Spin-up、 Spin-down的排程算法。用來降低在高密度機型的冷存儲場景下大量硬碟空轉的電力浪費。

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

這裡整體的排程算法需要考慮的因素很多,我們首先根據故障域把JBOD中的磁盤分成若幹個磁盤組,保證在适當的EC條帶以及JBOD個數下,能夠容忍磁盤以及JBOD層面的故障,之後Spin up-down的操作都基于磁盤組為機關進行操作。

同時我們需要考慮在滿足使用者緊急讀取需求的同時保證硬碟的Spin up-down次數在一定的範圍之内,這裡我們将硬碟使用壽命内的可操作上下電次數平均到每天每小時,在算法上保證磁盤的每次Spin up-down會有一定的冷卻時間,而使用者的普通讀再通過正常的輪詢上電的時間片内進行讀取,這樣既可以降低使用者的使用成本也保證了使用者資料在硬碟使用方式層面的可靠性。

除了可靠性上面的考慮,我們也需要保證寫入的性能是否能夠吃滿我們的硬體,由于SMR盤以及業務邏輯的特殊性我們的寫入包括之後的Compaction都是大量順序寫入,是以我們配合EC條帶的大小保證一個磁盤組的寫入資料帶寬可以吃滿我們整體裝置的網卡帶寬,這樣在性能上就不會有額外的浪費。

寫在最後

存儲成本降低80%!US3在海量資料歸檔存儲下的成本優化技術實踐

基于上述提高磁盤存儲密度以及降低營運成本(即電費)兩個主要方面的設計考慮,我們研發了US3歸檔存儲的底層存儲引擎(如上圖所示),在大幅降低US3歸檔存儲成本的同時,保障了在歸檔存儲這種長期冷存儲下的資料高可靠性。

後續US3歸檔存儲會繼續從各個方面提升産品的使用體驗,例如更加便捷自動的資料降冷處理,更加智能化的降低存儲成本,讓使用者充分享受UCloud技術創新帶來的價格紅利。還會探索深度歸檔場景下錄音帶等其他存儲媒體的使用,讓使用者不用與複雜的底層硬體進行直接的互動,就能滿足海量冷資料存儲的需求。

繼續閱讀