數據存儲產業服務平臺

董唯元存儲專欄 虛擬存儲淺談

存儲和虛擬

虛擬存儲產品作為一個獨立的產品類別被提出已經有3年多的時間,雖然至今虛擬存儲技術已經發展成為一個包羅萬象的技術門類,但其最初產生時主要是針對存儲管理的需求而發展的。簡單的說,當初的虛擬存儲技術應該歸屬存儲管理范疇,是存儲管理的一個子集。

    隨著技術的發展進步,存儲系統已經成為IT系統中一個完全獨立的層次,就像網絡、應用和服務器一樣,存儲系統在IT系統的地位也越來越重要。然而,就像網絡和應用系統一樣,存儲系統也面臨著越來越復雜的管理問題。原有設備和新增設備往往屬于不同產品系列,甚至來自若干不同的廠商。在用戶面前,是一幅紛繁復雜、支離破碎的系統結構圖。盡管如此,系統維護人員還是需要盡力分析每個設備的使用情況,包括每個設備的性能瓶頸以及空間使用率等等。這種復雜繁瑣的管理機制不僅不利于存儲系統的工作效率,更是企業IT系統穩定性的一大隱患。

    虛擬存儲就是在這種情況下產生的。虛擬存儲技術將底層存儲設備進行抽象化統一管理,向服務器層屏蔽存儲設備硬件的特殊性,而只保留其統一的邏輯特性,從而實現了存儲系統集中、統一而又方便的管理。對比一個計算機系統來說,整個存儲系統中的虛擬存儲部分就像計算機系統中的操作系統,對下層管理著各種特殊而具體的設備,而對上層則提供相對統一的運行環境和資源使用方式。

    舉個具體點的例子,在傳統的磁盤陣列中,不同容量的磁盤是無法混和使用的,而用戶的實際情況往往是前面買了18GB的磁盤,等到擴容的時候,只有73GB的磁盤可選了。面對這種尷尬,很多用戶只好選擇重新調整部屬自己的應用,甚至干脆放棄先前的設備。而虛擬存儲技術則可以把不同時期購買的不同容量的磁盤,甚至是不同設備上的磁盤,統一起來使用,而服務器就像使用一個設備一樣的使用它們。這樣,服務器就不需要再關心,哪個文件放在哪個磁盤陣列上這種問題了。管理問題在服務器上被大大的簡化了!

    虛擬存儲的另外一層含義是設備使用方式的轉化,這應該更接近“虛擬”這個詞的本意。所謂“虛擬”就是假的,模擬的,而不是真實的。在網絡游戲的虛擬世界中,人物身份是虛擬的,戰斗武器是虛擬的,武功魔法是虛擬的,連交友聯姻都是虛擬的!簡直是虛得一塌糊涂。好在虛擬存儲倒還沒有那么虛,只是在設備的使用形式上做了些手腳而已:明明是磁帶,卻被當作磁盤使用;明明是磁盤,卻被當作磁帶;明明是TCP/IP的網絡連接,卻虛擬成了SCSI連接……如此種種的虛擬技術,其目的除了方便上層服務器簡單統一的使用之外,還在于擴展現有設備和技術的應用范圍和領域。

    例如磁帶設備,在傳統的系統中,只能被當作順序讀寫設備使用,這就注定磁帶上無法形成類似磁盤的文件系統,也就無法擺脫其離線存儲的宿命。而今經過虛擬存儲技術這么一虛擬,磁帶搖身一變成了可隨機讀寫的塊設備,也就堂而皇之的加入了在線存儲的隊伍。

    實際上,早在虛擬存儲這一概念還沒有產生之前,一些虛擬技術就已經普遍應用了,甚至可以追溯到遙遠的MS-DOS年代。接觸過MS-DOS這一古老物種的人一定還記得,當時磁盤的訪問速度非常低,而且磁盤的頻繁讀寫會造成硬件的損傷(磁頭阻尼懸浮技術當時還沒有產生),于是MS-DOS系統提供了一種RAM-DISK技術,即將一部分內存模擬成磁盤,用戶可以對這個本不存在的磁盤進行格式化和拷貝等操作,由于實際上是內存對內存的操作,RAM-DISK的訪問速度明顯比真實磁盤高很多,而且不會造成磁頭的頻繁移動。

    另外一個典型的例子就是卷管理軟件。許多操作系統平臺上都有一種甚至多種卷管理軟件層,常見的有AIX平臺上的Volume Group,Solaris平臺上的Volume Manager,Linux平臺上的LVM等。這些卷管理軟件的功能就是模擬物理磁盤的結構,把多個磁盤組或者多個磁盤條帶組織起來,虛擬成一組統一的數據塊集,這樣操作系統就可以統一而方便的使用所有的磁盤了。這類軟件的工作機制和管理思想,是現今虛擬存儲技術的一個重要組成部分。

