天天看點

VMware 虛拟化程式設計(2) — 虛拟磁盤檔案類型詳解目錄前文清單虛拟磁盤檔案 VMDK使用者可以建立的虛拟磁盤類型VixDiskLib 中支援的虛拟磁盤類型虛拟機檔案類型

<a href="#%E7%9B%AE%E5%BD%95">目錄</a>

<a href="#%E5%89%8D%E6%96%87%E5%88%97%E8%A1%A8">前文清單</a>

<a href="#%E8%99%9A%E6%8B%9F%E7%A3%81%E7%9B%98%E6%96%87%E4%BB%B6-vmdk">虛拟磁盤檔案 VMDK</a>

<a href="#%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BB%A5%E5%88%9B%E5%BB%BA%E7%9A%84%E8%99%9A%E6%8B%9F%E7%A3%81%E7%9B%98%E7%B1%BB%E5%9E%8B">使用者可以建立的虛拟磁盤類型</a>

<a href="#vixdisklib-%E4%B8%AD%E6%94%AF%E6%8C%81%E7%9A%84%E8%99%9A%E6%8B%9F%E7%A3%81%E7%9B%98%E7%B1%BB%E5%9E%8B">VixDiskLib 中支援的虛拟磁盤類型</a>

<a href="#%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B">虛拟機檔案類型</a>

<a href="http://blog.csdn.net/Jmilk/article/details/77927455">VMware 虛拟化程式設計(1) — VMDK/VDDK/VixDiskLib/VADP 概念簡析</a>

虛拟磁盤檔案(VMDK File) 字尾為 .vmdk,是虛拟機的存儲卷,Guest OS File System 儲存在 VMDK File,而 VMDK File 又會以檔案的形式儲存在實體磁盤裝置上。VMDK File 支援兩種實體磁盤類型:

托管磁盤(Managed Disk):托管磁盤通常指的是 File System Format 為 VMFS 的實體儲存設備,能夠支援使用光纖、iSCSI 或 SAS 來連接配接到 ESX/ESXi Host 的存儲網絡(SAN),也能夠支援網絡挂載存儲(NAS),甚至能夠直接挂載到 ESX/ESXi Host 上。在 vCenter 體系中,VMDK File 會被儲存于共享的 Datastore 之上,再由 vCenter 管理着這些存儲簇(Storage Clusters),這令 vCenter 能夠支援在 ESX/ESXi Host 之間遷移虛拟機而不需要移動 VMDK 檔案;在 ESX/ESXi Host 體系中,VMDK File 通常存放在實體儲存設備的某個 /vmfs/volumes 目錄中。

VMware 虛拟化程式設計(2) — 虛拟磁盤檔案類型詳解目錄前文清單虛拟磁盤檔案 VMDK使用者可以建立的虛拟磁盤類型VixDiskLib 中支援的虛拟磁盤類型虛拟機檔案類型

寄宿磁盤(Hosted Disk):寄宿磁盤沒有特定的 File System Format 要求,所謂寄宿,即适應 Host 原生的磁盤類型。在 Worksation 體系中,寄宿磁盤會适應 Host File System,而将 VMDK File 儲存于本地磁盤之上。

NOTE:需要注意的是 VDDK 對兩種不同類型的磁盤裝置的操作函數也是有所差別的,對于托管磁盤,VDDK 應用程式可以利用進階傳輸接口函數通過 SAN 而不是 LAN 來執行大多數 I/O 操作,以此來提高程式性能,并保護網絡帶寬。

在建立一個虛拟磁盤時,會進行兩個操作:配置設定空間、置零。

厚置備延遲置零(Lazy Zeroed Thick):預設的磁盤建立格式,建立磁盤時會直接從磁盤配置設定所需空間,但不會即時擦除磁盤上保留的資料,而是在虛拟機執行 I/O 操作時按需要将其置零。簡單來說,就是立即完全配置設定指定的磁盤空間給虛拟機,但延遲對該磁盤空間進行清零操作.

