虚拟机最佳实践:单个 VM、临时存储和已上传磁盘

大家好!

我是 Drew McDaniel,来自 Microsoft Azure 虚拟机功能研发团队,我从团队成立之初就已加入。

在本博客文章中,我将分享一些最佳实践指南,帮助您充分利用您的 Azure 虚拟机。这些指南均来自客户反馈,涵盖了客户遇到的一些常见问题。

避免在可用性集中配置单个 VM

当单个虚拟机部署在 Azure 中时,可以将其配置为可用性集的一部分,或者将可用性集配置为 这一选项有可能稍微有些误导性,毕竟人人都希望他们的 VM 高度可用,是不是?但是,仅当部署 2 个或更多提供相同功能的虚拟机时,我才建议选择可用性集。如果您部署的 VM 不属于提供相同功能的 VM 集(即 2 个或更多),例如在公用负载平衡器下的多个 Web 服务器或复制数据的两个 SQL Server 等,那么您应该选择“无”。

您可能会问:“为什么在可用性集中部署单个 VM 不好?”简单地说,如果您在可用性集中部署单个 VM 实例,您将收不到平台维护的事先警告或通知。在此配置下,当执行平台维护时,您的单个 VM 实例将会重启,且无法收到事先警告。

而如果您部署单个 VM 实例时将可用性集选项设置为“无”,您会在 VM 因为平台维护操作被重启之前收到通知,确保在您尚未了解何时以及为何重启时,不重启您的单个 VM 实例。

事实上,在将 VM 部署到可用性集时,Azure 平台会确保可用性集中在任何时候都只有一部分 VM 停机进行平台维护。所以如果您的可用性集中有多个 VM,那么总会至少有一部分 VM 处于运行状态。配置单个 VM 实例不是可用性集的一部分,相当于您是在告诉 Azure 平台此虚拟机并非高可用性集的一部分,针对这种情况,我们具有专门的程序,会在 VM 因平台维护操作需要重启之前,通过电子邮件通知您。

不论何时,如果您的可用性集中只有一个虚拟机,Azure 将在您的虚拟机仪表板中发出警告,提醒您这不是最佳实践配置。此配置不在现有服务级别协议 (SLA) 的高可用性保证范围内。

注意:将虚拟机移入或移出可用性集都将导致该虚拟机重启。

要了解有关虚拟机服务级别协议 (SLA) 保证的更多信息,请单击此处

临时存储

客户使用 Microsoft Azure 虚拟机的一个主要原因就是,虚拟机支持持久性磁盘。持久性是指写入这些持久性磁盘的数据在发生重启、启动/停止或其他生命周期事件时仍然可用。但是每个虚拟机上都包含一个临时磁盘。发生常规 VM 生命周期事件后,这些临时磁盘上的数据可能将不复存在。这是因为临时磁盘数据存储在运行虚拟化管理程序的主机操作系统中,而持久性磁盘数据则存储在 Microsoft Azure Storage 中。

对于本质上只是暂时的数据而言,临时磁盘非常有用。Windows的页面临时文件是此类 数据的一个典型例子。事实上,在通过 Azure 映像配置新的 Windows VM 时,我们将页面文件配置在此临时磁盘中。客户不得使用临时磁盘存储应保持持久性的数据。我们常见的错误配置情况是,客户将 SQL 数据库文件或者 Windows Active Directory 域控制器数据库文件放置在临时磁盘中。

对于大多数 Windows VM 而言,临时磁盘卷都使用 D:\ 驱动器,而且还会有“临时存储”的驱动器标签。您可以从以下 Azure 虚拟机的屏幕截图中看到这一点。

为确保您没有错误地使用临时磁盘,我们建议您在测试程序时, 采取行动将临时磁盘重置。引发临时磁盘重置最简单的办法就是更改虚拟机的规模。您应该首先按照要求配置好虚拟机,然后更改虚拟机规模,之后再返回虚拟机,确保一切按预期正常运行。

操作系统磁盘上传

Microsoft Azure 最大的优势之一就是,您可以轻松上传要在 Azure 虚拟机中使用的 VHD 格式文件。在上传的 VHD 文件中包含 Windows 操作系统时,VHD 可以是以下两个类别之一:(1) 在上传文件之前,Sysprep 在来宾操作系统中运行, 实现操作系统通用化;(2) Sysprep 未运行在来宾操作系统中。如果属于第 (2) 种情况,来宾操作系统注册为一个具有操作系统的磁盘。如果使用该磁盘创建 VM,部署时则无法享受配置代理优化以便利用 Microsoft Azure 的优势。因此应该在 Azure 中启动 VM 之后采取以下最佳实践:

1. 将页面文件移至临时磁盘中-如上所述,临时磁盘通常是驱动器 D:\ 。建议您将页面文件移至临时磁盘中。这将消除与页面文件相关的存储事物开支,并将为 Microsoft Azure 释放更多带宽,以存储必须存储在持久性磁盘上的数据。

2. 配置激活服务器-此步骤适用于 Windows 零售版或 Windows 批量许可版的上传磁盘,不能用于激活 Windows 测试版。要将虚拟机配置为使用 Microsoft Azure 提供的激活服务器进行激活,请通过管理员命令提示执行以下步骤:

a. 如果 VM 运行的是 Windows 零售版,使用如下步骤配置 VM,使其成为 Windows 批量许可版:

i. 从下页中找到适合您的 Windows 版本的 KMS 客户端安装密钥(通用批量许可密钥):KMS 客户端安装密钥

ii. 安装客户端安装密钥,方法是输入:slmgr /ipk <setup key> <ENTER>

b. 设置 KMS Server DNS 地址,方法是输入:slmgr /skms kms.core.windows.net <ENTER>

i. 对于由世纪互联运营的 Microsoft Azure,请将 kms.core.windows.net 替换为 kms.core.chinacloudapi.cn。

c. 启动激活,方法是输入:slmgr /ato <ENTER>

3. 配置 SAN 策略-要将 SAN 策略配置到自动联机批量许可证验证,请通过管理员命令提示执行以下命令:

  1.  Diskpart
  2. SAN POLICY=OnlineAll
  3. Exit

4. 配置保持连接-为避免 RDP 会话超时,应通过管理员命令提示执行以下命令:

a. reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services” /t REG_DWORD /vKeepAliveEnable /d

b.reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services” /t REG_DWORD /vKeepAliveInterval /d

如果您认为这些最佳实践有用,请在评论中告诉我们。如果您还遇到过其他常见挑战,也请在评论部分中指出。我会尽量在以后的文章中提供相应的最佳实践。

-Drew McDaniel

本文翻译自:https://azure.microsoft.com/blog/2014/05/08/virtual-machines-best-practices-single-vms-temporary-storage-and-uploaded-disks/