Microsoft Azure 虚拟机器服务

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

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

## 服务类型

虚拟机器服务是由Azure 云端服务的 VM Role 所发展出来的服务，将机器的管理权与控制权交给系统管理人员自行维运，以获得较大的可控制与相容性，虚拟机器会使用到如虚拟网络以及储存服务 等资源来支援网络通讯与资料储存功能。

Azure将虚拟机器分为两种类型，一种是标准型的虚拟机器 (Standard)，拥有完整的虚拟机器服务功能，如负载平衡 (Load Balancing) 与自动扩展 (Auto Scale) 的能力，另一种是基本型的虚拟机器 (Basic)，基本层无法使用负载平衡与自动扩展能力，但其他功能与标准型相同，基本层也只能使用 A0~A4 (Extra Small, Small, Medium, Large, Extra Large) 五种等级的虚拟机器，标准型则可使用全部的虚拟机器类型。

虚拟机器的计费方式是以分计费，计算基准为虚拟机器启动时到虚拟机器被停止 (或删除) 并释放出资源时为止。

## 虚拟机器类型

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

### Azure 计算单元

Azure 计算单元 (Azure Compute Unit, ACU) 是一个可用于比较 Azure 虚拟机器之运算效能的方法，现阶段是以 Standard_A1 虚拟机等级为标准，数值为 100。

### 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 则无。

A0~A7 系列的 ACU 为 50~100，A8 以上的 ACU 为 225。

规格｜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

Av2 系列的 ACU 为 100。

规格｜CPU核心数｜内存量｜暂存硬盘大小 (SSD)｜可用网卡数｜可用资料磁盘数｜最高IOPS｜说明

Standard_A1_v2｜1｜2GB｜10GB｜2｜2｜2x500

Standard_A2_v2｜2｜4GB｜20GB｜2｜4｜4x500

Standard_A4_v2｜4｜8GB｜40GB｜4｜8｜8x500

Standard_A8_v2｜8｜16GB｜80GB｜8｜16｜16x500

Standard_A2m_v2｜2｜16GB｜200GB｜2｜4｜4x500

Standard_A4m_v2｜4｜32GB｜40GB｜4｜8｜8x500

Standard_A8m_v2｜8｜64GB｜80GB｜8｜16｜16x500

### D 类型

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

D 与 DS 类型的 ACU 为 160。

规格｜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% 的效能。

Dv2 的 ACU 为 210~250。

规格｜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

DSv2 类型的 ACU 为 210~250。

规格｜CPU核心数｜内存量｜暂存硬盘大小 (SSD)｜可用网卡数｜可用资料磁盘数｜最高IOPS｜说明

Standard_DS1_v2｜1｜3.5GB｜7GB｜2｜2｜4,000

Standard_DS2_v2｜2｜7GB｜14GB｜2｜4｜8,000

Standard_DS3_v2｜4｜14GB｜28GB｜4｜8｜16,000

Standard_DS4_v2｜8｜28GB｜56GB｜8｜16｜32,000

Standard_DS5_v2｜16｜56GB｜112GB｜8｜32｜64,000

Standard_DS11_v2｜2｜14GB｜28GB｜2｜4｜8,000

Standard_DS12_v2｜4｜28GB｜56GB｜4｜8｜16,000

Standard_DS13_v2｜8｜56GB｜112GB｜8｜16｜32,000

Standard_DS14_v2｜16｜112GB｜224GB｜8｜32｜64,000

Standard_DS15_v2｜20｜140GB｜280GB｜8｜40｜80,000｜部署至单一客户专属的硬件

微软于 Build 2017 研讨会上宣布，Dv3 将于今年推出，并支援巢状虚拟化。

### G 类型

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

G/GS 系列的 ACU 为 180~240。

规格｜CPU核心数｜内存量｜暂存硬盘大小 (SSD) (G类型/GS类型)｜可用网卡数｜可用资料磁盘数｜最高IOPS (G类型/GS类型)

Standard_G1 Standard_GS1｜2｜28GB｜384GB/56GB｜1｜4｜4x500/10,000

Standard_G2 Standard_GS2｜4｜56GB｜768GB/112GB｜2｜8｜8x500/20,000

Standard_G3 Standard_GS3｜8｜112GB｜1,536GB/224GB｜4｜16｜16x500/40,000

Standard_G4 Standard_GS4｜16｜224GB｜3,072GB/448GB｜8｜32｜32x500/80,000

Standard_G5 Standard_GS5｜32｜448GB｜6,144GB/896GB｜8｜64｜64x500/160,000

注：GS5等级会部署到单一客户专用的硬件。

### N 类型

N 类型是 Azure 在 2015 年宣布的新虚拟机器类型，包含两种类型：

- NC 使用 NVIDIA 的 Tesla K80 GPU 卡，可用于能源探勘应用程序、当机模拟、光线追踪转译、深入学习等，K80 提供 4,992 个 CUDA 核心。
- NV 使用 NVIDIA 的 Tesla M60 GPU 卡，可用于桌面加速应用程序和虚拟桌面，可供客户从中将其资料或模拟视觉化，也适用于编码与转译，M60 提供 4096 个 CUDA 核心，最多可供 36 个 1080p H.264 的串流能力。

