تسمح ميزة "المستأجرون المتعدّدون" في Cuttlefish لجهازك المضيف بتشغيل عدّة أجهزة ضيف افتراضية من خلال طلب تشغيل واحد.
يمكن لهذه الأجهزة الافتراضية المتعدّدة من Cuttlefish مشاركة بعض موارد القرص المضيف، ما يتيح لك توفير مساحة القرص. يحصل كل جهاز افتراضي على
طبقة فوق القرص تغطّي أقسام Android (مثل super
،
userdata
، boot
). ويتم وضع أي تعديل على قرص الضيف في
طبقة فوق القرص خاصة بالضيف، ما يمنح كل جهاز افتراضي من Cuttlefish
عرضًا للنسخ عند الكتابة لأقسام القرص. وعندما يكتب كل جهاز افتراضي المزيد من
البيانات في عرض القرص، يزداد حجم ملفات التراكب على القرص المضيف لأنّها تُسجِّل الفرق بين الحالة الأصلية والحالة
الحالية.
يمكن إعادة ضبط ملفات التراكب لإعادة قرص Cuttlefish إلى حالته الأصلية. تُعرف هذه العملية باسم التنظيف القوي.
أرقام النماذج
تنشئ أجهزة Cuttlefish موارد وتستهلكها على المضيف المرتبط
برقم المثيل. على سبيل المثال، يتم عرض اتصال adb
من خلال مقبس خادم
TCP على المنفذ 6520
لجهاز Cuttlefish الذي يحمل رقم الإصدار 1
.
عند تشغيل عدّة نُسخ، يتم إنشاء مقبس خادم TCP على المنفذ
6520
للجهاز الأول و6521
للجهاز الثاني، ويتم زيادة
رقم المنفذ لكل جهاز إضافي.
تعديل الحد الأقصى لعدد النُسخ المتوافقة
يجب تخصيص الموارد من جهة المضيف، مثل أجهزة شبكة TAP، مسبقًا ل
أجهزة Cuttlefish الافتراضية. بشكلٍ تلقائي، تقدّم حزمة Debian
cuttlefish-base
موارد لأرقام النماذج من 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 |
عنصر | تحدِّد السمات التي تنطبق على بيئة الجهاز الظاهري الخاصة بمثيل device. |
memory_mb |
الرقم | مقدار الذاكرة المخصّصة لجهاز افتراضي معيّن بالميغابايت. |
setupwizard_mode |
سلسلة | يحدِّد هذا الإعداد ما إذا كان سيتم تشغيل معالج إعداد الجهاز للمستخدم عند
تشغيل الجهاز لأول مرة. الخيارات المتوافقة لوضع معالج الإعداد هي
DISABLED وOPTIONAL و
REQUIRED . |
cpus |
الرقم | عدد وحدات المعالجة المركزية الافتراضية المخصّصة للجهاز الظاهري |
disk |
عنصر | تحدِّد السمات ذات الصلة بتحديد موقع عناصر نظام الملفات المستخدَمة لتشغيل مثيل جهاز افتراضي واحد. |
default_build |
سلسلة | مسار نظام الملفات على الجهاز إلى مجلد يحتوي على صورة جهاز افتراضي Cuttlefish |
لمزيد من الأمثلة على ملفات الإعداد التي يتم توزيعها مع cvd
، اطّلِع على المجلد
cvd_test_configs
في شجرة رموز Cuttlefish البرمجية.
التحكّم في النُسخ المشترَكة بين العملاء
يوضّح هذا القسم كيفية إنشاء الأجهزة وإزالتها في سيناريو يضمّ مستأجرين متعدّدين. يمكنك تشغيل أجهزة Cuttlefish متعددة باستخدام الخيارات التالية:
- الإعداد الأساسي: يمكنك إطلاق إعدادات مخصّصة لكل جهاز باستخدام ملف إعدادات JSON يصف قائمة النُسخ التي سيتم إطلاقها.
- صورة ضيف واحدة: يمكنك تشغيل عدة أجهزة من صورة ضيف واحدة.
بدء عدة أجهزة افتراضية من الإعداد الأساسي
لإنشاء عدة أجهزة افتراضية باستخدام إعداد أساسي يصف سيناريو المشغّلين المتعدّدين، يمكنك استدعاء الأمر cvd create
مع البادئة --config_file=
للعلامة على النحو التالي:
cvd create --config_file=CONFIG_FILE
في ما يلي مثال على طلب يشير إلى ملف إعدادات أساسي باسم
/etc/phone.json
.
cvd create --config_file=/etc/phone.json
بدء عدة أجهزة افتراضية من صورة ضيف واحدة
لتشغيل أجهزة Cuttlefish متعددة باستخدام صورة ضيف واحدة، استخدِم العلامة
--num_instances=N
، حيث يكون N هو عدد
الأجهزة المطلوب تشغيلها. تبدأ الأجهزة تلقائيًا من رقم النسخة 1
.
cvd create --num_instances=N
لتغيير رقم النسخة الافتتاحية، نفِّذ أحد الإجراءات التالية:
أضِف علامة
--base_instance_num=N
مع N كرقم المثيل الأول.cvd create --base_instance_num=N
ابدأ Cuttlefish باستخدام حساب مستخدم يتطابق مع
vsoc-NN
، حيث يكون NN هو قاعدة مثيل رقمًا من رقمين. على سبيل المثال، لتشغيل Cuttlefish باستخدام حساب مستخدمvsoc-01
، يمكنك تنفيذ ما يلي:cvd create --base_instance_num=1
كيفية إيقاف الأجهزة
لإيقاف جميع الأجهزة التي تم تشغيلها من خلال آخر عملية استدعاء cvd create
، يمكنك تنفيذ ما يلي:
cvd stop
لإعادة تشغيل الأجهزة التي تم إيقافها، شغِّل:
cvd start
لإزالة جهاز نهائيًا من النظام، اتّبِع الخطوات التالية:
cvd remove