Mürekkep balığı çoklu kiracılığı, ana makinenizin tek bir başlatma çağrısıyla birden fazla sanal konuk cihazı başlatmasına olanak tanır.
Bu birden fazla Mürekkepbalığı sanal makinesi, ana bilgisayar disk kaynaklarının bir kısmını paylaşarak disk alanından tasarruf etmenize olanak tanır. Her sanal makine, Android bölümlerini ( super
, userdata
, boot
gibi) kapsayan ayrı bir disk yerleşimine sahiptir. Konuk diskte yapılan herhangi bir değişiklik, konuğa özel bir disk katmanına yerleştirilerek her Cuttlefish sanal makinesine, disk bölümlerinin yazma sırasında kopyalanması olanağı sağlanır. Her sanal aygıt, disk görünümüne daha fazla veri yazdıkça, ana diskteki yer paylaşımlı dosyaların boyutu artar çünkü orijinal durum ile mevcut durumları arasındaki deltayı yakalarlar.
Kaplama dosyaları, Mürekkepbalığı diskini orijinal durumuna döndürmek için sıfırlanabilir. Bu işleme basınçlı yıkama denir.
Örnek numaraları
Mürekkepbalığı aygıtları, ana bilgisayardaki örnek numaralarına bağlı kaynakları oluşturur ve tüketir. Örneğin, örnek numarası 1
olan Mürekkepbalığı cihazı için 6520
bağlantı noktasındaki bir TCP sunucu soketi aracılığıyla bir adb
bağlantısı kullanıma sunulur. Birden fazla örnek başlatıldığında, ilk aygıt için 6520
numaralı bağlantı noktasında, ikinci aygıt için 6521
bağlantı noktasında bir TCP sunucu yuvası oluşturur ve her ek aygıt için bağlantı noktası numarasını artırır.
Maksimum desteklenen örnek sayısını değiştirin
TAP ağ cihazları gibi ana bilgisayar tarafı kaynaklarının Mürekkepbalığı sanal makineleri için önceden tahsis edilmesi gerekir. Varsayılan olarak mürekkep balığı tabanlı Debian paketi, 1
10
kadar olan örnek sayıları için kaynakları sağlar.
Bu, /etc/default/cuttlefish-host-resources
dosyasındaki num_cvd_accounts
değiştirilerek ve aşağıdaki komutu çalıştırarak cuttlefish-host-resources
hizmeti yeniden başlatılarak değiştirilebilir:
sudo systemctl restart cuttlefish-host-resources
Kanonik konfigürasyonlar
Kanonik konfigürasyonlar Mürekkepbalığı cihazlarının JSON formatındaki konfigürasyonunu temsil eder. Çok kiracılı bir senaryoda birden çok Cuttlefish cihazının yapılandırmasını açıklamak için kanonik yapılandırma JSON dosyaları oluşturabilirsiniz.
Aşağıda kanonik konfigürasyon JSON dosyaları için kullanılan format açıklanmaktadır (yer tutucuları cihaz konfigürasyonlarıyla değiştirin).
{
"common": {
CONFIGURATIONS_APPLYING_TO_ALL_DEVICES
},
"instances": [
{
FIRST_DEVICE_CONFIGURATION
},
{
NTH_DEVICE_CONFIGURATION
}
]
}
Aşağıda iki cihaz, bir telefon cihazı ve bir giyilebilir cihazdan oluşan 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 cihazla örnek konfigürasyonda kullanılan öğeler açıklanmaktadır:
Öğe | Tip | Tanım |
---|---|---|
instances | Sıralamak | Her biri başlatılacak çok kiracılı cihaz grubundaki tek bir cihazı tanımlayan JSON nesneleri dizisi. |
@import | Sicim | Cihaz tipini belirtir ve cihaz konfigürasyonu için varsayılan değerleri ayarlar. Desteklenen cihaz türleri phone ve wearable . |
vm | Nesne | Cihaz örneğine özel VM ortamına uygulanan özellikleri belirtir. |
memory_mb | Sayı | Belirli bir VM için megabayt cinsinden ayrılacak bellek miktarı. |
setupwizard_mode | Sicim | Cihazın ilk çalıştırılmasında kullanıcı için cihaz kurulum sihirbazının ç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ı | VM'ye ayrılan sanal CPU sayısı. |
disk | Nesne | Tek bir VM örneğini çalıştırmak için kullanılan dosya sistemi yapıtlarının bulunmasıyla ilgili özellikleri belirtir. |
default_build | Sicim | Mürekkepbalığı sanal aygıt görüntüsünü içeren bir klasörün yerel dosya sistemi yolu. |
cvd
ile dağıtılan yapılandırma dosyalarına ilişkin daha fazla örnek için Mürekkepbalığı kod ağacındaki cvd_test_configs
klasörüne bakın.
Çok kiracılı örnekleri denetleme
Bu bölümde, çok kiracılı bir senaryoda cihazların nasıl başlatılıp durdurulacağı açıklanmaktadır. Aşağıdaki seçenekleri kullanarak birden fazla Mürekkepbalığı cihazını başlatabilirsiniz:
- Kurallı yapılandırma : Başlatılacak örneklerin listesini açıklayan bir JSON yapılandırma dosyasını kullanarak her cihaz için özelleştirilmiş yapılandırmaları başlatın.
- Tek konuk görüntüsü : Tek bir konuk görüntüsünden birden fazla cihazı başlatın.
Kurallı yapılandırmadan birden fazla VM başlatın
Çok kiracılı senaryoyu açıklayan standart bir yapılandırma kullanarak birden çok VM'yi başlatmak için cvd start
komutunu --config_file=
flag önekiyle aşağıdaki gibi çağırın:
cvd start --config_file=CONFIG_FILE
Aşağıda /etc/phone.json
adlı standart bir yapılandırma dosyasına başvuran örnek bir çağrı yer almaktadır.
cvd start --config_file=/etc/phone.json
Tek bir konuk görüntüsünden birden fazla VM başlatın
Tek bir konuk görüntüsünü kullanarak birden fazla Mürekkepbalığı aygıtını başlatmak için --num_instances= N
bayrağını kullanın; burada N , başlatılacak aygıtların sayısıdır. Varsayılan olarak cihazlar örnek numarası 1
başlar.
cvd start --num_instances=N
Başlangıç örnek numarasını değiştirmek için aşağıdakilerden birini yapın:
İlk örnek numarası olarak N olacak şekilde
--base_instance_num= N
bayrağını ekleyin.cvd start --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 şunu çalıştırın:cvd start --base_instance_num=1
Cihazlar nasıl durdurulur
Son cvd start
çağrısıyla başlatılan tüm cihazları durdurmak için şunu çalıştırın:
cvd stop