Ahtapot çok kiralılık özelliği, ana makinenizin tek bir başlatma çağrısıyla birden fazla sanal konuk cihaz başlatmasına olanak tanır.
Bu birden fazla Cuttlefish sanal makinesi, ana makine disk kaynaklarının bir kısmını paylaşarak disk alanından tasarruf etmenizi sağlar. Her sanal makine, Android bölümlerini (ör. super
, userdata
, boot
) kapsayan ayrı bir disk yer paylaşımı alır. Konuk diskinde yapılan değişiklikler, konuklara özel bir disk yer paylaşımına yerleştirilir. Böylece her Cuttlefish sanal makinesi, disk bölümlerinin yazma sırasında kopyalanıp kopyalanmasını sağlar. Her sanal cihaz, disk görünümüne daha fazla veri yazdıkça ana makine diskindeki yer paylaşımı dosyaları, orijinal durum ile mevcut durum arasındaki farkı yakaladıkları için boyut olarak büyür.
Bindirme dosyaları, Cuttlefish diskini orijinal durumuna döndürmek için sıfırlanabilir. Bu işleme güçlü temizleme denir.
Örnek numaraları
Mürekkep balığı cihazları, ana makinede örnek numaralarına bağlı kaynaklar oluşturur ve bunları tüketir. Örneğin, Cuttlefish cihazı için 6520
bağlantı noktasındaki 1
örnek numarasındaki bir TCP sunucu soketi aracılığıyla bir adb
bağlantısı açığa çıkarılmıştır.
Birden fazla örnek başlatıldığında, ilk cihaz için 6520
, ikinci cihaz için 6521
numaralı bağlantı noktasında bir TCP sunucu soketi oluşturur ve her ek cihaz için bağlantı noktası numarasını artırır.
Desteklenen maksimum örnek sayısını değiştirin
TAP ağ cihazları gibi ana makine tarafı kaynaklar, Cuttlefish sanal makineleri için önceden tahsis edilmelidir. Varsayılan olarak cuttlefish-base Debian paketi, 1
ile 10
arasındaki örnek numaraları için kaynak sağlar.
Bu, /etc/default/cuttlefish-host-resources
içinde num_cvd_accounts
değiştirilerek ve aşağıdaki komutu çalıştırarak cuttlefish-host-resources
hizmetini yeniden başlatarak değiştirilebilir:
sudo systemctl restart cuttlefish-host-resources
Standart yapılandırmalar
Standart yapılandırmalar, Mürekkep balığı cihazlarının yapılandırmasını JSON biçiminde gösterir. Çok kiracılı bir senaryoda birden çok Cuttlefish cihazının yapılandırmasını tanımlamak için standart yapılandırma JSON dosyaları oluşturabilirsiniz.
Aşağıda, standart yapılandırma JSON dosyaları için kullanılan biçim açıklanmaktadır (yer tutucuları cihaz yapılandırmalarıyla değiştirin).
{
"common": {
CONFIGURATIONS_APPLYING_TO_ALL_DEVICES
},
"instances": [
{
FIRST_DEVICE_CONFIGURATION
},
{
NTH_DEVICE_CONFIGURATION
}
]
}
Aşağıda, bir telefon ve giyilebilir cihaz olmak üzere iki cihazın kullanıldığı bir kurulumun örnek yapılandırma dosyası verilmiştir:
{
"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"
}
}
]
}
Bu tabloda, iki cihazda örnek yapılandırmada kullanılan öğeler açıklanmaktadır:
Element | Tür | Açıklama |
---|---|---|
instances |
Dizi | Her biri, kullanıma sunulacak çok kiracılı cihaz grubundaki tek bir cihazı tanımlayan JSON nesneleri dizisi. |
@import |
Dize | Cihaz türünü belirtir ve cihaz yapılandırması için varsayılan değerleri belirler. Desteklenen cihaz türleri şunlardır:
phone ve wearable . |
vm |
Nesne | Cihaz örneğine özgü sanal makine ortamı için geçerli olan özellikleri belirtir. |
memory_mb |
Sayı | Belirli bir sanal makine için ayrılacak bellek miktarı (megabayt cinsinden). |
setupwizard_mode |
Dize | Cihazın ilk çalıştırıldığı sırada cihaz kurulum sihirbazının kullanıcı için çalıştırılıp çalıştırılmayacağını belirtir. Kurulum sihirbazı modu için desteklenen seçenekler:
DISABLED , OPTIONAL ve
REQUIRED . |
cpus |
Sayı | Sanal makineye ayrılan sanal CPU sayısı. |
disk |
Nesne | Tek bir sanal makine örneği çalıştırmak için kullanılan dosya sistemi yapılarının bulunmasıyla ilgili özellikleri belirtir. |
default_build |
Dize | Cuttlefish sanal cihaz resmi içeren bir klasörün yerel dosya sistemi yolu. |
cvd
ile dağıtılan yapılandırma dosyalarına dair daha fazla örnek için Cuttlefish kod ağacındaki cvd_test_configs
klasörüne bakın.
Çok kiracılı örnekleri kontrol etme
Bu bölümde, çok kiracılı bir senaryoda cihazların nasıl oluşturulacağı ve kaldırılacağı açıklanmaktadır. Aşağıdaki seçenekleri kullanarak birden fazla Cuttlefish cihazı başlatabilirsiniz:
- Standart yapılandırma: Başlatılacak örneklerin listesini açıklayan bir JSON yapılandırma dosyası kullanarak her cihaz için özelleştirilmiş yapılandırmaları başlatın.
- Tek misafir resmi: Tek bir misafir görüntüsünden birden fazla cihazı başlatabilirsiniz.
Standart yapılandırmadan birden fazla sanal makine başlatma
Çok kiracılı senaryoyu açıklayan standart bir yapılandırma kullanarak birden fazla sanal makine oluşturmak için cvd create
komutunu --config_file=
işaret önekiyle aşağıdaki gibi çağırın:
cvd create --config_file=CONFIG_FILE
Aşağıda, /etc/phone.json
adlı standart bir yapılandırma dosyasına atıfta bulunan örnek bir çağrı gösterilmektedir.
cvd create --config_file=/etc/phone.json
Tek bir konuk görüntüsünden birden fazla sanal makine başlatma
Tek bir misafir resmi kullanarak birden çok Mürekkep balığı cihazını başlatmak için --num_instances=N
işaretini kullanın. Burada N, başlatılacak cihaz sayısını ifade eder. Cihazlar varsayılan olarak 1
örnek numarasından başlar.
cvd create --num_instances=N
Başlangıç örneği numarasını değiştirmek için aşağıdakilerden birini yapın:
N ile
--base_instance_num=N
işaretini ilk örnek numarası olarak ekleyin.cvd create --base_instance_num=N
Cuttlefish'i
vsoc-NN
ile eşleşen bir kullanıcı hesabıyla başlatın. Burada NN iki basamaklı temel örnek numarasıdır. Örneğin, Cuttlefish'ivsoc-01
kullanıcı hesabıyla başlatmak için şu komutu çalıştırın:cvd create --base_instance_num=1
Cihazları durdurma
Son cvd create
çağrısı tarafından başlatılan tüm cihazları durdurmak için şu komutu çalıştırın:
cvd stop
Durdurulmuş cihazları yeniden başlatmak için şu komutu çalıştırın:
cvd start
Bir cihazı sistemden tamamen kaldırmak için:
cvd remove