用户:小朱/沙盒/Microsoft Azure Virtual Machine

Microsoft Azure 虚拟机器服务 是 Microsoft Azure 平台的基础建设服务之一,且是运算类服务的核心,由微软资料中心的实体伺服器虚拟化后产生的虚拟机器提供,虽然虚拟机器会供应 Microsoft Azure 平台内所有需要运算资源的服务 (如 Cloud Service、Web App、Service Fabric 以及其他类型服务),但虚拟机器服务会开放足够的管理与控制权给系统管理人员或网路管理人员,让他们有权力操作整台虚拟机器。

虚拟机器服务自 2012 年 Spring Release 阶段正式推出,目前已是 Microsoft Azure 平台上使用率最高的服务。

虚拟机器类型

Azure 虚拟机器依照运算能力区分为数种类型 [1],共分为一般性运算能量的 A 类型、经效能提升的 D 类型以及拥有最强运算效能的 G 类型,未来也会推出使用GPU运算的 N 类型。

A 类型

A 类型是 Azure 一开始就提供的标准虚拟机器类型,使用 AMD 的 CPU 以及传统 SATA 介面的硬碟,提供最标准不需太高运算能量的应用,早期是以五种规格推出,分别是 Extra Small (XS)、Small (S)、Medium (M)、Large (L) 以及 Extra Large (XL) 五种,除了 XS 记忆体使用 0.75GB 记忆体外,其他是以 1.75GB 记忆体,每晋一级就会加倍,可作为衡量运算资源与成本的标准之一。不过在虚拟机器种类愈来愈多的情况下,A 类型也做了扩充,现在除了原有的五类外,还多加了 A5~A7、A8~A11等七种规格。

A5~A7 与 A8~A11 均使用 Intel Xeon E5 系列 CPU,但 A5~A7 的记忆体量比 A2~A4 高;A8~A9 与 A10~A11 规格相同,但 A8~A9 有支援 HPC 的 InfiniBand 网路介面与 RDMA 技术,A10~A11 则无。

规格 CPU核心数 记忆体量 暂存硬碟大小 (SATA) 可用网卡数 可用资料磁碟数 最高IOPS 说明
Standard_A0 1 0.75GB 20GB 1 1 1x500 Extra Small
Standard_A1 1 1.75GB 70GB 1 2 2x500 Small
Standard_A2 2 3.5GB 135GB 1 4 4x500 Medium
Standard_A3 4 7GB 285GB 2 8 8x500 Large
Standard_A4 8 14GB 605GB 4 16 16x500 Extra Large
Standard_A5 2 14GB 135GB 1 4 4x500
Standard_A6 4 28GB 285GB 2 8 8x500
Standard_A7 8 56GB 605GB 4 16 16x500
Standard_A8 8 56GB 382GB 2 16 16x500 支援 InfiniBand 与 RDMA
Standard_A9 16 112GB 382GB 4 16 16x500 支援 InfiniBand 与 RDMA
Standard_A10 8 56GB 382GB 2 16 16x500
Standard_A11 16 112GB 382GB 4 16 16x500

D 类型

D 类型是 Azure 在 2013 年推出的类型,它使用比 A 类型更好的 CPU,并且在实体伺服器上使用固态硬碟 (SSD),以加速在本地运算时的 I/O 速度,另外,为满足提升虚拟机器本身的 I/O 量的需求,微软开发了高阶储存体 (Premium Storage) 用来保存虚拟机使用的 VHD (称为 OS Disk),而使用高阶储存体的 D 类型虚拟机器,称为 DS 类型。

规格 CPU核心数 记忆体量 暂存硬碟大小 (SSD) 可用网卡数 可用资料磁碟数 最高IOPS 最高IOPS (DS类型)
Standard_D1
Standard_DS1
1 3.5GB 50GB 1 2 2x500 3,200
Standard_D2
Standard_DS2
2 7GB 100GB 2 4 4x500 6,400
Standard_D3
Standard_DS3
4 14GB 200GB 4 8 8x500 12,800
Standard_D4
Standard_DS4
8 28GB 400GB 8 16 16x500 25,600
Standard_D11
Standard_DS11
2 14GB 100GB 2 4 4x500 6,400
Standard_D12
Standard_DS12
4 28GB 200GB 4 8 8x500 12,800
Standard_D13
Standard_DS13
8 56GB 400GB 8 16 16x500 25,600
Standard_D14
Standard_DS14
16 112GB 800GB 8 32 32x500 50,000

2015年,微软利用新的 Intel Xeon E5-2673 v3 CPU 的伺服器组建了 D 类型的第二版,称为 Dv2,可获取 D 类型虚拟机高 35% 的效能。

