الأجهزة الافتراضية التجريبية
أنشئ مجموعات أجهزة افتراضية محلية على محطة عملك للتطوير والاختبار, دون الحاجة إلى مزوّدي سحابة خارجيين.
المتطلبات
يتطلب rdc ops المحوّل المحلي. غير متاح مع محوّل السحابة.
rdc ops check
نظرة عامة
تتيح لك أوامر rdc ops إنشاء وإدارة مجموعات VM التجريبية محلياً. هذه هي نفس البنية التحتية المستخدمة بواسطة خط أنابيب CI لاختبارات التكامل، وهي متاحة الآن للتجربة العملية.
حالات الاستخدام:
- اختبار نشر Rediacc بدون مزوّدي VM خارجيين (Linode، Vultr، إلخ.)
- تطوير تكوينات المستودعات وتصحيح أخطائها محلياً
- تعلّم المنصة في بيئة معزولة تماماً
- تشغيل اختبارات التكامل على محطة عملك
دعم المنصات
| المنصة | المعمارية | الخلفية | الحالة |
|---|---|---|---|
| Linux | x86_64 | KVM (libvirt) | مختبر في CI |
| macOS | Intel | QEMU + HVF | مختبر في CI |
| Linux | ARM64 | KVM (libvirt) | مدعوم (غير مختبر في CI) |
| macOS | ARM (Apple Silicon) | QEMU + HVF | مدعوم (غير مختبر في CI) |
| Windows | x86_64 / ARM64 | Hyper-V | مخطط |
Linux (KVM) يستخدم libvirt للمحاكاة الافتراضية للأجهزة الأصلية مع الشبكات الجسرية.
macOS (QEMU) يستخدم QEMU مع إطار عمل Hypervisor (HVF) من Apple للحصول على أداء شبه أصلي، مع شبكات وضع المستخدم وإعادة توجيه منافذ SSH.
Windows (Hyper-V) الدعم مخطط. راجع issue #380 للتفاصيل. يتطلب Windows Pro/Enterprise.
المتطلبات الأساسية والإعداد
Linux
# تثبيت المتطلبات الأساسية تلقائياً
rdc ops setup
# أو يدوياً:
sudo apt install libvirt-daemon-system virtinst qemu-utils cloud-image-utils docker.io
sudo systemctl enable --now libvirtd
macOS
# تثبيت المتطلبات الأساسية تلقائياً
rdc ops setup
# أو يدوياً:
brew install qemu cdrtools
التحقق من الإعداد
rdc ops check
يُشغّل هذا الأمر فحوصات خاصة بالمنصة ويُبلّغ عن نجاح/فشل كل متطلب أساسي.
البدء السريع
# 1. التحقق من المتطلبات الأساسية
rdc ops check
# 2. تجهيز مجموعة بسيطة (جسر + عامل واحد)
rdc ops up --basic
# 3. التحقق من حالة VM
rdc ops status
# 4. الاتصال بـ VM الجسر عبر SSH
rdc ops ssh --vm-id 1
# 4b. أو تشغيل أمر مباشرة
rdc ops ssh --vm-id 1 -c hostname
# 5. إيقاف التشغيل
rdc ops down
تكوين المجموعة
بشكل افتراضي، يُجهّز rdc ops up:
| VM | المعرّف | الدور |
|---|---|---|
| Bridge | 1 | العقدة الأساسية, تشغّل خدمة Rediacc bridge |
| Worker 1 | 11 | عقدة عاملة لنشر المستودعات |
| Worker 2 | 12 | عقدة عاملة لنشر المستودعات |
استخدم خيار --basic لتجهيز الجسر والعامل الأول فقط (المعرّفان 1 و 11).
استخدم --skip-orchestration لتجهيز الأجهزة الافتراضية بدون بدء خدمات Rediacc, مفيد لاختبار طبقة VM بمعزل.
الإعداد
يستخدم VM الجسر إعدادات افتراضية أصغر من VMs العاملة:
| دور VM | وحدات المعالج | ذاكرة الوصول العشوائي | القرص |
|---|---|---|---|
| Bridge | 1 | 1024 MB | 8 GB |
| Worker | 2 | 4096 MB | 16 GB |
تتجاوز متغيرات البيئة موارد VM العاملة:
| المتغير | الافتراضي | الوصف |
|---|---|---|
VM_CPU | 2 | أنوية المعالج لكل VM عاملة |
VM_RAM | 4096 | ذاكرة الوصول العشوائي بالميغابايت لكل VM عاملة |
VM_DSK | 16 | حجم القرص بالغيغابايت لكل VM عاملة |
VM_NET_BASE | 192.168.111 | قاعدة الشبكة (KVM فقط) |
RENET_DATA_DIR | ~/.renet | مجلد البيانات لأقراص VM والإعداد |
مرجع الأوامر
| الأمر | الوصف |
|---|---|
rdc ops setup | تثبيت متطلبات المنصة الأساسية (KVM أو QEMU) |
rdc ops check | التحقق من تثبيت المتطلبات الأساسية وعملها |
rdc ops up [options] | تجهيز مجموعة VM |
rdc ops down | تدمير جميع VMs وتنظيف الموارد |
rdc ops status | عرض حالة جميع VMs |
rdc ops ssh <vm-id> [command...] | الاتصال بـ VM عبر SSH، أو تشغيل أمر عليها |
خيارات rdc ops up
| الخيار | الوصف |
|---|---|
--basic | مجموعة بسيطة (جسر + عامل واحد) |
--lite | تخطي تجهيز VM (مفاتيح SSH فقط) |
--force | فرض إعادة إنشاء الأجهزة الافتراضية الموجودة |
--parallel | تجهيز VMs بالتوازي |
--skip-orchestration | VMs فقط، بدون خدمات Rediacc |
--backend <kvm|qemu> | تجاوز الخلفية المكتشفة تلقائياً |
--os <name> | صورة نظام التشغيل (الافتراضي: ubuntu-24.04) |
--debug | مخرجات مفصّلة |
الفروق بين المنصات
Linux (KVM)
- يستخدم libvirt لإدارة دورة حياة VM
- شبكات جسرية, تحصل VMs على عناوين IP على شبكة افتراضية (192.168.111.x)
- اتصال SSH مباشر بعناوين IP للـ VM
- يتطلب
/dev/kvmوخدمة libvirtd
macOS (QEMU + HVF)
- يستخدم عمليات QEMU تُدار عبر ملفات PID
- شبكات وضع المستخدم مع إعادة توجيه منافذ SSH (localhost:222XX)
- SSH عبر المنافذ المُعاد توجيهها، وليس عناوين IP المباشرة
- إنشاء ISOs لـ Cloud-init عبر
mkisofs
استكشاف الأخطاء وإصلاحها
وضع التصحيح
أضف --debug إلى أي أمر للحصول على مخرجات مفصّلة:
rdc ops up --basic --debug
المشاكل الشائعة
KVM غير متاح (Linux)
- تحقق من وجود
/dev/kvm:ls -la /dev/kvm - فعّل المحاكاة الافتراضية في BIOS/UEFI
- حمّل وحدة النواة:
sudo modprobe kvm_intelأوsudo modprobe kvm_amd
libvirtd لا يعمل (Linux)
sudo systemctl enable --now libvirtd
QEMU غير موجود (macOS)
brew install qemu cdrtools
VMs لا تبدأ
- تحقق من مساحة القرص في
~/.renet/disks/ - شغّل
rdc ops checkللتحقق من جميع المتطلبات الأساسية - جرّب
rdc ops downثمrdc ops up --force