مدخل عملي إلى Proxmox VE

إذا كنت تدير خادمًا واحدًا قويًا وتريد تشغيل عدة أنظمة معزولة فوقه (مثلاً خادم ويب، قاعدة بيانات، بيئة اختبار) دون شراء أجهزة منفصلة، فإن Proxmox VE هو الحل المفتوح المصدر الأكثر شيوعًا لذلك. في هذا المقال نبني فهمًا عمليًا من الصفر: نثبّت الـ hypervisor، ننشئ أول VM وأول حاوية LXC، ونرتّب التخزين والشبكة والنسخ الاحتياطي بأوامر حقيقية قابلة للتنفيذ.

ما هو Proxmox VE ومتى تستخدمه؟

Proxmox VE (اختصارًا PVE) هو منصّة افتراضية مبنية على Debian Linux، تجمع بين تقنيتين: الـ KVM لتشغيل أجهزة افتراضية كاملة (Full Virtualization)، والـ LXC لتشغيل حاويات على مستوى نظام التشغيل (Containers). تُدار كل هذه الموارد من واجهة ويب موحّدة ومن سطر الأوامر.

تستخدمه عندما تريد تحويل خادم فيزيائي واحد إلى عدة خوادم منطقية، أو لبناء مختبر منزلي (homelab)، أو لتشغيل بيئات معزولة للعملاء. وهو بديل مجاني عن VMware ESXi مع دعم تجاري اختياري. إذا كان لديك جهاز واحد فقط بمهمة واحدة بسيطة، فقد لا تحتاجه؛ لكن مع تعدد الخدمات يصبح إدارة الموارد عبره أنظف بكثير.

تثبيت الـ Hypervisor

نزّل ملف الـ ISO الرسمي من موقع Proxmox، ثم اكتبه على فلاش USB. على Linux تستطيع كتابته مباشرة بأداة dd:

dd if=proxmox-ve_8.2.iso of=/dev/sdX bs=1M status=progress
sync

انتبه أن /dev/sdX هو قرص الـ USB نفسه وليس قسمًا (لا تكتب sdX1)، وتأكد من الحرف الصحيح عبر lsblk قبل التنفيذ لأن الأمر يمحو القرص بالكامل.

أقلع الخادم من الـ USB، اختر “Install Proxmox VE”، ثم حدّد القرص الهدف ونظام الملفات (ext4 أو ZFS)، واضبط كلمة مرور root وعنوان IP ثابتًا. بعد انتهاء التثبيت وإعادة الإقلاع، افتح واجهة الويب من متصفحك على المنفذ 8006:

https://192.168.1.50:8006

سجّل الدخول باسم المستخدم root وطريقة المصادقة “Linux PAM”. ستظهر نافذة تنبّه أن الاشتراك غير مفعّل؛ تجاهلها بأمان فالنظام يعمل كاملًا بدون اشتراك مدفوع. للتأكد أن الخدمة تعمل من سطر الأوامر:

systemctl status pveproxy

المخرجات يجب أن تُظهر active (running)، وهذا يعني أن واجهة الويب جاهزة.

إنشاء جهاز افتراضي (VM) بـ KVM

قبل أي شيء، ارفع ملف ISO للنظام الذي تريد تثبيته (مثلاً Ubuntu Server) إلى مخزن الـ ISO. من سطر الأوامر تنشئ VM فارغًا ثم تربط به الـ ISO والقرص. المعرّف الرقمي (VMID) يجب أن يكون فريدًا:

qm create 100 --name ubuntu-web --memory 2048 --cores 2 \
  --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci

qm set 100 --scsi0 local-lvm:32
qm set 100 --ide2 local:iso/ubuntu-22.04-live-server-amd64.iso,media=cdrom
qm set 100 --boot order=ide2;scsi0
qm start 100

السطر الأول ينشئ الجهاز بذاكرة 2 جيجابايت ونواتين وكرت شبكة من نوع virtio مربوط بجسر الشبكة vmbr0. السطر الثاني يضيف قرصًا بحجم 32 جيجابايت على مخزن local-lvm. السطر الثالث يربط الـ ISO كقرص إقلاع، والرابع يجعل الجهاز يقلع من الـ CD أولًا ثم القرص. بعد qm start افتح الـ Console من واجهة الويب لإكمال تثبيت النظام بصريًا.

إنشاء حاوية LXC والفرق بينها وبين الـ VM

الـ VM يحاكي عتادًا كاملًا ويشغّل نواة (kernel) خاصة به، فهو معزول تمامًا لكنه أثقل في استهلاك الموارد. أما حاوية LXC فتشارك نواة الخادم المضيف نفسها، فتكون أخفّ بكثير وأسرع إقلاعًا، لكنها تشغّل أنظمة Linux فقط ولا تصلح لتشغيل Windows أو نواة مختلفة.

أولًا نزّل قالب نظام جاهز للحاويات:

