存儲(chǔ)虛擬化(Storage Virtualization)最通俗的理解就是對(duì)存儲(chǔ)硬件資源進(jìn)行抽象化表現(xiàn)。按虛擬化對(duì)象劃分,虛擬化存儲(chǔ)實(shí)現(xiàn)方式主要有三種。
基于主機(jī)的虛擬存儲(chǔ)
基于主機(jī)的虛擬存儲(chǔ)依賴(lài)于代理或管理軟件,它們安裝在一個(gè)或多個(gè)主機(jī)上,實(shí)現(xiàn)存儲(chǔ)虛擬化的控制和管理。由于控制軟件是運(yùn)行在主機(jī)上,這就會(huì)占用主機(jī)的處理時(shí)間。
因此,這種方法的可擴(kuò)充性較差,實(shí)際運(yùn)行的性能不是很好。基于主機(jī)的方法也有可能影響到系統(tǒng)的穩(wěn)定性和安全性,因?yàn)橛锌赡軐?dǎo)致不經(jīng)意間越權(quán)訪問(wèn)到受保護(hù)的數(shù)據(jù)。
這種方法要求在主機(jī)上安裝適當(dāng)?shù)目刂栖浖?,因此一個(gè)主機(jī)的故障可能影響整個(gè)SAN系統(tǒng)中數(shù)據(jù)的完整性。軟件控制的存儲(chǔ)虛擬化還可能由于不同存儲(chǔ)廠商軟硬件的差異而帶來(lái)不必要的互操作性開(kāi)銷(xiāo),所以這種方法的靈活性也比較差。
但是,因?yàn)椴恍枰魏胃郊佑布?,基于主機(jī)的虛擬化方法最容易實(shí)現(xiàn),其設(shè)備成本最低。使用這種方法的供應(yīng)商趨向于成為存儲(chǔ)管理領(lǐng)域的軟件廠商,而且目前已經(jīng)有成熟的軟件產(chǎn)品(ID:ydotpub)。
這些軟件可以提供便于使用的圖形接口,方便地用于SAN的管理和虛擬化,在主機(jī)和小型SAN結(jié)構(gòu)中有著良好的負(fù)載平衡機(jī)制。從這個(gè)意義上看,基于主機(jī)的存儲(chǔ)虛擬化是一種性?xún)r(jià)比不錯(cuò)的方法。
基于存儲(chǔ)設(shè)備的虛擬化
基于存儲(chǔ)設(shè)備的存儲(chǔ)虛擬化方法依賴(lài)于提供相關(guān)功能的存儲(chǔ)模塊。如果沒(méi)有第三方的虛擬軟件,基于存儲(chǔ)的虛擬化經(jīng)常只能提供一種不完全的存儲(chǔ)虛擬化解決方案。
對(duì)于包含多廠商存儲(chǔ)設(shè)備的SAN存儲(chǔ)系統(tǒng),這種方法的運(yùn)行效果并不是很好。依賴(lài)于存儲(chǔ)供應(yīng)商的功能模塊將會(huì)在系統(tǒng)中排斥JBODS(Just a Bunch of Disks,簡(jiǎn)單的硬盤(pán)組)和簡(jiǎn)單存儲(chǔ)設(shè)備的使用,因?yàn)檫@些設(shè)備并沒(méi)有提供存儲(chǔ)虛擬化的功能。
當(dāng)然,利用這種方法意味著最終將鎖定某一家單獨(dú)的存儲(chǔ)供應(yīng)商。
基于存儲(chǔ)的虛擬化方法也有一些優(yōu)勢(shì):在存儲(chǔ)系統(tǒng)中這種方法較容易實(shí)現(xiàn),容易和某個(gè)特定存儲(chǔ)供應(yīng)商的設(shè)備相協(xié)調(diào),所以更容易管理,同時(shí)它對(duì)用戶(hù)或管理人員都是透明的。但是,我們必須注意到,因?yàn)槿狈ψ銐虻能浖M(jìn)行支持,這就使得解決方案更難以客戶(hù)化(customization)和監(jiān)控。
基于網(wǎng)絡(luò)的虛擬存儲(chǔ)
(1)基于互聯(lián)設(shè)備的虛擬化
基于互聯(lián)設(shè)備的方法如果是對(duì)稱(chēng)的,那么控制信息和數(shù)據(jù)走在同一條通道上;如果是不對(duì)稱(chēng)的,控制信息和數(shù)據(jù)走在不同的路徑上。在對(duì)稱(chēng)的方式下,互聯(lián)設(shè)備可能成為瓶頸,但是多重設(shè)備管理和負(fù)載平衡機(jī)制可以減緩瓶頸的矛盾。同時(shí),多重設(shè)備管理環(huán)境中,當(dāng)一個(gè)設(shè)備發(fā)生故障時(shí),也比較容易支持服務(wù)器實(shí)現(xiàn)故障接替。但是,這將產(chǎn)生多個(gè)SAN孤島,因?yàn)橐粋€(gè)設(shè)備僅控制與它所連接的存儲(chǔ)系統(tǒng)。非對(duì)稱(chēng)式虛擬存儲(chǔ)比對(duì)稱(chēng)式更具有可擴(kuò)展性,因?yàn)閿?shù)據(jù)和控制信息的路徑是分離的。
基于互聯(lián)設(shè)備的虛擬化方法能夠在專(zhuān)用服務(wù)器上運(yùn)行,使用標(biāo)準(zhǔn)操作系統(tǒng),例如Windows、SunSolaris、Linux或供應(yīng)商提供的操作系統(tǒng)。這種方法運(yùn)行在標(biāo)準(zhǔn)操作系統(tǒng)中,具有基于主機(jī)方法的諸多優(yōu)勢(shì)——易使用、設(shè)備便宜。許多基于設(shè)備的虛擬化提供商也提供附加的功能模塊來(lái)改善系統(tǒng)的整體性能,能夠獲得比標(biāo)準(zhǔn)操作系統(tǒng)更好的性能和更完善的功能,但需要更高的硬件成本。
但是,基于設(shè)備的方法也繼承了基于主機(jī)虛擬化方法的一些缺陷,因?yàn)樗匀恍枰粋€(gè)運(yùn)行在主機(jī)上的代理軟件或基于主機(jī)的適配器,任何主機(jī)的故障或不適當(dāng)?shù)闹鳈C(jī)配置都可能導(dǎo)致訪問(wèn)到不被保護(hù)的數(shù)據(jù)。同時(shí),在異構(gòu)操作系統(tǒng)間的互操作性仍然是一個(gè)問(wèn)題。
(2)基于路由器的虛擬化
基于路由器的方法是在路由器固件上實(shí)現(xiàn)存儲(chǔ)虛擬化功能。供應(yīng)商通常也提供運(yùn)行在主機(jī)上的附加軟件來(lái)進(jìn)一步增強(qiáng)存儲(chǔ)管理能力。在此方法中,路由器被放置于每個(gè)主機(jī)到存儲(chǔ)網(wǎng)絡(luò)的數(shù)據(jù)通道中,用來(lái)截取網(wǎng)絡(luò)中任何一個(gè)從主機(jī)到存儲(chǔ)系統(tǒng)的命令。
由于路由器潛在地為每一臺(tái)主機(jī)服務(wù),大多數(shù)控制模塊存在于路由器的固件中,相對(duì)于基于主機(jī)和大多數(shù)基于互聯(lián)設(shè)備的方法,這種方法的性能更好、效果更佳。由于不依賴(lài)于在每個(gè)主機(jī)上運(yùn)行的代理服務(wù)器,這種方法比基于主機(jī)或基于設(shè)備的方法具有更好的安全性。
當(dāng)連接主機(jī)到存儲(chǔ)網(wǎng)絡(luò)的路由器出現(xiàn)故障時(shí),仍然可能導(dǎo)致主機(jī)上的數(shù)據(jù)不能被訪問(wèn)。但是只有聯(lián)結(jié)于故障路由器的主機(jī)才會(huì)受到影響,其他主機(jī)仍然可以通過(guò)其他路由器訪問(wèn)存儲(chǔ)系統(tǒng)。
路由器的冗余可以支持動(dòng)態(tài)多路徑,這也為上述故障問(wèn)題提供了一個(gè)解決方法。由于路由器經(jīng)常作為協(xié)議轉(zhuǎn)換的橋梁,基于路由器的方法也可以在異構(gòu)操作系統(tǒng)和多供應(yīng)商存儲(chǔ)環(huán)境之間提供互操作性。