VMware 虚拟化编程(2) — 虚拟磁盘文件类型详解

简介: 目录目录前文列表虚拟磁盘文件 VMDK用户可以创建的虚拟磁盘类型VixDiskLib 中支持的虚拟磁盘类型虚拟机文件类型前文列表VMware 虚拟化编程(1) — VMDK/VDDK/VixDiskLib/VADP 概念简析虚拟磁盘文件 VMDK虚拟磁盘文件(VMDK File) 后缀为 .vmdk,是虚拟机的存储卷,Guest OS File System 储存在 VMDK File,而 VMDK File 又会以文件的形式储存在物理磁盘设备上。

目录

前文列表

VMware 虚拟化编程(1) — VMDK/VDDK/VixDiskLib/VADP 概念简析

虚拟磁盘文件 VMDK

虚拟磁盘文件(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 目录中。
    这里写图片描述

  • 寄宿磁盘(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 中支持的虚拟磁盘类型

:VixDiskLib,即虚拟磁盘库,提供了管理虚拟磁盘的系统调用接口。

虽然用户能够创建的虚拟磁盘类型只有 3 种,但在底层程序接口中会根据不同的应用场景(E.G. vCenter、ESX/ESXi) 提供多种磁盘类型参数,开发者可能按照实际情况选择相应的虚拟磁盘类型参数。

  • 寄宿磁盘(Hosted Disk)

    • 单片稀疏型 VIXDISKLIB_DISK_MONOLITHIC_SPARSE:只包含一个虚拟磁盘文件并能够动态扩展的虚拟磁盘。

    • 单片平面型 VIXDISKLIB_DISK_MONOLITHIC_FLAT:只包含一个虚拟磁盘文件,提前分配存储空间的虚拟磁盘。创建这种磁盘需要较多的时间,并占用大量空间,但是可能会提供比稀疏型磁盘更好的性能。

    • 分片稀疏型 VIXDISKLIB_DISK_SPLIT_SPARSE:可扩展的虚拟磁盘,整个磁盘被分为多个2GB大小的关联文件。这些文件可以增大到2GB,然后在新的文件中继续扩展。这种类型可以在较老的文件系统上使用。

    • 分片平面型 VIXDISKLIB_DISK_SPLIT_FLAT:提前分配空间的虚拟磁盘,并被分为多个大小为 2GB 的虚拟磁盘文件。这些从 2GB 开始,所以创建它们需要较长的时间,但是能够以 2GB 持续增长。

  • 托管磁盘(Managed Disk)

    • VMFS 平面型 VIXDISKLIB_DISK_VMFS_FLAT:提前分配空间的虚拟磁盘,在 ESX3 或更新的平台上可用,也叫做厚置备磁盘(Thick Disk)。

    • VMFS 稀疏型 VIXDISKLIB_DISK_VMFS_SPARSE:使用一种写时复制(Copy-on-Write, COW)机制来节省存储空间,这是虚拟机常用的快照磁盘类型。

    • VMFS 精简型 VIXDISKLIB_DISK_VMFS_THIN:这种类型假设需要尽可能多的空间,然后以此来扩展虚拟磁盘的大小。能够在 ESX3 以及更新的平台上使用,也叫做精简置备磁盘(Thin Disk)。。

    • 单片流优化 VIXDISKLIB_DISK_STREAM_OPTIMIZED:单片、稀疏格式对数据流进行压缩。这种格式不支持随机读写。

虚拟机文件类型

一台 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<###>.vmdk 如果只勾选「分割成 2GB 大小的文件」,虚拟磁盘文件将会在需要更多空间时才被扩展。第一个 VMDK File 很小,为元数据文件,并指向一系列的其他 VMDK 文件,它们在序号数字前都有一个 S 标志,表明是稀疏类型的(sparse)。VMDK 文件的数字依赖于所需要的磁盘大小。随着数据增长,将会在这个序列中新增更多的 VMDK File。 SPLIT_SPARSE
[vmname]-f<###>.vmdk 如果勾选「立即分配磁盘空间」和「将磁盘分成 2GB 大小的文件」两个选项,那么虚拟磁盘空间将会提前分配,不会动态扩展。第一个 VMDK File 是一个元数据文件,指向一系列的其他文件,这些文件在数字序号之前都有一个 f(flat) 前缀。数字由磁盘大小决定。 SPLIT_FLAT
[diskname]-<###>.vmdk 当给虚拟机创建快照时,会生成 redo-log 文件,也叫做子磁盘(child disk)或者差异链接(delta link)。快照文件中有序号数字,但是没有 f/s 前缀。针对原来的父磁盘或者更早的回写日志(即更早的快照)的数据修改,将会写进这些带编号的的 VMDK File 中。 MONOLITHIC_SPARSE、SPLIT_SPARSE
[vnname]Snapshot.vmsn 虚拟机快照的状态信息文件,用于保存创建快照时虚拟机的状态,包含了指向所有 VMDK File 的信息。这个文件的大小取决于创建快照时是否选择保存内存的状态。如果保存的话,那么这个文件会比分配给这个虚拟机的内存大小还要大几兆 n/a
相关文章
|
7天前
|
数据挖掘 虚拟化
虚拟化数据恢复—VMware虚拟化环境下重装系统导致服务器崩溃的数据恢复
VMware虚拟化平台 vmfs文件系统 工作人员误操作重装操作系统,服务器崩溃。 重装系统会导致文件系统元文件被覆盖。要恢复数据,必须找到&提取重装系统前的文件系统残留信息,通过提取出来的元文件信息恢复虚拟磁盘。通过拼接虚拟磁盘来恢复服务器数据。
35 13
|
20天前
|
运维 安全 网络安全
VMware NSX 4.2.1.3 下载 - 网络安全虚拟化平台
VMware NSX 4.2.1.3 下载 - 网络安全虚拟化平台
41 0
VMware NSX 4.2.1.3 下载 - 网络安全虚拟化平台
|
5月前
|
存储 网络安全 虚拟化
虚拟化数据恢复—VMware ESX Server数据恢复案例
虚拟化数据恢复环境: 某企业信息管理平台, 几台VMware ESX Server主机共享一台存储设备,大约有几十台虚拟机。 虚拟化故障&原因: Vcenter报告虚拟磁盘丢失。管理员通过ssh远程到ESX中执行fdisk -l命令查看磁盘,发现STORAGE已经没有分区表了。重启所有设备后,ESX SERVER均无法连接到存储设备中的STORAGE。
|
4月前
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
172 50
|
4月前
|
存储 网络安全 虚拟化
虚拟化数据恢复—VMware ESX SERVER数据恢复案例
虚拟化数据恢复环境&故障: 某单位信息管理平台,数台VMware ESX SERVER共享一台某品牌DS4100存储。 vc报告虚拟磁盘丢失,管理员ssh到ESX中执行fdisk -l查看磁盘,发现STORAGE中的分区表不见了。重启所有设备后,ESX SERVER均无法连接到DS4100存储中的STORAGE。
|
6月前
|
存储 SQL 数据挖掘
虚拟化数据恢复—VMware虚拟机vmdk文件被误删除的数据恢复案例
虚拟化数据恢复环境: 某品牌服务器(部署VMware EXSI虚拟机)+同品牌存储(存放虚拟机文件)。 虚拟化故障: 意外断电导致服务器上某台虚拟机无法正常启动。查看虚拟机配置文件发现这台故障虚拟机除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还在。管理员联系VMware工程师寻求帮助。VMware工程师尝试新建一个虚拟机来解决故障,但发现ESXi存储空间不足。于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除,然后重建一个虚拟机并且分配固定大小的虚拟磁盘。
|
2天前
|
存储 虚拟化 Docker
|
2天前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
|
4月前
|
存储 安全 虚拟化
虚拟化技术:实现资源高效利用和灵活管理的利器
虚拟化技术作为实现资源高效利用和灵活管理的重要手段,在数字化时代背景下,正逐步改变传统IT架构模式。本文概述了虚拟化技术的概念、原理及其在数据中心管理、云计算平台、企业信息化建设、科研教育及医疗行业的应用,并探讨了其面临的挑战与未来发展趋势。
342 3
|
13天前
|
安全 大数据 虚拟化
随着云计算和大数据技术的发展,Hyper-V在虚拟化领域的地位日益凸显
随着云计算和大数据技术的发展,Hyper-V在虚拟化领域的地位日益凸显。作为Windows Server的核心组件,Hyper-V具备卓越的技术性能,支持高可用性、动态迁移等功能,确保虚拟机稳定高效运行。它与Windows深度集成,管理便捷,支持远程管理和自动化部署,降低管理成本。内置防火墙、RBAC等安全功能,提供全方位安全保障。作为内置组件,Hyper-V无需额外购买软件,降低成本。其广泛的生态系统支持和持续增长的市场需求,使其成为企业虚拟化解决方案的首选。

热门文章

最新文章

相关实验场景

更多