難以定義的概念

說了這么多,到底什么是虛擬存儲的確切定義呢?這個問題真是很難回答。原本虛擬存儲技術是作為存儲管理的一個子集產生的,但是發展到現在,其目的方向已經擴散得非常廣泛。有些部分是為了提高存儲系統性能,有些部分是為了提高系統容量,有些部分是為了改變設備使用方式,有些部分甚至是針對存儲安全發展出來的。如此內容龐雜,頭緒眾多的技術概念,一時間還真是無法精準的描述。

    盡管如此,總結一些虛擬存儲的共同特性還是可以做到的??傮w上看,雖然虛擬存儲的目標包羅萬象,但是實現手段卻相對集中。我們不妨可以將虛擬存儲技術看作一門武術流派,雖然演練者的目的各不相同,有為強身健體,有為報仇雪恨,但是其基本套路卻大致相同。虛擬存儲的套路以“抽象”、“模擬”、“隱藏”和“整合”這四個方面為主。抽象就是提取各種存儲技術和存儲設備的共性,將多個資源抽象成為單一資源;模擬就是突破傳統技術的限制,將一種資源模擬成為另外一種資源;隱藏就是將設備或服務等資源的無關特性細節屏蔽,從而隱藏資源的部分或全部特征;整合就是通過組織,將不同類型的資源整合成為一種資源。

    現在,我們可以看一看國際存儲工業協會對虛擬存儲這一概念的定義。為了不帶入筆者的誤解和局限,這里引用的是原文。在定義之后,國際存儲工業協會的技術委員會還補充了一個例子,用以進一步補充說明這個頗富詩意的定義,這里也一并引用了。

    Storage Virtualization:

    1 – The application of virtualization (q.v.) to storage services, devices or resources that results in storage services, devices or resources.

    2 – The act of abstracting, hiding, or isolating the internal function of a storage (sub) system or service from applications, host computers or general network resources.

    Example: Using virtualization to provide storage and data management that is transparent to users, applications or network; Using virtualization to group different block storage systems into one or more virtual storage pools.

    說實話,這個定義并沒有對虛擬存儲的概念,給出清晰而精準的描述。依照這個定義,許多現有的技術,仍然難以確定是否屬于虛擬存儲領域。這個定義更主要的意義是在于,它為虛擬存儲概念設定了一個相對固定的范圍。但愿各個廠商能夠遵守這一規定范圍,不會將虛擬存儲的概念進一步擴大。

虛擬存儲三大問題

