
يناقش هذا البرنامج التعليمي مقدمة KVM ونشره وكيفية استخدامه لإنشاء الأجهزة الافتراضية تحت توزيعات تعتمد على RedHat مثل RHEL/CentOS7 و Fedora 21.
ما هو KVM؟
KVM أو (Kernel-based Virtual Machine) هو حلاً كاملاً للتخزين الافتراضي لنظام Linux على أجهزة Intel 64 و AMD 64 والذي يتم تضمينه في نواة Linux الرئيسية منذ الإصدار 2.6.20 وهو مستقر وسريع لمعظم الأعباء العملية.
ميزات KVM
هناك العديد من الميزات والفوائد المفيدة التي ستحصل عليها عند استخدام KVM لنشر منصة الافتراضية الخاصة بك. يدعم برنامج KVM مضيف الافتراضي التالي:
- التعهيد الزائد: مما يعني تخصيص مزيد من وحدات المعالجة المركزية أو الذاكرة الافتراضية مما هو متاح من الموارد على النظام.
- التخصيص الرقيق: مما يسمح بتخصيص تخزين مرن ويحسن المساحة المتاحة لكل جهاز افتراضي ضيف.
- تنظيم إدخال/إخراج القرص: يوفر القدرة على تعيين حد لطلبات إدخال/إخراج القرص المرسلة من الأجهزة الافتراضية إلى الجهاز المضيف.
- توازن NUMA التلقائي: يحسن أداء التطبيقات التي تعمل على أنظمة الأجهزة NUMA.
- قدرة إضافة وحدة المعالجة المركزية الافتراضية أثناء التشغيل: يوفر القدرة على زيادة الطاقة الحسابية عند الحاجة على أجهزة الكمبيوتر الافتراضية الجارية، دون توقف.
هذه هي سلسلتنا الأولى المستمرة لـ KVM (Kernel-based Virtual Machine)، حيث سنغطي المقالات التالية بطريقة استدلالية.
المتطلبات الأساسية
تأكد من أن نظامك يحتوي على توسيعات الافتراضية للأجهزة: بالنسبة للمضيفات التي تعتمد على إنتل، قم بالتحقق من توافر توسيع الافتراض الخاص بوحدة المعالج باستخدام الأمر التالي.
[root@server ~]# grep -e 'vmx' /proc/cpuinfo

بالنسبة للمضيفات التي تعتمد على AMD، قم بالتحقق من توافر توسيع الافتراض الخاص بوحدة المعالج.
[root@server ~]# grep -e 'svm' /proc/cpuinfo

إذا لم يتم عرض أي إخراج، تأكد من تمكين توسيعات الافتراض في البيوس. تحقق من أن وحدات KVM قد تم تحميلها في النواة “يجب أن تكون قد تم تحميلها افتراضيًا”.
[root@server ~]# lsmod | grep kvm
يجب أن يحتوي الإخراج على kvm_intel للمضيفات التي تعتمد على إنتل أو kvm_amd للمضيفات التي تعتمد على AMD.

قبل البدء، ستحتاج إلى حساب روت أو مستخدم غير روت بامتيازات 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. الآن، لديك المتطلبات الدنيا لنشر منصة افتراضية على مضيفك، ولكن لدينا أيضًا أدوات مفيدة لإدارة منصتنا مثل:
- virt-manager توفر أداة واجهة رسومية لإدارة الآلات الافتراضية الخاصة بك.
- libvirt-client توفر أداة سطر أوامر لإدارة بيئتك الافتراضية تُسمى virsh.
- virt-install توفر الأمر “virt-install” لإنشاء الآلات الافتراضية الخاصة بك من خلال واجهة سطر الأوامر.
- يوفر 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)

الآن، دعنا ننتقل إلى القسم التالي لإنشاء أجهزة الكمبيوتر الافتراضية الخاصة بنا.
الخطوة 2: إنشاء أجهزة الكمبيوتر الافتراضية باستخدام KVM
كما ذكرنا سابقًا، لدينا بعض الأدوات المفيدة لإدارة منصتنا الافتراضية وإنشاء أجهزة كمبيوتر افتراضية. إحدى هذه الأدوات تسمى [virt-manager] والتي سنستخدمها في القسم التالي.
6. على الرغم من أن virt-manager هو أداة تعتمد على واجهة رسومية، يمكننا أيضًا تشغيلها/بدء تشغيلها من الترمينال وكذلك من واجهة الرسومية.
[root@server ~]#virt-manager
استخدام GNOME

استخدام GNOME Classic

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

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

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


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

حجم التخصيص هو الحجم الفعلي لقرصك الذي سيتم تخصيصه على الفور من القرص المادي بعد الانتهاء من الخطوات.
ملاحظة: هذه تقنية مهمة في مجال إدارة التخزين تعرف باسم “التخصيص النحيف“. تُستخدم لتخصيص حجم التخزين المستخدم فقط، وليس كل الحجم المتاح.
على سبيل المثال، إذا أنشأت قرصًا ظاهريًا بحجم 60 جيجابايت، ولكنك استخدمت فعليًا فقط 20 جيجابايت، باستخدام هذه التقنية سيكون الحجم المخصص من القرص الثابت الخاص بك 20 جيجابايت وليس 60 جيجابايت.
بمعنى آخر، سيتم تخصيص الحجم الفعلي للمساحة البدنية بشكل ديناميكي اعتمادًا على الحجم الفعلي المستخدم. يمكنك العثور على مزيد من المعلومات بالتفصيل في VMWare vStorage Thin Provisioning.
11. ستلاحظ أن تم ظهور تسمية القرص الجديد في القائمة.

يجب أيضًا ملاحظة مسار صورة القرص الجديد (قرص الحجم)، وبشكل افتراضي سيكون تحت /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” في النافذة الرئيسية، ستظهر نافذة المعالج هذه.

حدد طريقة التثبيت التي ستستخدمها لإنشاء الجهاز الظاهري. في الوقت الحالي، سنستخدم وسائط التثبيت المحلية، وسنناقش الطرق المتبقية لاحقًا.
13. الآن حان الوقت لتحديد وسائط التثبيت المحلية التي ستستخدم، لدينا خياران:
- من [CDROM/DVD] فيزيائي.
- من صورة ISO.
لدورنا التعليمي، دعنا نستخدم طريقة صورة ISO، لذا يجب عليك توفير مسار صورة ISO الخاصة بك.

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

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

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

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

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

الاستنتاج
الآن لقد تعلمت ما هو KVM، كيفية إدارة منصة الافتراضي الخاصة بك باستخدام أدوات واجهة المستخدم الرسومية، كيفية نشر الجهاز الافتراضي باستخدامه وأشياء رائعة أخرى
على الرغم من أن هذا ليس نهاية المقال، في مقالاتنا القادمة، سنناقش مواضيع مهمة أخرى تتعلق بـ KVM. قم بتطبيق المعرفة السابقة وكن جاهزًا للجزء التالي…
Source:
https://www.tecmint.com/install-and-configure-kvm-in-linux/