Multi-tenancy Sotong memungkinkan mesin host Anda meluncurkan beberapa perangkat tamu virtual dengan satu pemanggilan peluncuran.
Beberapa mesin virtual Sotong ini dapat berbagi beberapa sumber daya disk host, sehingga Anda dapat menghemat ruang disk. Setiap mesin virtual mendapat hamparan disk berbeda yang mencakup partisi Android (seperti super
, userdata
, boot
). Setiap modifikasi pada disk tamu ditempatkan di hamparan disk khusus tamu, memberikan setiap mesin virtual Cuttlefish tampilan copy-on-write dari partisi disknya. Saat setiap perangkat virtual menulis lebih banyak data ke tampilan disknya, ukuran file overlay pada disk host bertambah karena mereka menangkap delta antara keadaan asli dan keadaan saat ini.
File overlay dapat diatur ulang untuk mengembalikan disk Sotong ke keadaan semula. Proses ini dikenal sebagai powerwashing .
Nomor contoh
Perangkat sotong membuat dan menggunakan sumber daya pada host yang terkait dengan nomor instannya . Misalnya, koneksi adb
diekspos melalui soket server TCP di port 6520
untuk perangkat Cuttlefish dengan nomor instans 1
. Ketika beberapa instans diluncurkan, ini akan membuat soket server TCP pada port 6520
untuk perangkat pertama, 6521
untuk perangkat kedua, dan menambah nomor port untuk setiap perangkat tambahan.
Ubah jumlah maksimum instans yang didukung
Sumber daya sisi host, seperti perangkat jaringan TAP, harus dialokasikan terlebih dahulu untuk mesin virtual Cuttlefish. Secara default, paket Debian berbasis sotong menyediakan sumber daya misalnya nomor 1
hingga 10
.
Hal ini dapat diubah dengan memodifikasi num_cvd_accounts
di /etc/default/cuttlefish-host-resources
dan memulai ulang layanan cuttlefish-host-resources
dengan menjalankan perintah berikut:
sudo systemctl restart cuttlefish-host-resources
Konfigurasi kanonik
Konfigurasi kanonik mewakili konfigurasi perangkat Cuttlefish dalam format JSON. Anda dapat membuat file JSON konfigurasi kanonik untuk menjelaskan konfigurasi beberapa perangkat Cuttlefish dalam skenario multi-penyewa.
Berikut ini penjelasan format yang digunakan untuk file JSON konfigurasi kanonik (ganti placeholder dengan konfigurasi perangkat).
{
"common": {
CONFIGURATIONS_APPLYING_TO_ALL_DEVICES
},
"instances": [
{
FIRST_DEVICE_CONFIGURATION
},
{
NTH_DEVICE_CONFIGURATION
}
]
}
Berikut ini adalah contoh file konfigurasi pengaturan dengan dua perangkat, perangkat telepon dan perangkat wearable:
{
"instances": [
{
"@import": "phone",
"vm": {
"memory_mb": 8192,
"setupwizard_mode": "OPTIONAL",
"cpus": 4
},
"disk": {
"default_build": "/home/username/devices/cf_x86_64_phone-userdebug"
}
},
{
"@import": "wearable",
"vm": {
"memory_mb": 8192,
"setupwizard_mode": "REQUIRED",
"cpus": 4
},
"disk": {
"default_build": "/home/username/devices/cf_gwear_x86-userdebug"
}
}
]
}
Tabel ini menjelaskan elemen yang digunakan dalam contoh konfigurasi dengan dua perangkat:
Elemen | Jenis | Keterangan |
---|---|---|
instances | Himpunan | Array objek JSON, masing-masing menjelaskan satu perangkat dalam kelompok perangkat multi-penyewa yang akan diluncurkan. |
@import | Rangkaian | Menunjukkan jenis perangkat dan menetapkan nilai default untuk konfigurasi perangkat. Jenis perangkat yang didukung adalah phone dan wearable . |
vm | Obyek | Menentukan properti yang berlaku untuk lingkungan VM khusus untuk instance perangkat. |
memory_mb | Nomor | Jumlah memori yang dialokasikan untuk VM tertentu dalam megabita. |
setupwizard_mode | Rangkaian | Menentukan apakah wizard pengaturan perangkat dijalankan untuk pengguna saat perangkat pertama kali dijalankan. Opsi yang didukung untuk mode wizard pengaturan adalah DISABLED , OPTIONAL , dan REQUIRED . |
cpus | Nomor | Jumlah CPU virtual yang dialokasikan ke VM. |
disk | Obyek | Menentukan properti yang relevan untuk menemukan artefak sistem file yang digunakan untuk menjalankan satu instance VM. |
default_build | Rangkaian | Jalur sistem file lokal ke folder yang berisi gambar perangkat virtual Sotong. |
Untuk contoh lebih lanjut tentang file konfigurasi yang didistribusikan dengan cvd
, lihat folder cvd_test_configs
di pohon kode Cuttlefish.
Kontrol instans multi-penyewa
Bagian ini menjelaskan cara memulai dan menghentikan perangkat dalam skenario multi-penyewa. Anda dapat meluncurkan beberapa perangkat Sotong menggunakan opsi berikut:
- Konfigurasi kanonik : Luncurkan konfigurasi khusus untuk setiap perangkat menggunakan file konfigurasi JSON yang menjelaskan daftar instance yang akan diluncurkan.
- Gambar tamu tunggal : Meluncurkan beberapa perangkat dari satu gambar tamu.
Mulai beberapa VM dari konfigurasi kanonik
Untuk memulai beberapa VM menggunakan konfigurasi kanonik yang menjelaskan skenario multi-penyewa, aktifkan perintah cvd start
dengan awalan flag --config_file=
sebagai berikut:
cvd start --config_file=CONFIG_FILE
Berikut ini adalah contoh pemanggilan yang merujuk pada file konfigurasi kanonik bernama /etc/phone.json
.
cvd start --config_file=/etc/phone.json
Mulai beberapa VM dari satu gambar tamu
Untuk meluncurkan beberapa perangkat Sotong menggunakan satu gambar tamu, gunakan tanda --num_instances= N
, dengan N adalah jumlah perangkat yang akan diluncurkan. Secara default, perangkat dimulai dari nomor instans 1
.
cvd start --num_instances=N
Untuk mengubah nomor instans awal, lakukan salah satu hal berikut:
Tambahkan tanda
--base_instance_num= N
dengan N sebagai nomor instance pertama.cvd start --base_instance_num=N
Luncurkan Cuttlefish dengan akun pengguna yang cocok dengan
vsoc- NN
, dengan NN adalah nomor instance dasar dalam bentuk dua digit. Misalnya, untuk meluncurkan Sotong dengan akun penggunavsoc- 01
, jalankan:cvd start --base_instance_num=1
Cara menghentikan perangkat
Untuk menghentikan semua perangkat yang diluncurkan oleh pemanggilan cvd start
terakhir, jalankan:
cvd stop