作者:Hari Pulapaka
Windows是一種多功能、靈活的操作系統(tǒng),可在多種機器架構(gòu)上運行,并有多種SKU。它目前支持x86、x64和ARM體系結(jié)構(gòu)。它甚至曾經(jīng)支持Itanium、PowerPC、Alpha和MIPS(wiki:http://en.wikipedia.org/wiki/Windows_NT)。Windows也可以在多種環(huán)境中運行;從數(shù)據(jù)中心、筆記本電腦和電話到ATM機等嵌入式設(shè)備。
即使有了所有這些支持,Windows的核心在所有這些架構(gòu)和SKU上幾乎保持不變。Windows可以動態(tài)擴展,這取決于其運行的體系結(jié)構(gòu)和處理器,以充分利用硬件的功能。這同樣適用于Microsoft Azure。因此,如果您曾經(jīng)想知道Windows如何在數(shù)據(jù)中心運行Azure節(jié)點,請繼續(xù)往下看!
正如Satya所說,“我們正在將Azure打造成世界級計算機”,為世界級計算機提供動能表明了Windows的擴展能力。為了展示這種規(guī)模,這里是數(shù)據(jù)中心M系列機器(Azure中可用的最大虛擬機之一,具有896個邏輯處理器)中直接在Azure主機上運行的taskmgr的快照。
M-series taskmgr
在這篇文章中,我們將討論為數(shù)據(jù)中心的Azure主機服務(wù)的Azure主機操作系統(tǒng)的內(nèi)部結(jié)構(gòu)。
云主機–Azure主機操作系統(tǒng)
Azure是微軟的云計算服務(wù),它提供IaaS(基礎(chǔ)設(shè)施即服務(wù))虛擬機(VM)、PaaS(平臺即服務(wù))容器和許多其他SaaS服務(wù)(例如Azure Storge、Networking等)。對于IaaS和PaaS服務(wù),所有客戶代碼最終都在虛擬機中運行。因此,在核心平臺層,Azure主機操作系統(tǒng)的主要目的是管理虛擬機并將其管理得非常好!管理VM包括啟動、關(guān)閉、實時遷移、更新等。
由于Azure使用Windows作為操作系統(tǒng),所有這些虛擬機都作為Microsoft Hyper-V(即我們的虛擬機管理程序)的guest運行。Microsoft Hyper-v是一種type1(https://en.wikipedia.org/wiki/Hypervisor)的管理程序,因此,當我說Azure Host操作系統(tǒng)時,它在技術(shù)上是根操作系統(tǒng)。這是一個完全控制硬件并提供虛擬化設(shè)施以運行g(shù)uest VM的操作系統(tǒng)。
請記住,我們使用的hypervisor與我們在所有數(shù)百萬客戶計算機上的Windows客戶端和Windows服務(wù)器上使用的hypervisor相同。我們將在即將發(fā)布的博客文章中解釋Microsoft Hyper-V的一些關(guān)鍵功能,這些功能允許Azure安全可靠地管理guest VM。
云主機
正如我提到的,Azure主機操作系統(tǒng)的目標是良好地管理VM的生命周期。這意味著Windows(或稱Azure主機操作系統(tǒng))不需要通常與Windows關(guān)聯(lián)的大量功能來執(zhí)行此功能。因此,我們創(chuàng)建了一個專門的控制臺(沒有GUI,有些人還稱之為headless)版本的Windows,稱為云主機。
這是基于OneCore的Windows版本。OneCore是所有Windows SKU系列(或版本)構(gòu)建其功能的基礎(chǔ)層。它是所有版本的Windows(PC、Windows Server、XBOX或IOT)所需的一組組件(可執(zhí)行文件、DLL等)。如果拿編程類比的話,它是所有Windows類繼承的基類(例如Object)。如果您查看OneCore內(nèi)部以了解它提供的功能,您可以看到提供核心功能的API集,如內(nèi)核、虛擬機監(jiān)控程序、文件系統(tǒng)支持、網(wǎng)絡(luò)、安全、Win32 API等。下圖中調(diào)用的OneCoreUAP是用于構(gòu)建客戶端PC版本的稍高層的另一個示例,GUI堆棧和更高級別的網(wǎng)絡(luò)組件,如媒體堆棧和WiFi。
OneCore中可用的一些代表性組件
我們?nèi)绾螛?gòu)建云主機?
需要在Azure主機上運行少量代碼,以與控制平面集成,并監(jiān)控和管理容器/VM。基于對該代碼的依賴集的分析,我們確定了Azure在OneCore之上需要的一組功能(DLL和API集)。然后將這些二進制文件(數(shù)十個二進制文件)添加到OneCore中,將其用作Azure主機的操作系統(tǒng)。
為了添加這些DLL,我們創(chuàng)建了一個名為云主機的全新SKU,并將所有這些二進制文件添加到云主機。您可以將云主機視為OneCore的“子類”。注意,我們必須創(chuàng)建一個新的SKU“云主機”,因為我們需要向OneCore添加新的二進制文件。我們可以直接將它們添加到OneCore中,但它更干凈,可以創(chuàng)建專門構(gòu)建的SKU/版本,同時保持OneCore未修改。換句話說,云主機是一個專門為運行數(shù)據(jù)中心中的Azure主機節(jié)點而設(shè)計和構(gòu)建的SKU。您可能更熟悉其他Windows SKU,通常稱為版本,如Pro、Enterprise等[wiki:https://en.wikipedia.org/wiki/Windows_10_editions]。云主機是一個類似的SKU/版本,僅用于數(shù)據(jù)中心中的Azure節(jié)點。
有了這個解釋,讓我們看看這個云主機。這是一張云主機WIM(https://en.wikipedia.org/wiki/Windows_Imaging_Format#:~:text=The%20Windows%20Imaging%20Format%20(WIM,Windows%20Fundamentals%20for%20Legacy%20PCs.)文件的圖片(WIM文件就像一個zip文件,用于存儲要啟動的Windows映像)。您可以看到它的大小為280MB,比典型的PC WIM文件小10倍多。
這比您在PC上使用的任何Windows都要小得多,典型的客戶端企業(yè)版WIM文件大小為3.6 GB。
云主機引導(dǎo)到控制臺Shell中,體驗通常類似于Windows Server Core。這是一張云主機會話的圖片,來自我們的一臺測試機器。
(請記住,我們通常不會登錄到Azure主機節(jié)點,這純粹是為了演示目的)
帶有cmd shell、taskmgr和Regedit的云主機
您可能注意到的另一件事是,taskmgr甚至regedit看起來與您在Windows 11上看到的不同。這是因為正如我提到的,云主機是基于OneCore構(gòu)建的,它是headless(或基于控制臺的),因此它不包含任何Windows的GUI部分。我們有一個特殊的taskmgr和regedit版本,它與Windows11中的所有現(xiàn)代GUI功能都不相關(guān)聯(lián),這給了他們“老式”的外觀。
API:什么樣的代碼可以在Azure主機節(jié)點上運行?
我們可以在Azure主機上運行C++、Python甚至Rust代碼。要記住的主要一點是,作為一名開發(fā)人員,如果您正在構(gòu)建代碼以在Azure Host上運行(這只是我們的內(nèi)部開發(fā)人員),您只能鏈接OneCore SDK(OneCore.lib)。我們在這里(https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-umbrella-libraries)記錄了OneCore可用的API界面,以對應(yīng)在這里(https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/building-for-onecore)構(gòu)建OneCore的信息。
隨著對Azure云主機內(nèi)部結(jié)構(gòu)的深入了解,未來的博客文章將繼續(xù)介紹更新Azure主機的代碼和設(shè)計內(nèi)部結(jié)構(gòu)(例如,Tardicade、VM PHU、Hypervisor熱重啟和實時遷移)、內(nèi)核/虛擬化功能、安全性以及操作系統(tǒng)平臺中的許多其他領(lǐng)域。
審核編輯:湯梓紅
-
WINDOWS
+關(guān)注
關(guān)注
3文章
3545瀏覽量
88707 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6825瀏覽量
123333 -
主機
+關(guān)注
關(guān)注
0文章
995瀏覽量
35136 -
云主機
+關(guān)注
關(guān)注
1文章
46瀏覽量
8706 -
Azure
+關(guān)注
關(guān)注
1文章
123瀏覽量
12781
原文標題:Azure主機操作系統(tǒng)–云主機
文章出處:【微信號:Arm軟件開發(fā)者,微信公眾號:Arm軟件開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論