海量數(shù)據(jù)的增長催動著對象存儲的持續(xù)火熱,對于這一技術(shù),最有趣的一點(diǎn)就是其用途的多樣性。雖然多數(shù)情況下,對象存儲常被用于歸檔存儲,或代替生產(chǎn)環(huán)境中的文件服務(wù)器,但實(shí)際上對象存儲的應(yīng)用場景還有很多。如今,越來越多的供應(yīng)商開始提供性能得到優(yōu)化的對象存儲系統(tǒng),為對象存儲帶來了一條新的發(fā)展路線。
打造高性能的對象存儲,并不僅僅是把存儲系統(tǒng)中的機(jī)械硬盤替換為全閃存就可以。使用閃存盤對與性能的提升當(dāng)然是大有幫助的,但對象存儲系統(tǒng)往往存有海量的元數(shù)據(jù),會導(dǎo)致延遲的增加,無法有效利用閃存的性能。
除了元數(shù)據(jù)的問題外,打造高性能對象存儲系統(tǒng)還有一個大的挑戰(zhàn),就是基礎(chǔ)設(shè)施的橫向擴(kuò)展能力。對象存儲系統(tǒng)在進(jìn)行容量升級時,會將節(jié)點(diǎn)添加到存儲集群中,每個節(jié)點(diǎn)的容量匯集到集群中,創(chuàng)建一個存儲池。在大規(guī)模的橫向擴(kuò)展集群中,通常有幾十上百個節(jié)點(diǎn)。聚集和管理這些節(jié)點(diǎn)的延遲可能很高。
AI和深度學(xué)習(xí)的對象存儲挑戰(zhàn)
在探討高性能對象存儲架構(gòu)面臨的挑戰(zhàn)時,AI、深度學(xué)習(xí)這類擁有大規(guī)模、非結(jié)構(gòu)化數(shù)據(jù)的工作負(fù)載是絕佳的例證。理論上,這些工作負(fù)載應(yīng)該是理想的對象存儲應(yīng)用場景,通常有數(shù)百萬、千萬、甚至數(shù)億的文件。存儲這些數(shù)據(jù)需要大量的容量空間,因此需要許多節(jié)點(diǎn)。與此同時,這些進(jìn)程都是由吞吐量驅(qū)動的。
基于這些因素來看,AI和深度學(xué)習(xí)負(fù)載顯然非常適合采用典型的多節(jié)點(diǎn)對象存儲集群。大多數(shù)AI和深度學(xué)習(xí)框架,比如TensorFlow都常常會采用對象存儲架構(gòu)。從理論上講,對象存儲基礎(chǔ)設(shè)施應(yīng)該能夠滿足AI和深度學(xué)習(xí)工作負(fù)載的需求。
但是利用對象存儲系統(tǒng)支撐AI工作負(fù)載,并不是簡單地搭建一個全閃存對象存儲系統(tǒng)。系統(tǒng)必須能夠解決一些現(xiàn)實(shí)問題,即可能會有幾十上百個節(jié)點(diǎn),還有元數(shù)據(jù)帶來的問題,以及集群管理的挑戰(zhàn)。
如何應(yīng)對元數(shù)據(jù)挑戰(zhàn)
元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),它往往是對象存儲實(shí)現(xiàn)高性能的一大挑戰(zhàn),原因有兩個:首先,對象存儲系統(tǒng)需要更多的時間來管理其豐富的元數(shù)據(jù)。由于大多數(shù)對象存儲供應(yīng)商會在集群中指定一定數(shù)量的節(jié)點(diǎn)來管理和存儲元數(shù)據(jù),因此管理更加復(fù)雜;在AI和深度學(xué)習(xí)工作負(fù)載中,專用的元數(shù)據(jù)控制器可能經(jīng)常會被元數(shù)據(jù)壓垮,成為性能瓶頸,因此導(dǎo)致閃存甚至機(jī)械硬盤都不能充分發(fā)揮它們的性能潛力。
元數(shù)據(jù)的第二個挑戰(zhàn)是集群通信。大多數(shù)向外擴(kuò)展的NAS或塊存儲系統(tǒng)具有相對較小的節(jié)點(diǎn)數(shù)。在NAS和塊存儲場景中,只有6個節(jié)點(diǎn)的存儲集群都可以稱作是大型集群了,但在許多對象存儲部署中,6節(jié)點(diǎn)只是起步。節(jié)點(diǎn)間的通信成為一個大問題,特別是在十分考驗性能的用例中。
創(chuàng)建高性能的、大規(guī)模的對象存儲解決方案需要解決元數(shù)據(jù)性能和集群管理問題。下一代對象存儲將元數(shù)據(jù)分布在集群中的每個節(jié)點(diǎn)上,而不僅僅是幾個控制器上。元數(shù)據(jù)的分發(fā),需要確保每個節(jié)點(diǎn)都擁有響應(yīng)I/O請求所需的所有信息。
其他一些問題
對象存儲系統(tǒng)還必須解決節(jié)點(diǎn)間的網(wǎng)絡(luò)問題。在這種情況下,元數(shù)據(jù)的分布也很有幫助,因為它降低了東-西之間的通信量。供應(yīng)商必須優(yōu)化節(jié)點(diǎn)間的網(wǎng)絡(luò),這樣才不會造成性能瓶頸。多數(shù)情況下,供應(yīng)商會通過優(yōu)化網(wǎng)絡(luò)通信以最小化傳輸頻率。
另一個需要優(yōu)化的領(lǐng)域是協(xié)議仿真。例如,大多數(shù)對象存儲系統(tǒng)支持NFS。NFS支持至關(guān)重要,因為許多物聯(lián)網(wǎng)設(shè)備使用的是NFS。其中的挑戰(zhàn)在于,許多對象存儲系統(tǒng)都掛在一個獨(dú)立的組件上,該組件在NFS和對象存儲之間進(jìn)行轉(zhuǎn)換,而不是在它們的軟件中本機(jī)運(yùn)行NFS。轉(zhuǎn)換的性能開銷非常大,并且往往表現(xiàn)在高性能場景下。
NFS在對象存儲代碼中的本地集成,可以提高性能并同時訪問相同的數(shù)據(jù)。并發(fā)訪問意味著物聯(lián)網(wǎng)設(shè)備可以通過NFS將數(shù)據(jù)發(fā)送到對象存儲卷,同時,AI能或深度學(xué)習(xí)框架可以通過對象存儲處理數(shù)據(jù),而不需要復(fù)制或移動數(shù)據(jù)。
關(guān)于NAS
NAS系統(tǒng)在當(dāng)前數(shù)據(jù)中心中仍然有其價值,但它現(xiàn)在處于兩個極端之間。盡管高容量NAS仍然在備份存儲市場有一定競爭力,但對象存儲更像是長期存檔和備份的理想選擇。而且對象存儲也適合作為文件服務(wù)器替代品,比如性能要求不高的用戶主目錄。
高性能對象存儲非常適合需要幾十個或幾百個節(jié)點(diǎn)、數(shù)十PB容量的大規(guī)模工作負(fù)載。這些工作負(fù)載同時還依賴于吞吐量,并且在I/O訪問方面高度并行。介于這兩個極端之間的是高性能、非結(jié)構(gòu)化的數(shù)據(jù)工作負(fù)載,這些工作負(fù)載本質(zhì)上是隨機(jī)I/O,并且節(jié)點(diǎn)數(shù)只有十幾個。在這些用例中,NAS可能仍然是更好的選擇。