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


محمد أحمد العيل

سنعرض في هذا الدرس، الرابع من سلسلة دروس الحوسبة الافتراضية باستخدام KVM، كيفية إدارة الآلات الافتراضية عن طريق أدوات تعمل على سطر الأوامر؛ بدلا من واجهة virt-manager الرسومية. تفيد أدوات سطر الأوامر خصوصا في كتابة السكربتات لأتمتة Automating المهام. سنرى الأدوات التاليّة:

  • virt-install: لإنشاء الآلات الافتراضية وضبطها.
  • virsh: لإنشاء مجامع التخزين وإعدادها.
  • qemu-img: لإدارة تجزئات التخزين الافتراضية.

kvm-4.png

إعداد مجمع تخزين

تُعد أداة virsh على سطر الأوامر واجهةً لإدارة الآلات الافتراضية وإعدادها. سنستخدم هذه الأداة في الفقرات المقبلة لإنشاء مجمع تخزين لبيئة KVM. ننفذ الأمر pool-define-as مع virsh لتعريف مجمع تخزين جديد. نمرّر للأمر اسم المجمع، نوعه ومعطيات النوع. يبلغ عدد معطيات نوع المجمع خمسة، وتختلف معطيات نوع المجمع التي يجب تمريرها إلى الأمر من نوع إلى أخر. إن أردنا - مثلا - إنشاء مجمع تخزين مماثل للمجمع SPool1 الذي أنشأناه في الدرس الماضي ، والذي هو من نوع dir فسنحتاج لذكر المعطى target (الأخير من المعطيات الخمسة، ويشير إلى مسار مجلّد على النظام المضيف) فقط ونعوّض المعطيات الأربعة المتبقية بعلامة -:

$ sudo virsh pool-define-as SPool1CL dir - - - - "/mnt/spools/Spool1New"
Pool SPool1CL defined

تظهر بعد تنفيذ الأمر رسالة توضّح أن مجمع التخزين قد عُرِّف.

ملحوظة: أسمينا مجمع التخزين SPool1CL لتمييزه عن مجمع التخزين الذي أنشأناه في الدرس السابق.

يمكننا سرد جميع مجامع التخزين المتوفّرة على النظام بتمرير المعطى all-- إلى الأمر virsh pool-list:

$ sudo virsh pool-list --all
Name                 State      Autostart 
-------------------------------------------
default              active     yes       
SPool1               active     yes       
SPool1CL             inactive   no        
SPool2               active     yes

ستلاحظ ظهور مجمع التخزين SPool1CL إلى جانب مجامع التخزين التي أنشأناها في الدرس الماضي؛ لكنّه يختلف عنها في الحالة State والتفعيل التلقائي (Autostart). في الواقع، الأمر السابق يعرّف مجمع تخزين، ولكنه لا ينشئه فعليا. ننفّذ الأمر virsh pool-build لإنشاء مجمع التخزين SPool1CL المعرَّف أعلاه:

$ sudo virsh pool-build SPool1CL
Pool SPool1CL built

تظهر بعد تنفيذ الأمر رسالة تخبرنا بإنشاء المجمع SPool1CL. يمكننا الآن تفعيل SPool1CL (تغيير الحالة من خامل inactive إلى نشِط active):

$ sudo virsh pool-start SPool1CL
Pool SPool1CL started

إن أعدنا سرد جميع مجامع التخزين في النظام فسنلاحظ تغيّر حالة SPool1CL من inactive إلى active:

$ sudo virsh pool-list --all
Name                 State      Autostart 
-------------------------------------------
default              active     yes       
SPool1               active     yes       
SPool1CL             active     no        
SPool2               active     yes

بقي لنا تفعيل التفعيل التلقائي لـSPool1CL بتنفيذ الأمر التالي:

$ sudo virsh pool-autostart SPool1CL
Pool SPool1CL marked as autostarted

