對于存儲,我們并不陌生,我們每天接觸最多的存儲之一便是手機存儲。為增進大家對存儲的認識,本文將對塊存儲和文件存儲予以介紹。此外,本文僅為上篇,更多存儲相關內(nèi)容請參考后續(xù)文章。如果你對存儲抑或本文即將介紹的知識具有興趣,不妨繼續(xù)往下閱讀哦。
塊存儲和文件存儲是我們比較熟悉的兩種主流的存儲類型,而對象存儲(Object-based Storage)是一種新的網(wǎng)絡存儲架構(gòu),基于對象存儲技術的設備就是對象存儲設備(Object-based Storage Device)簡稱OSD。
首先,我們介紹這兩種傳統(tǒng)的存儲類型。通常來講,所有磁盤陣列都是基于Block塊的模式(DAS),而所有的NAS產(chǎn)品都是文件級存儲
一、塊存儲
以下列出的兩種存儲方式都是塊存儲類型:
1) DAS(Direct Attach STorage):是直接連接于主機服務器的一種儲存方式,每一臺主機服務器有獨立的儲存設備,每臺主機服務器的儲存設備無法互通,需要跨主機存取資料時,必須經(jīng)過相對復雜的設定,若主機服務器分屬不同的操作系統(tǒng),要存取彼此的資料,更是復雜,有些系統(tǒng)甚至不能存取。通常用在單一網(wǎng)絡環(huán)境下且數(shù)據(jù)交換量不大,性能要求不高的環(huán)境下,可以說是一種應用較為早的技術實現(xiàn)。
2)SAN(Storage Area Network):是一種用高速(光纖)網(wǎng)絡聯(lián)接專業(yè)主機服務器的一種儲存方式,此系統(tǒng)會位于主機群的后端,它使用高速I/O 聯(lián)結(jié)方式, 如 SCSI, ESCON 及 Fibre- Channels。一般而言,SAN應用在對網(wǎng)絡速度要求高、對數(shù)據(jù)的可靠性和安全性要求高、對數(shù)據(jù)共享的性能要求高的應用環(huán)境中,特點是代價高,性能好。例如電信、銀行的大數(shù)據(jù)量關鍵應用。它采用SCSI 塊I/O的命令集,通過在磁盤或FC(Fiber Channel)級的數(shù)據(jù)訪問提供高性能的隨機I/O和數(shù)據(jù)吞吐率,它具有高帶寬、低延遲的優(yōu)勢,在高性能計算中占有一席之地,但是由于SAN系統(tǒng)的價格較高,且可擴展性較差,已不能滿足成千上萬個CPU規(guī)模的系統(tǒng)。
二、文件存儲
通常,NAS產(chǎn)品都是文件級存儲。 NAS(Network Attached Storage):是一套網(wǎng)絡儲存設備,通常是直接連在網(wǎng)絡上并提供資料存取服務,一套 NAS 儲存設備就如同一個提供數(shù)據(jù)文件服務的系統(tǒng),特點是性價比高。例如教育、政府、企業(yè)等數(shù)據(jù)存儲應用。
它采用NFS或CIFS命令集訪問數(shù)據(jù),以文件為傳輸協(xié)議,通過TCP/IP實現(xiàn)網(wǎng)絡化存儲,可擴展性好、價格便宜、用戶易管理,如目前在集群計算中應用較多的NFS文件系統(tǒng),但由于NAS的協(xié)議開銷高、帶寬低、延遲大,不利于在高性能集群中應用。
下面,我們對DAS、NAS、SAN三種技術進行比較和分析:
表格 1 三種技術的比較
針對Linux集群對存儲系統(tǒng)高性能和數(shù)據(jù)共享的需求,國際上已開始研究全新的存儲架構(gòu)和新型文件系統(tǒng),希望能有效結(jié)合SAN和NAS系統(tǒng)的優(yōu)點,支持直接訪問磁盤以提高性能,通過共享的文件和元數(shù)據(jù)以簡化管理,目前對象存儲系統(tǒng)已成為Linux集群系統(tǒng)高性能存儲系統(tǒng)的研究熱點,如Panasas公司的Object Base Storage Cluster System系統(tǒng)和Cluster File Systems公司的Lustre等。下面將詳細介紹對象存儲系統(tǒng)。
三、對象存儲
總體上來講,對象存儲同兼具SAN高速直接訪問磁盤特點及NAS的分布式共享特點(擴展性)。
核心是將數(shù)據(jù)通路(數(shù)據(jù)讀或?qū)?和控制通路(元數(shù)據(jù))分離,并且基于對象存儲設備(Object-based Storage Device,OSD)構(gòu)建存儲系統(tǒng)。每個對象存儲設備具有一定的智能,能夠自動管理其上的數(shù)據(jù)分布。
對象存儲結(jié)構(gòu)組成部分(對象、對象存儲設備、元數(shù)據(jù)服務器、對象存儲系統(tǒng)的客戶端):
3.1 對象
對象是系統(tǒng)中數(shù)據(jù)存儲的基本單位,一個對象實際上就是文件的數(shù)據(jù)和一組屬性信息(Meta Data)的組合,這些屬性信息可以定義基于文件的RAID參數(shù)、數(shù)據(jù)分布和服務質(zhì)量等,而傳統(tǒng)的存儲系統(tǒng)中用文件或塊作為基本的存儲單位,在塊存儲系統(tǒng)中還需要始終追蹤系統(tǒng)中每個塊的屬性,對象通過與存儲系統(tǒng)通信維護自己的屬性。在存儲設備中,所有對象都有一個對象標識,通過對象標識OSD命令訪問該對象。通常有多種類型的對象,存儲設備上的根對象標識存儲設備和該設備的各種屬性,組對象是存儲設備上共享資源管理策略的對象集合等。
3.2 對象存儲設備
對象存儲設備具有一定的智能,它有自己的CPU、內(nèi)存、網(wǎng)絡和磁盤系統(tǒng),OSD同塊設備的不同不在于存儲介質(zhì),而在于兩者提供的訪問接口。OSD的主要功能包括數(shù)據(jù)存儲和安全訪問。目前國際上通常采用刀片式結(jié)構(gòu)實現(xiàn)對象存儲設備。OSD提供三個主要功能:
(1) 數(shù)據(jù)存儲。OSD管理對象數(shù)據(jù),并將它們放置在標準的磁盤系統(tǒng)上,OSD不提供塊接口訪問方式,Client請求數(shù)據(jù)時用對象ID、偏移進行數(shù)據(jù)讀寫。
(2) 智能分布。OSD用其自身的CPU和內(nèi)存優(yōu)化數(shù)據(jù)分布,并支持數(shù)據(jù)的預取。由于OSD可以智能地支持對象的預取,從而可以優(yōu)化磁盤的性能。
(3) 每個對象元數(shù)據(jù)的管理。OSD管理存儲在其上對象的元數(shù)據(jù),該元數(shù)據(jù)與傳統(tǒng)的inode元數(shù)據(jù)相似,通常包括對象的數(shù)據(jù)塊和對象的長度。而在傳統(tǒng)的NAS系統(tǒng)中,這些元數(shù)據(jù)是由文件服務器維護的,對象存儲架構(gòu)將系統(tǒng)中主要的元數(shù)據(jù)管理工作由OSD來完成,降低了Client的開銷。
3.3 元數(shù)據(jù)服務器(Metadata Server,MDS)
MDS控制Client與OSD對象的交互,主要提供以下幾個功能:
(1) 對象存儲訪問。
MDS構(gòu)造、管理描述每個文件分布的視圖,允許Client直接訪問對象。MDS為Client提供訪問該文件所含對象的能力,OSD在接收到每個請求時將先驗證該能力,然后才可以訪問。
(2) 文件和目錄訪問管理。
MDS在存儲系統(tǒng)上構(gòu)建一個文件結(jié)構(gòu),包括限額控制、目錄和文件的創(chuàng)建和刪除、訪問控制等。
(3) Client Cache一致性。
為了提高Client性能,在對象存儲系統(tǒng)設計時通常支持Client方的Cache。由于引入Client方的Cache,帶來了Cache一致性問題,MDS支持基于Client的文件Cache,當Cache的文件發(fā)生改變時,將通知Client刷新Cache,從而防止Cache不一致引發(fā)的問題。
3.4 對象存儲系統(tǒng)的客戶端Client
為了有效支持Client支持訪問OSD上的對象,需要在計算節(jié)點實現(xiàn)對象存儲系統(tǒng)的Client。現(xiàn)有的應用對數(shù)據(jù)的訪問大部分都是通過POSIX文件方式進行的,對象存儲系統(tǒng)提供給用戶的也是標準的POSIX文件訪問接口。接口具有和通用文件系統(tǒng)相同的訪問方式,同時為了提高性能,也具有對數(shù)據(jù)的Cache功能和文件的條帶功能。同時,文件系統(tǒng)必須維護不同客戶端上Cache的一致性,保證文件系統(tǒng)的數(shù)據(jù)一致。文件系統(tǒng)讀訪問流程:
1)客戶端應用發(fā)出讀請求;
2)文件系統(tǒng)向元數(shù)據(jù)服務器發(fā)送請求,獲取要讀取的數(shù)據(jù)所在的OSD;
3)然后直接向每個OSD發(fā)送數(shù)據(jù)讀取請求;
4)OSD得到請求以后,判斷要讀取的Object,并根據(jù)此Object要求的認證方式,對客戶端進行認證,如果此客戶端得到授權,則將Object的數(shù)據(jù)返回給客戶端;
5)文件系統(tǒng)收到OSD返回的數(shù)據(jù)以后,讀操作完成。
對象存儲文件系統(tǒng)的關鍵技術:
1、分布元數(shù)據(jù) 傳統(tǒng)的存儲結(jié)構(gòu)元數(shù)據(jù)服務器通常提供兩個主要功能。
(1)為計算結(jié)點提供一個存儲數(shù)據(jù)的邏輯視圖(Virtual File System,VFS層),文件名列表及目錄結(jié)構(gòu)。
(2)組織物理存儲介質(zhì)的數(shù)據(jù)分布(inode層)。對象存儲結(jié)構(gòu)將存儲數(shù)據(jù)的邏輯視圖與物理視圖分開,并將負載分布,避免元數(shù)據(jù)服務器引起的瓶頸(如NAS系統(tǒng))。元數(shù)據(jù)的VFS部分通常是元數(shù)據(jù)服務器的10%的負載,剩下的90%工作(inode部分)是在存儲介質(zhì)塊的數(shù)據(jù)物理分布上完成的。在對象存儲結(jié)構(gòu),inode工作分布到每個智能化的OSD,每個OSD負責管理數(shù)據(jù)分布和檢索,這樣90%的元數(shù)據(jù)管理工作分布到智能的存儲設備,從而提高了系統(tǒng)元數(shù)據(jù)管理的性能。另外,分布的元數(shù)據(jù)管理,在增加更多的OSD到系統(tǒng)中時,可以同時增加元數(shù)據(jù)的性能和系統(tǒng)存儲容量。
2、并發(fā)數(shù)據(jù)訪問 對象存儲體系結(jié)構(gòu)定義了一個新的、更加智能化的磁盤接口OSD。OSD是與網(wǎng)絡連接的設備,它自身包含存儲介質(zhì),如磁盤或磁帶,并具有足夠的智能可以管理本地存儲的數(shù)據(jù)。計算結(jié)點直接與OSD通信,訪問它存儲的數(shù)據(jù),由于OSD具有智能,因此不需要文件服務器的介入。如果將文件系統(tǒng)的數(shù)據(jù)分布在多個OSD上,則聚合I/O速率和數(shù)據(jù)吞吐率將線性增長,對絕大多數(shù)Linux集群應用來說,持續(xù)的I/O聚合帶寬和吞吐率對較多數(shù)目的計算結(jié)點是非常重要的。對象存儲結(jié)構(gòu)提供的性能是目前其它存儲結(jié)構(gòu)難以達到的,如AcTIveScale對象存儲文件系統(tǒng)的帶寬可以達到10GB/s。
以上便是此次小編帶來的“存儲”相關內(nèi)容,通過本文,希望大家對塊存儲和文件存儲具備初步的了解。如果你喜歡本文,不妨持續(xù)關注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!