كيفية إنشاء آلات افتراضية في Linux باستخدام KVM (Kernel-based Virtual Machine) – الجزء 1

Create Virtual Machines in Linux Using KVM – Part 1

يناقش هذا البرنامج التعليمي مقدمة KVM ونشره وكيفية استخدامه لإنشاء الأجهزة الافتراضية تحت توزيعات تعتمد على RedHat مثل RHEL/CentOS7 و Fedora 21.

ما هو KVM؟

KVM أو (Kernel-based Virtual Machine) هو حلاً كاملاً للتخزين الافتراضي لنظام Linux على أجهزة Intel 64 و AMD 64 والذي يتم تضمينه في نواة Linux الرئيسية منذ الإصدار 2.6.20 وهو مستقر وسريع لمعظم الأعباء العملية.

ميزات KVM

هناك العديد من الميزات والفوائد المفيدة التي ستحصل عليها عند استخدام KVM لنشر منصة الافتراضية الخاصة بك. يدعم برنامج KVM مضيف الافتراضي التالي:

  1. التعهيد الزائد: مما يعني تخصيص مزيد من وحدات المعالجة المركزية أو الذاكرة الافتراضية مما هو متاح من الموارد على النظام.
  2. التخصيص الرقيق: مما يسمح بتخصيص تخزين مرن ويحسن المساحة المتاحة لكل جهاز افتراضي ضيف.
  3. تنظيم إدخال/إخراج القرص: يوفر القدرة على تعيين حد لطلبات إدخال/إخراج القرص المرسلة من الأجهزة الافتراضية إلى الجهاز المضيف.
  4. توازن NUMA التلقائي: يحسن أداء التطبيقات التي تعمل على أنظمة الأجهزة NUMA.
  5. قدرة إضافة وحدة المعالجة المركزية الافتراضية أثناء التشغيل: يوفر القدرة على زيادة الطاقة الحسابية عند الحاجة على أجهزة الكمبيوتر الافتراضية الجارية، دون توقف.

هذه هي سلسلتنا الأولى المستمرة لـ KVM (Kernel-based Virtual Machine)، حيث سنغطي المقالات التالية بطريقة استدلالية.

Part 1: How to Create Virtual Machines in Linux Using KVM (Kernel-based Virtual Machine)

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

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

[root@server ~]# grep -e 'vmx' /proc/cpuinfo
Check Virtualization Support

بالنسبة للمضيفات التي تعتمد على AMD، قم بالتحقق من توافر توسيع الافتراض الخاص بوحدة المعالج.

[root@server ~]# grep -e 'svm' /proc/cpuinfo
Check CPU Virtualization Support

إذا لم يتم عرض أي إخراج، تأكد من تمكين توسيعات الافتراض في البيوس. تحقق من أن وحدات KVM قد تم تحميلها في النواة “يجب أن تكون قد تم تحميلها افتراضيًا”.

[root@server ~]# lsmod | grep kvm

يجب أن يحتوي الإخراج على kvm_intel للمضيفات التي تعتمد على إنتل أو kvm_amd للمضيفات التي تعتمد على AMD.

Check KVM Kernel Module

قبل البدء، ستحتاج إلى حساب روت أو مستخدم غير روت بامتيازات sudo مكونة على نظامك، وتأكد أيضًا من أن نظامك محدّث.

[root@server ~]# yum update

تأكد من أن Selinux في وضع السماح.

[root@server ~]# setenforce 0

الخطوة 1: تثبيت KVM ونشره

1. سنقوم بتثبيت حزم qemu-kvm و qemu-img أولاً. توفر هذه الحزم أدوات إدارة KVM على مستوى المستخدم ومدير صور الأقراص.

[root@server ~]# yum install qemu-kvm qemu-img

