关于 Azure Windows VM 的磁盘存储

就像其他任何计算机一样,Azure 中的虚拟机将磁盘用作存储操作系统、应用程序和数据的位置。 所有 Azure 虚拟机都至少有两个磁盘,即 Windows 操作系统磁盘和临时磁盘。 操作系统磁盘基于映像创建,操作系统磁盘和该映像都存储在 Azure 存储帐户中的虚拟硬盘 (VHD) 内。 虚拟机还可以有一个或多个数据磁盘,而这些磁盘也存储为 VHD。

在本文中,我们将讨论磁盘的不同用法,并讨论可以创建和使用的不同磁盘类型。 本文也适用于 Linux 虚拟机

Note

Azure 具有用于创建和处理资源的两个不同的部署模型:Resource Manager 和经典。 这篇文章介绍了如何使用这两种模型,但 Azure 建议大多数最新部署使用 Resource Manager 模型。

VM 使用的磁盘

让我们来看看 VM 如何使用磁盘。

操作系统磁盘

每个虚拟机都附加了一个操作系统磁盘。 默认情况下,它注册为 SATA 驱动器并标为 C: 盘。 此磁盘的最大容量为 2048 GB。

临时磁盘

每个 VM 包含一个临时磁盘。 临时磁盘为应用程序和进程提供短期存储存储空间,仅用于存储页面或交换文件等数据。 在维护事件期间或重新部署 VM 时,临时磁盘上的数据可能会丢失。 在 VM 成功标准重启期间,临时驱动器上的数据将保留。

临时磁盘默认标记为 D: 盘,用于存储 pagefile.sys。 若要将此磁盘重新映射到其他驱动器号,请参阅更改 Windows 临时磁盘的驱动器号。 临时磁盘的大小因虚拟机的大小而异。 有关详细信息,请参阅 Windows 虚拟机的大小

有关 Azure 如何使用临时磁盘的详细信息,请参阅 Understanding the temporary drive on Azure Virtual Machines

数据磁盘

数据磁盘是附加到虚拟机的 VHD,用于存储应用程序数据或其他需要保留的数据。 数据磁盘注册为 SCSI 驱动器并且带有所选择的字母标记。 每个数据磁盘的最大容量为 4,095 GB。 虚拟机的大小决定了可附加的磁盘数目,以及可用来托管磁盘的存储类型。

Note

有关虚拟机容量的详细信息,请参阅 Windows 虚拟机的大小

当你基于映像创建虚拟机时,Azure 会创建操作系统磁盘。 如果使用包含数据磁盘的映像,则 Azure 还会在创建虚拟机时创建数据磁盘。 否则,需要在创建虚拟机后添加数据磁盘。

随时可以将数据磁盘添加到虚拟机,只需将该磁盘附加 到虚拟机即可。 可以使用已上传或复制到存储帐户的 VHD,也可以使用 Azure 为你创建的空 VHD。 附加数据磁盘会将 VHD 文件与 VM 关联,方法是在 VHD 上放置“租约”,因此在仍附加 VHD 时无法从存储中删除它。

关于 VHD

Azure 中使用的 VHD 是在 Azure 的标准或高级存储帐户中作为页 Blob 存储的 .vhd 文件。 有关页 blob 的详细信息,请参阅 了解块 blob 和页 blob。 有关高级存储的详细信息,请参阅高性能高级存储和 Azure VM

Azure 支持固定的磁盘 VHD 格式。 固定格式在文件内对逻辑磁盘以线性方式布局,使磁盘偏移量 X 存储在 Blob 偏移量 X 的位置。在 Blob 末尾有一小段脚注,描述了 VHD 的属性。 通常,由于大多数磁盘中都有较大的未使用区域,因此固定格式会浪费空间。 不过,Azure 以稀疏格式存储 .vhd 文件,因此可兼获固定和动态格式磁盘的优点。 有关详细信息,请参阅虚拟硬盘入门

Azure 中想要用作磁盘或映像创建源的所有 .VHD 文件都是只读的,但用户已上传或复制到 Azure 存储的 .vhd 文件除外(可以是读写的或只读的)。 创建磁盘或映像时,Azure 将生成源 .vhd 文件的副本。 这些副本可以是只读文件,也可以是读写文件,具体取决于使用 VHD 的方式。

基于映像创建虚拟机时,Azure 将为虚拟机创建磁盘,该磁盘是源 .vhd 文件的副本。 为防止意外删除,Azure 对任何用于创建映像、操作系统磁盘或数据磁盘的源 .vhd 文件都设置了租约。

在删除源 .vhd 文件之前,需要先通过删除磁盘或映像来解除租约。 若要删除当前由虚拟机用作操作系统磁盘的 .vhd 文件,可以通过删除虚拟机并删除所有关联的磁盘,一次性删除虚拟机、操作系统磁盘和源 .vhd 文件。 但是,删除用作数据磁盘来源的 .vhd 文件需要按一定顺序执行几个步骤。 首先从虚拟机分离该磁盘,再删除该磁盘,才能删除 .vhd 文件。

Warning

如果从存储中删除了源 .vhd 文件或删除了存储帐户,Azure 将无法恢复数据。

磁盘类型

Azure 磁盘具备 99.999% 的可用性。 Azure 磁盘持续提供企业级持久性,年化故障率为 0%,达到行业领先水平。

在创建磁盘时,有三种适用于存储的性能层可供选择 -- 高级 SSD 盘、标准 SSD、标准 HDD 存储。 另外还有两类磁盘 -- 非托管磁盘和托管磁盘。

标准 HDD 磁盘

