كيفية تثبيت وتهيئة ك.ف.م على أوبونتو

تثبيت وتكوين KVM على Ubuntu 18.04 / 20.04 / 22.04

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

في هذا الدليل الشامل، سنغطي كيفية تثبيت وتهيئة KVM على أوبونتو 20.04/22.04. سنمر من خلال الخطوات التالية:

  • تثبيت الحزم المطلوبة
  • التحقق من دعم الأجهزة للافتراضية
  • تحميل وحدات نواة KVM
  • إعداد مجموعة مستخدمين KVM
  • إنشاء آلة افتراضية KVM باستخدام واجهة سطر الأوامر
  • إنشاء آلة افتراضية KVM باستخدام Virt Manager (واجهة رسومية)
  • إدارة الآلات الافتراضية KVM
  • الاحتياطيات وأفضل الممارسات

بحلول نهاية هذا الدليل، سيكون لديك KVM مثبت ومهيأ، وستكون قد أنشأت آلات افتراضية باستخدام كل من واجهة سطر الأوامر والواجهة الرسومية. دعونا نبدأ!

المتطلبات الأساسية

قبل تثبيت KVM، دعونا نراجع المتطلبات الأساسية:

  • نظام تشغيل أوبونتو 20.04/22.04
  • حق الوصول الإداري (جذر) إلى النظام
  • دعم وحدة المعالجة المركزية انتل في تي-إكس أو أيه أم دي-في الافتراضية مفعل في البيوس
  • ما لا يقل عن 2 جيجابايت من الذاكرة العشوائية (4 جيجابايت مستحسنة)

للتحقق من أن وحدة المعالجة المركزية لديك تدعم الافتراضية المادية، قم بتشغيل هذا الأمر:

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

إذا كانت النتيجة 1 أو أكبر، فإن وحدة المعالجة المركزية لديك تدعم الافتراضية المادية.

كما تحتاج إلى التأكد من تمكين الافتراضية في البيوس. أعد تشغيل النظام الخاص بك، ادخل إعدادات البيوس ، وقم بتمكين انتل في تي-إكس/أيه أم دي-في.

الآن دعونا ننتقل إلى تثبيت KVM.

تثبيت KVM والحزم الأخرى المطلوبة

نحن بحاجة إلى تثبيت بعض الحزم لاستخدام KVM. قم بتشغيل هذه الأوامر لتثبيت KVM والمرافق الأخرى المطلوبة:

$ sudo apt update  
$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

يقوم هذا بتثبيت الحزم الرئيسية:

  • qemu-kvm – محاكي المهام الافتراضي على مستوى النواة ومحاكي وحدة المعالجة المركزية
  • libvirt-daemon-system – الخادم الرئيسي الذي يدير الآلات الافتراضية ومحاكي الأجهزة
  • libvirt-clients – أدوات العميل للتفاعل مع libvirt
  • bridge-utils – مطلوبة لإنشاء جسر شبكة
  • virt-manager – واجهة رسومية لإدارة الآلات الافتراضية (اختياري)

تحقق من التثبيت عن طريق التحقق من إصدار KVM:

$ kvm --version

يجب أن يعرض الإخراج إصدار KVM المثبت:

QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.28) 
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

الآن تم تثبيت KVM والمرافق ذات الصلة. ثم ننتقل إلى تحميل الوحدات النواة المطلوبة.

تحميل وحدات نواة KVM

يتطلب KVM تحميل وحدات النواة kvm و kvm_intel/kvm_amd.

تحقق مماإذا تم تحميلها:

$ lsmod | grep kvm

إذا لم يتم تحميلها، قم بتشغيل:

$ sudo modprobe kvm
$ sudo modprobe kvm_intel

يقوم هذا بتحميل وحدات kvm و kvm_intel. تحقق من تحميلها الآن:

$ lsmod | grep kvm

يجب أن يعرض الإخراج الوحدات:

kvm_intel             204800  0
kvm                   593920  1 kvm_intel

تم الآن تحميل وحدات KVM وجاهزة للاستخدام.

إعداد مجموعة مستخدمي KVM

لتحسين الأمان والتحكم في الوصول، سنقوم بإنشاء مجموعة KVM مخصصة وإضافة المستخدمين إليها.

أنشئ مجموعة kvm:

$ sudo groupadd kvm

أضف المستخدم الخاص بك إلى مجموعة kvm:

$ sudo usermod -aG kvm $USER

قم أيضًا بإضافة أي مستخدمين آخرين بحاجة إلى الوصول إلى KVM إلى مجموعة kvm.

الآن يمكننا المتابعة بإنشاء الآلات الافتراضية.