特性:磁盤性能較好,建立時間短,适合于做池模式的虛拟桌面。

厚置備置零(Eager Zeroed Thick):建立支援群集功能(E.G. FaultTolerance)的厚磁盤格式,建立磁盤時,直接從磁盤配置設定空間并立即對實體裝置上保留的資料置零。是以當虛拟機有 I/O 操作時,就能夠直接執行。簡單來說,就是立即完全配置設定指定的磁盤空間給虛拟機, 并立即清零磁盤空間, 所需時間較長。

特性:磁盤性能最好,建立時間長,适合于做跑運作繁重應用業務的虛拟機。

精簡置備(Thin):建立磁盤時,占用磁盤的空間大小根據實際使用量計算,即用多少分多少,提前不配置設定空間,對磁盤保留資料不置零,且最大不超過劃分磁盤的大小。簡單來說,就是按實際磁盤使用量動态增長配置設定磁盤空間,但最大不能超過指定的最大磁盤配置設定空間。

特性:當有 I/O 操作時,需要先配置設定空間,再将空間置零,最後才能執行 I/O 操作。當有頻繁 I/O 操作時,磁盤性能會有所下降,I/O 不頻繁時,磁盤性能較好;建立時間短,适合于對磁盤 I/O 不頻繁的業務應用虛拟機。

注:VixDiskLib,即虛拟磁盤庫,提供了管理虛拟磁盤的系統調用接口。

雖然使用者能夠建立的虛拟磁盤類型隻有 3 種,但在底層程式接口中會根據不同的應用場景(E.G. vCenter、ESX/ESXi) 提供多種磁盤類型參數,開發者可能按照實際情況選擇相應的虛拟磁盤類型參數。

寄宿磁盤(Hosted Disk)

單片稀疏型 <code>VIXDISKLIB_DISK_MONOLITHIC_SPARSE</code>:隻包含一個虛拟磁盤檔案并能夠動态擴充的虛拟磁盤。

單片平面型 <code>VIXDISKLIB_DISK_MONOLITHIC_FLAT</code>:隻包含一個虛拟磁盤檔案,提前配置設定存儲空間的虛拟磁盤。建立這種磁盤需要較多的時間,并占用大量空間,但是可能會提供比稀疏型磁盤更好的性能。

分片稀疏型 <code>VIXDISKLIB_DISK_SPLIT_SPARSE</code>:可擴充的虛拟磁盤,整個磁盤被分為多個2GB大小的關聯檔案。這些檔案可以增大到2GB,然後在新的檔案中繼續擴充。這種類型可以在較老的檔案系統上使用。

分片平面型 <code>VIXDISKLIB_DISK_SPLIT_FLAT</code>:提前配置設定空間的虛拟磁盤,并被分為多個大小為 2GB 的虛拟磁盤檔案。這些從 2GB 開始,是以建立它們需要較長的時間,但是能夠以 2GB 持續增長。

托管磁盤(Managed Disk)

VMFS 平面型 <code>VIXDISKLIB_DISK_VMFS_FLAT</code>:提前配置設定空間的虛拟磁盤,在 ESX3 或更新的平台上可用,也叫做厚置備磁盤(Thick Disk)。

VMFS 稀疏型 <code>VIXDISKLIB_DISK_VMFS_SPARSE</code>:使用一種寫時複制(Copy-on-Write, COW)機制來節省存儲空間,這是虛拟機常用的快照磁盤類型。

VMFS 精簡型 <code>VIXDISKLIB_DISK_VMFS_THIN</code>:這種類型假設需要盡可能多的空間,然後以此來擴充虛拟磁盤的大小。能夠在 ESX3 以及更新的平台上使用,也叫做精簡置備磁盤(Thin Disk)。。

單片流優化 <code>VIXDISKLIB_DISK_STREAM_OPTIMIZED</code>:單片、稀疏格式對資料流進行壓縮。這種格式不支援随機讀寫。

