ديف أوبس

إدارة بيئة KVM عبر سطر الأوامر

إدارة بيئة KVM بأدوات سطر الأوامر

تعد بيئة KVM (Kernel-based Virtual Machine) واحدة من أشهر تقنيات الافتراضية في نظام التشغيل لينكس، حيث تقدم حلاً فعالاً ومرنًا لإنشاء وإدارة الآلات الافتراضية. من خلال هذه التقنية، يمكن للمستخدمين تخصيص موارد الخادم بسهولة، وتشغيل أنظمة تشغيل متعددة على نفس الخادم. في هذا المقال، سنستعرض كيفية إدارة بيئة KVM باستخدام أدوات سطر الأوامر، والتي تتيح للمستخدمين التحكم الكامل في بيئة الافتراضية بشكل ميسر وفعال.

1. مقدمة عن KVM

تُعد KVM واحدة من أكثر تقنيات الافتراضية انتشارًا في بيئات الخوادم التي تستخدم أنظمة التشغيل لينكس. توفر KVM قدرة تشغيل أنظمة تشغيل متعددة في وقت واحد على نفس الجهاز، حيث يتم استغلال معالج الخادم لتحقيق العزل بين الآلات الافتراضية. تدير KVM هذه الآلات عبر مكونات مختلفة، مثل qemu و libvirt، باستخدام أدوات سطر الأوامر لتنفيذ العمليات والمهام.

2. تثبيت KVM على نظام لينكس

لبدء استخدام KVM، يجب أولاً تثبيته على النظام. يعتمد ذلك على نوع التوزيعة التي يستخدمها المستخدم، ولكن العملية الأساسية تشمل تثبيت الحزم الأساسية وتكوين النظام.

2.1 تثبيت الحزم المطلوبة

يتم تثبيت الحزم عبر مدير الحزم المناسب لكل توزيعة. على سبيل المثال، في توزيعة Ubuntu أو Debian، يمكن تثبيت KVM باستخدام الأمر التالي:

bash
sudo apt update sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager

أما في توزيعة CentOS أو RHEL، فيمكن استخدام الأمر التالي:

bash
sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools bridge-utils

2.2 التحقق من التثبيت

بعد تثبيت الحزم المطلوبة، يجب التأكد من أن كود الـ KVM يدعم النظام عبر التأكد من أن المعالج يدعم التقنيات الافتراضية. يمكن القيام بذلك باستخدام الأمر التالي:

bash
egrep -c '(vmx|svm)' /proc/cpuinfo

إذا كانت النتيجة 0، فهذا يعني أن المعالج لا يدعم الافتراضية أو أن هذه الميزة غير مفعلّة في الـ BIOS.

3. أدوات إدارة KVM عبر سطر الأوامر

هناك العديد من الأدوات التي يمكن استخدامها لإدارة بيئة KVM عبر سطر الأوامر، وهذه الأدوات تمكّن المستخدمين من إنشاء وإدارة الآلات الافتراضية، والتعامل مع الشبكات، وتنظيم التخزين.

3.1 أداة virsh

تعد أداة virsh من أكثر الأدوات شيوعًا لإدارة بيئة KVM عبر سطر الأوامر. وهي جزء من مكتبة libvirt وتسمح بإنشاء، وتشغيل، وإيقاف، وحذف الآلات الافتراضية.

إنشاء آلة افتراضية

لإنشاء آلة افتراضية باستخدام virsh، يمكن اتباع الخطوات التالية:

  1. إنشاء ملف XML يصف تكوين الآلة الافتراضية:

    يمكن استخدام أداة virt-install لإنشاء ملف XML:

    bash
    virt-install --name test-vm --ram 1024 --disk path=/var/lib/libvirt/images/test-vm.qcow2,size=10 --vcpus 1 --os-type linux --os-variant ubuntu20.04 --network bridge=virbr0 --graphics none --console pty,target_type=serial --cdrom /path/to/ubuntu.iso
  2. بعد تثبيت الـ VM، يمكن إدارة هذه الآلة باستخدام virsh عبر الأوامر التالية:

    • تشغيل الآلة:

      bash
      virsh start test-vm
    • إيقاف الآلة:

      bash
      virsh shutdown test-vm
    • حذف الآلة:

      bash
      virsh undefine test-vm

3.2 أداة virt-manager

على الرغم من أن virt-manager هي واجهة رسومية، إلا أن هناك أوامر سطر الأوامر المتعلقة بها. ومع ذلك، يعتمد معظم المستخدمين على virsh لإدارة بيئة KVM بشكل رئيسي.