在一個模糊的定義下進一步討論虛擬存儲顯然是十分困難的。為了言之有物,我們主要討論三個基礎性的問題:

    虛擬的對象是什么?

    在什么位置進行虛擬?

    如何虛擬?

    第一個問題比較容易回答。虛擬存儲所虛擬的對象就是一些存儲資源,磁盤、磁帶、文件、文件系統、數據塊等等,這些統統包括在內。其虛擬的結果就是虛擬磁盤、虛擬磁帶、虛擬文件、虛擬文件系統、虛擬數據塊等等??梢钥闯?,虛擬存儲的對象并不一定是物理的設備,而可能是一些純邏輯的對象。實際上,虛擬存儲即可以將物理設備虛擬成物理設備,也可以將物理設備虛擬成邏輯對象。

    隨著技術的發展,甚至出現了將邏輯對象虛擬成物理設備的技術,例如將一個邏輯分區虛擬成一個物理磁盤。當然,從邏輯對象到邏輯對象的虛擬技術也在發展中,但相對而言,這部分的技術難度較大,而且目前的需求并不十分迫切,所以類似把一個文件系統虛擬成另外一個文件系統之類的技術,進展還非常緩慢。

    第二個問題的回答也不困難。虛擬是一個處理過程,這個處理過程一定是在主機和存儲設備之間完成的。那就只可能有三個位置:主機、存儲設備和存儲網絡。事實上是,在三個位置上都有相應的虛擬存儲技術存在,根據處理所在的位置,虛擬存儲技術被分為“基于主機端的虛擬存儲”、“基于存儲設備的虛擬存儲”以及“基于存儲網絡的虛擬存儲”這三種類型。

其中基于主機端的虛擬存儲,幾乎都是通過純軟件的方式實現的。這種實現機制不需要引入新設備,也不影響現有存儲系統的基本架構,所以實現成本很低。但是其難以克服的困難是平臺依賴性太重,開發商要為每一種操作系統平臺甚至每一個版本,開發一套軟件產品,其勞動量是可想而知的。而基于存儲設備的虛擬技術雖然有效率高,性能好等特點,但是在現實中,幾乎所有的廠商都只提供對自身產品的支持,其開發性大打折扣?;诖鎯W絡的虛擬技術目前還處于起步階段,一些獨立廠商已經涌現出來,這些廠商即不生產主機,也不提供磁盤陣列或磁帶庫等存儲設備,專門提供面對開放存儲網絡的虛擬存儲產品。雖然在現階段這些產品或在性能方面,或在安全性方面,存在一些問題,但是其開放性的優勢是這一類產品得以發展的強大動力所在。

    第三個問題看起來也不深奧,但是當我們試圖回答時,卻發現無從說起。實際上這個問題的提出,是為了引出對虛擬存儲的一個分類標準。根據實現的機制,虛擬存儲可分為“帶內”和“帶外”兩種基本類型。這兩種類型的區別就在于,實現虛擬的過程是否與正常的數據讀寫過程同時進行。更具體的說,帶內虛擬技術,是在數據讀寫的過程中,在主機到存儲設備的路徑上實現虛擬存儲;而帶外虛擬技術,是在數據讀寫之前,就已經做好了虛擬工作,而且實現虛擬的部分并不在主機到存儲設備的訪問路徑上。因此,帶內虛擬技術也稱為“同步虛擬”,而帶外虛擬技術自然就稱為“異步虛擬”。

打個比方說,如果我們把虛擬過程看作汽車上路的繳費過程,那么帶內虛擬就相當于在公路上設置收費站,司機不上路就不需要繳費,而一旦上路,就必然要通過收費站,也就是在上路的同時繳費。而帶外虛擬技術像交管所,司機在上路之前就已經在交管所辦理了繳費手續,然后才可以上路,但是并不一定在繳費之后就馬上上路,而且在公路上飛奔的汽車也不需要穿過交管所。明白了這個蹩腳的比喻,又看了圖示的說明,下面這個結論就很容易得出了:帶內虛擬技術,可能是基于主機實現的,可能是基于存儲設備實現的,當然也可能是基于存儲網絡實現的,而帶外虛擬技術則只能是基于存儲網絡實現的。

蓬勃發展的虛擬存儲

虛擬存儲技術在3年的時間里已經取得了堪稱輝煌的成就。其中的磁帶虛擬、磁盤資源管理、跨卷多級管理等技術,已經發展出了一大批相當成熟的產品和解決方案,并逐步完善和豐富著今天的存儲系統。隨著廠商、用戶和技術標準機構各方面,對這一技術方向與日俱增的關注,相信這一領域一定會長出累累的碩果。

未經允許不得轉載:存儲在線-存儲專業媒體 » 董唯元存儲專欄 虛擬存儲淺談
精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走