Azure 中的 Windows 虚拟机概述
Azure 虚拟机 (VM) 是 Azure 提供的多种可缩放按需分配计算资源之一。 通常情况下,如果需要以更大的力度(相对于其他控制选项)控制计算环境,则应选择 VM。 本文介绍创建 VM 之前的注意事项,以及 VM 的创建方法和管理方式。
使用 Azure VM 可以灵活进行虚拟化,而无需购买和维护运行 VM 的物理硬件。 不过,仍然需要通过执行任务来维护 VM,例如,配置、修补和安装在 VM 上运行的软件。
可通过多种方式使用 Azure 虚拟机。 下面是一些示例:
- 开发和测试 – 在 Azure VM 上,可以快速轻松地创建具有特定配置的计算机来满足编程和应用程序测试的需要。
- 云中的应用程序 – 由于应用程序的需求会不断变化,在 Azure 中的 VM 上运行应用程序可能会节省成本。 使用 VM 时,需要支付额外的费用;关闭 VM 时,则无需付费。
- 扩展的数据中心 – Azure 虚拟网络中的虚拟机可以轻松连接到组织的网络。
可以根据需要,将应用程序使用的 VM 纵向和横向扩展为任意数目。
在创建 VM 之前需要考虑哪些因素?
在 Azure 中构建应用程序基础结构时,始终要考虑多种设计注意事项。 在开始之前,必须考虑到 VM 的以下重要方面:
- 应用程序资源的名称
- 资源的存储位置
- VM 的大小
- 可以创建的 VM 数目上限
- VM 运行的操作系统
- VM 在启动后的配置
- VM 所需的相关资源
命名
虚拟机有一个分配的名称,另外,它还配置有一个在操作系统中使用的计算机名称。 VM 的名称最多可包含 15 个字符。
如果使用 Azure 创建操作系统磁盘,计算机名称与虚拟机名称相同。 如果上传包含以前配置的操作系统的自有映像并使用它来创建虚拟机,则名称可以不同。 建议在上传自己的映像文件时,使操作系统中的计算机名称与虚拟机名称保持相同。
位置
创建 VM 时,区域通常称为 位置 。 位置指定 VM 虚拟硬盘的存储位置。
下表显示了获取可用位置列表的一些方法。
方法 | 说明 |
---|---|
Azure 门户 | 创建 VM 时,可从列表中选择位置。 |
Azure PowerShell | 使用 Get-AzureRmLocation 命令。 |
REST API | 使用列出位置操作。 |
VM 大小
VM 的大小由所要运行的工作负荷决定。 然后,选择的大小决定了处理能力、内存和存储容量等因素。 Azure 提供各种大小来支持多种类型的用途。
Azure 根据 VM 的大小和操作系统按小时进行收费。 对于不足一小时的部分,Azure 仅根据使用的分钟数计费。 存储将另行定价和收费。
VM 限制
订阅附带默认的配额限制,在为项目部署大量 VM 时,这些限制可能会造成影响。 每个订阅的当前限制是每区域 20 个 VM。 可以开具支持票证来请求提高限制。
操作系统磁盘和映像
虚拟机使用虚拟硬盘 (VHD) 来存储其操作系统 (OS) 和数据。 VHD 还可用于存储映像,可以选择某个映像来安装 OS。
Azure 提供许多应用商店映像,这些映像可配合各种版本和类型的 Windows Server 操作系统使用。 应用商店映像由映像发布者、产品、SKU 和版本(通常指定为最新版本)标识。
下表显示了查找映像信息的一些方法。
方法 | 说明 |
---|---|
Azure 门户 | 选择要使用的映像时,系统会自动指定值。 |
Azure PowerShell | Get-AzureRMVMImagePublisher -Location "location" Get-AzureRMVMImageOffer -Location "location" -Publisher "publisherName" Get-AzureRMVMImageSku -Location "location" -Publisher "publisherName" -Offer "offerName" |
REST API | 列出映像发布者 列出映像产品 列出映像 SKU |
可以选择上传并使用自己的映像,在这种情况下,无需使用发布者名称、产品和 SKU。
扩展
VM 扩展通过部署后的配置和自动化任务来增加 VM 的功能。
可以使用扩展完成以下常见任务:
- 运行自定义脚本 – 预配 VM 时,自定义脚本扩展可以通过运行脚本,帮助在 VM 上配置工作负荷。
- 部署和管理配置 – 可以借助 PowerShell Desired State Configuration (DSC) 扩展在 VM 上设置用于管理配置和环境的 DSC。
- 收集诊断数据 – 可以借助 Azure 诊断扩展将 VM 配置为收集诊断数据,然后,可以使用这些数据监视应用程序的运行状况。
相关资源
VM 使用下表中的资源,创建 VM 时,这些资源必须存在,否则要予以创建。
资源 | 必选 | 说明 |
---|---|---|
资源组 | 是 | VM 必须包含在资源组中。 |
存储帐户 | 是 | VM 需要使用存储帐户来存储其虚拟硬盘。 |
虚拟网络 | 是 | VM 必须是虚拟网络的成员。 |
公共 IP 地址 | 否 | 可以向 VM 分配一个公共 IP 地址,以便远程访问它。 |
网络接口 | 是 | VM 需要使用网络接口在网络中通信。 |
数据磁盘 | 否 | VM 可以包含数据磁盘,以便扩展存储功能。 |
如何创建第一个 VM?
可以选择多种方法创建 VM。 选择哪种方法取决于所在的环境。
下表提供的信息可帮助你开始创建 VM。
方法 | 文章 |
---|---|
Azure 门户 | 使用门户创建运行 Windows 的虚拟机 |
模板 | 使用 Resource Manager 模板创建 Windows 虚拟机 |
Azure PowerShell | 使用 PowerShell 创建 Windows VM |
客户端 SDK | 使用 C# 部署 Azure 资源 |
REST API | 创建或更新 VM |
问题偶尔会不期而至。 如果遇到了问题,请查看排查在 Azure 中创建 Windows 虚拟机时遇到的 Resource Manager 部署问题。
如何管理创建的 VM?
可以使用基于浏览器的门户、支持脚本的命令行工具或直接通过 API 管理 VM。 可能要执行的一些常见管理任务包括获取有关 VM 的信息、登录到 VM、管理可用性以及执行备份。
获取有关 VM 的信息
下表显示了获取有关 VM 的信息的一些方法。
方法 | 说明 |
---|---|
Azure 门户 | 在中心菜单中,单击“虚拟机”,然后从列表中选择 VM。 在 VM 的边栏选项卡中,可以访问概述信息、设置值以及监控指标。 |
Azure PowerShell | 若要了解如何使用 PowerShell 管理 VM,请参阅使用 Azure PowerShell 模块创建和管理 Windows VM。 |
REST API | 使用获取 VM 信息操作获取有关 VM 的信息。 |
客户端 SDK | 有关使用 C# 管理 VM 的信息,请参阅使用 Azure Resource Manager 与 C# 来管理 Azure 虚拟机。 |
登录到 VM
使用 Azure 门户中的“连接”按钮启动远程桌面 (RDP) 会话。 尝试使用远程连接时,有时可能会出错。 如果遇到这种情况,请查看对运行 Windows 的 Azure 虚拟机的远程桌面连接进行故障排除中的帮助信息。
管理可用性
了解如何确保应用程序的高可用性,这一点很重要。 此配置涉及到创建多个 VM,确保至少有一个 VM 在运行。
为了使部署符合 VM 运行时间达到 99.95% 的服务级别协议,必须在可用性集中部署两个或更多个运行工作负荷的 VM。 此配置可确保 VM 分布到多个容错域,并使用不同的维护时段部署到主机上。 完整 Azure SLA 说明了 Azure 作为整体的保证可用性。
备份 VM
恢复服务保管库用于保护 Azure 备份和 Azure Site Recovery 服务中的数据与资产。 可以使用恢复服务保管库,通过 PowerShell 来部署和管理采用 Resource Manager 模型部署的 VM 备份。
后续步骤
- 如果打算使用 Linux VM,请查看 Azure 和 Linux。
- 在 Example Azure infrastructure walkthrough(示例 Azure 基础结构演练)中查看有关设置基础结构的指导。
立即访问http://market.azure.cn
Azure 中的 Windows 虚拟机概述的更多相关文章
- 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
Azure 中的每个虚拟机 (VM) 都是基于定义 Windows 分发和操作系统版本的映像创建的. 映像可以包括预安装的应用程序和配置. Azure 应用商店为最常见的操作系统和应用程序环境提供了许 ...
- 如何在 Azure 中均衡 Windows 虚拟机负载以创建具有高可用性的应用程序
负载均衡通过将传入请求分布到多个虚拟机来提供更高级别的可用性. 本教程介绍了 Azure 负载均衡器的不同组件,这些组件用于分发流量和提供高可用性. 你将学习如何执行以下操作: 创建 Azure 负载 ...
- 在 Azure 中管理 Windows 虚拟机的可用性
了解如何设置和管理多个虚拟机,以确保 Azure 中 Windows 应用程序的高可用性. 也可以管理 Linux 虚拟机的可用性. Note Azure 具有用于创建和处理资源的两个不同的部署模型: ...
- 如何在 Azure 中标记 Windows 虚拟机
本文介绍在 Azure 中通过 Azure 资源管理器标记 Windows 虚拟机的不同方式.标记是用户定义的键/值对,可直接放置在资源或资源组中.针对每个资源和资源组,Azure 当前支持最多 15 ...
- 如何在 Azure 中自定义 Windows 虚拟机
若要以快速一致的方式配置虚拟机 (VM),通常需要某种形式的自动化. 自定义 Windows VM 的一种常用方法是使用适用于 Windows 的自定义脚本扩展. 本教程介绍如何执行下列操作: 使用自 ...
- 在 Azure 中的 Windows 虚拟机上使用 SSL 证书保护 IIS Web 服务器
若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Windows ...
- 排查在 Azure 中新建 Windows VM 时遇到的部署问题
尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. 当由于准备步骤不当,或者在从门户捕获映像期间选择了错误的设置而导致 OS 映像无法加载时,将发生预配失败. 当群集 ...
- 远程桌面连接Windows Azure中的Ubuntu虚拟机
默认情况下,通过Windows Azure创建的ubuntu虚拟机是不能直接连接远程桌面的,只能通过SSH终端连接. 在Windows Azure Portal中创建Ubuntu虚拟机,创建完成后添加 ...
- 使用windows远程桌面连接Windows Azure中的Ubuntu虚拟机
1.创建ubuntu虚拟机,这里同样不再赘述,创建过程和创建Windows虚拟机基本一样,只是登录可以选择密钥注入或者用户名密码(为了方便我选择了用户名密码认证),创建完成后,查看虚拟机详情中的端口信 ...
随机推荐
- mybatis随笔一之SqlSessionFactoryBuilder
SqlSessionFactoryBuilder是构建sqlSessionFactory的入口类 从该类的方法可知,它是通过不同的入参来构造SqlSessionFactory,除了最后一个config ...
- The case for learned index structures
17年的旧文,最近因为SageDB论文而重读. 文章主要思路是通过学习key的顺序.结构等来预测record在位置.存在与否等.效果方面,据称部分场景下,相对b-tree可以优化70%的内存占用. 最 ...
- Percona XtraDB Cluster
简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1.同步复制,事务要么在所有节点提交或不提交. ...
- 第一次项目上Linux服务器(八:——搭建Nginx图片服务器)
一.准备工作 安装Nginx,参考历史博客 二.搭建Nginx图片服务器 1.效果 例如:图片通过xftp服务上传到/home/java/upload目录下,我想通过访问Nginx服务器来访问xftp ...
- 基于C++ Qt实现的红色警戒3修改器
前言 这部修改器制作有一段时间了,但是一直没出教程.今天利用周末空闲写篇教程,给后来者指路的同时也加深自己对游戏修改器的理解,大佬就随便看看吧 浏览了一下网络,形形色色的单机游戏修改器教程,但是基本只 ...
- springMVC实现 MultipartFile 多文件上传
1.Maven引入所需的 jar 包(或自行下载) <dependency> <groupId>commons-io</groupId> <artifactI ...
- 【转】CSS3 Box-sizing
box-sizing是CSS3的box属性之一.一说到CSS的盒模型(Box model)我想很多人都会比较烦,特别是对于新手,然而这个Box model又是我们CSS运用中比较重要的一个属性.那么C ...
- Java maven项目的小随笔
1.web.xml里面有filter拦截设置,注意. 2.编译之后,网页中读取资源的路径是apache-tomcat/wtpwebapps/..,若该路径下没有相应资源,则报404错误.
- .21-浅析webpack源码之事件流this-compilation
上一节生成Compilation实例后,添加了一些属性,随后触发this-compilation事件流,如下: Compiler.prototype.newCompilation = (params) ...
- Webhook是什么、怎么理解
Webhook是什么 我们想看看维基老大的解说: A webhook in web development is a method of augmenting or altering the beha ...