RFC-0191:將 Fuchsia-on-GCE 做為支援的系統設定 | |
---|---|
狀態 | 已接受 |
區域 |
|
說明 | 將 Google Compute Engine (x64 和 arm64) 新增為 Fuchsia 支援的系統設定。 |
問題 | |
變更 | |
作者 | |
審查人員 | |
提交日期 (年/月) | 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 週收到變更,也就是說,我們一個月可以事先偵測中斷情形。在這個階段,我們可以採取下列任一做法:
- 使用雲端尋找解決方案,或
- 調整 Fuchsia 來處理雲端發布的新異動
值得注意的是,我們已大約 18 個月內在 GCE 上執行,雲端只啟動了一項會破壞 Fuchsia 的功能,因此中斷率應該較低。