يسمح تطبيق حبَّار ذي فترة إقامة متعددة للجهاز المضيف بإطلاق العديد من الألعاب الافتراضية أجهزة ضيف مع استدعاء تشغيل واحد.
يمكن لهذه الأجهزة الافتراضية المتعددة للعبة Cuttlefish مشاركة جزء من قرص المضيف
والموارد، مما يتيح لك توفير مساحة القرص. يحصل كل جهاز افتراضي على
تراكب قرص مميّز يغطي أقسام Android (مثل super
،
userdata
، boot
). يتم وضع أي تعديل على قرص الضيف في
على سطح قرص خاص بالضيف، مما يمنح كل آلة Cuttlefish افتراضية
عرض النسخ عند الكتابة لأقسام القرص. وعندما يكتب كل جهاز افتراضي المزيد من
البيانات إلى عرضها على القرص، فإن ملفات التراكب الموجودة على القرص المضيف تزيد في
لأنها تلتقط الدلتا بين الحالة الأصلية
الحالية.
يمكن إعادة تعيين ملفات التراكب لإرجاع قرص Cuttlefish إلى حالته الأصلية. تُعرف هذه العملية باسم Powerwash.
أرقام الأجهزة الافتراضية
تنشئ أجهزة الحبار الموارد وتستهلكها على المضيف المرتبط
رقم المثيل. على سبيل المثال، يتم الكشف عن اتصال adb
عبر بروتوكول التحكم بالنقل.
مقبس الخادم في المنفذ 6520
لجهاز Cuttlefish برقم المثيل 1
.
عند تشغيل مثيلات متعددة، فإنها تنشئ مقبس خادم TCP في المنفذ
6520
للجهاز الأول و6521
للجهاز الثاني كما يزيد من
رقم المنفذ لكل جهاز إضافي.
تعديل الحد الأقصى لعدد الأجهزة الافتراضية المتوافقة
يجب تخصيص الموارد من جانب المضيف، مثل أجهزة شبكة TAP، مسبقًا من أجل
آلات حبَّار افتراضية. بشكل افتراضي،
cuttlefish-base Debian
لتوفير الموارد للأرقام على سبيل المثال من 1
إلى 10
.
يمكن تغيير هذا من خلال تعديل num_cvd_accounts
في
/etc/default/cuttlefish-host-resources
وإعادة تشغيل
cuttlefish-host-resources
من خلال تشغيل الأمر التالي:
sudo systemctl restart cuttlefish-host-resources
الإعدادات الأساسية
تمثل الإعدادات الأساسية إعدادات أجهزة حبَّار بتنسيق JSON. يمكنك إنشاء ملفات JSON للإعدادات الأساسية. لوصف تكوين عدة أجهزة حبّار في وحدة سكنية متعددة السيناريو.
في ما يلي وصف التنسيق المستخدَم في ملفات 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 |
الرقم | عدد وحدات المعالجة المركزية الافتراضية المخصّصة للجهاز الافتراضي. |
disk |
كائن | تحدِّد هذه السياسة السمات ذات الصلة بتحديد موقع عناصر نظام الملفات المستخدَمة. لتشغيل مثيل جهاز افتراضي واحد. |
default_build |
سلسلة | مسار نظام الملفات المحلي إلى مجلد يحتوي على جهاز افتراضي لـ Cuttlefish . |
للحصول على مزيد من الأمثلة على ملفات الإعداد التي يتم توزيعها باستخدام cvd
، يمكنك الاطّلاع على
cvd_test_configs
في شجرة التعليمات البرمجية للحبار.
التحكّم في الأجهزة الافتراضية للمستأجرين المتعددين
يصف هذا القسم كيفية تشغيل الأجهزة وإيقافها في حالات استخدام أجهزة متعددة. يمكنك إطلاق عدة أجهزة حبَّار باستخدام الخيارات التالية:
- الإعداد الأساسي: إطلاق الحملة المخصّصة لكل جهاز باستخدام ملف تهيئة JSON يصف قائمة المثيلات المراد إطلاقها.
- صورة ضيف واحدة: تشغيل عدة الأجهزة من صورة ضيف واحدة.
بدء عدة أجهزة افتراضية من الإعدادات الأساسية
لتشغيل أجهزة افتراضية متعددة باستخدام إعدادات أساسية تصف
في سيناريو متعدّد عملاء، عليك استدعاء الأمر cvd start
باستخدام --config_file=
بادئة العلامة على النحو التالي:
cvd start --config_file=CONFIG_FILE
في ما يلي مثال على استدعاء يشير إلى ملف إعداد أساسي باسم
/etc/phone.json
cvd start --config_file=/etc/phone.json
بدء عدة أجهزة افتراضية من صورة ضيف واحدة
لإطلاق عدة أجهزة حبَّار باستخدام صورة ضيف واحدة، استخدِم
علم --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 هو المثيل الأساسي رقم في شكل مكون من رقمين. على سبيل المثال، لإطلاق الحبار مع مستخدم الحسابvsoc-01
، تشغيل:cvd start --base_instance_num=1
كيفية إيقاف الأجهزة
لإيقاف جميع الأجهزة التي تم تشغيلها من خلال استدعاء "cvd start
" الأخير، شغِّل:
cvd stop