一台 VMware 虛拟機除了包含上述提到的 VMDK File 之外,還包含了各式各樣、針對各種場景的配置檔案或描述檔案,以及特殊檔案在 API 中的參數項。

字尾

描述

API 參數

[vmname].vmx

虛拟機配置檔案

[vmname].vmdk

如果選擇「動态配置設定磁盤」設定,會建立一個可根據需要空間大小動态增長的 VMDK File。此時該檔案是實際的磁盤資料檔案。[vmname] 表示虛拟機的名稱。在 VMFS 分區上,這是磁盤描述檔案的名稱。除此之外,該檔案還可能儲存的是該虛拟機磁盤檔案的中繼資料。

MONOLITHIC_SPARSE

[vmname]-flat.vmdk

Extent description 檔案,如果勾選了「立即配置設定磁盤空間」,虛拟磁盤檔案将會提前配置設定所有空間,不會動态增長。第一個 VMDK File 很小(即上述的中繼資料檔案),并指向一個大的 -flat.vmdk VMDK 檔案,此時該檔案儲存的是虛拟機實際的虛拟磁盤資料。

MONOLITHIC_FLAT、VMFS_FLAT、VMFS_THIN

[vmname]-ctk.vmdk

Change Tracking File 改變追蹤檔案,儲存自上次快照以來的所發生改變的虛拟機資料塊的資訊。

[vmname].vmem

虛拟機的記憶體頁面檔案,存放虛拟機運作時的記憶體資料,在虛拟機運作或者崩潰時被建立

.vmss

虛拟機挂起時的狀态資訊檔案

.vmsd

虛拟機快照的中繼資料檔案,儲存了如快照名、UID(Unique Identifier)、磁盤檔案名等資訊。在建立快照前,其 size 為 0byte

.vmtx

虛拟機模闆檔案

.nvram

虛拟機 bios 檔案

.vswp

虛拟機交換檔案

.log

虛拟機日志檔案

[vmname]-s&lt;###&gt;.vmdk

如果隻勾選「分割成 2GB 大小的檔案」,虛拟磁盤檔案将會在需要更多空間時才被擴充。第一個 VMDK File 很小,為中繼資料檔案,并指向一系列的其他 VMDK 檔案,它們在序号數字前都有一個 S 标志,表明是稀疏類型的(sparse)。VMDK 檔案的數字依賴于所需要的磁盤大小。随着資料增長,将會在這個序列中新增更多的 VMDK File。

SPLIT_SPARSE

[vmname]-f&lt;###&gt;.vmdk

如果勾選「立即配置設定磁盤空間」和「将磁盤分成 2GB 大小的檔案」兩個選項,那麼虛拟磁盤空間将會提前配置設定,不會動态擴充。第一個 VMDK File 是一個中繼資料檔案,指向一系列的其他檔案,這些檔案在數字序号之前都有一個 f(flat) 字首。數字由磁盤大小決定。

SPLIT_FLAT

[diskname]-&lt;###&gt;.vmdk

當給虛拟機建立快照時,會生成 redo-log 檔案,也叫做子磁盤(child disk)或者差異連結(delta link)。快照檔案中有序号數字,但是沒有 f/s 字首。針對原來的父磁盤或者更早的回寫日志(即更早的快照)的資料修改,将會寫進這些帶編号的的 VMDK File 中。

MONOLITHIC_SPARSE、SPLIT_SPARSE

[vnname]Snapshot.vmsn

虛拟機快照的狀态資訊檔案,用于儲存建立快照時虛拟機的狀态,包含了指向所有 VMDK File 的資訊。這個檔案的大小取決于建立快照時是否選擇儲存記憶體的狀态。如果儲存的話,那麼這個檔案會比配置設定給這個虛拟機的記憶體大小還要大幾兆

n/a

繼續閱讀