什么是存儲虛擬化?它與軟件定義存儲有何區別?
從廣義來看,其實拿物理盤做 RAID,然后在其之上劃 LUN,呈現給 OS,這也是一種存儲虛擬化。
存儲虛擬化往前還可以溯源到 IBM AIX LVM(邏輯卷管理器),和 HP EVA 的 vDisk 技術。HP 的 EVA 技術,準確說是源于 Compaq,甚至是 DEC 的 VA,在當時的存儲界,非常厲害和前瞻的技術。
大約在 2004、2005 年左右,新興的存儲廠商 Compellent 和 EqualLogic(這兩個公司后來被 DELL 收購)、3PAR 和 LeftHand(這兩個公司后來被 HP 收購)、XIV(后來被 IBM 收購)、Pillar(后來被 Oracle 收購)的塊級存儲虛擬化,打破了以往 RAID Group 的限制,支持精簡配置(Thin Provisioning)的功能,無需預先分配物理空間,實現寫多少分配多少空間的機制。
下面我們系統、全面地介紹一下存儲虛擬化,以 SNIA 的闡述為主。
SNIA 對存儲虛擬化的解釋
SNIA 認為,存儲虛擬化通過對存儲(子)系統或存儲服務的內部功能進行抽象、隱藏或隔離,使存儲或數據的管理與應用、服務器、網絡資源的管理分離,從而實現應用和網絡的獨立管理。對存儲服務和設備進行虛擬化,能夠在對下一層存儲資源進行擴展時進行資源合并、降低實現的復雜度。存儲虛擬化可以在系統的多個層面實現。
SNIA 提供的存儲虛擬化模型(如下圖),包括三部分:
SNIA 存儲虛擬化模型
一、虛擬化什么
針對不同的存儲設備和數據形態,有多種形式的虛擬化資源:虛擬數據塊、虛擬磁盤、虛擬磁帶或磁帶庫、虛擬文件系統或者其他虛擬設備。
二、在哪里虛擬化
存儲虛擬化可以在不同的層面上進行。
(1)基于主機/服務器的虛擬化
主要用途:使服務器的存儲空間可以跨越多個異構的磁盤陣列,常用于在不同磁盤陣列之間做數據鏡像保護。
實現方式:一般由操作系統下的邏輯卷管理軟件完成(安裝客戶端軟件),不同操作系統的邏輯卷管理軟件也不相同。
常見產品:IBM AIX LVM,Linux LVM,VeritasVolume Manager 等
(2)基于網絡的虛擬化
主要用途:異構存儲系統整合和統一數據管理。
實現方式:通過在存儲域網(SAN)中添加虛擬化引擎實現。
常見產品: EMC VPLEX、IBM SVC、飛康 FreeStor
(3)存儲子系統虛擬化
主要用途:在磁盤陣列內部實現靈活調用存儲資源。
實現方式:塊級虛擬化,精簡配置等。
常見產品:DELL EqualLogic、DELL Compellent、HP 3PAR、HP LeftHand、IBM V 系列等。
三、如何進行虛擬化
根據數據流與虛擬化引擎的相對關系,可以分為以下兩種。
(1) 帶內 In-Band
是目前使用最多的方式,它可以在存儲系統、網絡、主機、文件系統上實現。
(2) 帶外 Out-of-Band
需要在存儲網絡(SAN)上實現。
SNIA 之存儲標準化建議:SMI-S
有些朋友會誤以為軟件定義存儲就是類似 IBM SVC、EMC VPLEX 這類基于網絡的存儲虛擬化,而實際上它是存儲虛擬化的一部分,是軟件定義存儲非常小的一部分。
基于網絡的存儲虛擬化,能夠跨越異構的磁盤陣列,在更大的范圍,如數據中心內,形成一個大的存儲資源池,統一分配和監控來自不同存儲廠商的存儲資源。
當我們討論池化,也即異構存儲之間的管理的時候,一定會涉及到存儲標準化,只有當大家開放的接口遵循共同的標準(也即規范)的時候,也就是用相同的“語言”對話時,才有可能被調用、被管理。
隨著用戶的數據不斷增加,為了不被單一廠商鎖定,規模較大的用戶的存儲網絡往往包含了來自多個存儲廠商的外置磁盤陣列,每個陣列都有自己的存儲管理軟件,這些陣列之間缺乏互聯互通,管理復雜度增加。為了解決這一個問題,十五年前(也就是 2002 年),SNIA(全球網絡存儲工業協會)就提出了存儲管理建議規范 SMI-S(Storage Management Initiative Specification),希望在存儲網絡中的存儲設備和管理軟件之間提供標準化的通信方式,從而使存儲管理實現廠商無關性,使得存儲管理系統能夠實現鑒別、分類、監控和控制物理及邏輯資源的能力,提高管理效率、降低管理成本,促進存儲的發展。
SMI-S 是一種中間件性質的規范,定義了存儲管理軟件和受管對象之間的交互機制。它提供了多種特性以簡化 SAN 的管理。首先,在 SMI-S 標準中定義了統一的數據模型,使用基于 Web 的企業管理(Web-Based Enterprise Management,WBEM)技術和公共信息模型規范(Common Information Model, CIM),SMI-S 的代理可以與交換機、磁盤陣列等各種支持 CIM 的設備進行交互,獲取其管理相關的數據并返回給請求方。使用 SMI-S 可以免除設計管理數據傳輸機制的麻煩,對各種設備和組件直接進行帶內或帶外的管理,甚至兩者并用。SMI-S 還提供了基于 HTTP 的 CMI-XML 傳輸機制,以增強適用性。
SNIA 對于 SMI-S 標準寄予了很高的期望,跨越的版圖非常宏偉。從下圖(摘自《Storage Management from SMI-S to Management Frameworks》),可以看出來,它希望做到,存儲管理軟件能夠識別磁盤陣列、光纖交換機、IP 交換機、磁帶庫、FC HBA 卡、iSCSI HBA 卡等各種各樣與存儲相關的設備,并通過存儲管理服務,自動發現、部署和配置存儲資源。
SNIA SMI-S 標準
SMI- S 標準發布以后,得到了大多數主要存儲供應商的支持,截止 2016 年,已經 1000 多個存儲產品支持 SMI-S 標準。最新的標準是在 2016 年 3 月 8 日公布的 SMI-S v1.7.0,在 SNIA 官網能夠下載到詳細的規范,規范包括 8 篇文章,其中的一篇《Storage Management Technical Specification, Part 4 Block Devices , Version 1.7.0, Revision 5》,長達 958 頁。僅僅關于 Automated Storage Tiering 的描述就長達 82 頁。
在推行這一標準的過程中,SNIA 也曾直言不諱地提到了它面臨的問題:
1、SMI-S 標準走向市場的時間漫長;
2、存儲廠商研發新特性的過程中,規范的確立花費 1 年,廠商實施再需要 6 個月(筆者持懷疑態度,認為需要更長時間),用戶方接受并實施需要 2 年甚至遙遙無期;
3、需要加速標準走向用戶的過程;
存儲虛擬化實例剖析
下面我們以基于網絡的存儲虛擬化為例,詳細剖析一下它是如何實現存儲虛擬化的。
從市場上看,基于網絡的存儲虛擬化比較知名的有:EMC VPLEX、IBM SVC、HDS VSP、Symantec Storage Foundation 等。他們都能或多或少的將其他廠商的存儲納入自己的存儲平臺之下進行管理。但這種管理,也只是將異構存儲的邏輯卷做為一個外來設備使用,把它視為一個普通的存儲容器,不知道它能提供多大的性能,也喪失了異構存儲內嵌的豐富的軟件特性,例如自動分級、快照、容災等。
以 IBM SVC 為例,如下圖,IBM SVC 針對其內部盤,按照 RAID 方式(如 8 塊盤)創建出 Mdisk,再將多個 Mdisk 形成存儲池,在池上創建邏輯卷 VDisk(Virtual Disk,現更名為 Volume)。
IBM SVC 中物理盤、邏輯卷、Mdisk、extent 的關系
在 IBM SVC 這個存儲管理體系下,也能管理異構存儲,支持對HP(MSA, EVA, XP), EMC(CX, DMX),NetApp(FAS),Hitachi(AMS,WMS,99xx系列)和 DELL(Compellent)等異構存儲的虛擬化。以 DELL Compellent 為例,將 Compellent 邏輯卷納入 SVC 之下,需要經過如下步驟:
1、業務停機;
2、在 Compellent 圖形管理界面中,去掉卷與主機的映射關系(un-mapping);
3、在 Compellent 圖形管理界面中,創建新的服務器對象:SVC Cluster;
4、在 SVC 圖形管理界面中,執行 MDisk 發現操作;
5、將新發現的 MDisk(其實就是 Compellent 邏輯卷)以 Image Mode MDisk 方式導入;
6、將這個 Image Mode MDisk 映射到原主機上;
無論是內部盤還是外部盤,IBM SVC 都可以按照 VDisk 為單位,實施本地的數據復制服務(快照、克隆、鏡像)。利用 SVC,可以將被其虛擬化的低端存儲,增加一些高級功能。不過,存儲發展到現在,高端存儲和中端存儲的豐富的軟件功能都已經逐漸下移到低端存儲,SVC 的這部分作用就意義不大了。
對于用戶而言,基于網絡的存儲虛擬化,利舊,方便管理(只是少部分程度的),仍有一定的現實意義。
存儲標準化之互操作性
十幾年前,存儲行業里,有一個經常被提及的概念是互操作性,正是因為各家廠商的存儲管理各自為政,缺乏互聯互通,使得用戶面臨存儲管理的巨大挑戰,用戶一直希望存儲廠商解決互操作性:各家的存儲管理軟件都能管理并靈活調用其他異構存儲的資源。
實際上,早在 SMI-S v1.6.1 的標準《Storage Management Technical Specification,Part 4 Block Devices》中,就已經包含了對鏡像、快照、克隆、容災的描述,如下圖所示。但時至今日,極少存儲廠商的存儲虛擬化平臺可以驅動受管對象的這些高級軟件功能。
SMI-S v1.6.1 標準中對鏡像、快照和克隆的描述
截止2015年底,逐漸有更多的存儲廠商適配Hypervisor(VMware)或 DCOS(OpenStack),越來越多地支持SMI-S標準。
不過,十五年時間并不短暫。但是,基于網絡的存儲虛擬化(異構存儲的管理)并未在用戶實際環境中廣泛的部署。原因在于存儲廠商根本不可能投入足夠的精力和財力去遵循這一標準。從經濟利益、投入產出比來看,存儲廠商能獲益的機會很少。存儲廠商投入精力去改造自己,開放 API 出去,適配其他存儲廠商的存儲虛擬化平臺,回報明顯不大。而且,當存儲廠商變成受管對象,也即被虛化后,它對于用戶的重要性就下降了。所以單純靠存儲廠商與存儲廠商之間,是很難解決互操作性的。
那么,這個互操作性誰來解決更合適呢?
答案是 Hypervisor 廠商、操作系統(OS)廠商,或者數據中心操作系統(Data Center Operating System,簡稱DCOS),或者云計算(Cloud)提供商、云管理軟件提供商。用戶只要構建軟件定義的數據中心,必不可免的是,大多數存儲資源都必須納入到 Hypervisor/OS/DCOS/Cloud 的版圖之內。在云計算、軟件定義數據中心的日益興盛的背景下,存儲資源被虛機使用的規模將遠大于被物理機使用。因此,存儲廠商可以考慮與 VMware 等 Hypervisor 廠商,以及其他 DCOS 軟件的互操作性。我們也看到 Hypervisor 廠商也在努力實現與存儲的互聯互通,例如 VMware vROps 云管理軟件利用 SMI-S 等協議進行存儲分析。
VMware vROps 利用 SNIA SMI-S 協議進行存儲分析