前言
UCloud優(yōu)刻得在2020年8月正式發(fā)布了基于US3的全新一代歸檔存儲產品,該產品采用UCloud優(yōu)刻得全新自研存儲架構,相較標準存儲降低近80%存儲成本的同時,與市場同類歸檔存儲產品相比降低近30%的價格。據IDC的預測,全球年新增數據量到2025年將達175ZB,真正能存儲下來的數據僅有15ZB左右,流失率超過91%。在目前企業(yè)數據的冰山模型里,80%的數據量來源于冷數據。在公有云領域,UCloud優(yōu)刻得認為容量型存儲通過技術手段提升發(fā)展的空間還十分巨大。
如何最大化利用最新的高容量硬件來進一步降低存儲成本?如何在歸檔存儲長期保存的場景下充分保障用戶的數據安全?這些都需要UCloud優(yōu)刻得對US3歸檔存儲的整個IO路徑做較大的優(yōu)化以及硬件適配工作,同時我們還需要保障產品的易用性,避免給用戶帶來額外的使用成本。
接下來本文將從UCloud優(yōu)刻得如何利用硬盤技術提升存儲密度以及優(yōu)化IO調度來降低運營成本這兩個角度,詳細解析US3歸檔存儲的底層存儲引擎的軟件以及硬件選型優(yōu)化細節(jié)。
采用SMR盤+JBOD設備提高存儲密度
降低硬件層面的成本,主要體現(xiàn)在提高存儲密度上。這里我們探索過包括藍光,磁帶、硬盤等不同的存儲介質,也有參考過微軟的Pelican系統(tǒng)的硬件設計。考慮到我們最終實現(xiàn)的目標是期望用戶可以在緊急情況下分鐘內實現(xiàn)數據的激活與讀取,正常情況下可以在小時內完成激活與讀取,對于用戶的最短保存時間不需要以年來計算。因此,UCloud 優(yōu)刻得結合自身的存儲技術優(yōu)勢,暫時排除了藍光以及磁帶的存儲介質實現(xiàn),主要采用高密度硬盤的方式來實現(xiàn)歸檔型的云存儲服務。
這里先介紹一下傳統(tǒng)硬盤是怎么記錄數據的。
這種傳統(tǒng)的硬盤一般來說是屬于垂直磁記錄PMR類型的硬盤。數據通過寫入彼此平行而不重疊的磁道來記錄數據,提升數據存儲容量只能通過提升磁道數量來提升。
相較于這種傳統(tǒng)的硬盤還有一種基于疊瓦磁記錄SMR的磁存儲數據記錄技術的硬盤可以提升存儲密度以及整體硬盤的存儲容量。這里介紹SMR硬盤的硬件實現(xiàn)之前還需要先了解一個背景知識,首先我們將磁盤的磁頭放大來看。
由于物理上的原因,磁盤寫入磁頭所需要的寬度要比讀取的磁頭寬上很多,這就導致了讀寫兩個操作對于磁道寬度的需求其實是不對等的,寫入需要的寬度更多,這就給提高磁盤密度帶來了可能性,下面我們再來看一下SMR磁盤的構造。
SMR硬盤寫入的新磁道與先前寫入的磁道部分重疊,從而使先前的磁道更窄,因此能擁有更高的磁道密度。由此可以看出,使用疊瓦磁技術的磁道相互重疊,與用作屋頂的瓦片堆疊方式類似,所以叫做疊瓦磁記錄硬盤。
從SMR硬盤的硬件構造我們不難看出在提升硬盤存儲容量的同時,對于寫入其實會造成很大的困難,一旦當前磁道的下一條磁道被寫入過數據,這個磁道如果再想寫入,由于磁道有重疊,寫入的磁頭又較大就會對后面的數據造成影響。所以從使用的角度來看,SMR硬盤會被劃分成若干的Zone,每個Zone中的數據只能夠進行追加寫入,這其中又會有1%的Zone,磁道不重疊,叫做CMR Zone,可以支持隨機讀寫。
可想而知如果要對上層屏蔽SMR盤帶來的限制的話會帶來不少的代價,這里有device managed、host aware兩種方式來簡單屏蔽掉SMR的順序寫入限制,但不論哪一種,都是將隨機IO轉化為順序IO,這樣會帶來一定的寫放大以及讀性能下降,以及在特定IO場景下的硬盤壽命影響,且上層對其影響不可控。
UCloud優(yōu)刻得存儲團隊在多個現(xiàn)有產品上,都有繞過文件系統(tǒng)直接對塊層存儲操作的技術積累,為避免對底層存儲落地文件系統(tǒng)有強依賴,我們選取了host managed的方式來對SMR盤進行讀寫管理。
在硬盤數據落地的同時,我們也將相關的少量元數據與數據合并在一起寫入,這樣做有三方面考慮:一是這部分少量元數據,我們會包含這一次IO的整體CRC,用于防止硬盤的靜默錯誤(Silent Data Corruption),提高用戶在使用US3歸檔存儲時的數據可靠性,因此在冷存儲這種海量且長期存儲場景硬盤的比特位反轉(bit flip)等錯誤還是需要我們特別關注的。二是當我們的元數據受到一些毀滅性的軟硬件問題導致不可用時,我們可以通過重新讀取這些隨IO寫入的元數據復原出整體的結構,當然這個代價也是比較大,預期也是在應對一些黑天鵝事件時的處理方案。三是可以降低我們的寫放大,在寫入時不會由于需要更新元數據而寫入兩次IO,這在隨機IO能力不是強項的HDD硬盤場景下也格外重要。
我們選取了其中頭部的若干CMR Zone用于自解析當前盤的元數據,并冗余多份,這里由于自身1%的CMR Zone對于元數據來說還是較多,所以這里我們將部分CMR Zone和只能追加寫的SMR Zone都抽象成了只能追加寫的Data Zone,來最大化的利用磁盤的空間。
至此我們提高了單塊磁盤的存儲密度,使單塊硬盤存儲空間提升150%,相較于之前,我們還提高了單機柜的磁盤密度來進一步提升整體的存儲密度。相較于傳統(tǒng)36盤位的傳統(tǒng)高密機型,我們采用了JBOD的方式。這里受益于 UCloud優(yōu)刻得自建機房的優(yōu)勢,先前單機柜機房地板承重以及高功率機柜稀缺的限制不再存在,從而可以在單機柜存放更多的JBOD存儲設備,使單位機架的存儲容量提升5.375倍,硬盤數量增加59%。
除此之外,我們還采用了雙機頭硬件架構,所有JBOD中的硬盤保證同時雙機頭可見,這樣保證了在單機宕機的情況下,仍然可以通過我們的選主算法立刻切到另外一個機器上,保證服務的可用性。
優(yōu)化IO調度算法降低運營成本
提高密度本質上降低的是我們的CAPEX(Capital Expenditure)資本性支出,在歸檔存儲的場景下長期的OPEX(Operating Expense)運營成本也占比較大。這里我們做出的優(yōu)化是在不影響用戶使用體驗及存儲性能的前提下降低我們的電費支出(即降低OPEX成本)。
為此我們在IO調度層增加基于硬盤Spin-up、 Spin-down的調度算法。用來降低在高密度機型的冷存儲場景下大量硬盤空轉的電力浪費。
這里整體的調度算法需要考慮的因素很多,我們首先根據故障域把JBOD中的磁盤分成若干個磁盤組,保證在適當的EC條帶以及JBOD個數下,能夠容忍磁盤以及JBOD層面的故障,之后Spin up-down的操作都基于磁盤組為單位進行操作。
同時我們需要考慮在滿足用戶緊急讀取需求的同時保證硬盤的Spin up-down次數在一定的范圍之內,這里我們將硬盤使用壽命內的可操作上下電次數平均到每天每小時,在算法上保證磁盤的每次Spin up-down會有一定的冷卻時間,而用戶的普通讀再通過正常的輪詢上電的時間片內進行讀取,這樣既可以降低用戶的使用成本也保證了用戶數據在硬盤使用方式層面的可靠性。
除了可靠性上面的考慮,我們也需要保證寫入的性能是否能夠吃滿我們的硬件,由于SMR盤以及業(yè)務邏輯的特殊性我們的寫入包括之后的Compaction都是大量順序寫入,所以我們配合EC條帶的大小保證一個磁盤組的寫入數據帶寬可以吃滿我們整體設備的網卡帶寬,這樣在性能上就不會有額外的浪費。
寫在最后
基于上述提高磁盤存儲密度以及降低運營成本(即電費)兩個主要方面的設計考慮,UCloud優(yōu)刻得研發(fā)了US3歸檔存儲的底層存儲引擎(如上圖所示),在大幅降低US3歸檔存儲成本的同時,保障了在歸檔存儲這種長期冷存儲下的數據高可靠性。
后續(xù)UCloud優(yōu)刻得US3歸檔存儲會繼續(xù)從各個方面提升產品的使用體驗,例如更加便捷自動的數據降冷處理,更加智能化的降低存儲成本,讓用戶充分享受UCloud優(yōu)刻得技術創(chuàng)新帶來的價格紅利。還會探索深度歸檔場景下磁帶等其他存儲介質的使用,讓UCloud優(yōu)刻得用戶不用與復雜的底層硬件進行直接的交互,就能滿足海量冷數據存儲的需求。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!