海量非結構數據存儲技術路線選型:對象存儲與塊存儲、文件存儲等對比
傳統存儲在面對海量非結構化數據時,在存儲、分享與容災上面臨很大的挑戰,主要表現在以下幾個方面:傳統存儲并非為非結構化內容設計或優化、成本過高、并非PB級的擴展、不支持永遠在線、專有的一體機設備等等,非結構化數據以每年60%~80%的速率增長,從而可擴展性變成了最迫切的需求。
對象存儲是無層次結構的數據存儲方法,通常用于云中。不同于其他數據存儲方法,基于對象的存儲不使用目錄樹。各個單獨的數據(對象)單元存在于存儲池中的同一級別。每個對象都有唯一的識別名稱,供應用進行檢索。
我們一下探討塊存儲、文件存儲、對象存儲幾種方式的對比,以及對象存儲Cleversafe的技術原理及應用。
1、塊存儲、文件存儲、對象存儲幾種方式的對比?
塊存儲指在一個RAID(獨立磁盤冗余陣列)集中,一個控制器加入一組磁盤驅動器,然后提供固定大小的RAID塊作為LUN(邏輯單元號)的卷。
接著塊存儲會采用映射的方式將這幾個邏輯盤映射給主機,主機上面的操作系統會識別到有5塊硬盤,但是操作系統是區分不出到底是邏輯還是物理的,它一概就認為只是5塊裸的物理硬盤而已,跟直接拿一塊物理硬盤掛載到操作系統沒有區別的,至少操作系統感知上沒有區別。
此種方式下,操作系統還需要對掛載的裸硬盤進行分區、格式化后,才能使用,與平常主機內置硬盤的方式完全無異。
優點:
1、 這種方式的好處當然是因為通過了Raid與LVM等手段,對數據提供了保護。
2、 另外也可以將多塊廉價的硬盤組合起來,成為一個大容量的邏輯盤對外提供服務,提高了容量。
3、 寫入數據的時候,由于是多塊磁盤組合出來的邏輯盤,所以幾塊磁盤可以并行寫入的,提升了讀寫效率。
4、 很多時候塊存儲采用SAN架構組網,傳輸速率以及封裝協議的原因,使得傳輸速度與讀寫速率得到提升。
缺點:
1、采用SAN架構組網時,需要額外為主機購買光纖通道卡,還要買光纖交換機,造價成本高。
2、主機之間的數據無法共享,在服務器不做集群的情況下,塊存儲裸盤映射給主機,再格式化使用后,對于主機來說相當于本地盤,那么主機A的本地盤根本不能給主機B去使用,無法共享數據。
3、不利于不同操作系統主機間的數據共享:另外一個原因是因為操作系統使用不同的文件系統,格式化完之后,不同文件系統間的數據是共享不了的。例如一臺裝了WIN7/XP,文件系統是FAT32/NTFS,而Linux是EXT4,EXT4是無法識別NTFS的文件系統的。就像一只NTFS格式的U盤,插進Linux的筆記本,根本無法識別出來。所以不利于文件共享。
文件存儲:為了克服塊存儲文件無法共享的問題,所以有了文件存儲。文件存儲也有軟硬一體化的設備,但是其實普通拿一臺服務器/筆記本,只要裝上合適的操作系統與軟件,就可以架設FTP與NFS服務了,架上該類服務之后的服務器,就是文件存儲的一種了。
主機A可以直接對文件存儲進行文件的上傳下載,與塊存儲不同,主機A是不需要再對文件存儲進行格式化的,因為文件管理功能已經由文件存儲自己搞定了。
優點:
1、造價交低:隨便一臺機器就可以了,另外普通以太網就可以,根本不需要專用的SAN網絡,所以造價低。
2、方便文件共享:例如主機A(WIN7,NTFS文件系統),主機B(Linux,EXT4文件系統),想互拷一部電影,本來不行。加了個主機C(NFS服務器),然后可以先A拷到C,再C拷到B就OK了。
缺點:
讀寫速率低,傳輸速率慢:以太網,上傳下載速度較慢,另外所有讀寫都要1臺服務器里面的硬盤來承擔,相比起磁盤陣列動不動就幾十上百塊硬盤同時讀寫,速率慢了許多。
企業級的NAS存儲采用RAID技術提升了數據的可靠性和讀寫速率,同時采用萬兆光纖接口提升了網絡傳輸速率,適合于中小規模的醫院用于PACS系統非結構化數據的存取,當數據量達到PB級別時NAS機頭會出現瓶頸。下圖是塊存儲與文件存儲的對比圖:
對象存儲:內置大容量硬盤的分布式服務器是對象存儲的典型設備,對象存儲最常用的方案,就是多臺服務器內置大容量硬盤,再裝上對象存儲軟件,然后再額外配置幾臺服務作為管理節點,安裝上對象存儲管理軟件。管理節點可以管理其他服務器對外提供讀寫訪問功能。
之所以出現了對象存儲這種東西,是為了克服塊存儲與文件存儲各自的缺點,發揚它倆各自的優點。簡單來說塊存儲讀寫快,不利于共享,文件存儲讀寫慢,利于共享。能否實現即讀寫快又利 于共享的目的呢?于是就有了對象存儲。
首先,一個文件包含了屬性(術語叫metadata,元數據,例如該文件的大小、修改時間、存儲路徑等)以及內容(以下簡稱數據)。
以往像FAT32這種文件系統,是直接將一份文件的數據與metadata一起存儲的,存儲過程先將文件按照文件系統的最小塊大小來打散(如4M的文件,假設文件系統要求一個塊4K,那么就將文件打散成為1000個小塊),再寫進硬盤里面,過程中沒有區分數據/metadata的。而每個塊***會告知你下一個要讀取的塊的地址,然后一直這樣順序地按圖索驥,***完成整份文件的所有塊的讀取。
這種情況下讀寫速率很慢,因為就算你有100個機械手臂在讀寫,但是由于你只有讀取到***個塊,才能知道下一個塊在哪里,其實相當于只能有1個機械手臂在實際工作。
而對象存儲則將元數據獨立了出來,控制節點叫元數據服務器(服務器+對象存儲管理軟件),里面主要負責存儲對象的屬性(主要是對象的數據被打散存放到了那幾臺分布式服務器中的信息),而其他負責存儲數據的分布式服務器叫做OSD,主要負責存儲文件的數據部分。當用戶訪問對象,會先訪問元數據服務器,元數據服務器只負責反饋對象存儲在哪些OSD,假設反饋文件A存儲在B、C、D三臺OSD,那么用戶就會再次直接訪問3臺OSD服務器去讀取數據。
這時候由于是3臺OSD同時對外傳輸數據,所以傳輸的速度就加快了。當OSD服務器數量越多,這種讀寫速度的提升就越大,通過此種方式,實現了讀寫快的目的。
另一方面,對象存儲軟件是有專門的文件系統的,所以OSD對外又相當于文件服務器,那么就不存在文件共享方面的困難了,也解決了文件共享方面的問題。
所以對象存儲的出現,很好地結合了塊存儲與文件存儲的優點。
為什么對象存儲兼具塊存儲與文件存儲的好處,還要使用塊存儲或文件存儲呢?
1、有一類應用是需要存儲直接裸盤映射的,例如數據庫。因為數據庫需要存儲裸盤映射給自己后,再根據自己的數據庫文件系統來對裸盤進行格式化的,所以是不能夠采用其他已經被格式化為某種文件系統的存儲的。此類應用更適合使用塊存儲。
2、對象存儲的成本比起普通的文件存儲還是較高,需要購買專門的對象存儲軟件以及大容量硬盤。如果對數據量要求不是海量,只是為了做文件共享的時候,直接用文件存儲的形式好了,性價比高。
對象存儲簡介:
對象存儲的出現就是為解決了存儲海量大數據的問題。比如存儲萬億的視頻、圖片,照片等。比如進行海量的數據歸檔,數據備份等。對象存儲可以存儲海量非結構化數據,然后進行大數據分析。
對象存儲其采用key-volume的扁平化存儲架構設計,使用簡單,調用API就能進行數據存儲和讀取。可以存儲海量數據,這點傳統存儲和NAS就沒轍。在海量數據場景中你只能選擇對象存儲。如果傳統SAN存儲是跑車,NAS是貨車,那么對象存儲就是萬億噸海上集裝箱大油輪。
2、對象存儲Cleversafe與Ceph的對比優勢?
Ceph并不是開源對象存儲***的選擇,Ceph是個統一存儲,有分布式塊,文件,對象三種存儲接口,比較全,這是它比較受關注的原因。單獨來看底層的對象存儲Rados,在開發者社區中口碑并不是很好,存在著諸多問題。
如果是選擇廠商的SDS方案,如果是基于Ceph做的(國內不少廠商),其實這個階段成熟與否還不好說,畢竟這項目社區里參與者很多,時間也不長,所謂成熟也就是有一部分坑能填上吧。前面說的社區版本迭代跟不跟的問題也還是一樣存在的。
一個開源項目能不能生產使用很多時候并不取決于項目本身,同時使用者對于整個生產系統和開源項目的理解占了相當大比例。當然,也跟項目的階段以及整個生態息息相關。
就使用 Ceph 而言,如果是一些無害環境,基本上也不會發現啥問題。當只要是需要保證性能和可用性的情況下,用戶通常都要經歷長時間的運維和解決問題的磨練。特別是眼下 Ceph 迭代較快,問題解決方式有限,很多時候都要依賴開發者才能解決。當然,如果沒碰到問題當然萬事大吉。
好一些的做法是在一些開發測試環境先使用某一個版本至少半年以上,嘗試在保證一些性能以及數據可用性基礎上運維。半年之后,自然會對這個問題有更深理解。
我們如果把對象存儲部署在一個相對快的局域網環境內,那么這個對象存儲也就兼具了NAS的高速基因,這時,一個對象存儲也就在某種程度上,可以演變為 一個相對快速的存儲,這也是為什么ceph可以兼具對象存儲、塊存儲、文件存儲的原因。當然,這種“變味”的對象存儲也就不具備全國乃至全球分布式帶來的超高可靠性了。
IBM Cleversafe具有以下特性:
1、可擴展性,多家100PB以上的客戶,擴展至EB以上的無共享架構。
2、安全性,零接觸、運營商級別的安全性且內置加密功能。
3、可管理性,每名管理員可管理25PB數據,零宕機時間。
4、可用性,提供9個9的可靠性,6個9的可用性。
5、經濟效益,消除復制、鏡像和DR成本,成本降低80%,軟件解決方案可在任何供應商的x86硬件上運行。
3、對象存儲適用的場景有哪些?
對象存儲主要面對與非結構化數據的增長需求。對應于郵件,影像,日志文件等的備份,歸檔,存取,NAS場景都非常適合。
醫療行業的PACS系統,金融行業的后督系統,票據系統,以及未來的雙錄需求,都是對象存儲可以一展拳腳的領域。
4、對象存儲Cleversafe與傳統存儲高可用性對比有哪些優勢?
傳統存儲系統當面對超過PB級別的存儲需求是,性能會急速下降,而Cleversafe依據其特有的優化,能夠使得系統得到大規模擴展性的同時,保證性能。
采用傳統的存儲在RAID6架構下1PB的原始數據要占用1.2PB的存儲空間,為了實現數據安全做本地鏡像和同城復本后數據要占用3.6PB(1.2*3)的存儲空間,那么膨脹因子就是3倍,采用IBM Cleversafe對象存儲1PB的原始數據要占用1.7PB的存儲空間, Cleversafe對象存儲使用1.7倍的膨脹因子就可以實現建設與RAID6相同或是還要高可靠的存儲系統, Cleversafe對象存儲占用更少的磁盤,占用更少的機架,節約機房空間,降低了運營成本,降低了運維管理的難度,無需其它軟件就可以實現高可靠性和高可用性。
5、對象存儲Cleversafe糾刪碼技術工作原理分析
IBM Cleversafe對象存儲使用糾刪碼技術實現存儲系統的高可靠和高可用,糾刪碼技術首先對原始數據進行分段(每段4M),之后對一個分段進行切片,例如一個分段切7片,之后通過ECC校驗算法變換為12片,這樣膨脹因子就是1.7,1PB的原始數據就占用了1.7PB的存儲空間,這1.7PB的存儲空間由12個切片組成,把這12個切片均勻的部署在多個站點的每一臺服務器中,例如在三個站點每個站點部署4臺服務器,這樣在這三個站點中只要有7臺服務器是正常運行的,數據就是完好的可以正常讀取,可以避免服務器硬件故障或斷電,網絡故障,甚至1個站點故障都不會影響數據的可靠性和可用性,任何一個站點的任意一臺服務器硬盤損壞后,只需插入一塊新硬盤而無需做RAID就可以正常使用了。
6、開源存儲GlusterFS適用于哪些非結構數據存儲場景?
GlusterFS 作為一種開源分布式存儲組件,具有非常強大的擴展能力,同時也提供了非常豐富的卷類型,能夠輕松實現PB級的數據存儲。