墨魚:多租戶和 Powerwashing

Cuttlefish 多租戶允許您的主機通過一次啟動調用啟動多個虛擬訪客設備。

這些多台 Cuttlefish 虛擬機可以共享一些主機磁盤資源,從而節省磁盤空間。每個虛擬機都有一個覆蓋 Android 分區的不同磁盤覆蓋(例如superuserdataboot )。對來賓磁盤的任何修改都放置在特定於來賓的磁盤覆蓋中,從而為每個 Cuttlefish 虛擬機提供其磁盤分區的寫入時復制視圖。隨著每個虛擬設備向其磁盤視圖寫入更多數據,主機磁盤上的覆蓋文件的大小會增加,因為它們正在捕獲原始狀態與其當前狀態之間的增量。

可以重置覆蓋文件以將 Cuttlefish 磁盤恢復到其原始狀態。這個過程被稱為powerwashing

實例編號

Cuttlefish 設備在與其實例編號相關的主機上創建和使用資源。例如,對於實例編號為1的 Cuttlefish 設備, adb連接通過端口6520上的 TCP 服務器套接字公開。當啟動多個實例時,它會在端口6520為第一個設備創建一個 TCP 服務器套接字,為第二個設備創建一個6521端口,並為每個附加設備增加端口號。

修改支持的最大實例數

必須為 Cuttlefish 虛擬機預先分配主機端資源,例如 TAP 網絡設備。默認情況下, cuttlefish-common Debian 軟件包為實例編號110提供資源。

這可以通過修改/etc/default/cuttlefish-common num_cvd_accounts -common 中的 num_cvd_accounts 並通過運行以下命令重新啟動 cuttlefish cuttlefish-common服務來更改:

sudo systemctl restart cuttlefish-common

控制多租戶實例

本節介紹如何啟動、停止和 Powerwash 設備。這適用於單租戶和多租戶的launch_cvd調用。

開始

要一次啟動多個 Cuttlefish 設備,請使用--num_instances= N標誌,其中N是要啟動的設備數。默認情況下,設備從實例編號1開始。

launch_cvd --num_instances=N

要更改起始實例編號,請執行以下操作之一:

  • 添加--base_instance_num= N標誌,其中N作為第一個實例編號。

    launch_cvd --base_instance_num=N
    
  • 使用與vsoc- NN ,其中NN是兩位數形式的基本實例編號。例如,要使用用戶帳戶vsoc- 01啟動 Cuttlefish,請運行:

    launch_cvd --base_instance_num=1
    

停止

要停止由最後一次launch_cvd調用啟動的所有設備,請運行:

stop_cvd

強力清洗

要以原始狀態(構建狀態)啟動設備,請在launch_cvd命令中添加--resume=false標誌。

// Launch and interact with your devices
launch_cvd --num_devices=N --daemon
// Stop all your devices
stop_cvd
// Restart devices in their original states
launch_cvd --daemon --num_devices=N --resume=false