إدارة بيئة KVM بأدوات سطر الأوامر
تعد بيئة KVM (Kernel-based Virtual Machine) واحدة من أشهر تقنيات الافتراضية في نظام التشغيل لينكس، حيث تقدم حلاً فعالاً ومرنًا لإنشاء وإدارة الآلات الافتراضية. من خلال هذه التقنية، يمكن للمستخدمين تخصيص موارد الخادم بسهولة، وتشغيل أنظمة تشغيل متعددة على نفس الخادم. في هذا المقال، سنستعرض كيفية إدارة بيئة KVM باستخدام أدوات سطر الأوامر، والتي تتيح للمستخدمين التحكم الكامل في بيئة الافتراضية بشكل ميسر وفعال.
1. مقدمة عن KVM
تُعد KVM واحدة من أكثر تقنيات الافتراضية انتشارًا في بيئات الخوادم التي تستخدم أنظمة التشغيل لينكس. توفر KVM قدرة تشغيل أنظمة تشغيل متعددة في وقت واحد على نفس الجهاز، حيث يتم استغلال معالج الخادم لتحقيق العزل بين الآلات الافتراضية. تدير KVM هذه الآلات عبر مكونات مختلفة، مثل qemu و libvirt، باستخدام أدوات سطر الأوامر لتنفيذ العمليات والمهام.
2. تثبيت KVM على نظام لينكس
لبدء استخدام KVM، يجب أولاً تثبيته على النظام. يعتمد ذلك على نوع التوزيعة التي يستخدمها المستخدم، ولكن العملية الأساسية تشمل تثبيت الحزم الأساسية وتكوين النظام.
2.1 تثبيت الحزم المطلوبة
يتم تثبيت الحزم عبر مدير الحزم المناسب لكل توزيعة. على سبيل المثال، في توزيعة Ubuntu أو Debian، يمكن تثبيت KVM باستخدام الأمر التالي:
bashsudo apt update sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager
أما في توزيعة CentOS أو RHEL، فيمكن استخدام الأمر التالي:
bashsudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools bridge-utils
2.2 التحقق من التثبيت
بعد تثبيت الحزم المطلوبة، يجب التأكد من أن كود الـ KVM يدعم النظام عبر التأكد من أن المعالج يدعم التقنيات الافتراضية. يمكن القيام بذلك باستخدام الأمر التالي:
bashegrep -c '(vmx|svm)' /proc/cpuinfo
إذا كانت النتيجة 0، فهذا يعني أن المعالج لا يدعم الافتراضية أو أن هذه الميزة غير مفعلّة في الـ BIOS.
3. أدوات إدارة KVM عبر سطر الأوامر
هناك العديد من الأدوات التي يمكن استخدامها لإدارة بيئة KVM عبر سطر الأوامر، وهذه الأدوات تمكّن المستخدمين من إنشاء وإدارة الآلات الافتراضية، والتعامل مع الشبكات، وتنظيم التخزين.
3.1 أداة virsh
تعد أداة virsh من أكثر الأدوات شيوعًا لإدارة بيئة KVM عبر سطر الأوامر. وهي جزء من مكتبة libvirt وتسمح بإنشاء، وتشغيل، وإيقاف، وحذف الآلات الافتراضية.
إنشاء آلة افتراضية
لإنشاء آلة افتراضية باستخدام virsh، يمكن اتباع الخطوات التالية:
-
إنشاء ملف XML يصف تكوين الآلة الافتراضية:
يمكن استخدام أداة
virt-installلإنشاء ملف XML:bashvirt-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 -
بعد تثبيت الـ VM، يمكن إدارة هذه الآلة باستخدام
virshعبر الأوامر التالية:-
تشغيل الآلة:
bashvirsh start test-vm -
إيقاف الآلة:
bashvirsh shutdown test-vm -
حذف الآلة:
bashvirsh undefine test-vm
-
3.2 أداة virt-manager
على الرغم من أن virt-manager هي واجهة رسومية، إلا أن هناك أوامر سطر الأوامر المتعلقة بها. ومع ذلك، يعتمد معظم المستخدمين على virsh لإدارة بيئة KVM بشكل رئيسي.
3.3 أداة qemu-img
أداة qemu-img تستخدم لإدارة صور الأقراص الافتراضية. يمكن استخدامها لإنشاء وتحويل وتعديل صور الأقراص.
إنشاء صورة قرص جديد
يمكن إنشاء صورة قرص جديدة باستخدام الأمر التالي:
bashqemu-img create -f qcow2 /var/lib/libvirt/images/new-vm.qcow2 10G
تحويل صورة قرص إلى تنسيق آخر
لتحويل صورة قرص من تنسيق إلى آخر، يمكن استخدام:
bashqemu-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 لإنشاء نسخ من الآلات الافتراضية الحالية. يمكن استخدامها لاستنساخ آلات افتراضية بسرعة.
استنساخ آلة افتراضية
لإنشاء نسخة من آلة افتراضية موجودة، يمكن استخدام:
bashvirt-clone --original test-vm --name test-vm-clone --auto-clone
3.5 أداة virt-sysprep
تستخدم هذه الأداة لتحضير الآلات الافتراضية للاستخدام في بيئات مختلفة، مثل استنساخ الآلات الافتراضية. تقوم بإزالة المعلومات الحساسة مثل SSH keys و logs وغيرها.
bashvirt-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:
bashvirsh net-define /path/to/network.xml virsh net-start default virsh net-autostart default
4.2 تكوين الآلات الافتراضية على الشبكة
يمكن لكل آلة افتراضية أن تكون متصلة بشبكة افتراضية عن طريق تخصيص واجهة شبكة معينة:
bashvirsh 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:
bashvirsh attach-disk test-vm /var/lib/libvirt/images/new-disk.qcow2 vdb --driver qcow2 --subdriver qcow2 --persistent
5.2 زيادة حجم القرص الافتراضي
يمكن زيادة حجم القرص الافتراضي باستخدام qemu-img:
bashqemu-img resize /var/lib/libvirt/images/test-vm.qcow2 +10G
ثم يجب توسيع النظام الملفات داخل الآلة الافتراضية لتأكيد التغيير.
6. ملاحظات أمنية في إدارة KVM
عند إدارة بيئة KVM، من المهم مراعاة بعض الجوانب الأمنية، مثل ضمان عزل الآلات الافتراضية بشكل جيد ومنع الوصول غير المصرح به إلى الموارد. يمكن تطبيق سياسات أمان باستخدام أدوات مثل SELinux و AppArmor.
7. الخاتمة
إدارة بيئة KVM باستخدام أدوات سطر الأوامر توفر للمستخدمين مرونة كبيرة في إدارة الآلات الافتراضية، من إنشاء وإيقاف الآلات الافتراضية إلى تخصيص الشبكات والتخزين. على الرغم من أن هناك واجهات رسومية يمكن استخدامها، إلا أن أدوات سطر الأوامر تظل الخيار المفضل للعديد من المحترفين بسبب مرونتها وكفاءتها.

