盡管目前對于應該怎樣準確定義存儲虛擬化這個概念尚存在一些爭議,但通常我們認為存儲虛擬化是一項技術,通過對物理層資源進行抽象,展現給用戶一個靈活的、邏輯的數據存儲空間。存儲虛擬化在軟件層截取主機端對邏輯空間的I/O請求,并且把它們映射到相應的真實物理位置。
最基本的存儲虛擬化實現是在主機層,通過操作系統的邏輯卷管理器能夠方便的為應用和用戶分配存儲容量。此外,存儲虛擬化也可以用在文件存儲系統、塊存儲系統上。由于LUN管理起來比較復雜,卻又需要靈活的進行空間分配(特別是在多用戶環境中),因此塊存儲虛擬化更常見一些。下面,我們會概括地介紹網絡層和存儲設備層的虛擬化技術,但不包括主機層的部分。
有了存儲虛擬化,我們可以對group、LUN和partition說再見了
過去,分配存儲空間的過程必須經過創建RAID group,分配LUN和Partition卷等幾個步驟,這個過程比較復雜,而且效率不高,特別是當我們需要在一個存儲柜中平衡性能與物理磁盤的可用性時更是如此。舉個簡單的例子,如果希望擴展一個正在使用的主機卷,那么我們面對的則是一個非常耗時的過程,涉及到LUN的改動以及數據的拷貝。相反,存儲虛擬化技術卻能提供一種更好的方式,既可滿足向應用程序和服務器供給存儲資源的要求,又可以節約時間并減少資源的開銷。其秘訣就在于利用存儲系統的“智能性”去做更多的后臺處理。與此同時,存儲虛擬化還可以利用自動精簡配置技術進行容量分配,它可以替代手工的操作并能夠提升存儲空間利用率。
最開始的時候,存儲虛擬化只是操作系統層一個高效供給和管理存儲資源的工具。通過隔離主機層與物理存儲資源,存儲虛擬化技術可以將來自于不同存儲設備(即使是不同廠商的設備)的存儲容量匯集到一個共享的邏輯資源池中,這樣存儲的管理就更容易了。任何單體存儲陣列所創建的物理卷的容量都是有限制的,而多個異構的存儲系統聯合在一起就可以創建出一個更大的邏輯卷。在多數情況下,存儲虛擬化都被視為一個共享的存儲平臺,盡管每個物理存儲系統仍然需要單獨進行維護,但利用存儲虛擬化,我們可以對已有的存儲系統重新進行規劃部署,通過跨設備管理,總體運維成本會大幅降低。
存儲虛擬化另一個好處是能夠為性能提速,因為一個操作系統卷可以輕松地分布到更多的磁盤上,這也間接地影響到空間利用率。存儲虛擬化還可以做到分層存儲,并在不同的設備之間遷移數據。比如將舊數據轉移到歸檔裝置,或者將訪問頻繁的數據庫索引轉移到SSD固態盤。這些數據遷移的活動通常由主機層、應用層或文件系統層的策略引擎控制。此外,出于災難恢復的目的,同樣的遷移機制也常常用于站點之間的數據移動。
基于存儲設備的存儲虛擬化
對于傳統的縱向擴展架構的存儲來說,控制器和磁盤柜是各自獨立的,因此存儲設備層的虛擬化技術通常內嵌在控制器的操作系統中。新型的存儲陣列通常能提供數十到數百TB的存儲容量,這已經是最基本的特性。許多系統還包含有分層存儲功能,分層既可以在一個虛擬化的系統內部,也可以在多個獨立的系統之間進行。分層算法一般基于不同的存儲介質類型(高性能低容量磁盤、大容量低速磁盤以及SSD固態盤)和不同的RAID級別。有些系統還具備專門的分層策略引擎,能夠判斷數據的活躍度、應用的類型或其他指標,并在不同的存儲層之間移動數據文件或數據塊。為了保證系統的高可用性或出于容災的目的,大多數系統支持在兩個機箱之間或本地到遠程站點之間進行數據拷貝。但遺憾的是,目前大多數的存儲系統,包括存儲虛擬化產品,都無法支持跨不同廠商系統的異構環境。因此,對于一個跨平臺的存儲虛擬化解決方案來說,整合不同廠商的存儲系統是其中關鍵。而這樣的解決方案大多是基于網絡層技術實現的。
基于網絡的存儲虛擬化
若干年前,存儲行業普遍的看法是:像存儲虛擬化這樣提供特殊服務和擴展的存儲控制功能,最終都會在SAN網絡層通過智能SAN交換機實現。的確有不少存儲虛擬化產品正沿著這個方向發展,網絡層的存儲虛擬化技術通常以軟、硬件裝置的形式部署。這些裝置有些類似存儲控制器,可以與經過認證的磁盤陣列或存儲系統互連;另一些則完全是軟件,直接安裝在服務器或虛擬機VM上。存儲虛擬化裝置可以直連異構的磁盤陣列,也可以通過光纖通道SAN或iSCSI SAN連接。多數產品自身還提供存儲容量。大多數解決方案還包括一系列的高級功能,比如文件共享、快照、重復數據刪除、自動精簡配置、復制、持續數據保護等等(CDP)。
帶內虛擬化和帶外虛擬化
在存儲虛擬化技術發展的初期就同時存在兩種主要的技術架構:帶內虛擬化和帶外虛擬化。帶內架構會在服務器與物理存儲設備或SAN之間部署一個控制器,所有的存儲請求和數據流都要經過這個控制器處理。而帶外模式的產品會在網絡層部署一個元數據控制器,將所有的存儲請求重定向到真實的物理位置,但其本身并不負責數據處理。與帶內模式相比,帶外模式的處理流程更加復雜,但卻可以減少CPU的負載。帶外的存儲虛擬化還可以避免潛在的系統崩潰風險,因為帶內模式下存儲是經過重新映射的,一旦帶內控制器失效,客戶端主機與后端存儲的連接也將丟失。今天,大多數基于網絡的存儲虛擬化解決方案采用的都是帶內模式,其中主要的原因可能是現在CPU的處理能力更強,與過去相比不在是架構的瓶頸。而帶內虛擬化架構普及的另一個原因則是帶內方案實現起來更容易,可以更快的推向市場,問題也更少。
各類存儲虛擬化產品
虛擬化似乎已經成為某些中端和大型存儲系統中的必備功能。不過,各種存儲陣列所帶的虛擬化技術卻大相徑庭,多數系統無法兼容其他廠商的存儲設備。這里,我們不會一一羅列所有的產品,而是聚焦在一些細分的產品類型上。下文中,我們會介紹一些最具代表性的存儲虛擬化產品,它們來自于多家廠商,有硬件也有軟件。
DataCore Software公司的SANsymphony。SANsymphony是基于網絡架構、帶內模式的軟件產品。它可以運行在x86服務器上。它的后端可以連接各種異構的存儲設備,包括FC、FCoE以及iSCSI,而前端則通過FC或iSCSI與主機連接。SANsymphony支持多節點集群模式,既可以擴展容量,又能夠提供高可用性。它還具備遠程復制以及同步鏡像、CDP、自動精簡配置和分層存儲等功能。
EMC公司的Invista。Invista是一個帶外模式的軟件解決方案,它需要一對兒服務器(被稱作Control Path Cluster或CPC)做平臺,并且要和Brocade或Cisco的智能交換機配合使用。Invista可以支持多數主流廠商的磁盤陣列,對主機的前端和到存儲的后端都采用光纖通道連接。Invista可以在兩個存儲陣列之間做鏡像、復制和基于時間點的克隆。
FalconStor Software公司的Network Storage Server (NSS)。NSS是一個基于網絡的帶內裝置。支持通過iSCSI、FC或Infiniband與后端異構存儲設備連接,前端采用光纖通道或iSCSI與主機連接。NSS支持擴展到多個模塊并實現高可用。除了著名的廣域網優化遠程復制功能之外,NSS還可以提供同步鏡像、自動精簡配置、快照和克隆。
Hitachi Data Systems公司的Universal Storage Platform (USP) 。USP是一個tier 1級別的高端產品,它可以通過帶內的方式混合連接大多數主流存儲廠商的磁盤陣列。USP具備Tier 1級別產品所必備的各種高級功能特性和服務能力,此外還包括內置自動精簡配置以及增加外部附加存儲的擴展能力。
IBM公司的SAN Volume Controller (SVC) 。IBM的SVC是一個基于網絡架構的帶內虛擬化控制器。一般部署在SAN環境,可以混合連接iSCSI或FC存儲系統。成對的SVC控制器節點之間可以實現高可用,一個SVC集群最大可以支持8個節點,帶寬和可管理容量都可以擴展。利用SVC模塊可以實現跨不同存儲系統的數據復制,在本地和遠程SVC節點之間還能實現數據鏡像功能。
NetApp公司的V-Series Open Storage Controller。V系列開放存儲控制器是一種帶內虛擬化解決方案,它與NetApp的filer控制器非常類似,區別在于V-Series還可以連接更多的異構存儲陣列。V-Series的后端通常與FC SAN連接,合并后端存儲提供的LUN,將它們組成一個存儲資源池,然后再從資源池中劃出NetApp格式的LUN以便提供塊級或文件存儲服務,后面的部分就像普通的NetApp filer控制器一樣。
NetApp最近還收購了Engenio Storage Virtualization Manager (SVM),一個帶外模式的網絡架構存儲虛擬化控制器,同樣支持異構存儲系統。至于SVM的市場定位等細節,NetApp尚未公布相關信息。
存儲虛擬化需要注意的問題
大多數的存儲虛擬化產品都是帶內模式的,所以我們要注意一下虛擬化裝置或集群的性能效率問題,因為它與容量擴展息息相關。此外,高級存儲功能也會帶來大量的CPU開銷,會進一步影響有效性能。
存儲虛擬化可以說是一個非常有效的工具,它可以通過提高空間利用率和優化性能來達到消減固定資產投入目標。此外,更大的驚喜還在于存儲虛擬化對于降低運維成本的貢獻。它可以簡化存儲管理、甚至是跨平臺管理,管理成本明顯減少。存儲虛擬化很容易擴展,只需要簡單的操作,通常存儲系統不需要停機,客戶端主機也不需要修改配置。
相關鏈接1:什么是scale-out存儲架構?
“Scale-out”橫向擴展存儲通常是由多個節點組成的模塊化系統,每個物理節點既包括處理器部分,也含有存儲容量。雖然不一定能整合異構存儲,但在這種集群架構下,每增加一個節點,容量和處理能力也隨之增加,可以說是一種漸進式的增長。在scale-out橫向擴展架構中,虛擬化不只是一個附加功能,而是必需具備的基礎技術。虛擬化是scale-out系統能夠無縫擴展,而客戶端主機卷能夠橫跨多個存儲節點的前提條件。
相關鏈接2:文件級存儲虛擬化
常見的存儲產品中有些能夠提供文件訪問服務(NAS功能),但它們通常只能在塊級實現數據的虛擬化。然而,現在還有一些網絡附加產品可以整合不同的NAS系統實現NAS虛擬化。這樣的裝置可以為前端用戶提供統一命名空間,并將文件訪問請求映射到后端真實的物理NAS設備上。它們還可以提供文件級別的數據分層與遷移功能,有些甚至還提供云存儲服務功能。下面我們就來介紹幾個這樣的產品:
AutoVirt AutoVirt公司發布了一款基于帶外模式的文件存儲虛擬化軟件產品,它可以運行在一對兒Windows server服務器或虛擬機VM上。它能夠提供統一命名空間,并且還有一個支持數據分層、遷移和歸檔的策略引擎。因為是帶外架構,所以即使把它從網絡環境中撤走,數據的訪問也不會受到影響。
Avere System公司的FXT FXT是一個scale-out集群 NAS裝置,一個集群最大支持25臺2U節點,而且每個節點都配置有固態存儲介質(DRAM或SSD)。FXT集群使用一個支持全局命名和分層存儲的文件系統,可以連接其他廠商的NAS系統,它也支持跨平臺的文件虛擬化。
F5 Network 公司的ARX ARX系列產品是一種帶內模式的文件虛擬化裝置,它可以把多種不同的NAS設備整合到一個統一命名空間,ARX支持CIFS和NFS協議。它也有一個策略引擎,可以根據文件的屬性、活躍程度或其他規則,自動將數據文件從一個NAS系統遷移到本地或遠程云計算中心的另一個NAS系統上。