3.3 أداة qemu-img

أداة qemu-img تستخدم لإدارة صور الأقراص الافتراضية. يمكن استخدامها لإنشاء وتحويل وتعديل صور الأقراص.

إنشاء صورة قرص جديد

يمكن إنشاء صورة قرص جديدة باستخدام الأمر التالي:

bash
qemu-img create -f qcow2 /var/lib/libvirt/images/new-vm.qcow2 10G
تحويل صورة قرص إلى تنسيق آخر

لتحويل صورة قرص من تنسيق إلى آخر، يمكن استخدام:

bash
qemu-img convert -f qcow2 -O raw /var/lib/libvirt/images/test-vm.qcow2 /var/lib/libvirt/images/test-vm.raw

3.4 أداة virt-clone

تستخدم أداة virt-clone لإنشاء نسخ من الآلات الافتراضية الحالية. يمكن استخدامها لاستنساخ آلات افتراضية بسرعة.

استنساخ آلة افتراضية

لإنشاء نسخة من آلة افتراضية موجودة، يمكن استخدام:

bash
virt-clone --original test-vm --name test-vm-clone --auto-clone

3.5 أداة virt-sysprep

تستخدم هذه الأداة لتحضير الآلات الافتراضية للاستخدام في بيئات مختلفة، مثل استنساخ الآلات الافتراضية. تقوم بإزالة المعلومات الحساسة مثل SSH keys و logs وغيرها.

bash
virt-sysprep --enable ssh-userdir --no-virtlockd --no-logfiles /path/to/image.qcow2

4. إدارة الشبكات في KVM

يمكن إدارة الشبكات في بيئة KVM باستخدام الأدوات الخاصة بـ libvirt. يمكن إنشاء شبكات افتراضية تكون بمثابة الجسر بين الآلات الافتراضية والشبكة المحلية أو الإنترنت.

4.1 إنشاء شبكة افتراضية

لإنشاء شبكة افتراضية، يمكن استخدام virsh مع ملف XML يصف تكوين الشبكة.

مثال على ملف XML لشبكة افتراضية:

xml
<network> <name>defaultname> <bridge name='virbr0'/> <forward mode='nat'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> dhcp> ip> network>

ثم يمكن إضافة هذه الشبكة باستخدام virsh:

bash
virsh net-define /path/to/network.xml virsh net-start default virsh net-autostart default

4.2 تكوين الآلات الافتراضية على الشبكة

يمكن لكل آلة افتراضية أن تكون متصلة بشبكة افتراضية عن طريق تخصيص واجهة شبكة معينة:

bash
virsh attach-interface --domain test-vm --type network --source default --model virtio --mac 52:54:00:ba:7a:32

5. إدارة التخزين في KVM

تدير KVM أقراصًا افتراضية يمكن تخصيصها للآلات الافتراضية. يمكن استخدام virsh و qemu-img لإدارة هذه الأقراص.

5.1 إضافة قرص إلى آلة افتراضية

لإضافة قرص إلى آلة افتراضية باستخدام virsh:

bash
virsh attach-disk test-vm /var/lib/libvirt/images/new-disk.qcow2 vdb --driver qcow2 --subdriver qcow2 --persistent

5.2 زيادة حجم القرص الافتراضي

يمكن زيادة حجم القرص الافتراضي باستخدام qemu-img:

bash
qemu-img resize /var/lib/libvirt/images/test-vm.qcow2 +10G

ثم يجب توسيع النظام الملفات داخل الآلة الافتراضية لتأكيد التغيير.

6. ملاحظات أمنية في إدارة KVM

عند إدارة بيئة KVM، من المهم مراعاة بعض الجوانب الأمنية، مثل ضمان عزل الآلات الافتراضية بشكل جيد ومنع الوصول غير المصرح به إلى الموارد. يمكن تطبيق سياسات أمان باستخدام أدوات مثل SELinux و AppArmor.

7. الخاتمة

إدارة بيئة KVM باستخدام أدوات سطر الأوامر توفر للمستخدمين مرونة كبيرة في إدارة الآلات الافتراضية، من إنشاء وإيقاف الآلات الافتراضية إلى تخصيص الشبكات والتخزين. على الرغم من أن هناك واجهات رسومية يمكن استخدامها، إلا أن أدوات سطر الأوامر تظل الخيار المفضل للعديد من المحترفين بسبب مرونتها وكفاءتها.