Cuttlefish マルチテナンシーにより、ホスト マシンは 1 回の起動呼び出しで複数の仮想ゲスト デバイスを起動できます。
これらの複数の Cuttlefish 仮想マシンは、ホスト ディスク リソースの一部を共有できるため、ディスク領域を節約できます。各仮想マシンは、Android パーティション ( super
、 userdata
、 boot
など) をカバーする個別のディスク オーバーレイを取得します。ゲスト ディスクへの変更はゲスト固有のディスク オーバーレイに配置され、各 Cuttlefish 仮想マシンにそのディスク パーティションのコピー オン ライト ビューを提供します。各仮想デバイスがディスクのビューに書き込むデータが増えると、元の状態と現在の状態の間の差分がキャプチャされるため、ホスト ディスク上のオーバーレイ ファイルのサイズが大きくなります。
オーバーレイ ファイルをリセットして、Cuttlefish ディスクを元の状態に戻すことができます。このプロセスは、パワーウォッシングと呼ばれます。
インスタンス番号
Cuttlefish デバイスは、インスタンス番号に関連付けられたホストでリソースを作成および消費します。たとえば、 adb
接続は、インスタンス番号1
の Cuttlefish デバイスのポート6520
で TCP サーバー ソケットを介して公開されます。複数のインスタンスが起動されると、最初のデバイス用にポート6520
番目のデバイス用にポート6521
で TCP サーバー ソケットが作成され、追加のデバイスごとにポート番号が増分されます。
サポートされるインスタンスの最大数の変更
TAP ネットワーク デバイスなどのホスト側のリソースは、Cuttlefish 仮想マシンに事前に割り当てる必要があります。デフォルトでは、 cuttlefish ベースのDebian パッケージはインスタンス番号1
から10
のリソースをプロビジョニングします。
これは、 /etc/default/cuttlefish-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
に一致するユーザー アカウントで Cuttlefish を起動します。ここで、 NNは 2 桁のベース インスタンス番号です。たとえば、ユーザー アカウントvsoc- 01
で Cuttlefish を起動するには、次のコマンドを実行します。launch_cvd --base_instance_num=1
停止中
最後のlaunch_cvd
呼び出しによって起動されたすべてのデバイスを停止するには、次を実行します。
stop_cvd