Cuttlefish: vários locatários

A possibilidade de ter vários locatários no Cuttlefish permite que sua máquina host inicie vários dispositivos virtuais convidados com uma única invocação de inicialização.

Essas várias máquinas virtuais do Cuttlefish podem compartilhar alguns recursos do disco do host, permitindo economizar espaço no disco. Cada máquina virtual recebe uma cobertura de sobreposição de disco distinta, que inclui as partições do Android (como super, userdata, boot). Qualquer modificação no disco do convidado é colocada em uma sobreposição de disco específica do convidado, permitindo que cada máquina virtual do Cuttlefish tenha uma visualização copy-on-write das partições do disco. À medida que cada dispositivo virtual grava mais dados na visualização do disco, os arquivos de sobreposição no disco do host aumentam de tamanho, porque capturam o delta entre o estado original e o atual.

Os arquivos de sobreposição podem ser redefinidos para retornar o disco do Cuttlefish ao estado original. Esse processo é conhecido como Powerwash.

Números de instância

Os dispositivos Cuttlefish criam e consomem recursos no host vinculado ao número da instância. Por exemplo, uma conexão adb é exposta por um soquete de servidor TCP na porta 6520 para o dispositivo Cuttlefish com número de instância 1. Quando várias instâncias são iniciadas, ele cria um soquete de servidor TCP na porta 6520 para o primeiro dispositivo, 6521 para o segundo dispositivo e aumenta o número da porta para cada dispositivo extra.

Como modificar o número máximo de instâncias compatíveis

Os recursos do host, como os dispositivos de rede TAP, precisam ser pré-alocados para máquinas virtuais do Cuttlefish. Por padrão, o pacote Debian cuttlefish-base (link em inglês) provisiona recursos para os números de instância de 1 a 10.

Isso pode ser mudado ao modificar num_cvd_accounts em /etc/default/cuttlefish-host-resources e reiniciar o serviço cuttlefish-host-resources executando o seguinte comando:

sudo systemctl restart cuttlefish-host-resources

Como controlar instâncias com vários locatários

Esta seção descreve como iniciar e parar dispositivos. Isso se aplica a invocações de launch_cvd com um e com vários locatários.

Como iniciar

Para iniciar vários dispositivos Cuttlefish de uma vez, use a flag --num_instances=N, em que N é o número de dispositivos a serem iniciados. Por padrão, os dispositivos começam pelo número de instância 1.

launch_cvd --num_instances=N

Para mudar o número de instância inicial, siga um destes procedimentos:

  • Adicione a flag --base_instance_num=N, com N como o primeiro número de instância.

    launch_cvd --base_instance_num=N
    
  • Inicie o Cuttlefish com uma conta de usuário correspondente a vsoc-NN, em que NN é o número de instância base com dois dígitos. Por exemplo, para iniciar o Cuttlefish com uma conta de usuário vsoc-01, execute:

    launch_cvd --base_instance_num=1
    

Como parar

Para interromper todos os dispositivos iniciados pela última invocação de launch_cvd, execute:

stop_cvd