Cuttlefish 多租户允许您的主机通过一次启动调用启动多个虚拟访客设备。
这些多个 Cuttlefish 虚拟机可以共享一些主机磁盘资源,让您可以节省磁盘空间。每个虚拟机都有一个覆盖 Android 分区(例如super
、 userdata
、 boot
)的不同磁盘覆盖层。对来宾磁盘的任何修改都放置在特定于来宾的磁盘覆盖层中,从而为每个 Cuttlefish 虚拟机提供其磁盘分区的写时复制视图。随着每个虚拟设备将更多数据写入其磁盘视图,主机磁盘上的覆盖文件的大小也会增加,因为它们正在捕获原始状态和当前状态之间的差异。
可以重置覆盖文件以将 Cuttlefish 磁盘恢复到其原始状态。此过程称为强力清洗。
实例编号
Cuttlefish 设备在与其实例编号相关联的主机上创建和使用资源。例如,实例号为1
的 Cuttlefish 设备的adb
连接通过端口6520
处的 TCP 服务器套接字公开。当启动多个实例时,它会在第一个设备的端口6520
和第二个设备的6521
端口创建一个 TCP 服务器套接字,并为每个附加设备增加端口号。
修改最大支持实例数
必须为 Cuttlefish 虚拟机预先分配主机端资源,例如 TAP 网络设备。默认情况下,基于cuttlefish 的Debian 软件包为实例编号1
到10
提供资源。
这可以通过修改/etc/default/cuttlefish-host-resources
num_cvd_accounts
-host-resources 中的 num_cvd_accounts 并通过运行以下命令重新启动 cuttlefish cuttlefish-host-resources
服务来更改:
sudo systemctl restart cuttlefish-host-resources
控制多租户实例
本节介绍如何启动和停止设备。这适用于单租户和多租户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