فلنعرض معلومات مفصّلة عن مجمع التخزين الذي أكملنا إنشاءه للتو:

$ sudo virsh pool-info SPool1CL
Name:           SPool1CL
UUID:           120247f3-669c-4868-8c1e-bbd134077f55
State:          running
Persistent:     yes
Autostart:      yes
Capacity:       184.33 GiB
Allocation:     17.90 GiB
Available:      166.43 GiB

مجمع التخزين SPool1CL جاهز الآن للاستخدام. يُضبَط مجمع تخزين جديد إذن على خطوات: التعريف pool-define-as، الإنشاء pool-build، التفعيل pool-start والتفعيل التلقائي pool-autostart.

إعداد تجزئات تخزين افتراضية

حان الآن دور التجزئات الافتراضية التي نستخدم الأداة qemu-img لإعدادها. سننشئ بهذه الأداة تجزئة افتراضية جديدة على مجمع التخزين SPool1CL. نحدّد للأداة الأمر الذي نريد تنفيذه (create بالنسبة للإنشاء)، صيغة تجزئة التخزين، مسار الملفّ الخاصّ بالتجزئة وحجمها:

$ sudo qemu-img create -f raw /mnt/spools/Spool1New/SVol1.img 10G
Formatting '/mnt/spools/Spool1New/SVol1.img', fmt=raw size=10737418240

لاحظ أن مسار الملفّ الخاصّ بالتجزئة mnt/spools/Spool1New/SVol1.img/ يوجد ضمن المجلّد mnt/spools/Spool1New/ الخاصّ بمجمع التخزين الذي أنشأناه أعلاه (تذكّر أننا حدّدنا النوع dir، الذي يحفظ التجزئات الافتراضية ضمن مجلد يوجد في نظام التشغيل).

يمكن التحقّق من خاصيّات التجزئة بتنفيذ الأمر qemu-img info:

$ sudo qemu-img info /mnt/spools/Spool1New/SVol1.img
image: /mnt/spools/Spool1New/SVol1.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 0

تحذير: تجنّب استخدام الأمر qemu-img للتعديل على تجزئات تستخدمها آلالات افتراضية نشطة، أو أي عمليّة Process أخرى؛ فقد يؤدي ذلك إلى إفساد التجزئة.

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

الخطوة الأخيرة هي إنشاء آلة افتراضية وتثبيت نظام تشغيل عليها؛ نستخدم الأداة virt-install لهذا الغرض. يتطلّب إنشاء آلة افتراضية جديدة تمرير المعطيات التاليّة إلى الأمر virt-install:

  • اسم الآلة الافتراضية name--.
  • مسار التجزئة التي نريد استخدامها مع الآلة الافتراضية disk path--.
  • كيفية الاتصال بالآلة الافتراضية graphics--. تكون هذه القيمة عادة spice (اسم برمجية للتخاطب مع أسطح المكتب الافتراضية، موجودة في حزمة libvirt-bin).
  • عدد المعالجات الافتراضية vcpu--.
  • حجم الذاكرة العشوائية بالميغابايت ram--.
  • مسار ملفّ ISO المستخدَم لتثبيت نظام التشغيل الضيف على الآلة الافتراضية cdrom--.
  • واجهة الشبكة الافتراضية network--.

     

$ sudo virt-install --name=win7 --disk path=/mnt/spools/Spool1New/SVol1.img --graphics spice --vcpu=2 --ram=4096 --cdrom=/home/zeine77/Documents/ISOs/GRMCULFRER_FR_DVD.iso --network bridge=virbr0

يبدأ بعد تنفيذ الأمر إنشاءُ الآلة الافتراضية.

01.png

ثم تظهر نافذة منبثقة جديدة لبدء تثبيت نظام التشغيل الضيف.

02.png

ترجمة - بتصرّف - لمقال How to Manage KVM Virtual Environment using Commandline Tools in Linux لصاحبه Mohammad Dosoukey.





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن