虛擬磁盤的實施
我們知道,服務器擴展存儲主要有三種方法:直連存儲(DAS)、存儲區域網絡(SAN)和網絡連接存儲(NAS)。那麽,哪種存儲類型可用於實施虛擬磁盤呢?
在虛擬化環境中,像VMWare這樣的虛擬機管理程序必須同時向許多虛擬機分配存儲空間。在這個過程中,我們需要先把物理存儲資源劃分成虛擬磁盤,然後再分配給VM。
顯然,我們不能通過DAS將物理磁盤直接連接到虛擬機,如果這樣,我們將需要太多的物理磁盤。SAN以邏輯單元(LUN)的形式提供存儲資源,但是虛擬環境中的虛擬機數量非常龐大,LUN的數量不足以支撐這麽多的虛擬磁盤。
更重要的是,虛擬磁盤由大量虛擬機共享。因為虛擬機需要隨時創建、刪除或遷移,所以遷移虛擬機時需要享受存儲空間,只有原始數據不會丟失。DAS或者SAN都不適合* * *享受存儲。
考慮到資源分配和* * *共享的問題,hypervisor以NAS的形式實現虛擬磁盤。VMware通常使用VMFS(虛擬機文件系統)或NFS協議來實現虛擬磁盤,VMFS文件系統是專門針對虛擬機環境的協議。
每個虛擬機的數據其實就是壹堆文件,最重要的文件的虛擬磁盤文件(VMDK文件),還有交換分區文件(VSWP文件,等價交換),非易失性內存(NVRAM文件相當於BIOS)等等。每個虛擬機對虛擬磁盤的IO操作實際上是對虛擬磁盤文件的讀寫操作。
虛擬服務器環境的設計、構建和優化允許多個虛擬機訪問集成的集群存儲池,從而大大提高了資源的利用率。通過使用和實現資源共享,管理員可以直接受益於更高的效率和存儲利用率。
那麽我們如何在雲計算中使用虛擬磁盤呢?
實例存儲
使用虛擬磁盤的最重要方式之壹是實例存儲。每個虛擬機都是壹個虛擬機實例,虛擬機管理程序在每個實例中提供壹個模擬的硬件環境,包括CPU、內存和磁盤。這樣,虛擬磁盤就是虛擬機實例的壹部分,就像物理世界壹樣。刪除虛擬機後,虛擬磁盤也將被刪除。
在此實例存儲模型中,虛擬磁盤和虛擬機之間的存儲關系實際上是DAS存儲。但是虛擬磁盤的底層實現,我們說是以NAS的形式實現的。虛擬機管理程序的功能是存儲VM層的存儲模型,VM層是虛擬機的較低層,與實現協議(VMFS或NFS)相分離。
VMFS協議實現存儲資源的虛擬化,然後分配虛擬機。
體積存儲
實例存儲有其局限性,開發人員通常希望分離實例數據,如OS和壹些已安裝的服務器應用程序和用戶數據,以便在重建VM時保留用戶數據。
這種需求導致了另壹種存儲模型:卷存儲。卷是存儲的主要單位,相當於虛擬磁盤分區。它不是虛擬機實例的壹部分,但可以被視為虛擬機的外部存儲設備。
該卷可以從壹個虛擬機卸載,然後連接到另壹個虛擬機。這樣就實現了實例數據和用戶數據的分離。OpenStack cinder是壹個卷存儲的實現。
除了實例存儲和卷存儲,我們最後提到了另壹種特殊的虛擬存儲:對象存儲。
對象存儲
很多雲應用需要在不同的虛擬機之間共享數據,這往往需要跨越多個數據中心,而對象存儲可以解決這個問題。前文中雲計算IaaS管理平臺的基本功能有哪些?對象存儲已經在。
在對象存儲模型中,數據存儲在壹個桶中,而桶由於其字面意義也可以稱為“桶”。我們可以用硬盤來打個比方,對象就像壹個文件,存儲部分就像壹個文件夾(或者目錄)。對象和存儲段可以通過統壹資源標識符(URIs)找到。
對象存儲的核心設計思想其實是虛擬化,虛擬化是文件的物理存儲位置,比如卷、目錄、磁盤等。虛擬化是壹個桶,把文件虛擬成對象。對於應用層,它簡化了對數據的訪問,屏蔽了底層存儲技術的異構性和復雜性。
對象存儲模型
NAS和對象存儲各有優勢。
當然妳可能會問,NAS存儲技術是不是也是壹個可以解決數據享受問題的問題?由於對象存儲的大小和成本優勢,許多雲環境使用對象存儲而不是NAS。
因為對象存儲會分布在多個節點上,最新的數據並不總是可用的,所以對象存儲的數據壹致性不強。如果有很強的壹致性要求,那麽您可以使用NAS。目前,在雲計算環境中,NAS和對象存儲存在於* * *。
像NAS壹樣,對象存儲是壹種軟件體系結構,而不是硬件體系結構。應用程序通過REST API直接訪問對象存儲。公共對象存儲包括亞馬遜S3和OpenStack的Swift。
標簽
在雲平臺的實際應用中,需要根據自己的實際情況,合理使用不同的虛擬化存儲技術。
對於非結構化的靜態數據文件,如音視頻、圖片等。,我們壹般使用對象存儲。
對於系統鏡像和應用,我們需要使用雲主機實例存儲或卷存儲。
對於應用產生的動態數據,我們壹般需要使用雲數據庫來管理數據。