現代科學技術的進步,為人們帶來切實可見的幸福感,銀行金融業務辦理無紙化,智能櫃台讓排隊越來越少;醫生在線閱片;就醫不用再拎着大大的塑料袋和膠片;智能工廠利用AOI質檢技術;提高生産效率和産品良品率……
而這一切便捷的背後,往往伴随着巨量數據的産生。舉個例子,一家中型銀行的影像平台,每年會增加數千萬的文件數量,存儲空間也會相應增長數百TB;一家大型三甲醫院的醫學影像文件每月新增數量可能達到千萬級,每年增長量達到上億,存儲空間高達PB級;一條智能質檢的生産線每月生成數PB的質檢圖片數據。
這些數據中,非結構化數據(圖片、視頻、音頻、文檔等)占據主流,除了呈現數量多、容量大的特點,往往還以KB級别的小文件為主。
海量小文件,存儲大難題
常規存儲系統,如果需要訪問一份真實的數據就需要先訪問到該數據的元數據,inode(索引節點)記錄着文件的元信息。在存儲文件時,除了文件大小會受磁盤空間限制外,文件個數還會受到inode的制約,在海量小文件的情況下,必然會産生更大數量級的元數據,如果文件過小,但數量卻達到了inode上限,就會造成磁盤還沒滿,但inode已用盡的情況,造成存儲空間浪費,這也進一步放大了文件系統擴展性差、檢索效率低的問題。例如,傳統NAS文件系統在文件數量達到數千萬級時,會出現性能瓶頸,嚴重影響業務效率。由于在元數據管理、存儲性能、訪問效率等方面面臨巨大的挑戰,海量小文件存儲成為了業界公認的難題。
基于此,面對億級數量的KB級小文件,IT技術人員不得不重新考慮存儲的效率以及架構問題。
雖然分布式對象存儲系統可以承載更大的文件數量,但如果不對大文件和小文件分開處理,在海量小文件場景下,存儲系統可能會随着容量增加性能迅速下降或者空間浪費嚴重。面對數以億計的海量小文件,杉岩MOS海量對象存儲如何保持高效的讀寫能力,并增加存儲空間利用率?
小文件在線合并——千億小文件,讀寫性能依舊平穩
為了解決上述難題,杉岩MOS采用在線合并技術解決海量小文件場景下的存儲性能和空間占用問題。即在寫入小文件的過程中,不斷地對大文件進行追加寫,成功後寫入元數據,這樣多個文件寫入後就自動合并成了一個大文件。但此時,需要考慮的是寫入大文件時選擇副本模式,還是糾删碼模式?
副本“快”,糾删碼“省”,二者不可兼得?
為提升數據存儲可靠性,存儲系統通過副本冗餘技術和糾删碼冗餘技術進行數據的保護,在三副本存儲策略下,空間利用率隻有33.3%,而糾删碼模式,例如EC 8 2,空間利用率可以達到80%。因此,在小文件在線合并寫入大文件時,通常傾向于選擇糾删碼模式。
但是,糾删碼模式也有它的缺點,追加寫會有IO放大,并且還會伴随存儲空間浪費。此外,實測在非條帶對齊追加寫的情況下,性能會急劇下降。
副本“快”,可以節省服務器處理器性能,但空間利用率低;糾删碼“省”,但讀寫性能差。
如何做到“魚和熊掌兼得”?
副本合并轉EC 條帶對齊,破解存儲難題
杉岩MOS海量對象存儲創新研發副本合并轉EC 條帶對齊寫,破解海量小文件存儲難題。所謂副本合并轉EC,是指在“小文件即時合并為大文件”的基礎上,引入中間副本池,業務RGW先把小文件通過即時合并的方式吸入到中間副本池,然後通過後台線程掃出已經寫滿(狀态為full)的大文件,以及尚未寫滿(狀态為not_full)但已超過一定時間沒有新寫入小文件的大文件,将大文件寫入到後端的EC池中。
寫入EC池時采用免網關數據複制卸載技術,避免副本數據先拷貝到對象網關側,再由對象網關寫入EC池。同時,寫EC池時将對象進行合并對齊條帶刷到EC池,減少IO放大。
經過測試,在配置了中間副本池的模式下,性能有了很大的提升:
總結
對于非結構化數據存儲來說,攻破海量小文件存儲難題,代表該存儲系統能适用于大部分非結構化數據存儲場景。杉岩MOS海量對象存儲自主研發的小文件合并副本轉EC技術,既保證了業務端的讀寫性能,又提高了存儲空間利用率,為用戶應對千億級海量小文件存儲難題提供了可靠的解題思路。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!