דיונון: ריבוי דירות

דיונון ריבוי דירות מאפשר למכונה המארח שלך להפעיל מספר התקני אורח וירטואליים עם הפקת הפעלה אחת.

מכונות וירטואליות מרובות אלה של Cuttlefish יכולות לשתף חלק ממשאבי הדיסק המארח, מה שמאפשר לך לחסוך בדיסק. כל מכונה וירטואלית מקבלת שכבת דיסק נפרדת המכסה את מחיצות האנדרואיד (כגון super , userdata , boot ). כל שינוי בדיסק האורח ממוקם בשכבת-על של דיסק ספציפי לאורח, מה שנותן לכל מכונה וירטואלית של Cuttlefish תצוגת העתק-על-כתיבה של מחיצות הדיסק שלו. ככל שכל מכשיר וירטואלי כותב יותר נתונים לתצוגה שלו על הדיסק, קובצי השכבה בדיסק המארח גדלים בגודלם מכיוון שהם לוכדים את הדלתא בין המצב המקורי למצבם הנוכחי.

ניתן לאפס את קבצי השכבה כדי להחזיר את הדיסק Cuttlefish למצבו המקורי. תהליך זה מכונה Powerwashing .

מספרי מופעים

התקני דיונון יוצרים וצורכים משאבים על המארח הקשורים למספר המופע שלהם. לדוגמה, חיבור adb נחשף דרך שקע שרת TCP ביציאה 6520 עבור התקן Cuttlefish עם מופע מספר 1 . כאשר מופעים מרובים מופעלים, הוא יוצר שקע שרת TCP ביציאה 6520 עבור ההתקן הראשון, 6521 עבור ההתקן השני, ומגדיל את מספר היציאה עבור כל התקן נוסף.

שנה את המספר המרבי של מופעים נתמכים

יש להקצות מראש משאבים בצד המארח, כגון התקני רשת TAP, עבור מכונות וירטואליות של Cuttlefish. כברירת מחדל, חבילת Debian מבוססת דיונון מספקת משאבים למשל מספרים 1 עד 10 .

ניתן לשנות זאת באמצעות שינוי num_cvd_accounts ב- /etc/default/cuttlefish-host-resources והפעלה מחדש של שירות cuttlefish-host-resources על ידי הפעלת הפקודה הבאה:

sudo systemctl restart cuttlefish-host-resources

תצורות קנוניות

תצורות קנוניות מייצגות את התצורה עבור התקני Cuttlefish בפורמט JSON. אתה יכול ליצור קובצי JSON תצורה קנונית כדי לתאר את התצורה של התקני Cuttlefish מרובים בתרחיש מרובה דיירים.

להלן מתאר את הפורמט המשמש עבור קובצי JSON בתצורה קנונית (החלף מצייני מיקום בתצורות התקן).

{
  "common": {
    CONFIGURATIONS_APPLYING_TO_ALL_DEVICES
  },
  "instances": [
    {
      FIRST_DEVICE_CONFIGURATION
    },
    {
      NTH_DEVICE_CONFIGURATION
    }
  ]
}

להלן דוגמה לקובץ תצורה של הגדרה עם שני מכשירים, מכשיר טלפון ומכשיר לביש:

{
  "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"
      }
    }
  ]
}

טבלה זו מתארת ​​את האלמנטים המשמשים בתצורה לדוגמה עם שני התקנים:

אֵלֵמֶנט סוּג תיאור
instances מַעֲרָך מערך אובייקטי JSON, כל אחד מתאר מכשיר בודד בקבוצת המכשירים מרובי הדיירים שיושקו.
@import חוּט מציין את סוג ההתקן ומגדיר ערכי ברירת מחדל עבור תצורת המכשיר. סוגי המכשירים הנתמכים הם phone ומכשירים wearable .
vm לְהִתְנַגֵד מציין מאפיינים החלים על סביבת ה-VM הספציפית למופע המכשיר.
memory_mb מספר כמות הזיכרון להקצאה עבור VM ספציפי במגה-בייט.
setupwizard_mode חוּט מציין אם אשף הגדרת ההתקן יופעל עבור המשתמש בהפעלה הראשונה של המכשיר. האפשרויות הנתמכות עבור מצב אשף ההגדרה הן DISABLED , OPTIONAL REQUIRED .
cpus מספר מספר המעבדים הווירטואליים שהוקצו ל-VM.
disk לְהִתְנַגֵד מציין מאפיינים הרלוונטיים לאיתור חפצי מערכת קבצים המשמשים להפעלת מופע VM יחיד.
default_build חוּט נתיב מערכת קבצים מקומית לתיקיה המכילה תמונת מכשיר וירטואלי של דיונון.

לדוגמאות נוספות של קובצי תצורה המופצים עם cvd , ראה את התיקיה cvd_test_configs בעץ הקוד Cuttlefish.

שליטה במופעי ריבוי דיירים

סעיף זה מתאר כיצד להפעיל ולעצור מכשירים בתרחיש מרובה דיירים. אתה יכול להפעיל התקני דיונון מרובים באמצעות האפשרויות הבאות:

  • תצורה קנונית : הפעל תצורות מותאמות אישית עבור כל מכשיר באמצעות קובץ תצורה של JSON המתאר את רשימת המופעים להפעלה.
  • תמונת אורח בודדת : הפעל מספר מכשירים מתמונת אורח אחת.

הפעל מספר VMs מתצורה קנונית

כדי להפעיל מערכות VM מרובות באמצעות תצורה קנונית המתארת ​​את תרחיש ריבוי הדיירים, הפעל את פקודת cvd start עם קידומת הדגל --config_file= באופן הבא:

cvd start --config_file=CONFIG_FILE

להלן דוגמה לקריאת טלפון המפנה לקובץ תצורה קנוני בשם /etc/phone.json .

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

התחל מספר VMs מתמונת אורח בודדת

כדי להפעיל התקני דיונון מרובים באמצעות תמונת אורח אחת, השתמש בדגל --num_instances= N , כאשר N הוא מספר המכשירים שיש להפעיל. כברירת מחדל, התקנים מתחילים מהמופע מספר 1 .

cvd start --num_instances=N

כדי לשנות את מספר המופע ההתחלתי, בצע אחת מהפעולות הבאות:

  • הוסף את הדגל --base_instance_num= N עם N כמספר המופע הראשון.

    cvd start --base_instance_num=N
    
  • הפעל את Cuttlefish עם חשבון משתמש תואם vsoc- NN , כאשר NN הוא מספר המופע הבסיסי בצורת שתי ספרות. לדוגמה, כדי להפעיל את Cuttlefish עם חשבון משתמש vsoc- 01 , הפעל:

    cvd start --base_instance_num=1
    

איך לעצור מכשירים

כדי לעצור את כל המכשירים שהושקו על ידי cvd start האחרונה, הפעל:

cvd stop