Cuttlefish 멀티 테넌시를 사용하면 한 번의 실행 호출로 호스트 머신에서 여러 개의 가상 게스트 기기를 시작할 수 있습니다.
이러한 여러 개의 Cuttlefish 가상 머신은 호스트 디스크 리소스의 일부를 공유할 수 있으므로 디스크 공간 절약이 가능합니다. 각 가상 머신에는 Android 파티션을 포괄하는 고유한 디스크 오버레이가 제공됩니다(예: super
, userdata
, boot
). 게스트 디스크의 모든 수정사항은 게스트별 디스크 오버레이에 있으며 각 Cuttlefish 가상 머신에 디스크 파티션의 COW(기록 중 복사) 뷰를 제공합니다. 각 가상 기기에서 디스크 뷰에 더 많은 데이터를 쓰면 호스트 디스크의 오버레이 파일에서 원래 상태와 현재 상태의 차이를 캡처하므로 오버레이 파일 크기가 커집니다.
오버레이 파일을 재설정하여 Cuttlefish 디스크를 원래 상태로 되돌릴 수 있습니다. 이 프로세스를 파워워시라고 합니다.
인스턴스 번호
Cuttlefish 기기는 인스턴스 번호에 연결된 호스트에서 리소스를 생성하고 사용합니다. 예를 들어, adb
연결은 인스턴스 번호가 1
인 Cuttlefish 기기의 경우 6520
포트에서 TCP 서버 소켓을 통해 노출됩니다.
여러 인스턴스가 실행되면 첫 번째 기기는 6520
포트, 두 번째 기기는 6521
포트에 TCP 서버 소켓을 만들고 기기가 추가될 때마다 포트 번호를 증분합니다.
지원되는 최대 인스턴스 수 수정
TAP 네트워크 기기와 같은 호스트 측 리소스는 Cuttlefish 가상 머신에 사전 할당되어야 합니다. 기본적으로 cuttlefish-base 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
시작하는 인스턴스 번호를 변경하려면 다음 중 한 가지 방법을 사용합니다.
--base_instance_num=N
플래그를 추가합니다(N은 첫 번째 인스턴스 번호).launch_cvd --base_instance_num=N
vsoc-NN
과 일치하는 사용자 계정으로 Cuttlefish를 시작합니다. 여기서 NN은 두 자리 형식의 기본 인스턴스 번호입니다. 예를 들어,vsoc-01
이라는 사용자 계정으로 Cuttlefish를 시작하려면 다음을 실행합니다.launch_cvd --base_instance_num=1
중지
마지막 launch_cvd
호출로 시작된 모든 기기를 중지하려면 다음을 실행합니다.
stop_cvd