大家好!

我是 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

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



虚拟机最佳实践:单个 VM、临时存储和已上传磁盘的更多相关文章

  1. 超大文件上传到Azure Linux虚拟机最佳实践

    客户在实际进行迁移的时候,往往碰到需要将本地数据中心的超大文件,比如单个200GB的文件,或者总共1TB的无数文件上传到Azure上的情况,尤其是传到Azure的Linux虚拟机的场景,这种场景包括: ...

  2. 微信小程序基于腾讯云对象存储的图片上传

    在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...

  3. 阿里云存储oss+怎么上传找文件夹

    最近公司做工程项目,实现文件夹云存储上传. 网上找了很久,发现网上很多项目都存在相似问题,最后终于找到了一个符合我要求的项目. 工程如下: 这里对项目的文件夹云存储上传进行分析,实现文件夹上传,如何进 ...

  4. Android开发中使用七牛云存储进行图片上传下载

    Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...

  5. php利用七牛云的对象存储完成图片上传-高效管理图片

    在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...

  6. SpringBoot整合阿里云OSS对象存储实现文件上传

    1. 准备工作: 一.首先登录阿里云OSS对象存储控制台创建一个Bucket作为你的存储空间. 二.创建Access Keyan按要求创建进行,这里的方法步骤我就不展现出来了,你们可以自行查询阿里云文 ...

  7. kvm虚拟机最佳实践系列3-kvm克隆和静态迁移

    KVM克隆和KVM静态迁移 KVM克隆 上一章我们已经有了一个合用的虚拟机镜像,现在我们需要用这个KVM镜像大量的创建和部署 virt-clone就是做这个用的.它简化了我们克隆KVM的步骤. 首先停 ...

  8. kvm虚拟机最佳实践系列2-创建KVM及KVM优化

    创建KVM及KVM优化 把KVM优化与KVM创建放在一起,是因为我们创建的KVM是要用在生产环境中,所以基础优化工作是必备的. 创建KVM 创建系统盘, 大小: 操作系统通常都不到10G,所以系统盘2 ...

  9. kvm虚拟机最佳实践系列1-kvm宿主机准备

    KVM宿主机配置 系统环境:ubuntu16, bond0 业务网口 bond1 管理网口+存储网口 安装KVM环境支持 sudo apt-get install qemu-kvm sudo apt- ...

随机推荐

  1. linux下常用FTP命令

    linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服 ...

  2. (转)iOS keychain API及其封装

    一. Keychain API KeyChain中item的结构为: 1.增加keychain Item OSStatus SecItemAdd (CFDictionaryRef attributes ...

  3. UIWebView加载html 图片大小自适应的方法汇总

    方法一 处理HTMLString的方法: NSString *htmls = [NSString stringWithFormat:@"<html> \n" " ...

  4. 浅析NSTimer & CADisplayLink内存泄露

    偶得前言 NSRunLoop与定时器 - invalidate的作用 我们如何解决? 偶得前言 本篇文章中我们主要谈谈NSTimer\CADisplayLink在使用过程中牵扯到内存泄露的相关问题及解 ...

  5. JAVA 将接口的引用指向实现类的对象

    有一个很简单的例子,java.util中的类ArrayList实现了接口List则生成ArrayList对象时可用以下语句. List list=new ArrayList(); 也就是说所有实现了接 ...

  6. ajax弹出窗口

    提取自ZCMS的弹出框: 代替window.open.window.alert.window.confirm:提供良好的用户体验: 水晶质感,设计细腻,外观漂亮: 兼容ie6/7/8.firefox2 ...

  7. (3)选择元素——(15)总结(Summary)

    With the techniques that we have covered in this chapter, we should now be able to locate sets of el ...

  8. poj 3181 Dollar Dayz (整数划分问题---递归+DP)

    题目:http://poj.org/problem?id=3181 思路:将整数N划分为一系列正整数之和,最大不超过K.称为整数N的K划分. 递归:直接看代码: 动态规划:dp[i][j]:=将整数i ...

  9. jQuery的简单应用

     时隔多日, 终于我又有时间来浏览些新知识了, 并不是偷懒什么的, 只是真的好忙, 看似闲暇的时间总是冒出一些模糊而又不得不做的事情, 今日终于我又有时间了, 可以看下jQuery了, 并根据自己的了 ...

  10. C# typeof Gettype is as &拆箱 装箱

    有时候,我们不想用值类型的值,就是想用一个引用..Net提供了一个名为装箱(boxing)的机制,它允许根据值类型来创建一个对象,然后使用对这个新对象的一个引用. 首先,回顾两个重要的事实,1.对于引 ...