Mürekkep balığı: Çoklu kiracılık

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'i vsoc- 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