pveam update
pveam available --section system
pveam download local debian-12-standard_12.7-1_amd64.tar.zst

ثم أنشئ الحاوية من هذا القالب:

pct create 200 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
  --hostname db-server --memory 1024 --cores 1 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --password

pct start 200
pct enter 200

الأمر ينشئ حاوية برقم 200 باسم db-server، بذاكرة 1 جيجابايت وقرص جذر 8 جيجابايت، وواجهة شبكة تأخذ IP عبر DHCP. خيار --password يطلب منك إدخال كلمة مرور root للحاوية. أمر pct enter يدخلك مباشرة إلى صدفة الحاوية كأنك عملت SSH إليها.

التخزين: local-lvm و directory و ZFS

يدعم Proxmox عدة أنواع تخزين. أشهرها local-lvm وهو مخصص لأقراص الأجهزة الافتراضية بصيغة block، وlocal من نوع directory يصلح للـ ISO والقوالب والنسخ الاحتياطية، وZFS الذي يوفّر سناب شوتس (snapshots) فورية وضغطًا للبيانات وحماية من تلف البيانات. لعرض حالة كل المخازن والمساحة المتاحة:

pvesm status

المخرجات تعرض اسم كل مخزن ونوعه وحالته (active) والمساحة الكلية والمستخدمة. لإضافة مجلد كمخزن directory جديد مثلًا:

pvesm add dir backups --path /mnt/backups --content backup,iso

هذا يضيف مخزنًا اسمه backups يسمح فقط بتخزين النسخ الاحتياطية وملفات الـ ISO فيه.

الشبكات: Linux bridge و VLAN

الجسر الافتراضي vmbr0 هو محوّل (switch) افتراضي يربط بطاقة الشبكة الفيزيائية بالأجهزة الافتراضية، فتظهر كلها على نفس شبكة الخادم. تُعرّف الجسور في ملف /etc/network/interfaces. مثال على جسر يدعم VLANs:

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.50/24
    gateway 192.168.1.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

السطر bridge-vlan-aware yes يفعّل دعم الـ VLAN على الجسر. بعدها تستطيع وضع أي VM في VLAN معيّن بإضافة وسم الـ tag عند تعريف بطاقتها، مثلًا --net0 virtio,bridge=vmbr0,tag=20 يضع الجهاز في VLAN رقم 20. لتطبيق تغييرات الشبكة دون إعادة إقلاع:

ifreload -a

النسخ الاحتياطي: vzdump والجدولة

أداة vzdump تأخذ نسخة كاملة من VM أو حاوية. لأخذ نسخة فورية مضغوطة من الجهاز رقم 100 وتخزينها على مخزن local:

vzdump 100 --storage local --mode snapshot --compress zstd

الوضع snapshot يأخذ النسخة دون إيقاف الجهاز، وzstd ضغط سريع وفعّال. لاستعادة نسخة لاحقًا:

qmrestore /var/lib/vz/dump/vzdump-qemu-100-XXXX.vma.zst 105

هذا يستعيد النسخة كجهاز جديد برقم 105. لجدولة نسخ تلقائية، الأنظف هو استخدام واجهة الويب من Datacenter > Backup، التي تنشئ مهام مجدولة وتديرها تلقائيًا بدلًا من تحرير الـ cron يدويًا.

أخطاء شائعة

  • نسيان تفعيل nested virtualization: إذا كنت تشغّل Proxmox نفسه داخل جهاز افتراضي، أو تريد تشغيل افتراضية داخل VM، فلن يعمل الـ KVM ما لم تفعّل الـ nested. تحقق بـ cat /sys/module/kvm_intel/parameters/nested ويجب أن تظهر Y.
  • اسم بطاقة الشبكة خاطئ في الجسر: وضع bridge-ports eth0 بينما اسم البطاقة الفعلي eno1 يقطع الشبكة بالكامل بعد إعادة الإقلاع. تأكد من الاسم الصحيح عبر ip link قبل الحفظ.
  • استخدام نوع تخزين خاطئ للمحتوى: محاولة رفع ISO إلى مخزن local-lvm تفشل لأنه block storage لا يقبل الملفات. الـ ISO والقوالب تذهب إلى مخزن من نوع directory مثل local.
  • تكرار الـ VMID: استخدام رقم مستخدم مسبقًا في qm create أو pct create يرفض الأمر؛ اختر رقمًا فريدًا لكل جهاز وحاوية.

الخطوة التالية

بعد إتقان هذه الأساسيات، الخطوة التالية المنطقية هي إعداد جدولة نسخ احتياطي منتظمة من واجهة الويب، ثم تجربة استعادة نسخة فعليًا للتأكد أنها سليمة قبل أن تحتاجها في أزمة. وإذا كان لديك أكثر من خادم، ابدأ بالاطلاع على ميزة الـ Cluster لإدارتها كلها من واجهة واحدة.

اترك تعليقاً