在本系列的第一部分,我們討論了存儲虛擬化是如何實現不停機操作,并使用戶能夠通過改造存儲架構而減少計劃內停機時間這一重要問題的。
存儲虛擬化提出了一個從物理到邏輯的存儲設備概念。它為消耗資源的企業提供了一種簡單的、統一的復合架構。虛擬化是企業存儲陣列自有的能力,它把多個固定磁盤驅動聚集到一個單一的物理架構中,為主機通道提供邏輯卷。最近,出現了一種新的存儲技術,它從整個SAN系統的多重、多種陣列中把空間虛擬化,并用一個物理點管理這一空間的邏輯卷。
然而,這一新的虛擬化技術涉及許多不同的方法和問題。在企業環境中,解決方案能否帶來最大價值架構起著關鍵作用。
主機系統的存儲虛擬化
一種集成、管理多個SAN系統設備空間的解決方案已在許多最終用戶環境中得到應用,這就是主機邏輯卷管理器(LVM)。的確,LVM正成為最先進的服務器操作系統的標準部分。LVMs具有軟件功效,管理從各種存儲方式中產生的邏輯卷,配置適合某種應用所需的空間。舉個例子,它們可以通過連接一組在陣列水平上配置的小規模空間來形成一個大空間;它們也可以把大的陣列卷分成幾個易管理的小單位;或者在維護一個應用空間時,為了正常運行,他們可以在若干個陣列空間中提取數據。
LVMS提供了大容量、多方式虛擬化等優點,但也有一個內在缺陷,由于他們是在主機系統上工作的,因此必須對每一臺主機單獨設置配置和應用。如果主機數量不多,這不算個問題。但在一個企業的系統設置中,通常都有幾百臺甚至上千臺主機通過SAN系統存儲數據,控制分布空間很快就成為一個嚴峻的問題。如果系統環境改造變化很大,需要頻繁修改配置,這個問題就愈加嚴重。如果在不同的操作系統上使用不同的LVMS,易操作性也是一個問題,要求操作員精通多種工具。使用主機系統方案時,互操作性(確認第三方的LVMS與修改過的操作系統、新的方案相兼容)和性能(密集的LVM運行會破壞主機處理周期)也是個問題。
網絡系統的存儲虛擬化
網絡系統的存儲虛擬化結構試圖解決主機系統模式中的內在問題。在主機和子系統之間的一個層面插入虛擬化的功能,此功能主要是簡化易操作性。有兩種結構方式分別是,數據通道中和數據通道外。
·數據通道中方式
數據通道中結構是在主機和陣列之間的網絡數據通道(或“通道中”)中插入虛擬化手段。這些設備通常提供空間管理和其它配套功能,如數據遷移和拷貝服務。他們行使存儲管理器的作用,替代正在虛擬化的設備。存儲虛擬設備本身可以是一個專用的服務器,運行裝在標準操作系統上的虛擬化軟件;也可以是一個專門的應用程序,運行嵌入的編碼,甚至是一個帶有能連接附加陣列框架后端的陣列管理器“前端”。這種設備的最大好處是簡化——它是一種自有(全新)的方式,可以集中管理多種連接設備。
通道內方式最主要的缺點是在網絡路徑上增加了一個額外的“跳”,這樣就增加了主機和物理存儲設備之間的延時。一些通道中設備試圖以在設備內部使用緩存的方法解決增等待時間的問題。和存儲子系統一樣,緩存的益處很大程度上取決于應用和緩存算法的效率。網絡內部的緩存還會產生更多的復雜問題。對于需求冗余的高效環境,若要使一對通道中的緩存保持一致,就需要緩存鏡像,這又增加了一些等待時間。它還要求具有強大的錯誤和故障處理邏輯,以確保經過緩存和確認的I/O 被安全地存儲到后端。
通道中虛擬化結構的一個更為嚴重的缺點是限制了其擴展性。由于所有虛擬化區域中的I/O需要通過通道中方式,這樣不是在帶寬就是在處理能力方面會形成一個瓶頸。一旦任意一種資源耗盡,就必須采取數據擴展策略。如前面提到的由于對所有通道節點實行緩存鏡像,使得“橫向擴展(scale out)”策略(其中附加了n個節點用于擴展)變得不實際。取而代之的唯一可行的辦法是“向上擴展(scale up)”策略,這要求通道中的節點越來越大,以實現通道中大規模的虛擬化。最新出現的大規模、高性能的通道中虛擬化設備的單片企業陣列就證明了這一點。在某種程度上,對于一個大的環境來說,甚至“向上擴展(scale up)”策略也不夠,而需要采用一種新的通道中設備。每一個通道中設備對其各自的虛擬區域負責,管理獨立的虛擬區域。然而,因管理分散獨立的區域費用很大,因而通過虛擬化降低復雜性和簡化管理的初衷就無法實現。
·數據通道外方式
通道外方式的設計是通過從數據流中分割管理信息,避免通道中結構所產生的內在運行問題。在通道外結構中,有一個叫做元數據服務器的單獨硬件,它存有虛擬化存儲的邏輯-物理關系信息,向每一個服務器傳送信息,分配I/O指令。這種數據傳送通過一個獨立的網絡完成,它與數據交流使用的光纖通道分開,這即是通道外模式。元數據服務器和主機之間的傳輸通常是通過裝在主機上的接口程序來實現的,這臺主機與修改后的、對指令重新分配的I/O驅動器共同工作。
由于主機直接將虛擬化存儲指令分配到目的設備上,I/O運行不再受到增加等待時間或帶寬的制約。這樣,通道外方式理論上更適合于高性能應用。它還避免了通道內自有的數據完整性問題。任何“狀態”或版本的數據都不會滯留在網絡中。數據正確地存儲入陣列之后,主機的任務才算完成。然而,這種通道外方式又引出了一些主機系統方式的易操作性問題,也就是說,需要加載、維護和修改主機系統軟件。
一種解決易操作性問題的改進后通道外方式即將產生。這一方式利用智能SAN交換機作為平臺,構建以網絡為基礎的存儲虛擬化。這些交換機帶有專門的端口級處理器(可能是被頻繁優化的ASICs,但也可能是FPGAs或網絡處理器)以最快速度檢驗并重新分配I/O指令(從邏輯地址轉換到物理地址)。把這些處理器直接匯集到現有的SAN系統結構上,這就無需對另一層虛擬化方案進行管理。以前的操作由主機接口程序管理的主機元數據被加載到智能端口的閃存上,不再需要主機系統軟件。元數據服務器不與主機交換信息,而是和智能端口交換信息,確保總能為通過這些端口存儲信息的主機提供正確的映射信息。總而言之,改進后的通道外方式,其易操作性大大提高。
這種基于交換器的通道外方式更適應“橫向擴展(scale out)”策略。由于大多數的I/O運算在智能交換機內由端口的處理器直接處理,如果需要增加規模(scale),只需要增加更多的處理器。可以在結構上再增加一個交換器,或在現有的交換器上增加一個處理葉片。增加的處理器仍由同一個元數據服務器進行管理,無需頻繁增加規模(scale),因為它并不處理I/O通信,只是管理所有端口的元數據。簡言之,這種結構理論上能夠擴展大規模的配置,大到可以支持當前所有的大規模數據中心推廣存儲虛擬化的地步。
結語
存儲虛擬化的方式多種多樣,各具特色。如我們所介紹的,結構可對存儲虛擬化解決方案的易操作性、規模,乃至為使用者帶來的價值起決定性作用。對任何可能采用這種技術的用戶來說,主要考慮的問題是要全面了解該解決方案的架構。