User:小朱/沙盒/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. ^ 虛擬機器調整集概觀