【引自Winclient的博客】常常聽到大家問我們重復的問題:“微軟到底會為 Linux 做些什么?”,我們的答案是:“非常多!”。將會持續的投資并且創新 Linux 上的能力,不僅只有在 Azure 公有云上,而在私有服務如 Windows Server、Hyper-V、以及 System Center 上皆會持續的提升 Windows 與 Linux 之間的合作能力。您可以點擊這里閱讀關于 Linux 在目前 Azure 公有云可以做到的事。
對于私有數據中心,我們將會持續發布一系列深度的技術文章來呼應 2015 年 5 月所公開發布的內容,這系列的文章將來談談關于 Linux 在您私有的數據中心是如何運行及管理。 在前半段的系列文章,將會涵蓋 Linux 與 FreeBSD 在 Hyper-V 是如何運行的。 而后半段的系列文章將會詳解通過 System Center 與 PowerShell DSC 來管理 Linux 以及 Unix。
Guest OS與Integration Services
什么樣的操作系統能夠當作 Guest OS 操作系統運行在 Hyper-V 上呢? 舉例來說,常常被問到:” 能將 IBM 的 AIX 操作系統運行在 Hyper-V 上嗎? "為了簡單快速的回答這個問題,可以參照下列流程圖:
Hyper-V 是一個專為 Intel 與 AMD 的 x86/x64 架構而設計的 hypervisor,因此可以看到非常重要的一點是 Guest OS 操作系統必須要運行于 x86/x64 架構。 而 AIX 是 IBM 針對 PowerPC 架構所設計,因此無法運行在Hyper-V 上。 而并不是僅有 Hyper-V 有這個要求,其他針對 x86/x64 所設計的 hypervisor 如 VMWare ESX 等等也有這個要求,這種 hypervisor 也無法運行 AIX。
如果操作系統運行在 x86/x64 架構下,接下來的問題是該操作系統,是否有 Hyper-V 所提供的整合服務(Integration Services)。 而這個整合服務將會提供 Guest OS 操作系統與 hypervisor 更緊密的整合性。 讓您的 Guest OS 操作系統能夠得到更好的虛擬化性能與管理能力。 微軟提供 Windows 及大部分Linux 發行版、FreeBSD 完整的整合服務。 對于其他像是 Solaris x86 等 x86/x64 操作系統,能夠運行在 Hyper-V 所提供完整的仿真模式下,但可能會有些性能或者穩定上的限制,對于生產力環境來說會較不適合采用,因此不建議使用在生產環境下。 接下來將會著重于 Linux 與 FreeBSD 的整合環境來說明。
整合服務到底是在做些什么呢? 整合服務將會替 Guest OS 操作系統上安裝合適的仿真設置 ( Synthetic devices ) 驅動程序。 這些仿真設備對于 Guest OS 操作系統來說就像是真的硬件設置一樣,經過安裝仿真設備驅動器,讓 Guest OS 操作系統得到高性能的網絡控制器與儲存控制器支持,還有對于 Host OS 操作系統上更好的管理能力。 但就像實體的設備一樣,這些仿真設備仍然需要依照不同的操作系統上安裝合適的硬件驅動程序才能使用。 且因為不同的操作系統有不同的設備驅動器模型,而這些驅動程序必須要針對不同的操作系統來編寫不一樣的代碼段。 針對不同類型與不同操作系統的設備驅動器如 Windows、Linux 以及 FreeBSD,因此整合服務將會有不同的虛擬設備驅動器集合而成,對于 Linux 與 FreeBSD 的整合服務來說,我們將稱作 Linux 整合服務(Linux Integration Services,LIS)與 FreeBSD 整合服務( FreeBSD Integration Services,BIS )。
關于LIS開發
微軟有許多的開發人員透過 C 語言編寫開發 LIS 并運行于 Linux 核心中。 但在開發過程中與目前微軟產品是不同的設計流程。 我們的開發人員積極的參與 Linux 核心開發的相關社區,并定期的通過 Linux 核心的 Mailing List持續的更新 LIS 的功能并且修復相關的 BUG。 而在 Linux 核心開發社區中的成員將會檢查我們提交的程序代碼并且提供相關的評論、意見以及相關的修改建議,有時甚至會告訴我們所做的東西完全是錯誤的!我們反復不斷的與社區們互相交流修訂這些錯誤。最終所提交的程序代碼被社區所接受后,將會更新到最新版本的 Linux 核心程序代碼庫中。而這個 Linux 核心程序代碼庫是由 Linus Torvalds 本人自己組織并且維護的。 這個程序代碼庫中包含了全世界已經修改完并通過審核的 Linux 核心程序代碼。
當 LIS 的程序代碼更新到 Linux 核心后,微軟也會與幾個關鍵的 Linux 發行版廠商合作并且將更新并整合新版 LIS 后的 Linux 核心與特定版本的發行版一并放出。 但有些 Linux 的發行版會使用先前版本的 Linux 核心,所以我們也常與這些發行版的提供廠商進行 ”backport ”的行為。 將最新版的 LIS 整合至先前版本的 Linux 核心中。 在這些動作完成后,也會進行多種測試以確保性能與管理能力能夠完整及穩定。 常常在一個月中與各發行版廠商討論數次技術上的問題與解決 bug,并追蹤進度以確保最新的發行版能夠順利運行于 Hyper-V上。 并提供這些完全支持 Hyper-V 的廠商認證,如 Red Hat Enterprise Linux on Hyper-V。就是我們其中一個認證并且密切合作的 Linux 發行版廠商。
關于LIS套件
如前述微軟與幾個重要的 Linux 發行版商合作并且直接將 LIS 整合入這些發行版中。 當您于 Hyper-V 上運行這些合作的 Linux 發行版時,Hyper-V 整合服務早已運行其中,您可以直接安心的操作而不需額外事宜。 不過不同的發行商有自己的發行時程,每個發行版會有自己獨立的日程表,可能最新的 LIS 功能或者性能提升不夠明顯,那就有可能會導致這次版本的發布不一定會整合入最新版本的 LIS,必須等到下一個版本的放出才有可能加入。
因此,針對想要立即得到最新版本的 LIS,微軟也提供了獨立安裝(Standalone)的套件,能夠讓用戶能夠直接安裝到不同的 Linux 發行版中。 若需要透過此方式安裝 LIS,可以點擊這里由微軟下載中心下載。 而 LIS 套件包能夠安裝到一些沒有內建 LIS 或較舊版本的發行版。 如果您正在使用由微軟提供的 LIS3.5 套件,建議您能夠升級至 LIS4.0 套件。 因為 LIS4.0 可以安裝到預先已經有整合 LIS 的發行版中。 將規劃在每數個月能夠更新 LIS 的功能以及相關穩定度。
有關于 LIS 的版本編號,若您檢查一些已經內建 LIS 的發行版內的 LIS 模塊編號,你或許會看到版本編號 ”3.1 “。 請不要將此版本編號與 LIS4.0 內的 ”4.0 ”作對比,這并不代表目前內建的 LIS 版本已經是舊版本了,請瀏覽 Linux/FreeBSD 功能說明來檢查目前在您的 Linux 發行版中 LIS 擁有的功能才會是正確的方式,請點選這里檢查功能說明。
內建LIS
對于深度整合 LIS 入 Linux 的發行版,主要是使用目前企業組織于生產力環境以及數據中心內較為廣泛使用的發行版。 對于 FreeBSD,主要專注改進的地方在于使用 FreeBSD 當作基底操作系統的虛擬設備提供商所要的需求。 而對于 LIS 與 BIS 兩者,我們持續的新增新功能以及加強性能的增強,盡可能提供運行于 Hyper-V 上 Guest OS 操作系統最好的使用體驗。 也因為 LIS 與 BIS 是通過不同層面的社區與不同的發行商跟著不同的發行版一并發布,因此更新將不會像 Windows Server/Hyper-V 一樣有固定的發布時間。 版本的更新可能會更頻繁的發生。 因此會導致不同的 Linux 發行版與不同的 FreeBSD 版本提供的支持能力會因版本而有所差異,而讓人難以去追蹤何種新的功能被加入。 為了解決這個窘境,微軟在 TechNet 上提供了完整的文檔庫,包含主要的 Linux 發行版與 FreeBSD 間 LIS/BIS 的支持度差異。 您能夠查詢到下列幾個我們重點整合的 Linux 版本所擁有的 LIS 功能支持程度:
◆Red Hat Enterprise Linux
◆CentOS
◆SUSE Linux Enterprise Server
◆Ubuntu Server
◆Debian Server
◆Oracle Linux
小結
Linux 與 FreeBSD 現在能夠完美的運行在 Hyper-V 上! ,微軟已經全心全力的有相關人參與 Linux 與 FreeBSD 社區,并建立與不同 Linux 發行廠商間的生態系統,能夠將最新版本的 Guest OS 操作系統整合服務內建于我們重點合作的 Linux 發行廠商提供的發行版中。 您可以在 Hyper-V 上安裝并運行這些合作的 Linux 發行版與 FreeBSD 而不需要額外手續。
在下一篇文章中,我們將會更深入探討 Hyper-V 的關鍵技術,讓您能夠在運行 Linux 與 FreeBSD 時更能發揮這些客端操作系統運行于 Hyper-V 所帶來的好處。