Cuttlefish: マルチテナンシー

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Cuttlefish マルチテナンシーにより、ホスト マシンは 1 回の起動呼び出しで複数の仮想ゲスト デバイスを起動できます。

これらの複数の Cuttlefish 仮想マシンは、ホスト ディスク リソースの一部を共有できるため、ディスク領域を節約できます。各仮想マシンは、Android パーティション ( superuserdatabootなど) をカバーする個別のディスク オーバーレイを取得します。ゲスト ディスクへの変更はゲスト固有のディスク オーバーレイに配置され、各 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