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。Av2 系列的 ACU 為 100。D 型別.D 型別是 Azure 在 2013 年推出的型別，它使用比 A 型別更好的 CPU，並且在實體伺服器上使用固態硬碟 (SSD)，以加速在本地運算時的 I/O 速度，另外，為滿足提升虛擬機器本身的 I/O 量的需求，微軟開發了高階儲存體 (Premium Storage) 用來儲存虛擬機器使用的 VHD (稱為 OS Disk)，而使用高階儲存體的 D 型別虛擬機器，稱為 DS 型別。D 與 DS 型別的 ACU 為 160。2015年，微軟利用新的 Intel Xeon E5-2673 v3 CPU 的伺服器組建了 D 型別的第二版，稱為 Dv2，可獲取 D 型別虛擬機器高 35% 的效能。Dv2 的 ACU 為 210~250。DSv2 型別的 ACU 為 210~250。微軟於 Build 2017 研討會上宣佈，Dv3 將於今年推出，並支援巢狀虛擬化。G 型別.G 型別是 Azure 擁有最強運算與 I/O 能量的虛擬機器，它使用 Intel Xeon E5 v3 系列 CPU，並且配備較大量的記憶體，可用於需要大量又高速的運算需求，例如資料庫或是科學運算。與 D 型別相同，G 型別也可利用高階儲存體來加速 I/O，使用高階儲存體的 G 型別虛擬機器，稱為 GS 型別。G/GS 系列的 ACU 為 180~240。註：GS5等級會部署到單一客戶專用的硬體。N 型別.N 型別是 Azure 在 2015 年宣佈的新虛擬機器型別，包含兩種型別：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。L 型別.L 型別適用於需低延遲本機儲存體的工作負載，例如 NoSQL 資料庫 (如 Cassandra, MongoDB, Cloudera 與 Redis)，使用 Intel Xeon E5 v3 處理器，等同於 G/GS 型別的 CPU 效能。L 系列為 ACU 為 180~240。H 型別.H 型別是以高階運算需求為目標設計，使用 Intel Haswell E5-2667 v3 CPU、DDR4 記憶體、SSD 與 RDMA 來加速運算，適用於如分子建模及運算流體力學等。H 系列的 ACU 為 290~300。作業系統型別.Azure 虛擬機器支援 Windows 與 Linux 作業系統，並且依 Azure 與其協力廠商或夥伴的合作關係，提供有預先搭載軟體的虛擬機器映像 (Image)。Linux.Azure 支援下列 Linux 作業系統：Windows.Azure 支援下列 Windows 作業系統:預載軟體.Azure 除了提供標準作業系統的映像外，也有提供數種已經預載合作廠商或微軟自家產品的虛擬機器映像，讓管理人員一開始就能擁有已設定好的虛擬機器，不過此類虛擬機器的費用會比僅有標準作業系統的虛擬機器要高，因為費用已內含授權費。企業也可以利用授權可攜性 (License Mobility) 將企業內已採購的授權移到 Azure 虛擬機器使用，而微軟的虛擬機器也可以另製成映像下載到地端使用，但當映像下載到地端時，其軟體的版權就必須自負。除了 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) 等個別的負責各自的工作。管理方式.虛擬機器建置完成後，可採用遠端桌面 (Remote Desktop) 或是 SSH 的連線方式連至虛擬機器進行管理。對虛擬機器的組態，則有幾個管道能進行:高可用度與擴充套件.為達成高可用度 (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)，利用資源範本的能力，讓系統管理員預先設定好具相同規範 (虛擬機器本身的組態與網路組態等) 的虛擬機器群，等待需要擴充套件時，再由制定好的規範產生虛擬機器即可。