虚拟机最佳实践:单个 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 虚拟机的屏幕截图中看到这一点。

为确保您没有错误地使用临时磁盘,我们建议您在测试程序时,采取行动将临时磁盘重置。引发临时磁盘重置最简单的办法就是更改虚拟机的规模。您应该首先按照要求配置好虚拟机,然后更改虚拟机规模,之后再返回虚拟机,确保一切按预期正常运行。
操作系统磁盘上传
MicrosoftAzure最大的优势之一就是,您可以轻松上传要在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 <setupkey><ENTER>
b.设置
KMS Server DNS地址,方法是输入:slmgr /skmskms.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
虚拟机最佳实践:单个 VM、临时存储和已上传磁盘的更多相关文章
- 超大文件上传到Azure Linux虚拟机最佳实践
客户在实际进行迁移的时候,往往碰到需要将本地数据中心的超大文件,比如单个200GB的文件,或者总共1TB的无数文件上传到Azure上的情况,尤其是传到Azure的Linux虚拟机的场景,这种场景包括: ...
- 微信小程序基于腾讯云对象存储的图片上传
在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...
- 阿里云存储oss+怎么上传找文件夹
最近公司做工程项目,实现文件夹云存储上传. 网上找了很久,发现网上很多项目都存在相似问题,最后终于找到了一个符合我要求的项目. 工程如下: 这里对项目的文件夹云存储上传进行分析,实现文件夹上传,如何进 ...
- Android开发中使用七牛云存储进行图片上传下载
Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...
- php利用七牛云的对象存储完成图片上传-高效管理图片
在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...
- SpringBoot整合阿里云OSS对象存储实现文件上传
1. 准备工作: 一.首先登录阿里云OSS对象存储控制台创建一个Bucket作为你的存储空间. 二.创建Access Keyan按要求创建进行,这里的方法步骤我就不展现出来了,你们可以自行查询阿里云文 ...
- kvm虚拟机最佳实践系列3-kvm克隆和静态迁移
KVM克隆和KVM静态迁移 KVM克隆 上一章我们已经有了一个合用的虚拟机镜像,现在我们需要用这个KVM镜像大量的创建和部署 virt-clone就是做这个用的.它简化了我们克隆KVM的步骤. 首先停 ...
- kvm虚拟机最佳实践系列2-创建KVM及KVM优化
创建KVM及KVM优化 把KVM优化与KVM创建放在一起,是因为我们创建的KVM是要用在生产环境中,所以基础优化工作是必备的. 创建KVM 创建系统盘, 大小: 操作系统通常都不到10G,所以系统盘2 ...
- kvm虚拟机最佳实践系列1-kvm宿主机准备
KVM宿主机配置 系统环境:ubuntu16, bond0 业务网口 bond1 管理网口+存储网口 安装KVM环境支持 sudo apt-get install qemu-kvm sudo apt- ...
随机推荐
- hdu&&poj搜索题题号
搜索 hdu1067 哈希 hdu1401 双向搜索 hdu1430 哈希 hdu1667 跌搜+启发式函数 hdu1685 启发式搜索 hdu1813 启发式搜索 hdu1885 状态压缩搜索 hd ...
- 51nod-正整数分组问题(基础方程DP-01背包)
正整数分组 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 思路: 这题的实质其实也是0-1背包问 ...
- zookeeper[1] (转)ZooKeeper Programmer's Guide(zookeeper编程向导)---中文
原文:http://www.cnblogs.com/Xrinehart/p/3512509.html 本文是为想要创建使用ZooKeeper协调服务优势的分布式应用的开发者准备的.本文包含理论信息和实 ...
- SqlServer 自动备份、自动删除7天前备份
-----sqlserver 数据异地备份 默认删除 七天前的数据 -----该代码可配置成SQLServer作业里做调度,或者配置成任务计划进行执行 ----挂载异地盘符 exec master.. ...
- JS浏览器对象-计时器
setInterval用法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- JS(六)
没有视频看了,心里有点慌啊,像这种每天都会灌输很多知识的学习方式,我觉得提前预习真的是有奇效,不然不容易跟上老师的思维. 1.发送验证码:简单 <!DOCTYPE html> <ht ...
- [React] React Router: IndexRoute
IndexRoute allows us to define a default child component to be rendered at a specific route when no ...
- Form( 表单) 组件
本节课重点了解 EasyUI 中 Form(表单)组件的使用方法, 这个组件不依赖于任何组件.一. 加载方式表单组件只能在 JS 区域设置,首先定义一张表单.<form id="box ...
- asp.net 5.0微信支付
(原文出自:http://lib.csdn.net/article/wechat/46329) 微信支付官方坑太多,我们来精简 我把官方的代码,打包成了 an.wxapi.dll. 里面主要替换了下注 ...
- css选择器基本属性
选择器一,相邻选择器: 1,相邻选择器 1),定义:相邻选择器匹配指定元素的相邻兄弟元素 2),用法:如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器 3),表示符 ...