Cuttlefish 多租戶允許您的主機通過一次啟動調用啟動多個虛擬訪客設備。
這些多台 Cuttlefish 虛擬機可以共享一些主機磁盤資源,從而節省磁盤空間。每個虛擬機都有一個覆蓋 Android 分區的不同磁盤覆蓋(例如super
、 userdata
、 boot
)。對來賓磁盤的任何修改都放置在特定於來賓的磁盤覆蓋中,從而為每個 Cuttlefish 虛擬機提供其磁盤分區的寫入時復制視圖。隨著每個虛擬設備向其磁盤視圖寫入更多數據,主機磁盤上的覆蓋文件的大小會增加,因為它們正在捕獲原始狀態與其當前狀態之間的增量。
可以重置覆蓋文件以將 Cuttlefish 磁盤恢復到其原始狀態。這個過程被稱為powerwashing 。
實例編號
Cuttlefish 設備在與其實例編號相關的主機上創建和使用資源。例如,對於實例編號為1
的 Cuttlefish 設備, adb
連接通過端口6520
上的 TCP 服務器套接字公開。當啟動多個實例時,它會在端口6520
為第一個設備創建一個 TCP 服務器套接字,為第二個設備創建一個6521
端口,並為每個附加設備增加端口號。
修改支持的最大實例數
必須為 Cuttlefish 虛擬機預先分配主機端資源,例如 TAP 網絡設備。默認情況下, cuttlefish-common Debian 軟件包為實例編號1
到10
提供資源。
這可以通過修改/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 deviceslaunch_cvd --num_devices=N --daemon
// Stop all your devicesstop_cvd
// Restart devices in their original stateslaunch_cvd --daemon --num_devices=N --resume=false