规格｜Standard_NV6｜Standard_NV12｜Standard_NV24｜Standard_NC6｜Standard_NC12｜Standard_NC24｜Standard_NC24r

CPU 核心数｜6｜12｜24｜6｜12｜24｜24

内存｜56GB｜112GB｜224GB｜56GB｜112GB｜224GB｜224GB

SSD硬盘大小｜380GB｜680GB｜1,440GB｜380GB｜680GB｜1,440GB｜1,440GB

GPU｜1｜2｜4｜1｜2｜4｜4

2017 年即将推出新的 ND 系列与 NC v2 系列，搭载 NVIDIA Tesla P40 与 P100 GPU。

注 1: 1 GPU = 1/2 M60 (NV) 或 1/2 K80 (NC)

注 2: Standard_NC24r 支援 RDMA 运算

### F 类型

F 类型是以 Intel Xeon 2673 v3 (Haswell) 等级的 CPU 为基础，提供高效能运算的服务，与 D 等级第二版 (Dv2) 的 CPU 相同，但价格较便宜。

F 类型适用于需要高速 CPU，但不需要太多内存或本机 SSD 的工作负载。

Fs 类型是轻量化的 F 类型，但仍提供 F 类型的所有优点。

F/Fs类型的 ACU 为 210~250。

规格｜CPU核心数｜内存量｜暂存硬盘大小 (SSD) (Fs/F)｜可用网卡数｜可用资料磁盘数｜最高IOPS (Fs类型)｜最高IOPS (F类型)

Standard_F1s Standard_F1｜1｜2GB｜4GB/16GB｜2｜2｜4,000｜2x500

Standard_F2s Standard_F2｜2｜4GB｜8GB/32GB｜2｜4｜8,000｜4x500

Standard_F4s Standard_F4｜4｜8GB｜16GB/64GB｜4｜8｜16,000｜8x500

Standard_F8s Standard_F8｜8｜16GB｜32GB/128GB｜8｜16｜32,000｜16x500

Standard_F16s Standard_F16｜16｜32GB｜64GB/256GB｜8｜32｜64,000｜32x500

### L 类型

L 类型适用于需低延迟本机储存体的工作负载，例如 NoSQL 数据库 (如 Cassandra, MongoDB, Cloudera 与 Redis)，使用 Intel Xeon E5 v3 处理器，等同于 G/GS 类型的 CPU 效能。

L 系列为 ACU 为 180~240。

规格｜CPU核心数｜内存量｜暂存硬盘大小 (SSD)｜可用网卡数｜可用资料磁盘数｜最高IOPS

Standard_L4s｜1｜32GB｜678GB｜2｜8｜5,000

Standard_L8s｜2｜64GB｜1,388GB｜4｜16｜10,000

Standard_L16s｜4｜128GB｜2,807GB｜8｜32｜20,000

Standard_L32s｜8｜256GB｜5,630GB｜8｜64｜40,000

### H 类型

H 类型是以高端运算需求为目标设计，使用 Intel Haswell E5-2667 v3 CPU、DDR4 内存、SSD 与 RDMA 来加速运算，适用于如分子建模及运算流体力学等。

H 系列的 ACU 为 290~300。

规格｜CPU核心数｜内存量｜暂存硬盘大小 (SSD)｜可用网卡数｜可用资料磁盘数｜最高IOPS

Standard_H8｜8｜56GB｜1,000GB｜2｜16｜16x500

Standard_H16｜16｜112GB｜2,000GB｜4｜32｜32x500

Standard_H8m｜8｜112GB｜1,000GB｜2｜16｜16x500

Standard_H16m｜16｜224GB｜2,000GB｜4｜32｜32x500

Standard_H8r (RDMA支援)｜8｜112GB｜2,000GB｜4｜32｜32x500

Standard_H16mr (RDMA支援)｜16｜224GB｜2,000GB｜4｜32｜32x500

## 操作系统类型

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

### Linux

Azure 支援下列 Linux 操作系统：

- OpenLogic CentOS 6.3+, 7.0+
- CoreOS 494.4.0+
- Debian 7.9+, 8.2+
- Oracle Linux 6.4+, 7.0+
- Red Hat Enterprise Linux 6.7+, 7.1+
- SUSE Linux Enterprise 11 SP3+, 12+, SLES for SAP 11.3+
- openSUSE 13.1+
- Ubuntu 12.04, 14.04, 15.04, 15.10

### Windows

Azure 支援下列 Windows 操作系统:

- Windows Server 2008 R2 SP1
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2016
- Windows 7、Windows 8、Windows 8.1、Windows 10 等用户端操作系统 (仅有 MSDN 订阅户才能使用)

### 预载软件

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 虚拟机器的网络功能是依赖虚拟网络服务的网络连线能力，早期 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) 的概念，可用集规范了虚拟机器的失效域配置 (Fault Domain)，当虚拟机器部署在同一个可用集时，其实体的部署就不会放在同一个机架 (Rack) 的服务器内，而是会分散配置，以避免因为机架出问题导致的单点失效问题。系统管理人员可依需求设定一个或多个可用集来配置虚拟机器，以提升可用度。同时，若需要实作跨区域的高可用度，系统管理人员也可以利用Azure站台复原 (Azure Site Recovery) 备援服务处理虚拟机器云端对云端的备援工作。

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