التكامل
كل مصدر ترحيل وهدف في Condensa يعتبر مزوداً (provider). تقوم بتسجيل المزودين مرة واحدة (يتم تخزين بيانات الاعتماد مشفرة)، ثم تختار مصدراً وهدفاً في معالج الترحيل.
المصادر
| البائع | بيانات الاعتماد |
|---|---|
| VMware vSphere / ESXi | اسم المستخدم + كلمة المرور |
| تحميل ملفات OVA / VHD | — (يعتمد على الملفات) |
الأهداف
| الهدف | متى تختاره | الدليل |
|---|---|---|
| Awanio Cockpit | تقوم بتشغيل أسطول من مضيفي KVM المدارين بواسطة مستوى تحكم Cockpit؛ وتريد تحديد المضيف/المجمع/الشبكة لكل عملية ترحيل | التكامل مع Cockpit |
| Awanio Vapor (مستقل) | مضيف Vapor واحد بدون مستوى تحكم — المواقع الصغيرة، وإثبات المفاهيم | التكامل مع Vapor |
| Awanio CEP (KubeVirt) | الترحيل إلى Kubernetes/KubeVirt عبر CDI | (تم تغطيته في دليل المستخدم) |
يمكن تسجيل مزودين متعددين من نفس البائع جنباً إلى جنب ويتم تمييزهم بواسطة الاسم (label) — على سبيل المثال Cockpit الإنتاجي و Cockpit المخصص للتعافي من الكوارث (DR).
عن VDDK (ينطبق على أهداف Cockpit و Vapor)
لأسرع عمليات نقل — ولتمكين الترحيل الدافئ على الإطلاق — يسحب المضيف الهدف بيانات الأقراص مباشرة من ESXi باستخدام مكتبة VDDK من VMware مع ميزة تتبع الكتل المتغيرة (Changed Block Tracking). مكتبة VDDK مملوكة ولا يمكن تجميعها مسبقاً، لذا يتم تثبيتها مرة واحدة لكل مضيف هدف:
يحتاج السحب المباشر إلى عنصرين على المضيف الهدف، ولا يمكن تضمين سوى أحدهما مع Vapor:
| العنصر | الترخيص | طريقة التثبيت |
|---|---|---|
nbdkit (الإصدار 1.38 أو أحدث) مع إضافة VDDK، بالإضافة إلى qemu-nbd و nbdfuse | حر / مفتوح المصدر | يُثبَّت على المضيف — انظر أدناه |
| مكتبة VDDK من VMware | مملوكة (اتفاقية Broadcom) | تقوم بتنزيلها ثم رفعها عبر واجهة Vapor |
1. ثبّت nbdkit وأدواته على المضيف الهدف.
حزم التوزيعات غالباً قديمة جداً
لا تحمّل إضافة VDDK في nbdkit سوى إصدارات المكتبة التي تعرفها. يأتي Ubuntu 20.04 بالإصدار 1.16 الذي يتعرّف على libvixDiskLib.so.5 و .so.6 فقط، ولا يستطيع تحميل VDDK 7 أو 8 أو 9 إطلاقاً. استخدم الإصدار 1.38 أو أحدث، وفي التوزيعات القديمة قم بالبناء من المصدر كما هو موضّح أدناه.
# Debian 12+/Ubuntu 22.04+ — جرّب الحزم أولاً
sudo apt-get install -y nbdkit nbdkit-plugin-vddk qemu-utils libnbd-bin
# Ubuntu 20.04: the nbdfuse package is called "nbdfuse", not "libnbd-bin"
nbdkit --version # يجب أن يكون 1.38 أو أحدثإذا كانت الحزم غير متوفرة أو قديمة (مثل Ubuntu 20.04)، فابنِ nbdkit من المصدر — هذه هي الخطوات نفسها المستخدمة على مضيفنا المرجعي:
sudo apt-get install -y build-essential pkg-config libtool autoconf \\
qemu-utils libnbd-bin curl
curl -L -o nbdkit-1.38.5.tar.gz https://download.libguestfs.org/nbdkit/1.38-stable/nbdkit-1.38.5.tar.gz
tar xf nbdkit-1.38.5.tar.gz && cd nbdkit-1.38.5
./configure --prefix=/usr/local --disable-perl --disable-python \\
--disable-ruby --disable-rust --disable-ocaml --disable-golang
make -j"$(nproc)"
sudo make install
nbdkit --version # 1.38.5
nbdkit vddk --dump-plugin | head # للتأكد من وجود إضافة VDDK2. ارفع مكتبة VDDK.
- نزّل حزمة VDDK (Linux، x86_64) من بوابة المطورين لدى Broadcom — يكفي حساب مجاني.
- من واجهة Vapor على المضيف الهدف، افتح System → Third-party Libraries، ارفع الحزمة، وتأكد من تحوّل الحالة إلى Installed.
VDDK 9 على التوزيعات القديمة
يتضمّن VDDK 9 نسخته الخاصة من OpenSSL 3 في lib64/. على المضيفات التي تحتوي على إصدار OpenSSL أقدم، وجّه المُحمِّل إلى النسخة المضمّنة — وهو ما يفعله ملف systemd drop-in الخاص بـ Vapor تلقائياً عند ضبط مسار مكتبة VDDK.
يفحص Condensa توفر VDDK لكل عملية ترحيل:
- توفر VDDK ← سحب مباشر؛ يتوفر الترحيل الدافئ.
- غياب VDDK ← تتراجع أهداف Cockpit إلى الترحيل المرحلي (بارد فقط)؛ بينما تتطلب أهداف Vapor المستقلة وجود VDDK وتفشل بسرعة مع رسالة واضحة.