NAS文件服務(wù)器或文件管理器在過(guò)去的25年里一直是存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)或非標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)數(shù)據(jù)的傳統(tǒng)方式。面向非結(jié)構(gòu)化數(shù)據(jù),并不意味著數(shù)據(jù)本身沒(méi)有結(jié)構(gòu),因?yàn)槲募举|(zhì)上就是一個(gè)二進(jìn)制對(duì)象。基于以上原理,許多供應(yīng)商已經(jīng)為相同的非結(jié)構(gòu)化數(shù)據(jù)同時(shí)提供對(duì)象級(jí)存儲(chǔ)和文件級(jí)存儲(chǔ)接口,我們有望看到新興的對(duì)象存儲(chǔ)成為傳統(tǒng)文件服務(wù)器的替代者。
我們將在這篇文章中討論混合使用對(duì)象級(jí)存儲(chǔ)和文件存儲(chǔ)兩種方式來(lái)存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)時(shí)的優(yōu)劣對(duì)比,并研究IT部門(mén)在考察相關(guān)產(chǎn)品時(shí)應(yīng)該考慮哪些重點(diǎn)。
NAS歷史回顧
NAS涵蓋了源自IT世界兩段不同歷史的兩種技術(shù)。其一是由Sun Microsystems開(kāi)發(fā)的NFS,已經(jīng)成為非Windows系統(tǒng)訪問(wèn)網(wǎng)絡(luò)文件內(nèi)容的標(biāo)準(zhǔn)協(xié)議。另一種就是SMB,也就是廣為人知CIFS,是Microsoft平臺(tái)的文件共享協(xié)議。兩種技術(shù)自從推出以來(lái)都發(fā)展迅速,不斷提升和增加擴(kuò)展功能,超越簡(jiǎn)單文件共享實(shí)現(xiàn)更廣泛的功能。
傳統(tǒng)的NAS會(huì)使用RAID技術(shù)來(lái)防護(hù)磁盤(pán)故障,供應(yīng)商的大多數(shù)NAS產(chǎn)品也都基于雙控制器架構(gòu)來(lái)防護(hù)硬件故障,其中一些NAS產(chǎn)品還能實(shí)現(xiàn)橫向擴(kuò)展。NAS的文件系統(tǒng)首先構(gòu)建在物理存儲(chǔ)介質(zhì)上,這些文件系統(tǒng)再使用NFS或SMB向網(wǎng)絡(luò)公開(kāi)。
NAS和對(duì)象存儲(chǔ)的相似點(diǎn)
基于文件的NAS和基于對(duì)象的存儲(chǔ)都面向相同的數(shù)據(jù)類(lèi)型——非結(jié)構(gòu)化文件,在文件內(nèi)部或者外部維護(hù)文件層級(jí)信息。兩者都可以支持橫向擴(kuò)展架構(gòu),從而能存儲(chǔ)海量文件或?qū)ο蟆?/p>
用文件系統(tǒng)來(lái)充當(dāng)數(shù)據(jù)存儲(chǔ)基礎(chǔ)也帶來(lái)一些可用性問(wèn)題:
可擴(kuò)展性問(wèn)題。在單節(jié)點(diǎn)NAS或故障轉(zhuǎn)移雙節(jié)點(diǎn)NAS上,文件系統(tǒng)只位于單個(gè)操作系統(tǒng)實(shí)例上。這種方式可以相對(duì)容易地處理諸如文件創(chuàng)建、鎖定和更新的“固定模式”操作。然而,文件系統(tǒng)的擴(kuò)展是一個(gè)真正的挑戰(zhàn),并且問(wèn)題在需要處理眾多節(jié)點(diǎn)變得非常復(fù)雜。
數(shù)據(jù)完整性。文件系統(tǒng)將數(shù)據(jù)分解為元數(shù)據(jù)和數(shù)據(jù)內(nèi)容,然后存儲(chǔ)在邏輯或物理磁盤(pán)卷空間內(nèi)。如果文件服務(wù)器意外掉電,那么系統(tǒng)必須執(zhí)行文件系統(tǒng)檢查(FSCK)來(lái)校驗(yàn)掉電時(shí)數(shù)據(jù)的完整性。根據(jù)文件系統(tǒng)的實(shí)現(xiàn)方式,校驗(yàn)操作可能會(huì)帶來(lái)很大的延遲;某些NAS系統(tǒng),如NetApp的Data ONTAP,會(huì)使用非易失性RAM來(lái)處理海量數(shù)據(jù)的校驗(yàn)和確認(rèn),從而降低FSCK的開(kāi)銷(xiāo)。
RAID保護(hù)。從Gatter Gibson和Randy Katz在1987年的一篇論文開(kāi)始,RAID已成為存儲(chǔ)設(shè)備的常規(guī)保護(hù)措施。RAID技術(shù)為我們服務(wù)了很多年,但現(xiàn)在已經(jīng)開(kāi)始達(dá)到可擴(kuò)展性的極限,因?yàn)橛脖P(pán)驅(qū)動(dòng)器的容量不斷增長(zhǎng),結(jié)果已經(jīng)遠(yuǎn)遠(yuǎn)超出RAID論文發(fā)表時(shí)的預(yù)計(jì)。今天的RAID系統(tǒng)重建時(shí)間可能會(huì)持續(xù)數(shù)天,這已經(jīng)是個(gè)大問(wèn)題,隨著新款12TB容量驅(qū)動(dòng)器的發(fā)布和不斷投入使用,RAID的前景將會(huì)更加困難。
RAID僅適用于保護(hù)存儲(chǔ)在單個(gè)設(shè)備中的數(shù)據(jù),這也是額外的限制條件。為了保護(hù)數(shù)據(jù)免受單純?cè)O(shè)備故障之外的侵害,必須對(duì)數(shù)據(jù)進(jìn)行復(fù)制,在地理上分散的不同位置創(chuàng)建數(shù)據(jù)的完整副本。
理解對(duì)象存儲(chǔ)
基于對(duì)象的存儲(chǔ)是存儲(chǔ)二進(jìn)制數(shù)據(jù)或?qū)ο蟮南鄬?duì)較新的方式。該技術(shù)可以追溯到20世紀(jì)90年代中期,一家名為FilePool的公司提出了可尋址內(nèi)容存儲(chǔ)的概念。EMC(現(xiàn)在的戴爾EMC)收購(gòu)了FilePool,其產(chǎn)品成為Centera產(chǎn)品線。此后,許多供應(yīng)商都已經(jīng)進(jìn)入這個(gè)可以存儲(chǔ)海量非結(jié)構(gòu)化內(nèi)容的新概念市場(chǎng)。
NAS產(chǎn)品基于文件系統(tǒng)存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),這種機(jī)制的性能和數(shù)據(jù)完整性缺陷無(wú)法避免;而對(duì)象存儲(chǔ)是一套物理存儲(chǔ)架構(gòu),完全消除了以上問(wèn)題。這是因?yàn)閷?duì)象存儲(chǔ)并不使用文件系統(tǒng)概念,而是將數(shù)據(jù)存儲(chǔ)在單個(gè)平面命名空間或?qū)哟谓Y(jié)構(gòu)中。
對(duì)象級(jí)存儲(chǔ)在以下幾個(gè)關(guān)鍵領(lǐng)域與NAS不同:
通過(guò)基于Web的協(xié)議(HTTP或HTTPS)訪問(wèn),而且通常是無(wú)狀態(tài)連接。對(duì)象存儲(chǔ)平臺(tái)的每次讀寫(xiě)操作都使用諸如store-create,update和delete這樣的簡(jiǎn)單指令。
沒(méi)有文件目錄結(jié)構(gòu)。對(duì)象級(jí)存儲(chǔ)提供“存儲(chǔ)單元”或邏輯存儲(chǔ)容器,以平坦,非分層的方式存儲(chǔ)數(shù)據(jù)。
不關(guān)注數(shù)據(jù)格式或結(jié)構(gòu)。數(shù)據(jù)的內(nèi)容屬性描述信息會(huì)保存在元數(shù)據(jù)中,和數(shù)據(jù)本身同時(shí)存儲(chǔ)。這些屬性可以是系統(tǒng)元數(shù)據(jù),例如數(shù)據(jù)保存的日期時(shí)間,或用戶(hù)定義的元數(shù)據(jù),從而讓外部應(yīng)用程序更容易對(duì)數(shù)據(jù)內(nèi)容執(zhí)行檢索和搜索。
修改操作不改變舊數(shù)據(jù)。新數(shù)據(jù)對(duì)象的存儲(chǔ)是一個(gè)無(wú)關(guān)聯(lián)的操作,而數(shù)據(jù)對(duì)象的修改更新實(shí)際上包括刪除和創(chuàng)建操作,并不會(huì)實(shí)際修改已有數(shù)據(jù)。
廣受認(rèn)同的對(duì)象存儲(chǔ)的高度可擴(kuò)展性。許多IT公司認(rèn)為,如果沒(méi)有存儲(chǔ)海量二進(jìn)制數(shù)據(jù)的需求,就沒(méi)有必要選擇對(duì)象存儲(chǔ)。這種偏見(jiàn)正在消除,對(duì)象存儲(chǔ)適合任何環(huán)境,而不只是超大規(guī)模的云。
通過(guò)可替代RAID的技術(shù)措施實(shí)現(xiàn)數(shù)據(jù)保護(hù)。這些技術(shù)包括保留對(duì)象的多個(gè)本地或遠(yuǎn)程副本,或者使用擦除編碼。
使用特殊的內(nèi)容鎖定技術(shù)。內(nèi)容鎖定可以保障NAS的數(shù)據(jù)完整性。單獨(dú)的文件可以打開(kāi)以進(jìn)行獨(dú)占或?qū)懭朐L問(wèn),確保數(shù)據(jù)只能在任何一個(gè)時(shí)間被單個(gè)來(lái)源編寫(xiě)。對(duì)象存儲(chǔ)并不提供原生的鎖定功能,但會(huì)確保對(duì)象被視為不可變的,這意味著數(shù)據(jù)會(huì)被覆蓋以保持一致性。
毫無(wú)疑問(wèn),對(duì)象和文件存儲(chǔ)之間的界限有些模糊。
對(duì)比兩種存儲(chǔ)系統(tǒng)的屬性,我們可以看到存儲(chǔ)數(shù)據(jù)的兩種方法之間也有很多相似之處。兩者都適用于非結(jié)構(gòu)化數(shù)據(jù),并使用元數(shù)據(jù)來(lái)跟蹤正在存儲(chǔ)的特定對(duì)象的信息??梢钥闯?,改造對(duì)象存儲(chǔ)以提供NAS協(xié)議并不困難。
合并對(duì)象和NAS存儲(chǔ)
為什么要合并NAS和對(duì)象存儲(chǔ)?除了只需運(yùn)行單個(gè)存儲(chǔ)平臺(tái)帶來(lái)的物理存儲(chǔ)的明顯節(jié)省外,還有其他好處:
對(duì)象存儲(chǔ)器使用擦除編碼技術(shù)來(lái)支持位置分散的數(shù)據(jù)的保護(hù)和訪問(wèn)。這意味著不再需要使用傳統(tǒng)復(fù)制技術(shù)來(lái)保留數(shù)據(jù)的整個(gè)副本。存儲(chǔ)硬件節(jié)省效果顯著,但還有其他好處,例如能夠有效地將數(shù)據(jù)訪問(wèn)擴(kuò)展到多個(gè)位置,而不是點(diǎn)對(duì)點(diǎn)性質(zhì)的復(fù)制。提醒一句:地理分布文件的鎖定——實(shí)現(xiàn)有效的、分布式對(duì)象的關(guān)鍵要素——并不簡(jiǎn)單。
可以同時(shí)從使用多個(gè)協(xié)議的不同系統(tǒng)上訪問(wèn)數(shù)據(jù)。對(duì)象存儲(chǔ)既可以通過(guò)傳統(tǒng)協(xié)議(如NFS或SMB)提供內(nèi)容服務(wù),需要時(shí)也可以使用更有效的基于對(duì)象的訪問(wèn)方式來(lái)分析數(shù)據(jù)內(nèi)容,以支持其他目的。與NAS相比,對(duì)象協(xié)議的無(wú)狀態(tài)特性減少了訪問(wèn)內(nèi)容的開(kāi)銷(xiāo),例如文件鎖定或跟蹤,分配鎖和跟蹤打開(kāi)的文件句柄(請(qǐng)參閱“減少開(kāi)銷(xiāo)”)。
對(duì)象存儲(chǔ)介質(zhì)易于擴(kuò)展而且便宜。在提供傳統(tǒng)文件訪問(wèn)功能的同時(shí),對(duì)象存儲(chǔ)也是歸檔存儲(chǔ)的理想選擇。您還可以將數(shù)據(jù)移動(dòng)到云端對(duì)象存儲(chǔ),包括長(zhǎng)期冷數(shù)據(jù)歸檔,同時(shí)還能保留一定限度的元數(shù)據(jù)實(shí)現(xiàn)內(nèi)容檢索。這種混合使用物理和云存儲(chǔ)資源的方法大大簡(jiǎn)化了混合存儲(chǔ)平臺(tái)的開(kāi)發(fā)。
基于對(duì)象的NAS:供應(yīng)商評(píng)述
有哪些供應(yīng)商提供基于對(duì)象的NAS產(chǎn)品?我們看到有兩種不同類(lèi)型的產(chǎn)品誕生:利用基于對(duì)象的NAS來(lái)提升NAS使用體驗(yàn),而且無(wú)需暴露底層對(duì)象存儲(chǔ);或者,供應(yīng)商提供混合的NAS和對(duì)象功能,數(shù)據(jù)通過(guò)兩種協(xié)議都可以訪問(wèn)。
基于對(duì)象的NAS產(chǎn)品模式的例子包括Nasuni,這是一個(gè)提供基于云的全局NAS產(chǎn)品的初創(chuàng)公司,NAS的后端存儲(chǔ)空間則基于Amazon Web Services Simple Storage Service(亞馬遜Web服務(wù)簡(jiǎn)單存儲(chǔ)服務(wù))。另外一家采用類(lèi)似技術(shù)的公司是Exablox(現(xiàn)在屬于StorageCraft公司)。該公司的橫向擴(kuò)展OneBlox系統(tǒng)使用環(huán)行分布式對(duì)象存儲(chǔ)來(lái)保存文件內(nèi)容,同時(shí)提供一些有意思的功能,如智能文件版本控制和快照。OneBlox底層會(huì)對(duì)象分解成允許重復(fù)數(shù)據(jù)刪除的塊,但這些細(xì)節(jié)用戶(hù)無(wú)法訪問(wèn)。
在商業(yè)對(duì)象存儲(chǔ)軟件領(lǐng)域也有一系列專(zhuān)有供應(yīng)商產(chǎn)品。以下是一些例子:
Scality公司的RING產(chǎn)品,提供SMB 2.0和NFSv3支持,包括與Microsoft Active Directory的集成。多協(xié)議的支持通過(guò)在RING平臺(tái)本機(jī)運(yùn)行的不同協(xié)議“連接器”服務(wù)來(lái)實(shí)現(xiàn)。
Caringo公司的Filefly產(chǎn)品,使用后臺(tái)文件服務(wù)來(lái)擴(kuò)展公司的Swarm對(duì)象存儲(chǔ),從而支持NAS協(xié)議。該公司還提供輕量級(jí)接口SwarmNFS,可以利用NFSv4版本協(xié)議訪問(wèn)Swarm對(duì)象存儲(chǔ)中存儲(chǔ)的數(shù)據(jù)。
DataDirect Networks公司,在其WOS對(duì)象存儲(chǔ)產(chǎn)品中提供名為NoFS的功能,讓您可以使用文件服務(wù)。該公司宣稱(chēng),使用NoFS可以比傳統(tǒng)文件服務(wù)系統(tǒng)節(jié)省15%至20%的存儲(chǔ)空間,并顯著減少I(mǎi)/O流量沖擊。
Hitachi Data Systems通過(guò)HCP Anywhere在該公司的Hitachi Content Platform對(duì)象存儲(chǔ)平臺(tái)上實(shí)現(xiàn)NAS訪問(wèn)。使用定制開(kāi)發(fā)的HCP Anywhere應(yīng)用程序讓數(shù)據(jù)內(nèi)容可以被移動(dòng)設(shè)備訪問(wèn)。
Cloudian公司,使用HyperStore Connect for Files實(shí)現(xiàn)對(duì)其HyperStore對(duì)象平臺(tái)的文件訪問(wèn)。該產(chǎn)品提供無(wú)狀態(tài)接入點(diǎn),從而提供包括全局命名空間和文件鎖定的標(biāo)準(zhǔn)NAS功能。
除了提供原生NAS支持的對(duì)象存儲(chǔ)供應(yīng)商之外,還有一些公司提供可以連接到對(duì)象存儲(chǔ)的文件網(wǎng)關(guān),例如Avere公司的FXT產(chǎn)品。然而,這些非原生產(chǎn)品不能同時(shí)通過(guò)NAS和對(duì)象兩種協(xié)議訪問(wèn)數(shù)據(jù),因?yàn)閿?shù)據(jù)可能會(huì)用專(zhuān)有格式存儲(chǔ)到后端對(duì)象存儲(chǔ),不可能直接從對(duì)象級(jí)別訪問(wèn)。
最后我們也應(yīng)該提到可供選擇的開(kāi)源產(chǎn)品。Ceph基于支持對(duì)象、文件和塊格式的橫向擴(kuò)展平臺(tái)來(lái)實(shí)現(xiàn)對(duì)象存儲(chǔ)功能,盡管當(dāng)前它還不支持直接通過(guò)多個(gè)協(xié)議暴露相同的數(shù)據(jù)。還有OpenIO,它支持一系列存儲(chǔ)協(xié)議,并且可以部署在普通商品硬件上。支持的硬件還包括基于ARM的硬件,該公司使用名為“nano”的ARM節(jié)點(diǎn)可以將獨(dú)立的硬盤(pán)驅(qū)動(dòng)器轉(zhuǎn)換為存儲(chǔ)服務(wù)器。
數(shù)據(jù)分析的伙伴
對(duì)象和文件是數(shù)據(jù)分析的好伙伴。使用傳統(tǒng)的NAS協(xié)議存儲(chǔ)數(shù)據(jù),使用對(duì)象或HTTP進(jìn)行后端分析,這種組合可以將并行的兩種業(yè)務(wù)的開(kāi)銷(xiāo)和相互影響降到最低。對(duì)象協(xié)議不需要文件鎖定和其他數(shù)據(jù)完整性功能,因?yàn)閿?shù)據(jù)的讀寫(xiě)都是靜態(tài)的。這就減少了文件系統(tǒng)的開(kāi)銷(xiāo)并提高了性能。
毫無(wú)疑問(wèn),對(duì)象和文件存儲(chǔ)之間的界限是模糊的,對(duì)于很多用例來(lái)說(shuō),合并這兩者合情合理。對(duì)象級(jí)存儲(chǔ)提供了比傳統(tǒng)NAS存儲(chǔ)更實(shí)用的存儲(chǔ)方法,具有更高的效率和地理靈活性。我們可以預(yù)計(jì),未來(lái)所有非結(jié)構(gòu)化存儲(chǔ)設(shè)備都會(huì)原生地同時(shí)支持標(biāo)準(zhǔn)的對(duì)象和文件兩種協(xié)議。