RFC-0191:Fuchsia-on-GCE 做為支援的系統設定

RFC-0191:將 Fuchsia-on-GCE 做為支援的系統設定
狀態已接受
區域
  • 管理事宜
說明

將 Google Compute Engine (x64 和 arm64) 新增為 Fuchsia 支援的系統設定。

問題
  • 110
變更
作者
審查人員
提交日期 (年/月)2022-08-29
審查日期 (年/月)2022-09-28

摘要

本文件建議將 GCE (Google Compute Engine) 新增為 Fuchsia 專案支援的系統設定。這麼做的用意只是將 GCE 做為測試平台目前的使用行為,並強化我們的承諾,讓 GCE 得以在 ToT 中持續運作。

但請注意,雖然我們大規模利用此項目,但將其使用方式編碼為支援的 Fuchsia 平台,需要在 Zircon 核心中繼續支援 ACPI 和 UEFI。對 x64 而言,目前這是相對合理的路徑,但對 ARM64 而言,這個路徑較少。

提振精神

GCE 已利用 Fuchsia-on-GCE 來提高持續整合/CQ 測試的擴充性、多元性和效能。具體而言,我們已測試下列設定:

  • makeup.x64
  • AMD 上的 makeup.x64
  • makeup.arm64
  • Core.x64

既然我們已在 GCE 上執行大量工作,現在我們希望將此指令加入 /docs/reference/hardware 中支援的硬體 YAML 檔案,讓 Fuchsia 專案將這項技術視為支援的硬體。「RFC-0130: 支援的硬體」指出「將新項目新增至這個 YAML 檔案的程序,進而在支援類別中新增硬體,是建立新的 RFC。」

相關人員

講師:rlb@

受 FEC 指派的使用者透過 RFC 程序阻斷這個 RFC。

審查者:

  • cpu@google.com
  • curtisgalloway@google.com
  • tkilbourn@google.com
  • travisg@google.com

顧問:

  • maniscalco@google.com
  • venkateshs@google.com
  • nmulcahey@google.com
  • andresoportus@google.com
  • simonshields@google.com

社群媒體化:

這個 RFC 與所有 Zircon 和 Engprod 成員社交後所分享,然後分享給所有 Fuchsia。

實作

只要在支援的系統設定清單中新增 GCE 即可,只需編輯 /docs/reference/hardware/_supported.yaml 檔案即可。我們會在檔案中新增兩個項目,一個用於 x86,另一個用於 ARM。

x86 項目

  • 名稱:「GCE x86_64」
  • description: 'Google Compute Engine emulated x86 board'
  • 架構:「x86」
  • MS_link:「https://cloud.google.com/compute」
  • board_driver_location:'/src/devices/board/drivers/x86'

ARM 項目

  • 名稱:「GCE ARM64」
  • description: 'Google Compute Engine 模擬 ARM64 board'
  • 架構:「ARM」
  • MS_link:「https://cloud.google.com/compute」
  • board_driver_location:'src/devices/board/drivers/acpi-arm64'

效能

相較於在 Linux 主機上透過模擬器執行 Fuchsia,GCE 採用 Fuchsia 速度更快。 特別是在 x86 上使用巢狀虛擬化,因此直接在 GCE 上執行,會移除 2 層虛擬化。此外,在實體 NUC 上執行時,速度只會稍微慢 (約 10%)。

人體工學

基礎架構希望降低預先提交測試中對彈性硬體機群的依賴程度,因為這些機群通常會增加待處理時間,並對 CI/CQ 延遲時間造成極大的影響。擁有支援、代表性和虛擬化的平台,可以輕鬆快速地調度資源,減少這類依附元件。進而縮短提交延遲時間,從而改善開發人員體驗。

我們也投資開發各項工具,協助開發人員提升 GCE 上使用 GCE 的人體工學效率。具體來說,建構系統已產生建立運算執行個體所需的 UEFI 磁碟映像檔,而 fx gce 指令可讓您輕鬆建立、連線至及刪除 GCE VM。

回溯相容性

支援 GCE 不需要平台發生任何破壞性變更。

測試

如先前所述,基礎架構將在 CI/CQ 的 GCE 上執行各種 Fuchsia 設定,藉此確保其穩定可靠。我們也會在 GCE 暫存環境中執行,確保當任何會影響/中斷 Fuchsia 的雲端異動時,都能及早收到通知。

缺點、替代方案和未知

支援 GCE 的主要缺點是處理 Google Compute 的意外變更,導致 Fuchsia 無法正常運作。為了避免發生這種情況,基礎架構將在 GCE 暫存環境中執行我們預計在 GCE 上執行的所有設定 (Bringup.x64、makeup.arm64、core.x64 等)。這個環境會在進入實際工作環境前約 4 週收到變更,也就是說,我們一個月可以事先偵測中斷情形。在這個階段,我們可以採取下列任一做法:

  1. 使用雲端尋找解決方案,或
  2. 調整 Fuchsia 來處理雲端發布的新異動

值得注意的是,我們已大約 18 個月內在 GCE 上執行,雲端只啟動了一項會破壞 Fuchsia 的功能,因此中斷率應該較低。