當(dāng)市場上引入新的存儲技術(shù)時,必須要與現(xiàn)有的存儲兼容。其基本的想法很簡單。假如I/O 路徑的接口和管理改變很多,不僅技術(shù)本身的實現(xiàn)難度很大,而且也很難在市場上立足。其實差不多所有的計算機(jī)產(chǎn)品都遵從這個規(guī)律,而不僅僅是存儲產(chǎn)品。事實上,無論是文件服務(wù)器的NAS類型的存儲網(wǎng)絡(luò),還是更新的SAN類型存儲網(wǎng)絡(luò),無一不是這樣。
虛擬化是一種最常見的提供存儲、I/O產(chǎn)品和過程的兼容性技術(shù)。虛擬化通過建立一種表現(xiàn)和響應(yīng)命令方式同另一種技術(shù)一樣的環(huán)境,以達(dá)到使用另一種技術(shù)來代替這種技術(shù)的目的。簡單地說,虛擬化就是一個“冒充”接口的技術(shù),使之以某個別的形式出現(xiàn)。另一個解釋是虛擬化使某些新的、驚人的東西變成過時和令人心煩的東西,只是性能更好罷了。虛擬化能夠以許多不同的形式實現(xiàn),但就存儲而論,基本上有三種形式:
1.組合多個資源成為一個可尋址的實體的虛擬化。
2.將一個資源分解成為多個可尋址的實體的虛擬化。
3.模擬另一個產(chǎn)品或功能的虛擬化。
第一種情況可以組合多個單獨的成分產(chǎn)生一個大的、可尋址實體,如磁盤子系統(tǒng),它由多個更小的磁盤組合而成大的虛擬磁盤。第二種情況與第一種情況相反,它使一個大的實體看上去就像許多更小的可尋址實體,如一個磁盤驅(qū)動器被分成多個更小的驅(qū)動器鏡像。事實上,有時也可以同時使用這兩種虛擬化技術(shù),如幾個磁盤驅(qū)動器首先組合在磁盤子系統(tǒng)中,形成一個大的虛擬磁盤,然后又被分成更小的虛擬驅(qū)動器。
最后一種虛擬化技術(shù)通常稱為模擬,一般是為新產(chǎn)品提供兼容性。一般來說,本書所討論的虛擬化是指前面兩種,即在一些數(shù)量的實際實體和另一些數(shù)量的虛擬實體間提供地址映射。
虛擬化在I/O路徑中的位置虛擬化可以在I / O路徑上以許多方式實現(xiàn),最常見的實現(xiàn)在I / O路徑中的位置如下:
主機(jī)I/O控制器
存儲子系統(tǒng)
存儲網(wǎng)絡(luò)域管理器
卷管理器
主機(jī)I/O控制器設(shè)備驅(qū)動程序
在主機(jī)I/O控制器中虛擬化
對于光纖路徑和其他的存儲網(wǎng)絡(luò)技術(shù),它們的主機(jī)I/O控制器通常支持SCS I協(xié)議,雖然SCSI 協(xié)議過去是為本地I/O傳輸而設(shè)計的,但光纖路徑卻分明是為存儲網(wǎng)絡(luò)I/O傳輸而設(shè)計的。盡管現(xiàn)在還有一些人說,光纖路徑上的S C S I并不是設(shè)備的虛擬化,但可以強(qiáng)烈辯解的是:當(dāng)光纖路徑主機(jī)總線適配器和設(shè)備驅(qū)動程序組合成對時,也可以形成一種形式的總線,或路徑,或虛擬化,使存儲網(wǎng)絡(luò)看上去像一個或多個SCSI總線。主機(jī)I/O控制器也可以提供其他的虛擬化技術(shù),如分塊、鏡像和錯誤校驗等的RAID功能。為了鏡像磁盤,由單個的I/O請求形成兩個I/O請求,這是在主機(jī)I/O控制器中實現(xiàn)虛擬化的一個例子。
在存儲子系統(tǒng)中實現(xiàn)虛擬化
常見的虛擬化是在存儲子系統(tǒng)中實現(xiàn)的。第6章討論的RAID子系統(tǒng)就是設(shè)備虛擬化的極好的例子,它位于I/O路徑的最后一站。磁盤子系統(tǒng)既可以提供形成更大虛擬驅(qū)動器的地址轉(zhuǎn)換,也可以提供將資源磁盤分成更小的虛擬驅(qū)動器的地址轉(zhuǎn)換。3個存儲設(shè)備先形成單個大的虛擬磁盤,然后再分成4個小的虛擬驅(qū)動器。
在存儲域管理器中實現(xiàn)虛擬化
存儲域管理器在第2章中已經(jīng)介紹,是存儲和I/O環(huán)境中的一種新品種。它的主要作用是在主機(jī)和設(shè)備及子系統(tǒng)之間提供虛擬化服務(wù)。雖然存儲子系統(tǒng)為其內(nèi)部存儲設(shè)備提供了虛擬化,但存儲域管理器可以為下游存儲子系統(tǒng)提供虛擬化服務(wù)。
在卷管理器中實現(xiàn)虛擬化
卷管理器的主要任務(wù)是為下游存儲資源提供虛擬化服務(wù)。卷管理器可以對磁盤驅(qū)動器實現(xiàn)分區(qū)、連接、分塊及鏡像功能。卷管理器在鏡像中的作用參見。在主機(jī)I/O控制器設(shè)備驅(qū)動程序中實現(xiàn)虛擬化當(dāng)I/O設(shè)備驅(qū)動程序傳送I/O命令到它相應(yīng)的主機(jī)I/O控制器時,它也可以提供虛擬化服務(wù)。事實上,它同在卷管理器中實現(xiàn)的虛擬化一樣。沿I/O路徑實現(xiàn)虛擬化的各不同的位置和功能。