规格 CPU核心数 记忆体量 暂存硬碟大小 (SSD) 可用网卡数 可用资料磁碟数 最高IOPS 说明
Standard_D1_v2 1 3.5GB 50GB 1 2 2x500
Standard_D2_v2 2 7GB 100GB 2 4 4x500
Standard_D3_v2 4 14GB 200GB 4 8 8x500
Standard_D4_v2 8 28GB 400GB 8 16 16x500
Standard_D5_v2 16 56GB 800GB 8 32 32x500
Standard_D11_v2 2 14GB 100GB 2 4 4x500
Standard_D12_v2 4 28GB 200GB 4 8 8x500
Standard_D13_v2 8 56GB 400GB 8 16 16x500
Standard_D14_v2 16 112GB 800GB 8 32 32x500

G 类型

G 类型是 Azure 拥有最强运算与 I/O 能量的虚拟机器,它使用 Intel Xeon E5 v3 系列 CPU,并且配备较大量的记忆体,可用于需要大量又高速的运算需求,例如资料库或是科学运算。与 D 类型相同,G 类型也可利用高阶储存体来加速 I/O,使用高阶储存体的 G 类型虚拟机器,称为 GS 类型。


规格 CPU核心数 记忆体量 暂存硬碟大小 (SSD) 可用网卡数 可用资料磁碟数 最高IOPS 最高IOPS (GS类型)
Standard_G1
Standard_GS1
2 28GB 560GB 1 4 4x500 5,000
Standard_G2
Standard_GS2
4 56GB 112GB 2 8 8x500 10,000
Standard_G3
Standard_GS3
8 112GB 224GB 4 16 16x500 20,000
Standard_G4
Standard_GS4
16 224GB 448GB 8 32 32x500 40,000
Standard_G5
Standard_GS5
32 448GB 896GB 8 64 64x500 80,000

N 类型

N 类型是 Azure 在 2015 年宣布的新虚拟机器类型,它除了 CPU 外,还配备了 GPU 来辅助加速运算,GPU 使用 Nvidia 的 M60 与 K80 的 GPU,并且使用 E5-2690v3 的 CPU,可获得在影像、绘图等大量运算所需的充份能量[2]

N1 N10 N11 N12 N21
CPU 核心数 6 6 12 24 24
记忆体 64GB 64GB 128GB 256GB 256GB
SSD硬碟大小 ~0.5TB ~0.5TB ~1.0TB ~2.0TB ~2.0TB
网路 Azure 虚拟网路 Azure 虚拟网路 Azure 虚拟网路 Azure 虚拟网路 Azure 虚拟网路
(另有 RDMA 的专属后台)
GPU M60x1
(1/2张实体显示卡)
K80x1
(1/2张实体显示卡)
K80x2
(1张实体显示卡)
K80x4
(2张实体显示卡)
K80x4
(2张实体显示卡)

作业系统类型

Azure 虚拟机器支援 WindowsLinux 作业系统,并且依 Azure 与其协力厂商或伙伴的合作关系,提供有预先搭载软体的虚拟机器映像 (Image)。

Linux

Azure 支援下列 Linux 作业系统:

Windows

Azure 支援下列 Windows 作业系统:

预载软体

Azure 除了提供标准作业系统的映像外,也有提供数种已经预载合作厂商或微软自家产品的虚拟机器映像,让管理人员一开始就能拥有已设定好的虚拟机器,不过此类虚拟机器的费用会比仅有标准作业系统的虚拟机器要高,因为费用已内含授权费。企业也可以利用授权可携性 (License Mobility) 将企业内已采购的授权移到 Azure 虚拟机器使用,而微软的虚拟机器也可以另制成映像下载到地端使用,但当映像下载到地端时,其软体的版权就必须自负。

  • Red Hat Enterprise Linux
  • SQL Server 2014
  • BizTalk Server 2013
  • SharePoint Server 2013
  • Oracle (有 Oracle Database 与 Oracle WebLogic Server)

除了 Azure 入口网内提供的映像外,在 Azure Marketplace 内也有其他预载软体的虚拟机器,其费用以标准作业系统类型计算,但内含的软体授权必须自行准备。

磁碟类型

一台已部署完成的 Azure 虚拟机器,其初始的磁碟有两个,一个是作业系统本身的磁碟机 (C:\ 或 /dev/sda),这个磁碟机是保存在 Microsoft Azure 储存体 内的 VHD,又称为 作业系统磁碟 (OS Disk),最大容量 127GB,Azure 供应的标准作业系统都是采用这个规格建置,若是由企业自行使用 Hyper-V 制作的映像,则视当时制作时使用的大小决定,但不可超过 127GB (这是 VHD 的技术限制)。