إنشاء آلة افتراضية KVM (واجهة سطر الأوامر)

دعونا ننشئ آلة افتراضية KVM باستخدام أدوات واجهة سطر الأوامر.

سنقوم بتنفيذ الخطوات التالية:

  • إنشاء تخزين للآلة الافتراضية
  • إنشاء جسر شبكة افتراضي
  • تحديد موارد الآلة الافتراضية – نوى وحدة المعالجة المركزية والذاكرة وما إلى ذلك
  • تشغيل تثبيت الآلة الافتراضية

أولاً، أنشئ صورة قرص سيتم استخدامها لتخزين الآلة الافتراضية:

$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-20.qcow2 10G

ينشئ هذا صورة قرص بتنسيق qcow2 في /var/lib/libvirt/images/ubuntu-20.qcow2 بسعة 10 غيغابايت.

ثم، نحتاج إلى إنشاء جسر شبكة حتى تتمكن الآلة الافتراضية من الاتصال بالشبكة.

قم بتحرير /etc/netplan/00-installer-config.yaml وإضافة جسر شبكة:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
    enp0s8:
      dhcp4: yes
        
  bridges:
    br0:
      interfaces: [enp0s3]
      dhcp4: no
      addresses: [192.168.122.1/24]
      gateway4: 192.168.122.1
      nameservers:
         addresses: [8.8.8.8,1.1.1.1]

يربط هذا واجهة enp0s3 ويعين لها عنوان IP 192.168.122.1.

قم بتطبيق التهيئة:

$ sudo netplan apply 

الآن لدينا التخزين والشبكة جاهزة. دعنا نحدد موارد الآلة الافتراضية باستخدام ملف تعريف واجهة سطر الأوامر يسمى ubuntu-vm.xml:

$ sudo nano ubuntu-vm.xml

أضف هذا المحتوى:

<domain type='kvm'>
  <name>ubuntu-vm</name>
  <memory unit='GiB'>2</memory>
  <vcpu>2</vcpu>
  <os>
    <type arch='x86_64'>hvm</type>
  </os>
  <devices>
    <disk type='file' device='disk'>
      <source file='/var/lib/libvirt/images/ubuntu-20.qcow2'/>
      <target dev='vda'/>
    </disk>
    <interface type='bridge'>
      <source bridge='br0'/>
    </interface>
    <graphics type='vnc' listen='0.0.0.0' port='-1'/>
  </devices>
</domain>

يُعرف هذا مجال KVM بما يلي:

  • 2 غيغابايت من الذاكرة العشوائية
  • 2 معالج افتراضي
  • قرص يشير إلى صورة ubuntu-20.qcow2
  • واجهة شبكة متصلة بجسر br0
  • رسومات VNC للوصول عن بُعد

الآن دعنا نبدأ تثبيت الآلة الافتراضية:

$ sudo virt-install --import --name ubuntu-vm --ram 2048 --disk /var/lib/libvirt/images/ubuntu-20.qcow2,size=10 --vcpus 2 --os-type linux --os-variant ubuntu20.04 --network bridge=br0 --graphics vnc --noautoconsole --print-xml > ubuntu-vm.xml
$ sudo virsh define ubuntu-vm.xml
$ sudo virsh start ubuntu-vm

سيبدأ هذا تثبيت أوبونتو 20.04 من صورة ISO. يمكنك الاتصال بواجهة VNC لإكمال التثبيت.

بعد الانتهاء من التثبيت وإقلاع الآلة الافتراضية، تحقق من تشغيلها:

$ sudo virsh list

سيعرض الإخراج الآلة الافتراضية المشغّلة:

 Id    Name                           State
----------------------------------------------------
 2     ubuntu-vm                      running

لقد نجحنا في إنشاء آلة افتراضية KVM باستخدام أدوات واجهة سطر الأوامر!

إنشاء آلة افتراضية KVM (واجهة رسومية)

يمكننا أيضًا استخدام واجهة رسومية مثل Virt Manager لإدارة الآلات الافتراضية KVM.

قم بتثبيت Virt Manager إذا لم تفعل ذلك بالفعل:

$ sudo apt install virt-manager

شغّل Virt Manager إما من واجهة سطر الأوامر أو بيئة سطح المكتب.

اضغط على إنشاء آلة افتراضية جديدة لبدء معالج آلة افتراضية جديدة.

امرُر خلال المعالج لتحديد موارد الآلة الافتراضية والتخزين والشبكة وما إلى ذلك.

على سبيل المثال، حدد استيراد قرص موجود، أدخل مسار صورة qcow2 التي تم إنشاؤها سابقًا، على سبيل المثال /var/lib/libvirt/images/ubuntu-20.qcow2.

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

