v2v: أدوات ترحيل الأجهزة الافتراضية من VMware إلى Cockpit
v2v هي أداة مساعدة مصممة لترحيل الأجهزة الافتراضية من VMware vCenter/ESXi مباشرة إلى جهاز افتراضي دائم في Libvirt على نظام المضيف المحلي (افتراضية منصة Vapor)، باستخدام virt-v2v.
تقوم الأداة تلقائيًا بتثبيت جميع حزم الترحيل اللازمة (بما في ذلك virt-v2v و libguestfs و qemu-utils وصورة نواة التوافق) داخل حاوية Docker ذاتية الاحتواء.
تتم عملية ترحيل جهاز VM من خلال Vapor. بمجرد نجاح عملية الترحيل، سيظهر جهاز VM في Cockpit ويمكن إدارته عبر Cockpit.
متطلبات ما قبل التشغيل
تحتاج إلى تثبيت Docker لمعالجة الترحيل.
لتنفيذ الترحيل بنجاح، يتطلب نظام المضيف وحاوية Docker:
- Privileged Mode: مطلوب للوصول إلى افتراضية المضيف وتسريع الأجهزة عبر
/dev/kvmومآخذ النظام. - Libvirt Socket Access: تجميع
/var/run/libvirtداخل الحاوية. - Storage Pool Access: تجميع مجلدات تجميع التخزين (مثل
/var/lib/libvirt/imagesأو/home/awanio/data/virtualcompute). - KVM Device Mount: الوصول إلى
/dev/kvmلتسريع جهاز guestfs الافتراضي السريع.
تشغيل الترحيل عبر طرفية Vapor
تُنفذ العمليتان 1 و 2 أدناه مرة واحدة فقط لتثبيت حاوية Docker. إذا كانت حاوية Docker متاحة بالفعل، فأنت بحاجة فقط إلى تشغيل العملية 3.
1. تنزيل الصورة
لتنزيل الصورة
docker run --rm r.awan.app/library/tools/v2v:v1.0.4 bootstrap > v2v-install.sh2. تثبيت/تشغيل الصورة كحاوية:
sudo sh v2v-install.sh3. ترحيل جهاز VM
أ. التنفيذ عبر طرفية Vapor
يمكنك تشغيل أداة الترحيل إما تفاعليًا (موصى به) أو عبر وسائط CLI.
تفاعليًا (Interactively)
يعرض لك هذا الوضع مطالبات لإعدادات الاتصال وخصائص الهدف، ويقوم بالتحقق من المدخلات ديناميكيًا وحصر الاتصالات المحفوظة.
sudo docker exec -it v2v migrate-v2v -iخطوات العمل:
- تحديد الاعتمادات: إذا كانت هناك اعتمادات محفوظة، اختر اتصالاً أو اختر إدخال تفاصيل جديدة.
- نوع الاتصال: حدد
vpx(vCenter/vSphere) أوssh(ESXi مباشر). - تفاصيل VMware: المضيف/IP، واسم المستخدم، وكلمة المرور، والتفاصيل الخاصة بالاتصال:
- لـ
vpx: مسار Datacenter (مثل/Datacenter/Cluster/Host)، وتخطي التحقق من شهادة SSL. - لـ
ssh: المسار إلى ملف.vmxالخاص بالضيف المستهدف على ESXi.
- لـ
- تخزين الاعتمادات: اختر ما إذا كنت تريد حفظ هذه الاعتمادات في
credentials.json(يتم حفظها بأذونات مقيدة0600). - جهاز VM المصدر: اسم VM المراد ترحيله.
- تهيئة الهدف: اسم VM المستهدف على Vapor، وتجميع التخزين المستهدف، وتهيئة واجهة الشبكة (تعيين الشبكة مقابل الجسر).
- التنفيذ: مخرجات وحدة التحكم الفورية لتقدم تحويل
virt-v2v.
وضع CLI القياسي
يمكنك أيضًا تشغيل الأداة بشكل غير تفاعلي عبر تحديد وسائط سطر الأوامر:
# 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:
- انقر على القائمة المنسدلة لإجراءات الحاوية وحدد إجراء Terminal.
- ستفتح طرفية الحاوية. سيظهر شريط توجيه يحتوي على أمر الترحيل:bash
migrate-v2v -i - اكتب
migrate-v2v -iداخل الطرفية لتشغيل المعالج التفاعلي، أو قم بإطلاقه مع وسائط CLI المطلوبة مباشرة.