Skip to content

v2v: أدوات ترحيل الأجهزة الافتراضية من VMware إلى Cockpit

v2v هي أداة مساعدة مصممة لترحيل الأجهزة الافتراضية من VMware vCenter/ESXi مباشرة إلى جهاز افتراضي دائم في Libvirt على نظام المضيف المحلي (افتراضية منصة Vapor)، باستخدام virt-v2v.

تقوم الأداة تلقائيًا بتثبيت جميع حزم الترحيل اللازمة (بما في ذلك virt-v2v و libguestfs و qemu-utils وصورة نواة التوافق) داخل حاوية Docker ذاتية الاحتواء.

تتم عملية ترحيل جهاز VM من خلال Vapor. بمجرد نجاح عملية الترحيل، سيظهر جهاز VM في Cockpit ويمكن إدارته عبر Cockpit.

متطلبات ما قبل التشغيل

تحتاج إلى تثبيت Docker لمعالجة الترحيل.

لتنفيذ الترحيل بنجاح، يتطلب نظام المضيف وحاوية Docker:

  1. Privileged Mode: مطلوب للوصول إلى افتراضية المضيف وتسريع الأجهزة عبر /dev/kvm ومآخذ النظام.
  2. Libvirt Socket Access: تجميع /var/run/libvirt داخل الحاوية.
  3. Storage Pool Access: تجميع مجلدات تجميع التخزين (مثل /var/lib/libvirt/images أو /home/awanio/data/virtualcompute).
  4. KVM Device Mount: الوصول إلى /dev/kvm لتسريع جهاز guestfs الافتراضي السريع.

تشغيل الترحيل عبر طرفية Vapor

تُنفذ العمليتان 1 و 2 أدناه مرة واحدة فقط لتثبيت حاوية Docker. إذا كانت حاوية Docker متاحة بالفعل، فأنت بحاجة فقط إلى تشغيل العملية 3.

1. تنزيل الصورة

لتنزيل الصورة

bash
docker run --rm r.awan.app/library/tools/v2v:v1.0.4 bootstrap > v2v-install.sh

2. تثبيت/تشغيل الصورة كحاوية:

bash
sudo sh v2v-install.sh

3. ترحيل جهاز VM

أ. التنفيذ عبر طرفية Vapor

يمكنك تشغيل أداة الترحيل إما تفاعليًا (موصى به) أو عبر وسائط CLI.

تفاعليًا (Interactively)

يعرض لك هذا الوضع مطالبات لإعدادات الاتصال وخصائص الهدف، ويقوم بالتحقق من المدخلات ديناميكيًا وحصر الاتصالات المحفوظة.

bash
sudo docker exec -it v2v migrate-v2v -i

خطوات العمل:

  1. تحديد الاعتمادات: إذا كانت هناك اعتمادات محفوظة، اختر اتصالاً أو اختر إدخال تفاصيل جديدة.
  2. نوع الاتصال: حدد vpx (vCenter/vSphere) أو ssh (ESXi مباشر).
  3. تفاصيل VMware: المضيف/IP، واسم المستخدم، وكلمة المرور، والتفاصيل الخاصة بالاتصال:
    • لـ vpx: مسار Datacenter (مثل /Datacenter/Cluster/Host)، وتخطي التحقق من شهادة SSL.
    • لـ ssh: المسار إلى ملف .vmx الخاص بالضيف المستهدف على ESXi.
  4. تخزين الاعتمادات: اختر ما إذا كنت تريد حفظ هذه الاعتمادات في credentials.json (يتم حفظها بأذونات مقيدة 0600).
  5. جهاز VM المصدر: اسم VM المراد ترحيله.
  6. تهيئة الهدف: اسم VM المستهدف على Vapor، وتجميع التخزين المستهدف، وتهيئة واجهة الشبكة (تعيين الشبكة مقابل الجسر).
  7. التنفيذ: مخرجات وحدة التحكم الفورية لتقدم تحويل virt-v2v.
وضع CLI القياسي

يمكنك أيضًا تشغيل الأداة بشكل غير تفاعلي عبر تحديد وسائط سطر الأوامر:

bash
# vCenter Example:
sudo docker exec -it v2v migrate-v2v \
  --type vpx \
  --host vcenter.example.com \
  --username administrator@vsphere.local \
  --datacenter-path /Datacenter/Cluster/Host \
  --source-vm my-vcenter-vm \
  --target-name my-vapor-vm \
  --storage-pool virtualcompute \
  --network-name default

# Direct ESXi/VMX Example:
sudo docker exec -it v2v migrate-v2v \
  --type ssh \
  --host esxi.example.com \
  --username root \
  --vmx-path /vmfs/volumes/datastore1/my-vm/my-vm.vmx \
  --source-vm my-vm \
  --target-name my-vapor-vm \
  --storage-pool default

خيارات CLI:

  • --interactive, -i: إطلاق المطالبة التفاعلية.
  • --type: نوع الاتصال (vpx أو ssh).
  • --host: مضيف VMware أو عنوان IP.
  • --username: اسم مستخدم اتصال VMware.
  • --password: كلمة مرور VMware (إذا تم إغفالها، ستتم مطالبتك بها بأمان).
  • --datacenter-path: مسار vCenter Datacenter.
  • --vmx-path: المسار إلى ملف .vmx للضيف المستهدف على ESXi.
  • --source-vm: اسم VM المصدر.
  • --target-name: اسم VM المرحَّل على Vapor الهدف.
  • --storage-pool: تجميع التخزين المستهدف (الافتراضي: default).
  • --network-type: وضع الشبكة المستهدفة (network أو bridge، الافتراضي: network).
  • --network-name: اسم الشبكة/الجسر المستهدف (الافتراضي: default).

ب. تنفيذ الترحيل من طرفية الحاوية

بمجرد أن تظهر حالة الحاوية كـ running:

  1. انقر على القائمة المنسدلة لإجراءات الحاوية وحدد إجراء Terminal.
  2. ستفتح طرفية الحاوية. سيظهر شريط توجيه يحتوي على أمر الترحيل:
    bash
    migrate-v2v -i
  3. اكتب migrate-v2v -i داخل الطرفية لتشغيل المعالج التفاعلي، أو قم بإطلاقه مع وسائط CLI المطلوبة مباشرة.