虚拟机最佳实践:单个 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- ...
随机推荐
- codeforces257 div2 D最短路条数
题意: 给一个无向图,总共有 n个点,m+k条边,给定点所连的k条边可以选择删除 问最多删除多少条可以保持该定点到其他点的最短路不变 题解: 从定点出发做单元最短路 首先如果定点到某个点的最短路小于 ...
- 深入理解linux网络技术内幕读书笔记(五)--网络设备初始化
Table of Contents 1 简介 2 系统初始化概论 2.1 引导期间选项 2.2 中断和定时器 2.3 初始化函数 3 设备注册和初始化 3.1 硬件初始化 3.2 软件初始化 3.3 ...
- app后端设计--总目录
做了3年app相关的系统架构,api设计,先后在3个创业公司中工作,经历过手机网页端,android客户端,iphone客户端,现就职于app云后端平台bmob(想了解bmob点击这里).其中的乐与苦 ...
- 基于 canvas 将图片转化成字符画
字符画大家一定非常熟悉了,那么如何把一张现有的图片转成字符画呢? HTML5 让这个可能变成了现实,通过 canvas,可以很轻松实现这个功能. 其实原理很简单:扫描图片相应位置的像素点,再计算出其灰 ...
- PHP各版本之间差异
PHP5.3 __toString 魔术方法不再接受参数. 魔术方法 __get, __set, __isset, __unset, and __call 应该总是公共的(public)且不能是静态的 ...
- 浅析NSTimer & CADisplayLink内存泄露
偶得前言 NSRunLoop与定时器 - invalidate的作用 我们如何解决? 偶得前言 本篇文章中我们主要谈谈NSTimer\CADisplayLink在使用过程中牵扯到内存泄露的相关问题及解 ...
- 使用带Arduino IDE & WIZ820io的ATmega1284P
使用带Arduino IDE & WIZ820io的ATmega1284P 2013/07/04 | Filed under: IO模块 and tagged with: arduin ...
- Http协议学习小结
1.Http基本概述: HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. HTTP就是一个通信规则,通 ...
- 2.RxJava详解网址http
RxJava 到底是什么 RxJava 好在哪 API 介绍和原理简析 1) Scheduler 的 API (二) 2) Scheduler 的原理(二) 3) 延伸:doOnSubscribe() ...
- ORACLE之SQL语句内部解析过程【weber出品】
一.客户端通过监听连接到数据库,数据库开启一个server process进程来接收客户端传过来的sql. 1.这条sql语句从来都没有被执行过.(硬解析) 2.这条sql语句被执行过.(软解析) 二 ...