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 虛擬機器支援 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 Preview
- 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 虛擬機器的網路功能是依賴 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],利用資源範本的能力,讓系統管理員預先設定好具相同規範 (虛擬機器本身的組態與網路組態等) 的虛擬機器群,等待需要擴展時,再由制定好的規範產生虛擬機器即可。
參考