يجب الآن إنشاء الآلة الافتراضية وإيقاف تشغيلها. انقر بزر الماوس الأيمن عليها وحدد تشغيل لبدء تشغيلها.

قم بالاتصال بواجهة VNC لإكمال تثبيت نظام التشغيل.

لقد أنشأنا الآن آلة افتراضية KVM باستخدام أداة الواجهة الرسومية virt-manager. يمكن أن يساعد استخدام الواجهة الرسومية في تبسيط إدارة العديد من الآلات الافتراضية.

إدارة الآلات الافتراضية KVM

الآن بعد تثبيت KVM وإنشاء الآلات الافتراضية، دعونا نتحدث عن إدارة الآلات الافتراضية.

عرض جميع الآلات الافتراضية:

$ sudo virsh list --all

سيعرض هذا جميع الآلات الافتراضية النشطة وغير النشطة.

تشغيل آلة افتراضية:

$ sudo virsh start ubuntu-vm

إيقاف تشغيل آلة افتراضية:

$ sudo virsh shutdown ubuntu-vm  

إجبار إيقاف تشغيل آلة افتراضية:

$ sudo virsh destroy ubuntu-vm

حذف آلة افتراضية:

$ sudo virsh undefine ubuntu-vm

سيحذف هذا تهيئة الآلة الافتراضية، ولكن لن يحذف صورة القرص.

إيقاف مؤقت/استئناف آلة افتراضية:

$ sudo virsh suspend ubuntu-vm
$ sudo virsh resume ubuntu-vm

إعادة تشغيل آلة افتراضية:

$ sudo virsh reboot ubuntu-vm

الاتصال بواجهة VNC:

$ sudo virt-viewer ubuntu-vm

سيفتح هذا نافذة VNC للتفاعل مع واجهة المستخدم الرسومية للآلة الافتراضية.

حالة الآلة الافتراضية:

$ sudo virsh domstate ubuntu-vm

إحصائيات الآلة الافتراضية:

$ sudo virsh domstats ubuntu-vm

يغطي هذا مهام إدارة الآلات الافتراضية الأساسية مع KVM. يمكنك الرجوع إلى صفحات المساعدة virsh للمزيد من عمليات الإدارة المتقدمة.

الاحتياطيات وأفضل الممارسات

فيما يلي بعض النصائح لتحسين أداء وكفاءة KVM:

  • استخدم برامج تشغيل المحاكاة شبه الكاملة (virtio) للقرص والشبكة. يحسّن هذا معدل الإدخال/الإخراج.
  • استخدم تخزين قائم على LVM. أنشئ مجموعة مجلدات لصور الآلات الافتراضية للسماح بالتخصيص المرن.
  • استخدم جسور الشبكة بدلاً من NAT لأداء شبكة أفضل.
  • فعّل الافتراضية المتداخلة إذا كنت تريد تشغيل آلات افتراضية داخل آلات افتراضية ضيفة.
  • خصص نوى وحدة المعالجة المركزية/الذاكرة بشكل مناسب اعتمادًا على أحمال العمل. لا تقم بالمؤنة الزائدة.
  • قم بأخذ لقطات آلة افتراضية منتظمة قبل التغييرات الرئيسية في التكوين.
  • راقب استخدام موارد الآلة الافتراضية لتحديد أوجه الاختناق.
  • استضف الآلات الافتراضية الحرجة على أجهزة بتخزين/شبكة احتياطية (عالية التوفر).
  • عزل أنواع الآلات الافتراضية باستخدام شبكات جسور وشبكات افتراضية محلية مختلفة.

يساعد اتباع أفضل الممارسات في ضمان بقاء بنيتك التحتية لـ KVM آمنة ومستقرة وقابلة للتوسع.

خلاصة

لقد قمنا بتثبيت KVM على أوبونتو 20.04/22.04، وإنشاء آلات افتراضية باستخدام واجهة سطر الأوامر وVirt Manager، وتناولنا إدارة وتحسين KVM.

توفر KVM حلاً افتراضيًا مفتوح المصدر وفعالاً من حيث التكلفة على لينكس. مع أدائها الممتاز واعتمادها الواسع، إنها محاكي ممتاز لتشغيل آلات افتراضية ضيف لينكس.

نشجعك على استكشاف قدرات KVM أكثر وبناء بيئات افتراضية قوية. سيتيح لك ذلك توحيد الخوادم وعزل الخدمات والاستفادة من ميزات إدارة الآلات الافتراضية القوية.

LEAVE A COMMENT