Mürekkep balığı: Çok kiracılı

Mürekkep balığı çok kiracılı yapısı, ana makinenizin birden fazla sanal makine başlatmasına tek bir başlatma çağrısı olan misafir cihazları.

Bu birden fazla Cuttlefish sanal makinesi, ana makine diskinin bir kısmını paylaşabilir Bu da disk alanından tasarruf etmenizi sağlar. Her sanal makine, Android bölümlerini kapsayan ayrı disk yer paylaşımı (ör. super, userdata, boot). Konuk diskinde yapılan tüm değişiklikler konuklara özel disk yer paylaşımı sağlar. Böylece, her Cuttlefish sanal makinesi, kopyalama/yazma görünümü sağlar. Her sanal cihaz daha fazla metin yazdıkça ana makine diskindeki yer paylaşımlı dosyaların boyutu Çünkü onlar, orijinal durum ile durum arasındaki deltayı yakalıyordu. durumu özetlemeyi unutmayın.

Bindirme dosyaları, Cuttlefish diskini eski konumuna döndürmek için sıfırlanabilir orijinal durumu. Bu süreç powerwash.

Örnek numaraları

Mürekkep balığı cihazları ana makinede bulunan ve tükettiği kaynakları örnek numarası. Örneğin, bir adb bağlantısı TCP üzerinden açığa çıkarılıyor 1 örnek numarasına sahip Cuttlefish cihazının 6520 bağlantı noktasındaki sunucu soketi. Birden fazla örnek başlatıldığında bağlantı noktasında bir TCP sunucu yuvası oluşturulur İlk cihaz için 6520, ikinci cihaz için 6521 ve bağlantı noktası numarası ekleyin.

Desteklenen maksimum örnek sayısını değiştirin

TAP ağ cihazları gibi ana makine tarafı kaynakların Mürekkep balığı sanal makineleri. Varsayılan olarak cuttlefish-base Debian paketi 1 ile 10 arasındaki örnek numaraları için kaynaklar sağlar.

Bu, şurada num_cvd_accounts değiştirilerek değiştirilebilir: /etc/default/cuttlefish-host-resources ve cuttlefish-host-resources hizmetini kullanabilirsiniz.

sudo systemctl restart cuttlefish-host-resources

Standart yapılandırmalar

Standart yapılandırmalar, Mürekkep balığı cihazlarının yapılandırmasını gösterir JSON biçiminde dışa aktarabilirsiniz. Standart yapılandırma JSON dosyaları oluşturabilirsiniz. çok kiracılı bir yapıda birden fazla Mürekkep balığı cihazının yapılandırmasını tanımlamak senaryoyu izler.

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, iki cihazlı bir kurulumun örnek yapılandırma dosyası verilmiştir: Telefon cihazı ve giyilebilir cihaz:

{
  "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 cihazlar:

Element Tür Açıklama
instances Dizi JSON nesneleri dizisi, her biri çok kiracılı cihaz grubu kullanıma sunulacaktır.
@import Dize Cihaz türünü belirtir ve cihaz için varsayılan değerleri belirler yapılandırma. Desteklenen cihaz türleri şunlardır: phone ve wearable.
vm Nesne Şuna özel sanal makine ortamı için geçerli olan özellikleri belirtir: cihaz örneğidir.
memory_mb Sayı Belirli bir sanal makine için ayrılacak bellek miktarı (megabayt cinsinden).
setupwizard_mode Dize Başlangıçta cihaz kurulum sihirbazının kullanıcı için çalıştırılıp çalıştırılmayacağını belirtir çalışmasını sağlamalısınız. Kurulum sihirbazı modu için desteklenen seçenekler şunlardır: DISABLED, OPTIONAL ve REQUIRED.
cpus Sayı Sanal makineye ayrılan sanal CPU sayısı.
disk Nesne Kullanılan dosya sistemi yapılarının bulunmasıyla ilgili özellikleri belirtir tek bir sanal makine örneği çalıştırmak için de geçerlidir.
default_build Dize Mürekkep balığı sanal cihazını içeren klasörün yerel dosya sistemi yolu görüntüsüdür.

cvd ile dağıtılan yapılandırma dosyalarına ilişkin daha fazla örnek için bkz. cvd_test_configs klasörü olması gerekir.

Çok kiracılı örnekleri kontrol etme

Bu bölümde, çok kiracılı bir senaryoda cihazların nasıl başlatılacağı ve durdurulacağı açıklanmaktadır. Aşağıdaki seçenekleri kullanarak birden fazla Mürekkep balığı cihazını başlatabilirsiniz:

  • Canonical config: Özelleştirilmiş lansman yapılandırmalarını açıklayan bir JSON yapılandırma dosyası kullanarak her listesi açılır.
  • Tek davetli resmi: Birden çok etkinliği başlatma tek bir misafir resminden e-posta alırsınız.

Standart yapılandırmadan birden fazla sanal makine başlatma

Şunları açıklayan standart bir yapılandırma kullanarak birden çok sanal makine başlatmak için: çok kiracılı senaryoda, --config_file= ile cvd start komutunu çağırın aşağıdaki gibi flag önekini kullanın:

cvd start --config_file=CONFIG_FILE

Aşağıda, /etc/phone.json

cvd start --config_file=/etc/phone.json

Tek bir konuk görüntüsünden birden fazla sanal makine başlatma

Tek bir misafir resmini kullanarak birden çok Mürekkep balığı cihazını başlatmak için --num_instances=N işareti (burada N sayıdır) lansman olacak. Varsayılan olarak cihazlar 1 örnek numarasından başlar.

cvd start --num_instances=N

Başlangıç örneği numarasını değiştirmek için aşağıdakilerden birini yapın:

  • --base_instance_num=N işaretini şununla ekleyin: İlk örnek numarası olarak N.

    cvd start --base_instance_num=N
    
  • Cuttlefish'i, eşleşen bir kullanıcı hesabıyla başlat vsoc-NN; burada NN, temel örnektir biçiminde girin. Örneğin, bir kullanıcı ile Mürekkep balığı'nı başlatmak için vsoc-01 hesabı, çalıştır:

    cvd start --base_instance_num=1
    

Cihazları durdurma

Son cvd start çağrısıyla başlatılan tüm cihazları durdurmak için şu komutu çalıştırın:

cvd stop