Cuttlefish 다중 테넌시를 사용하면 호스트 시스템이 단일 시작 호출로 여러 가상 게스트 장치를 시작할 수 있습니다.
이러한 여러 Cuttlefish 가상 머신은 일부 호스트 디스크 리소스를 공유할 수 있으므로 디스크 공간을 절약할 수 있습니다. 각 가상 머신은 Android 파티션(예: super
, userdata
, boot
)을 포함하는 고유한 디스크 오버레이를 가져옵니다. 게스트 디스크에 대한 모든 수정 사항은 게스트별 디스크 오버레이에 배치되어 각 Cuttlefish 가상 머신에 디스크 파티션의 기록 중 복사 보기를 제공합니다. 각 가상 장치가 디스크 보기에 더 많은 데이터를 쓸수록 원래 상태와 현재 상태 사이의 델타를 캡처하기 때문에 호스트 디스크의 오버레이 파일 크기가 증가합니다.
오버레이 파일을 재설정하여 Cuttlefish 디스크를 원래 상태로 되돌릴 수 있습니다. 이 프로세스를 powerwashing 이라고 합니다.
인스턴스 번호
Cuttlefish 장치는 해당 인스턴스 번호 에 연결된 호스트에서 리소스를 생성하고 소비합니다. 예를 들어 adb
연결은 인스턴스 번호가 1
인 Cuttlefish 기기의 포트 6520
에서 TCP 서버 소켓을 통해 노출됩니다. 여러 인스턴스가 시작되면 첫 번째 장치의 경우 포트 6520
, 두 번째 장치의 경우 포트 6521
에 TCP 서버 소켓을 생성하고 각 추가 장치의 포트 번호를 증가시킵니다.
지원되는 최대 인스턴스 수 수정
TAP 네트워크 장치와 같은 호스트 측 리소스는 Cuttlefish 가상 머신에 미리 할당되어야 합니다. 기본적으로 오징어 기반 Debian 패키지는 인스턴스 번호 1
~ 10
에 대한 리소스를 프로비저닝합니다.
이것은 /etc/default/cuttlefish-host-resources
에서 num_cvd_accounts
를 수정하고 다음 명령을 실행하여 cuttlefish-host-resources
서비스를 다시 시작하여 변경할 수 있습니다.
sudo systemctl restart cuttlefish-host-resources
다중 테넌트 인스턴스 제어
이 섹션에서는 장치를 시작하고 중지하는 방법에 대해 설명합니다. 이는 단일 테넌트 및 다중 테넌트 launch_cvd
호출 모두에 적용됩니다.
시작
한 번에 여러 Cuttlefish 장치를 시작하려면 --num_instances= N
플래그를 사용합니다. 여기서 N 은 시작할 장치 수입니다. 기본적으로 장치는 인스턴스 번호 1
에서 시작합니다.
launch_cvd --num_instances=N
시작 인스턴스 번호를 변경하려면 다음 중 하나를 수행하십시오.
N 이 첫 번째 인스턴스 번호인
--base_instance_num= N
플래그를 추가합니다.launch_cvd --base_instance_num=N
vsoc- NN
과 일치하는 사용자 계정으로 Cuttlefish를 시작합니다. 여기서 NN 은 두 자리 형식의 기본 인스턴스 번호입니다. 예를 들어 사용자 계정vsoc- 01
로 Cuttlefish를 시작하려면 다음을 실행합니다.launch_cvd --base_instance_num=1
멎는
마지막 launch_cvd
호출로 시작된 모든 장치를 중지하려면 다음을 실행하십시오.
stop_cvd