标准 HDD 磁盘受 HDD 支持,提供经济高效的存储。 标准 HDD 存储可以在一个数据中心进行本地复制,也可以通过主要数据中心和辅助数据中心实现异地冗余。 有关存储复制的详细信息,请参阅 Azure 存储复制

若要详细了解如何使用标准 HDD 磁盘,请参阅标准存储和磁盘

标准 SSD 盘

根据设计,标准 SSD 磁盘处理的工作负荷种类与标准 HDD 磁盘相同,但提供的性能和可靠性要比 HDD 更一致。 标准 SSD 磁盘结合了高级 SSD 磁盘和标准 HDD 磁盘的元素,所形成的经济高效的解决方案最适合在磁盘上不需要高 IOPS 的 Web 服务器之类的应用程序。 在可用的情况下,标准 SSD 磁盘是建议用于大多数工作负荷的部署选项。 标准 SSD 盘在所有区域均作为托管磁盘提供,但当前仅以本地冗余存储 (LRS) 复原类型提供。

高级·SSD 磁盘

高级 SSD 磁盘受 SSD 支持,为运行 I/O 密集型工作负荷的 VM 提供高性能、低延迟的磁盘支持。 通常可以使用其大小在系列名称中包含“s”的高级 SSD 磁盘。 例如,有 Dv3 系列和 Dsv3 系列,可以将 Dsv3 系列用于高级 SSD 磁盘。 有关详细信息,请参阅高级存储

非托管磁盘

非托管磁盘是 VM 一直使用的传统类型的磁盘。 有了这些磁盘以后,即可创建自己的存储帐户并在创建磁盘时指定该存储帐户。 请确保不将太多磁盘置于同一存储帐户中,因为可能会超过存储帐户的可伸缩性目标(例如 20,000 IOPS),导致 VM 数受限。 使用非托管磁盘时,必须确定如何最大程度地使用一个或多个存储帐户,以便充分利用 VM 的性能。

托管磁盘

托管磁盘为用户在后台处理存储帐户的创建/管理,确保用户不需担心存储帐户的可伸缩性限制。 用户只需指定磁盘大小和性能层(标准/高级),Azure 就会自动创建和管理磁盘。 在添加磁盘或者扩展和缩减 VM 时,无需考虑所用的存储。

用户还可以按 Azure 区域在一个存储帐户中管理自定义映像,并使用这些映像在同一订阅中创建数百台 VM。 有关托管磁盘的详细信息,请参阅托管磁盘概述

建议为新 VM 使用 Azure 托管磁盘,并将以前的非托管磁盘转换为托管磁盘,以便充分利用托管磁盘中提供的多项功能。

磁盘比较

下表针对托管磁盘和非托管磁盘比较了标准 HDD、标准 SSD 和高级 SSD,方便你确定要使用的具体层。 用星号表示的大小当前处于预览阶段。

Azure 高级磁盘 Azure 标准 SSD 盘 Azure 标准 HDD 磁盘
磁盘类型 固态硬盘 (SSD) 固态硬盘 (SSD) 机械硬盘 (HDD)
概述 基于 SSD 的高性能、低延迟磁盘支持,适用于运行 IO 密集型工作负荷或托管任务关键型生产环境的 VM 比 HDD 更一致的性能和可靠性。 适用于低 IOPS 工作负荷 基于 HDD 的经济高效型磁盘,适用于访问频率不高的方案
方案 生产和性能敏感型工作负荷 Web 服务器、不常使用的企业应用程序和开发/测试 备份、非关键、不常访问
磁盘大小 P4:32 GiB(仅托管磁盘)
P6:64 GiB(仅托管磁盘)
P10:128 GiB
P15:256 GiB(仅托管磁盘)
P20:512 GiB
P30:1024 GiB
P40:2048 GiB
P50:4,095 GiB
仅托管磁盘:
E10:128 GiB
E15:256 GiB
E20:512 GiB
E30:1024 GiB
E40:2048 GiB
E50:4095 GiB
非托管磁盘:1 GiB - 4 TiB (4095 GiB)

托管磁盘:
S4:32 GiB
S6:64 GiB
S10:128 GiB
S15:256 GiB
S20:512 GiB
S30:1024 GiB
S40:2048 GiB
S50:4095 GiB
每个磁盘的最大吞吐量 P4:25 MiB/秒
P6:50 MiB/秒
P10:100 MiB/秒
P15:200 MiB/秒
P20:150 MiB/秒
P30:200 MiB/秒
P40-P50:250 MiB/秒
E10-E50:高达 60 MiB/秒 S4 - S50:高达 60 MiB/秒
每个磁盘的最大 IOPS P4:120 IOPS
P6:240 IOPS
P10:500 IOPS
P15:1100 IOPS
P20:2300 IOPS
P30:5000 IOPS
P40-P50:7500 IOPS
E10-E50:高达 500 IOPS S4-S50:高达 500 IOPS

最后一个建议:对非托管标准磁盘使用 TRIM

如果使用非托管标准磁盘 (HDD),则应启用 TRIM。 TRIM 会放弃磁盘上未使用的块,以便仅对实际使用的存储进行收费。 如果创建了较大的文件,并将其删除,这样可以节省成本。

可以运行此命令来检查 TRIM 设置。 在 Windows VM 上打开命令提示符,并键入:

fsutil behavior query DisableDeleteNotify

如果该命令返回 0,则表示正确启用了 TRIM。 如果返回 1,请运行以下命令启用 TRIM:

fsutil behavior set DisableDeleteNotify 0

Note

注意:从 Windows Server 2012/Windows 8 及更高版本开始支持 TRIM,请参阅 New API allows apps to send "TRIM and Unmap" hints to storage media(新 API 允许应用向存储媒体发送“TRIM 和 Unmap”提示)。

后续步骤