2. الآن، لديك المتطلبات الدنيا لنشر منصة افتراضية على مضيفك، ولكن لدينا أيضًا أدوات مفيدة لإدارة منصتنا مثل:

  1. virt-manager توفر أداة واجهة رسومية لإدارة الآلات الافتراضية الخاصة بك.
  2. libvirt-client توفر أداة سطر أوامر لإدارة بيئتك الافتراضية تُسمى virsh.
  3. virt-install توفر الأمر “virt-install” لإنشاء الآلات الافتراضية الخاصة بك من خلال واجهة سطر الأوامر.
  4. يوفر libvirt المكتبات الخادم والمضيف للتفاعل مع مراقبي النظام وأنظمة المضيف.

لنقم بتثبيت هذه الأدوات أعلاه باستخدام الأمر التالي.

[root@server ~]# yum install virt-manager libvirt libvirt-python libvirt-client 

3. بالنسبة لمستخدمي RHEL/CentOS7، يجب أيضًا تثبيت مجموعات حزم إضافية مثل: عميل الافتراضيات، منصة الافتراضيات وأدوات الافتراضيات.

[root@server ~]#yum groupinstall virtualization-client virtualization-platform virtualization-tools	

4. البرنامج الخادم الذي يدير كل المنصة هو “libvirtd“. دعنا نعيد تشغيله.

[root@server ~]#systemctl restart libvirtd

5. بعد إعادة تشغيل البرنامج الخادم، ثم تحقق من حالته من خلال تشغيل الأمر التالي.

[root@server ~]#systemctl status libvirtd  
الناتج النموذجي
libvirtd.service - Virtualization daemon 
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) 
   Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago 
 Main PID: 25701 (libvirtd) 
Check Libvirtd Status

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

الخطوة 2: إنشاء أجهزة الكمبيوتر الافتراضية باستخدام KVM

كما ذكرنا سابقًا، لدينا بعض الأدوات المفيدة لإدارة منصتنا الافتراضية وإنشاء أجهزة كمبيوتر افتراضية. إحدى هذه الأدوات تسمى [virt-manager] والتي سنستخدمها في القسم التالي.

6. على الرغم من أن virt-manager هو أداة تعتمد على واجهة رسومية، يمكننا أيضًا تشغيلها/بدء تشغيلها من الترمينال وكذلك من واجهة الرسومية.

[root@server ~]#virt-manager
استخدام GNOME
Start Virtual Manager in GNOME
استخدام GNOME Classic
Start Virtual Manager in GNOME Classic

7. بعد بدء تشغيل الأداة، ستظهر هذه النافذة.

Start Virtual Manager Window

8. افتراضيًا، ستجد أن المدير متصل مباشرة بـ localhost، ولحسن الحظ يمكنك استخدام نفس الأداة لإدارة مضيف آخر عن بعد. من علامة ” File “، اختر ” إضافة اتصال ” وستظهر هذه النافذة.

Add Connection

تحقق من الخيار “الاتصال بالمضيف عن بُعد” ثم قدم اسم المضيف/عنوان IP للخادم عن بُعد. إذا كنت بحاجة إلى إنشاء اتصال بالمضيف البعيد في كل مرة يبدأ فيها المدير، فقط قم بالتحقق من الخيار “الاتصال التلقائي” .

9. لنعود إلى المضيف المحلي، قبل إنشاء جهاز الكمبيوتر الظاهري الجديد يجب أن تقرر أين ستتم تخزين الملفات؟! بمعنى آخر، يجب عليك إنشاء قرص الحجم (القرص الظاهري / صورة القرص) لجهاز الكمبيوتر الظاهري الجديد.

عبر النقر بزر الماوس الأيمن على المضيف المحلي واختيار “التفاصيل” ثم حدد علامة التبويب “التخزين” .

VM Storage Details
VM Storage Volume

10. بعد ذلك، اضغط على زر “قرص الحجم الجديد” ، ثم أدخل اسم قرصك الظاهري الجديد (قرص الحجم) وأدخل الحجم الذي تريده/تحتاجه في قسم “السعة القصوى” .

