存儲子系統(tǒng)的元素包括:磁盤、磁盤控制器、存儲網(wǎng)絡、磁盤陣列、卷管理層、目錄虛擬層、文件系統(tǒng)虛擬層。我們就從下到上,一一描述這幾個元素,看看存儲了系統(tǒng)楚怎么抽象虛擬的。
1.磁盤控制器
磁盤控制器的工作就是根據(jù)驅動程序發(fā)來的磁盤讀寫信息,向磁盤發(fā)送SCSI指令和數(shù)據(jù)。這個部件看似沒有什么可抽象虛擬的東西,其實磁盤控制器完全可以對其驅動程序隱藏其下掛的物理磁盤,而虛擬出一個或者多個虛擬磁盤。由控制器來完成虛擬磁盤和物理磁盤的映射和抽象虛擬。RAID就是一個點型代表,控制器將物理磁盤組成RAID Group,然后在RG的基礎上,虛擬出多個LUN,通告給主機驅動。
2.存儲網(wǎng)絡
早期的存儲子系統(tǒng),沒有網(wǎng)絡化,而目前的存儲系統(tǒng),網(wǎng)絡化己經(jīng)作常徹底。從磁盤到磁盤陣列控制器,從磁盤陣控制器到主機總線適配器,都已經(jīng)嵌入了網(wǎng)絡化元素。比如使用FC協(xié)議或者TCP/IP協(xié)議、SAS協(xié)議、Infiniband協(xié)議等。那么在這一層上,有什么可以抽象的么?網(wǎng)絡化只是為部件之間提供了一種可擴展的傳輸通路而已,貌似在這個層面上不能做出于什么大文章來。
實則不然,這一層也是有所深究的。在交換式SAN中,不管是基于TCP/IP協(xié)議的還是基于FC協(xié)議的SAN ,網(wǎng)絡中的任何節(jié)點都是通過交換設備來互相通信,這是節(jié)點間通信的必經(jīng)之路。如果在交換設備上做點手腳,就完全可以達到虛擬化的效果。
要抽象一種邏輯,那么一定要理解這種邏輯,所以我們可以在FC交換機或者以太網(wǎng)交換機上,嵌入SCSI協(xié)議感知模塊。比如某個N節(jié)點向另一個N節(jié)點Report LUN的時候,交換機收到這個Frame,則可以感知這個N節(jié)點的LUN信息。如果此時網(wǎng)絡中還有另個節(jié)點的LU N信息,則可以在交換機這一層。達到這兩個節(jié)點的LUN的鏡像.也就是說,SCSI發(fā)起設備向目標設備傳輸?shù)臄?shù)據(jù),經(jīng)由交換機的時候,交換機內(nèi)嵌的虛擬化模塊,會自動復制對應的幀到另一個節(jié)點的LUN 上,讓這兩個LUN形成鏡像,當其中一個節(jié)點故障的時候,交換機因為知道此時還有一個備份鏡像LUN存在,所以并不會向發(fā)起者通告失敗,而是默默的將發(fā)起者的數(shù)據(jù)重定向到這個鏡像的LUN,發(fā)起設備并不會感知,這樣,就達到了基于網(wǎng)絡層的虛擬化抽象。
當然,網(wǎng)絡層的虛擬化,并不只是鏡像,比如將某些N節(jié)點的LUN合并成一個池,然后動態(tài)的從這個池中再劃分出虛擬LNN,向發(fā)起者報告等;谶@些思想,己經(jīng)開發(fā)出了智能FC交換機。
3.磁盤陣列
磁盤陣列可以說本身就是一個小計算機系統(tǒng)(JBOD除外),這個系統(tǒng)五臟俱全,是對存儲子系統(tǒng)的抽象虛擬化最佳的表現(xiàn)。磁盤陣列,簡要地說,就是將大量磁盤進行組織管理,抽象虛擬,最終形成虛擬的邏輯磁盤,最后通過和主機適配器通信,將這些邏輯磁盤呈現(xiàn)給主機。這個功能和前面提到的磁盤控制器的功能類似,但是磁盤陣列能比狹義的磁盤控制器提供更多的特色功能,況且簡單的插在主機IO總線上的那種RAID磁盤控制器,其接入磁盤數(shù)量有限.功能也有限。
大型磁盤陣列,有自己的控制器。有的利用嵌入式技術.將特別定制的操作系統(tǒng)及其核心管理軟件嵌入芯片中,來管理艷個控制器并實現(xiàn)其功能;有的則干脆利用現(xiàn)成的上機來充當盤陣控制器的角色,比如IBM的DS8000系列盤陣,內(nèi)部就是用的兩臺IBM P系列小型機作為其組織管理磁盤的控制器,其上運行AIX操作系統(tǒng)和相應的存儲管理軟件。
不管是嵌入式,還是主機式的,盤陣控制器所擔任的角色都是類似的。這個中心控制器,不直接參與連接每塊磁盤,而是利用后端適配器來管理下掛的磁盤,由后端適配器向其上級匯報。
這些適配器,就是由中心控制器驅動的二級磁盤控制器,這些磁盤控制器作為中心CPU的IO適配器,直接控制和管理物理磁盤,然后由中心控制器統(tǒng)一實現(xiàn)RAID,卷等高級功能(有些盤陣則可以將簡單的RAI D功能直接下放給幾級控制器來做)。后端適配器與中心控制器CPU之間通過某種總線技術連接,比如PCIX、PCIE總線等。中心控制器對這些磁盤進行虛擬抽象之后,通過前端的接口.向最終使用它的主機進行通告。中心控制器不但可以實現(xiàn)最基本的RAI D功能,而且可以實現(xiàn)很多高級功能,比如LUN鏡像、快照、遠程復制、CDP數(shù)據(jù)保護、LUN再分配等。在磁盤陣列上實現(xiàn)虛擬化,是目前最廣泛的一種存儲系統(tǒng)虛擬化形式。
4.卷管理層
卷管理層是指運行在應用主機h的功能模塊。它負責底層物理磁盤或者LUN的收集和再分配。經(jīng)過盤陣控制器虛擬化之后生成的LUN提交給主機使用,主機可以對這些LUN進行再次抽象和虛擬,也就是重復虛擬化,比如對其中兩個LUN進行鏡像處理,或者對其中的多個LUN,做成一個軟RAID系統(tǒng)。再或者將所有LUN合并.形成一個大的資源池,然后像掰面團一樣所成多個卷,這個過程和磁盤控制器。盤陣控制器所做的虛擬化動作類似,但是這個動作是在主機上實現(xiàn)的。典型的卷管理軟件有LVM,或者第三方的軟件,比如Veritas公司的VxVM。
5.文件系統(tǒng)
數(shù)據(jù)只是存儲到磁盤上就完了么?顯然不是。打個比方,有位記者早晨出去采訪,乎中拿了一攘紙,他母看到一件事就記錄下來。對于“怎么將字寫在紙上”這個問題,他是這么解決的,他用筆在格子上寫字,寫滿一行再寫下一行。還不夠就換一張紙。對于“怎么讓白己在紙上寫字”,這個問題,是他自己通過大腦〔控制器〕,通過神經(jīng)網(wǎng)絡(SCSI線纜〕,操縱白己的手指〔磁頭臂〕,拿著筆〔磁頭〕,看見有格了,就向里寫。這兩個問題都解決了。?墒沁@一天下來,他回去想看看一天都發(fā)生了什么,他拿出記錄紙,卻發(fā)現(xiàn),信息都是零散的,根本無法閱讀,有時候讀到一半,就斷了,顯然當時是因為格了不夠用了,寫到其他地方了,造成了信息記錄的不連續(xù),有的地方還有刪除線,證明這一塊作廢了,那么有效的記錄到底在哪里昵?記者方寸大亂,數(shù)據(jù)雖然都完好的一記錄在紙上,但是他們都是不連續(xù)的、凌亂的,當時是部記下來了,但是事后想要讀取時卻沒轍了。
磁盤記錄也一樣,只解決磁盤怎么記錄數(shù)據(jù)和怎么讓磁盤記錄數(shù)據(jù),是遠遠不夠的,還應該考慮“怎么組織磁盤上的數(shù)據(jù)”。
還是用這個記者的例子來說明。我們都能想到,將凌亂的記錄組織成完整的一個記錄,只需要在相應的地方做一下標記,比如“此文章下一段位于某某頁,第幾行”。就像路標一樣,一次一次的指引你最終找出這個完整的數(shù)據(jù),這個思想稱為“鏈表”。
如果將這個鏈表單獨的做成一個記錄,存放到固定位置,每次只要參考這個表,就能找出條數(shù)據(jù)在磁盤上的完整分布情況。利用這種思想做出來的文件系統(tǒng),比如FAT文件系統(tǒng),它把每個完整的數(shù)據(jù)稱為文件。文件可以在磁盤上不連續(xù)的存放,由單獨的數(shù)據(jù)結構來描述這個文件在磁盤上的分布。這個數(shù)據(jù)結構就是文件分配表。File Allocate Table,也就是FAT的由來;蛘哂昧硪环N思想來組織不連續(xù)的數(shù)據(jù),比如NTFS,它是直接給出了一個文件在磁盤上的具體扇區(qū),開始一結束,開始一結束。用這樣的結構來描述文件的分布情況。
文件系統(tǒng)將磁盤抽象成了文件柜,同一份文件可能存放在一個柜子的不同抽屜中,利用一份特別的文件來記錄“文件——對應抽屜”的分布情況,這些用來描述其他文件分布情況及其屬性的文件,稱為元文件(Metadata)。元文件一般情況下要存放在磁盤的固定位置,而不能將其分散,因為最終要有一個絕對參考系統(tǒng)。但是有些文件系統(tǒng),甚至將元文件也可以像普通文件一樣。在磁盤上不連續(xù)的分布。前面還說過一定要有一個絕對參考系統(tǒng),也就是固定的入口,所以這些特殊的文件系統(tǒng),其實最上層還是有一個絕對參考點的,這個參考點將生成元文件/在磁盤上的分布情況記錄,從而定位元文件,再根據(jù)元文件,定位數(shù)據(jù)文件,這樣一層一層的嵌套,最終形成文件系統(tǒng)。
最終一句話,文件系統(tǒng)是對磁盤塊的虛擬、抽象、組織和管理。用戶只要訪問一個個的“文件”,就等于訪問了磁盤扇區(qū)。而訪問文件,這個動作是非常容易理解的,也是很簡單的。用戶不必了解這個文件最終在磁盤上是存放到哪里,怎么存放的,怎么訪問磁盤來存放這個文件.這些統(tǒng)統(tǒng)都是由文件系統(tǒng)和磁盤控制器驅動程序來做。
6.目錄虛擬層
不管是Windows系統(tǒng)、UNIX系統(tǒng),還是Linux系統(tǒng).其內(nèi)部都有一個虛擬的日錄結構。在Linux中叫做VFS, 即Virtual File System。
虛擬文件系統(tǒng),顧名思義也就是說這個文件系統(tǒng)目錄并不是真實的,而是虛擬的。任何實際文件系統(tǒng),都可以掛載到這個目錄下,真實FS中的真實目錄,被掛載到這個虛擬目錄下之后,就成為了這個虛擬目錄的子目錄。這樣做的好處是增強靈活性。其次,操作系統(tǒng)目前處理外部設備,一般都將其虛擬成一個虛擬文件的方式,比如一個卷,在Linux中就是/dev/hda這種文件。對這個文件進行讀寫,就等于直接對設備進行了讀寫。
存儲戶系統(tǒng)的虛擬化,可以在“磁盤——盤陣控制器——存儲網(wǎng)絡——主機總線適配器——卷管理層——文件系統(tǒng)層——慮擬目錄層和最終應用層”各個環(huán)節(jié)的虛擬抽象工作,使得鼓終應用軟件,只要通過文件系統(tǒng)訪問文件,就可以做到訪問放底層的磁盤一樣的效果。有時候還可以重復虛擬化。
核心關注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統(tǒng)的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:存儲子系統(tǒng)的虛擬化
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112159236.html