另一个是虚拟机器所在的实体伺服器上的硬碟 (D:\ 或 /dev/sdb),依虚拟机器的类型不同,可以是 SATA 磁碟机 (A 类型) 或是 SSD 磁碟机 (D 与 G 类型),但它们的共通点是,它们都只适合用来暂存资料,因此被称为暂存磁碟机 (Temporary Disk),这是基于 Azure 平台会自主侦测虚拟机器健康状态,当 Azure 发现虚拟机器没有回应时,就会启动复原机制,将虚拟机移到另一台实体伺服器启动,这时原本存在暂存磁碟机的资料并不会跟随移动过去,所以暂存磁碟机不能用来储存持久性资料,而是用来处理应用程式所产生的暂存性资料,或是作为缓冲区使用。

若需要在虚拟机器上保存永久性资料,则应该另外建置资料磁碟 (Data Disk)并附挂到虚拟机器内 (E:\ 起,或是 /dev/sdc 起),不同等级的虚拟机器可挂的资料磁碟有限制,从 1 台到 16 台不等,资料磁碟是建置于 Azure 储存体之上,所以具有可持久的保存能力,而且也享有 Azure 储存体所提供的 SLA 水准。

网路功能

Azure 虚拟机器的网路功能是依赖 Microsoft Azure 虚拟网路 的网路连线能力,早期 Azure 虚拟机器是由 Azure 自行管理的大型虚拟网路组态所供应,但 2014 年起,微软配合 Resource Group 管理模式的导入,强制要求 Azure 虚拟机器必须部署在由使用者自行建置的 Azure 虚拟网路内,其内部的 IP 管理亦由 Azure 虚拟网路负责。

虚拟机器对 Internet 的网路有两种模式,一种是由 Azure 负载平衡器 (Azure Load Balancer) 提供,早期 Azure 虚拟机器对外的 IP 资源是一开始就会配给,而这也是 Azure 的计费基准之一,称为 Azure Public IP (公用 IP),虚拟机器一开机就会配给,一关机就会释放,所以 IP 位址不稳定,若要让 IP 稳定,就需要使用保留 IP (Reserved IP),保留 IP 需特别建立并设定给虚拟机器。DNS 名称则是由 Azure 云端服务 提供,Azure 云端服务会在 Azure 负载平衡器上注册 DNS (*.cloudapp.net),所有与此云端服务关联的虚拟机器都使用这个 DNS 连入,同时 Azure 负载平衡器上的通讯埠也是由Azure 云端服务管理。

2015年,在 Resource Group 的管理模式下,虚拟机器的网路资源被拆分出来,IP、负载平衡器、网路安全群组、网路卡 (NIC) 等个别的负责各自的工作。

  • 网路卡:负责虚拟机器与网路的联系,一台虚拟机器可配置的网路卡数量依其等级决定。
  • 负载平衡器: 由网路卡决定要连线的负载平衡器,可以是 Azure 负载平衡器或是内部的负载平衡器。
  • 网路安全群组: 负责网路的通讯埠存取控制表管理。
  • IP: 配置在网路卡上,可以是内部虚拟网路的 IP 或是公用 IP,且可以不配置公用 IP。

管理方式

虚拟机器建置完成后,可采用远端桌面 (Remote Desktop) 或是 SSH 的连线方式连至虚拟机器进行管理。

对虚拟机器的组态,则有几个管道能进行:

  • Azure PowerShell 的虚拟机器管理指令 (AzureRM.Compute)
  • Azure CLI 的虚拟机器管理指令
  • Azure Portal
  • Azure RDFE API,外部工具都是使用这个管道,例如 System Center Virtual Machine Manager (SCVMM) 或 System Center App Controller 等。

高可用度与扩展

为达成高可用度 (High Availability),Azure 虚拟机器采用了可用集 (Availability Set) 的概念 [3],可用集规范了虚拟机器的失效域配置 (Fault Domain),当虚拟机器部署在同一个可用集时,其实体的部署就不会放在同一个机架 (Rack) 的伺服器内,而是会分散配置,以避免因为机架出问题导致的单点失效问题。系统管理人员可依需求设定一个或多个可用集来配置虚拟机器,以提升可用度。同时,若需要实作跨区域的高可用度,系统管理人员也可以利用Azure站台复原 (Azure Site Recovery) 备援服务处理虚拟机器云端对云端的备援工作。

Azure 虚拟机器支援横向 (Scale Out/In) 自动扩展 (Auto Scale),与手动的纵向扩展 (Scale Up/Down),纵向扩展可用指令或是在 Azure Portal 操作,横向扩展则需要由系统管理人员事先部署好相同等级规格的虚拟机器后,利用 Azure Portal 进行设定。但为了要简化此类部署的时间与成本,微软开发了新一代的部署技术,称为虚拟机器扩展集 (VM Scale Set)[4],利用资源范本的能力,让系统管理员预先设定好具相同规范 (虚拟机器本身的组态与网路组态等) 的虚拟机器群,等待需要扩展时,再由制定好的规范产生虚拟机器即可。

参考

  1. ^ 虚拟机器的大小
  2. ^ Applications that scale using GPU Compute
  3. ^ 管理虚拟机器的可用性
  4. ^ 虚拟机器调整集概观