當前位置:
首頁 > 科技 > 雲存儲的核心技術:虛擬化存儲

雲存儲的核心技術:虛擬化存儲

導語

虛擬化改變了計算機使用存儲的方式。就像物理機器抽象成虛擬機(VM:Virtual Machine)一樣,物理存儲設備也被抽象成虛擬磁碟(Virtual Disk)。今天我們就來聊聊虛擬化存儲(Storage Virtualization)技術,究竟虛擬磁碟是怎樣實現的?

虛擬磁碟的實現

我們知道,伺服器擴展存儲的手段主要有直連存儲(DAS)、存儲區域網路(SAN)和網路附加存儲(NAS)這三種類型。那麼哪種存儲類型可以用來實現虛擬磁碟呢?

在虛擬化環境中,類似VMWare這樣的虛擬機管理程序hypervisor,要同時給很多VM分配存儲空間。這個過程中,我們需要先把物理存儲資源重新劃分成虛擬磁碟,然後再分配給VM。

顯然我們不能用DAS方式把物理磁碟直連到VM上,如果這樣,需要的物理磁碟就太多了。SAN是以邏輯單元(LUN:Logic Unit)的形式提供存儲資源,但虛擬環境下的VM數量很大,LUN的數量也不足以支撐這麼多虛擬磁碟。

更重要的一點,虛擬磁碟對於眾多的VM來說是共享的,因為VM需要隨時創建、刪除或者遷移,在遷移VM的時候就需要共享存儲,只有這樣原來的數據才不會丟失。無論DAS還是SAN,都不適合共享存儲。

雲存儲的核心技術:虛擬化存儲

考慮到資源分配以及共享的問題,hypervisor採用NAS的方式來實現虛擬磁碟。VMware通常採用VMFS(Virtual Machine File System)或NFS協議來實現虛擬磁碟,VMFS是專門針對虛擬機環境的文件系統協議。

雲存儲的核心技術:虛擬化存儲

每個虛擬機的數據實際上就是一堆文件,最主要的文件就是虛擬磁碟文件(VMDK文件),此外還有交換分區文件(vswp文件,相當於swap)、非易失性內存文件(nvram相當於bios)等。每個VM對虛擬磁碟的IO操作,實際上是對這個虛擬磁碟文件的讀寫。

VMFS的設計、構建和優化針對虛擬伺服器環境,可讓多個虛擬機共同訪問一個整合的群集式存儲池,從而顯著提高了資源利用率。採用 VMFS 可實現資源共享,使管理員輕鬆地從更高效率和存儲利用率中直接獲益。

那麼我們如何在雲計算中使用虛擬磁碟呢?

實例存儲

最主要的一種使用虛擬磁碟的方式就是實例存儲,每一個VM就是一個虛擬機實例,hypervisor在每個實例中提供模擬的硬體環境,包括CPU、內存和磁碟。這種方式,使得虛擬磁碟成為虛擬機實例的一部分,就像物理世界一樣。VM刪除後,虛擬磁碟也會被刪除。

這種實例存儲模型中,虛擬磁碟與虛擬機之間的存儲關係,實際上是DAS存儲。但虛擬磁碟的底層實現,上面我們說了,是用NAS方式實現的。而hypervisor的作用就是把VM層的存儲模型,與虛擬機下層的實現協議(VMFS或NFS)分離開了。

雲存儲的核心技術:虛擬化存儲

VMFS協議實現了存儲資源的虛擬化,再分配各VMs

卷存儲

實例存儲有它的限制,開發者一般希望把實例數據(比如OS以及安裝的一些伺服器應用軟體)和用戶數據分開,這樣重建VM的時候可以保留用戶的數據。

這個需求衍生出另外一種存儲模型:卷存儲。卷是存儲的主要單位,相當於一個虛擬的磁碟分區。不屬於虛擬機實例的一部分,可以認為是虛擬機的外置存儲設備。

卷可以從一個VM卸下,然後附加給另外一個VM。這樣我們就實現了實例數據與用戶數據的分離。OpenStack的Cinder就是一個卷存儲的實現。

除了實例存儲和卷存儲,最後我們再說一說另外一種比較特殊的虛擬化存儲:對象存儲。

對象存儲

很多雲應用需要在不同的VM之間共享數據,經常需要跨越多個數據中心,對象存儲可以解決這個問題。在前文《雲計算IaaS管理平台的基本功能有哪些?》中曾經提到過對象存儲。

在對象存儲模型中,數據存儲在存儲段(bucket)中,按字面意思bucket也可以被稱為「桶「。我們可以用硬碟進行類比,對象就好比文件,存儲段就像是文件夾(或目錄)。對象和存儲段可以通過統一資源標識符(URI: Uniform Resource Identifier)查找。

對象存儲的核心設計思想其實也是虛擬化,具體說來,就是把文件的物理存儲位置,比如卷、目錄、磁碟等,虛擬化為bucket,把文件虛擬化為對象。對應用層來說,簡化了對數據的存取訪問,屏蔽了底層存儲技術的異構性和複雜性。

雲存儲的核心技術:虛擬化存儲

對象存儲模型

NAS與對象存儲各有所長

當然你也許會問,NAS存儲技術不是也可以解決數據共享的問題嗎?由於對象存儲的規模優勢和成本優勢,很多雲環境採用對象存儲來代替NAS。

由於對象存儲將遍佈於很多節點且最新的數據並非總是可用, 所以對象存儲的數據一致性不強。如果對強一致性有要求,那麼可以使用NAS。目前在雲計算環境下,NAS和對象存儲是共存的關係。

和NAS一樣,對象存儲也是軟體架構,不是硬體架構。應用直接通過REST API來訪問對象存儲。常用的對象存儲包括:Amazon的S3和OpenStack的Swift。

結語

在實際的雲平台應用中,我們需要根據自己的實際情況來合理運用不同的虛擬化存儲技術。

對於非結構化的靜態數據文件,如音視頻、圖片等,我們一般使用對象存儲。

對於系統鏡像以及應用程序,我們需要使用雲主機實例存儲或者卷存儲。

對於應用產生的動態數據,我們一般還需要利用雲資料庫來對數據進行管理。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 中國存儲 的精彩文章:

管理上百個虛擬桌面,印刷行業巧用NAS實踐虛擬化

TAG:中國存儲 |