Create VM Storage Disk

حجم التخصيص هو الحجم الفعلي لقرصك الذي سيتم تخصيصه على الفور من القرص المادي بعد الانتهاء من الخطوات.

ملاحظة: هذه تقنية مهمة في مجال إدارة التخزين تعرف باسم “التخصيص النحيف“. تُستخدم لتخصيص حجم التخزين المستخدم فقط، وليس كل الحجم المتاح.

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

بمعنى آخر، سيتم تخصيص الحجم الفعلي للمساحة البدنية بشكل ديناميكي اعتمادًا على الحجم الفعلي المستخدم. يمكنك العثور على مزيد من المعلومات بالتفصيل في VMWare vStorage Thin Provisioning.

11. ستلاحظ أن تم ظهور تسمية القرص الجديد في القائمة.

VM Storage Label

يجب أيضًا ملاحظة مسار صورة القرص الجديد (قرص الحجم)، وبشكل افتراضي سيكون تحت /var/lib/libvirt/images، يمكنك التحقق من ذلك باستخدام الأمر التالي.

[root@server Downloads]# ls -l /var/lib/libvirt/images
-rw-------. 1 root root 10737418240 Jan  3 16:47 vm1Storage.img

12. الآن، نحن جاهزون لإنشاء الجهاز الظاهري الخاص بنا. دعنا ننقر على الزر “VM” في النافذة الرئيسية، ستظهر نافذة المعالج هذه.

Create New Virtual Machine

حدد طريقة التثبيت التي ستستخدمها لإنشاء الجهاز الظاهري. في الوقت الحالي، سنستخدم وسائط التثبيت المحلية، وسنناقش الطرق المتبقية لاحقًا.

13. الآن حان الوقت لتحديد وسائط التثبيت المحلية التي ستستخدم، لدينا خياران:

  1. من [CDROM/DVD] فيزيائي.
  2. من صورة ISO.

لدورنا التعليمي، دعنا نستخدم طريقة صورة ISO، لذا يجب عليك توفير مسار صورة ISO الخاصة بك.

Select Installation Media

مهم: للأسف، هناك خلل غبي حقًا لمن يستخدم RHEL/CentOS7. يمنعك هذا الخلل من التثبيت باستخدام [CDROM/DVD] فيزيائي، ستجد أن الخيار محجوب مثل هذا.

Disabled CD DVD Rom in KVM

وإذا قمت بتمرير مؤشر الماوس فوقه، ستظهر رسالة الخطأ هذه.

CD DVD Not Supported in KVM

حتى الآن لا يوجد حلا رسميا/مباشرا لهذا الخلل، يمكنك العثور على مزيد من المعلومات حول ذلك على نفس الرابط https://bugzilla.redhat.com.

14. لقد عاد التخزين، سنستخدم القرص الافتراضي الذي قمنا بإنشائه سابقًا لتثبيت الجهاز الافتراضي عليه. سيكون كما هو موضح.

Enable Storage for Virtual Machine

15. الخطوة النهائية التي تطلب منك اسم الجهاز الافتراضي الخاص بك وخيارات متقدمة أخرى دعنا نتحدث عنها لاحقًا.

Enter Name of Virtual Machine

إذا كنت ترغب في تغيير بعض الإعدادات أو القيام ببعض التخصيص، فقط قم بالتحقق من خيار “التخصيص قبل التثبيت” Customize configuration before install. ثم انقر فوق finish وانتظر بضع ثوانٍ، سيظهر واجهة تحكم لنظام التشغيل الضيف الخاص بك لإدارته

Virtual Machine Installation

الاستنتاج

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

على الرغم من أن هذا ليس نهاية المقال، في مقالاتنا القادمة، سنناقش مواضيع مهمة أخرى تتعلق بـ KVM. قم بتطبيق المعرفة السابقة وكن جاهزًا للجزء التالي…

Source:
https://www.tecmint.com/install-and-configure-kvm-in-linux/