المحتوى عن 'virtualization'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML
    • HTML5
  • CSS
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ASP.NET
    • ASP.NET Core
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 3 نتائج

  1. يشير مصطلح الحوسبة الافتراضيّة (التخيّليّة أو الوهميّة) Virtualization إلى إمكانيّة استخدام أنظمة تشغيل مستقلّة ومنفصلة في وقت واحد على نفس العتاد Hardware. يُعرَف النظام الذي يشغّل العتاد الذي تعمل عليه الأنظمة الأخرى، يُعرَف بالمضيف Host؛ في ما يُعدّ كلّ من واحد الأنظمة الأخرى ضيفا Guest. يتولّى برنامج يُعرف بالمراقِب Hypervisor توفير موارد افتراضيّة (معالج، ذاكرة عشوائيّة، واجهات شبكة وغيرها) بالاعتماد على الموارد الفعليّة (العتاد). يُطلَق عادة على نظامٍ ضيف اسمُ الآلة الافتراضية (الجهاز الافتراضي) Virtual machine. تمكّن الحوسبة الافتراضيّة من الاقتصاد في النفقات من حيث العتاد المطلوب، البنية التحتيّة للشبكة وجهد الصيّانة؛ إضافةً إلى التقليل من المساحة المطلوب تخصيصها لإنشاء بيئة تحتية لنظام معلوماتي. يتناول هذا المقال أساسيّات الحوسبة الافتراضية في Red Hat Enterprise Linux 7 باستخدام KVM (اختصار Kernel-based Virtual Machine؛ الأجهزة الافتراضيّة المعتمدة على نواة لينكس). التحقّق من المتطلّبات وتثبيت الحزم يكمن الشّرط الأول لإنشاء أجهزة افتراضيّة في ضرورة دعم المعالج لتقنيّة الحوسبة الافتراضيّة. يمكن التأكد بتنفيذ الأمر التالي من ذلك: # grep -E 'svm|vmx' /proc/cpuinfo إن كان لديك معالج Intel يدعم الحوسبة الافتراضيّة فستظهر vmx في النتيجة؛ أما إذا كان المعالج من نوع AMD ويدعم هذه التقنيّة فستظهر svm في نتيجة تنفيذ الأمر. ستحتاج إلى تفعيل الحوسبة الافتراضية على محمِّل الإقلاع الأولى (BIOS أو UEFI)؛ بعد التأكد من دعم المعالج لها. ثم ننتقل للخطوة التاليّة وهيّ تثبيت الحزم التي تجلب المراقب KVM وتجعله متاحا على النظام (المُضيف). هذه الحزم هي: qemu-kvm: توفّر إمكانيّة محاكاة العتاد من أجل إنشاء الموارد الافتراضية وجعلها تحت تصرّف النظام الضّيف. qemu-img: أداة تعمل على سطر الأوامر للتعامل مع نظائر الأقراص Disk images. libvirt: تتوفّر هذه الحزمة على الأدوات التي تمكّن من استغلال إمكانيّات الحوسبة الافتراضية التي يتوفّر عليها نظام التّشغيل. libvirt-python: وحدة تتيح للتطبيقات المكتوبة بلغة البرمجة Python استخدامَ الأدوات التي توفّرها الحزمة السّابقة. libguestfs-tools و virt-install: مجموعة من الأدوات تعمل على سطر الأومار لإدارة الأجهزة الافتراضية. ملحوظة: نظائر الأقراص Images هي ملفّات تضمّ المحتوى والبنية الخاصّين بتجزئة قرص أو قرص تخزين كامل؛ مثل الأقراص الصّلبة، الأقراص الضّوئية أو مفاتيح USB. تمكّن النظائر من تكرار محتوى القرص وبنيته تماما، بغضّ النظر عن نوعية نظام الملفات المستخدم على القرص. تأخذ هذه الملفات عادة الامتداد img او iso. أمر التثبيت: # yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install ننفذ الأمرين التاليّين - بعد اكتمال تثبيت الحزم - لبدء تشغيل الخدمة libvirtd وتفعيلها مع إقلاع النظام: # systemctl start libvirtd.service # systemctl enable libvirtd.service لا يمكن مبدئيًّا للجهاز الافتراضي التخاطب مع الشبكة المحليّة LAN أو الإنترنت؛ ولكن يمكنه التخاطب مع الأجهزة الافتراضية الموجودة على نفس المضيف، ومع المضيف نفسه. يجب، لكي يُتاح للأجهزة الضيفة (Guests) الوصولُ إلى الشبكة المحليّة أو الإنترنت؛ إعداد إحدى واجهات الشبكة على المُضيف لتكون جسرا Bridge للأجهزة الضيفة: نضيف السّطر التالي إلى ملفّ إعداد الواجهة (يوجد على الأرجح في المجلّد etc/sysconfig/network-scripts/ ويبدأ اسمه بـifcfg): BRIDGE=br0 حيثُ br0 الاسم الذي اخترناه للجسر. ننشئ ملفّ إعداد للجسر br0 باسم ifcfg-br0 ضمن المجلّد etc/sysconfig/network-scripts/ ونضيف إليه المحتوى التالي؛ غيّر عنوان IP، عنوان البوّابة Gateway ومعلومات DNS بما يناسب: DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.0.18 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NM_CONTROLLED=no DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=br0 ONBOOT=yes DNS1=8.8.8.8 DNS2=8.8.4.4 ثم نفعّل إمكانيّة إعادة التوجيه في الملفّ etc/sysctl.conf/: net.ipv4.ip_forward = 1 لم يتبقّ لنا سوى اعتماد التعديلات بتنفيذ الأمر: # sysctl -p تذكّر أنه يمكنك تحديد نوعيّة البيانات المسموح بمرورها عن طريق الجدار الناري FirewallD إنشاء الأجهزة الافتراضية يحتفظ مراقب الأجهزة الافتراضية مبدئيا بملفات الأجهزة التي ينشئها في المجلد var/lib/libvirt/images/؛ يُنصَح بألا يُعدَّل على آلية العمل هذه إلا إذا كانت هناك حاجة ماسة لذلك. ستحتاج - إن عدّلت مسار ملفات الأجهزة الافتراضية المبدئي - إلى التعامل مع إعدادات SELinux الخاصّة بهذه الملفات مباشرة. تأكّد من أنّ نظام الملفات لديك يحوي مساحة كافيّة لإنشاء الآلات الافتراضية التي ترغب فيها. ينشئ الأمر التالي جهازا افتراضيًّا باسم academy-virt01 بمعالج افتراضي واحد، ذاكرة عشوائيّة تبلغ 1GB وقرص صلب ذي مساحة تخزينية تبلغ 20GB (يُمثَّل القرص الصّلب بالملف var/lib/libvirt/images/academy-virt01.img/). نحدّد الملف rhel-server-7.2-x86_64-dvd.iso الموجود على المسار home/hsoub/ISOs/ ليكون وسيط تثبيت والواجهة br0 لتكون جسرا للاتّصال: # virt-install \ --network bridge=br0 --name academy-virt01 \ --ram=1024 \ --vcpus=1 \ --disk path=/var/lib/libvirt/images/academy-virt01.img,size=20 \ --graphics none \ --cdrom /home/hsoub/ISOs/rhel-server-7.0-x86_64-dvd.iso --extra-args="console=tty0 console=ttyS0,115200" يمكن استخدام وسيط تثبيت موجود على خادوم HTTP بدلا من القرص المحلّي. استخدم في هذه الحالة الخيّار location-- بدلا من cdrom-- وحدّد رابط ملفّ التثبيت على الخادوم. يحدّد الخيار graphics none-- وضع التثبيت باختيار وضع نصّي (غير رسومي)؛ يمكن حذف هذا الخيّار إن كنت تستخدم واجهة رسوميّة. يمرّر الخيّار الأخير extra-args-- معطيات إقلاع النواة Kernel إلى المثبّت من أجل إعداد طرفيّة للوصول إلى الآلة الافتراضية (يشبه الأمر وصلَ شاشة بحاسوب ملموس). ينتج عن تنفيذ الأمر السابق إنشاء جهاز افتراضي بالمواصفات المذكورة وبدء تثبيت نظام تشغيل (RHEL 7) عليه. إدارة الأجهزة الافتراضية في ما يلي المهامّ الأساسيّة التي تحتاج - بوصفك مدير نظام - لمعرفة كيفية أدائها. تُنفَّذ الأوامر التالية على النّظام المضيف. سرد قائمة بالأجهزة الافتراضية # virsh list --all يظهر الأمر قائمة بالأجهزة الافتراضية المُنشأة، أسماءها وحالتها. من المهم الانتباه لمعرّف الجهاز (VM Id)، إذ ستحتاجه لتنفيذ أوامر إدارية أخرى. عرض معلومات عن نظام ضيف (حيث VM_Id معرّف الجهاز الافتراضي): # virsh dominfo VM_Id بدء تشغيل، إعادة تشغيل أو إيقاف نظامٍ ضيف: # virsh start VM_Id # virsh reboot VM_Id # virsh shutdown VM_Id الوصول إلى طرفيّة الجهاز (في حال إعداداها عند إنشاء الجهاز الافتراضي): # virsh console VM_Id تعديل حجم الذاكرة العشوائيّة المتاحة لجهاز افتراضي أو عدد معالجاته الافتراضية: يحتاج التعديل على هذه الموارد أولا إطفاء الجهاز: # virsh shutdown VM_Id ننفذ الأمر التالي للتعديل على إعدادات الجهاز الافتراضي: # virsh edit VM_Id ثم نعدّل قيمة الذاكرة الموجودة بين الوسمين memory: <memory>القيمة الجديدة للذاكرة العشوائيّة</memory> انتبه إلى أن الوحدة المستخدمة للذاكرة هي الميغابايت MB. مثلا؛ اكتب 2048 إن كنت تريد تخصيص 2GB لذاكرة الجهاز. وبالنسبة للمعالج: <cpu>عدد المعالجات الافتراضية</cpu> ثم نعيد تشغيل الجهاز باعتماد التغييرات الجديدة: # virsh create /etc/libvirt/qemu/academy-virt01.xml يمكن ضبط حجم الذاكرة العشوائيّة دون الحاجة لفتح ملف الإعداد بالأمر virsh setmem (حيث mem_size الحجم الجديد): # virsh setmem VM_Id mem_size يمكن بطريقة مشابهة ضبط عدد معالجات جهاز افتراضي: # virsh setvcpus VM_Id vcpus_count تمكن مراجعة هذا الدليل للحصول على قائمة بخيارات الأمر virsh واستعمالاته لإدارة الأجهزة الافتراضية. ترجمة - بتصرّف - لمقال RHCSA Series: Essentials of Virtualization and Guest Administration with KVM – Part 15 لصاحبه Gabriel Cánepa.
  2. تقدّم تقنية KVM (اختصار Kernel-based Virtual Machine؛ الأجهزة الافتراضيّة المعتمدة على نواة لينكس) آلية لتشغيل الحوسبة الافتراضيّة (التخيّليّة أو الوهميّة) Virtualization على الأنظمة العاملة بلينكس. تمكّن هذه الآلية - التي تتوفّر على هيئة وحدة Module في نواة لينكس منذ الإصدار 2.6.20 - من استخدام أنظمة تشغيل مستقلّة ومنفصلة في وقت واحد على نفس العتاد Hardware. يتولّى نظامٌ يُعرَف بالمضيف Host تشغيل العتاد Hardware عن طريق برنامج يُعرَف بالمراقِب Hypervisor. يوفّر المراقب موارد (معالج، ذاكرة عشوائية، أجهزة طرفية وغيرها) للآلات الافتراضيّة. يُسمّى النظام الذي يُشغّل الآلة الافتراضيّة بالنظام الضيف Guest. يقدّم KVM الميزات التاليّة: التعهّد الزائد Over-commiting: يعني تخصيص موارد افتراضيّة (المعالجات والذاكرة العشوائية) أكثر من تلك التي يوفّرها العتاد. التموين السريع Thin provisionning: يسمح بالتوزيع المرن للمساحة التخزينية المتوفّرة والبحث عن أمثل طريقة لمشاركتها بين الآلات الافتراضية. تحجيم الإدخال/الإخراج من القرص Disk I/O throttling: يوفّر إمكانية تعريف حد لطلبات الإدخال والإخراج بالنسبة لكل آلة افتراضيّة. إمكانيّة زيادة قدرات المعالجة الخاصّة بالآلات الافتراضية حسب الطّلب دون الحاجة لإيقافها عن العمل. يتطرّق هذا المقال، الأوّل في سلسلة من أربعة أجزاء، لكيفية استخدام KVM والأدوات التي يوفّرها على توزيعة Ubuntu 16.04. تشترك توزيعات لينكس عموما في الخطوط العريضة، وكثير من الخطوات الواردة في هذه السلسلة. المتطلّبات يجب أن تكون لدى العتاد الذي يعمل عليه النظام المُضيف القدرةُ على تنفيذ طلبات المُراقب عن طريق ما يُعرَف بامتدادات العتاد الخاصّة بالحوسبة الافتراضية Hardware virtualization extensions؛ وهو ما توفّره أغلب الحواسيب الحديثة. يمكّن الأمر kvm-ok من التأكد من جاهزيّة جهازك لاستخدام KVM: $ kvm-ok INFO: /dev/kvm exists KVM acceleration can be used يظهر من نتيجة الأمر أعلاه أن الجهاز قادر على استخدام التقنيّة. تأكّد، إن كانت النتيجة مخالفة، من أن امتدادات العتاد موجودة ومفعّلة في محمّل الإقلاع BIOS (أو UEFI) الخاص بجهازك. تثبيت أدوات KVM ونشر الآلات الافتراضية سنحتاج لبضعة حزم قبل أن يمكننا البدء في إنشاء آلات افتراضية باستخدام KVM. يُثبّت الأمر التالي هذه الحزم: $ sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager تعمل حزمة أدوات kvm-qemu على تشغيل وحدة KVM في النواة لتنفيذ الشفرة البرمجية الخاصّة بالآلة الافتراضية. كما أن هذه الأدوات تحجز الذاكرة العشوائية والموارد التي تحتاجها الآلات الافتراضيّة للعمل؛ زيادة على كونها تعمل على محاكاة عمل الأجهزة الطرفية Peripherals الملموسة التي يتوفّر عليها النظام المُضيف من أجل إتاحة أجهزة طرفية افتراضية للنظام الضيف. تتيح الحزمة libvirt-bin مجموعة من الأدوات للتخاطب مع قدرات الحوسبة الافتراضية التي يتوفّر عليها الجهاز المضيف. نذكر مثلا الأداة virsh التي يمكن من خلالها إنشاء آلات افتراضية، تعليقها (توقيف مؤقّت) أو إيقافها عن العمل. تحوي الحزمة bridge-utils الأدوات الضرورية لإنشاء أجهزة طرفية تعمل جسورا Bridge بين واجهات شبكة عدّة، ولإدارة هذه الأجهزة. من المهمّ توفّر هذه الميزة حتى يمكننا ضبط شبكة حواسيب تشمل الآلات الافتراضية. توفّر حزمة virt-manage واجهة رسومية لإدارة الآلات الافتراضية. الخطوة التاليّة هي إضافة المستخدم الحالي إلى مجموعة المستخدمين libvirtd حتى يمكنه استخدام الآلات الافتراضيّة التي ننشئها عن طريق KVM؛ إذ لا تُتاح هذه الوظيفة لغير أعضاء هذه المجموعة والحساب الجذر: $ sudo adduser zeine77 libvirtd نطلُب، من أجل التأكد من أن كل شيء على ما يُرام، سردَ الآلات الافتراضية المتوفّرة؛ وذلك باستخدام الأمر virsh على النحو التالي: $ virsh -c qemu:///system list Id Name State ---------------------------------------------------- لا توجد آلات افتراضية لحد الساعة، لذا لن تظهر معلومات عن هذه الآلات؛ وسيكتفي الأمر بعرض أسماء أعمدة (المعرّف Id، الاسم Name والحالة State) تصف معلومات تتعلّق بالآلات الافتراضية. تشير هذه النتيجة إلى أننا مستعدون الآن للبدء في استخدام KVM. إنشاء آلات افتراضية باستخدام KVM سنستخدم في هذا الجزء من المقال الأداة virt-manager للتخاطب مع KVM من أجل إنشاء آلات افتراضية. يمكن تشغيل virt-manager من قوائم سطح المكتب الذي تستخدمه (Gnome، KDE أو غيرهما) أو بتنفيذ الأمر virt-manager في سطر الأوامر. تظهر النافذة التاليّة بعد تشغيل الأداة. يظهر في واجهة البرنامج أنه متّصل بمضيف محلي يستخدم المُراقب QEMU/KVM. يمكن من هذه الواجهة الاتّصال بمضيفات Hosts بعيدة (توجد على أجهزة مغايرة للجهاز الذي تعمل عليه الأداة virt-manager)، وذلك عن طريق القائمة …File -> Add Connection ثم تحديد الخانة Connect to remote host وذكر البيانات المطلوبة. ننقر على زر Create a new virtual machine في واجهة virt-manager لإنشاء آلة افتراضية جديدة. تظهر نافذة جديدة تطلُب تحديد طريقة لتثبيت نظام التشغيل الضّيف على الآلة الافتراضية. توجد أكثر من طريقة كما يظهر في لقطة الشاشة أعلاه. سنحدّد خيار Local install media (وسيط تثبيت محليّ). تظهر النافذة التاليّة. يمكن عبر الواجهة الظاهرة في الصورة أعلاه الاختيار بين قرص مُدمَج (CD أو DVD) أو ملفّ ISO. سنحدّد الخيار الثاني (ملف ISO) وننقر على الزّر Browse. تظهر النافذة التالية. نستطيع عبر هذه النافذة إنشاء مساحة تخزين Storage volume افتراضية لاستخدامها مع الآلة؛ إلا أننا لن نفعل ذلك الآن وسننقر على الزّر Browse Local لتحديد المسار Path الذي يوجد عليه ملفّ ISO. يعود البرنامج بعد تحديد المسار إلى واجهة الاختيار الخاصة بوسيط التثبيت. نلاحظ أن البرنامج تعرّف تلقائيا على نوعية نظام التشغيل وإصداره اعتمادا على اسم وسيط التثبيت. ثم يطلب منا البرنامج ضبط إعدادات المعالج والذاكرة العشوائية الخاصّين بالآلة الافتراضيّة. نختار القيم المناسبة اعتمادا على العتاد المتوفّر على المُضيف ثم ننتقل لإعدادات التخزين. يمكن تحديد أحد خيارين؛ إما إنشاء مساحة تخزين افتراضية جديدة أو اختيار مساحة تخزين افتراضية موجودة سلفا. بما أننا لم نضبُط مساحة تخزين قبلًا فسنحدّد الخيار الأول. ثم ننتقل للخطوة الأخيرة وهي تحديد اسم للآلة الافتراضية. إن أردت تخصيص عمليّة التثبيت فبإمكانك تحديد الخيار Customize configuration before install (تخصيص الإعدادات قبل التثبيت). ثم ننقر على زر Finish. تبدأ الآلة الافتراضية بالعمل مباشرة وتظهر في واجهة برنامج virt-manager شاشةُ التثبيت الخاصّة بنظام التشغيل الضيف على الآلة الافتراضية. توجد في واجهة virt-manager أزرار للتحكّم في الآلة الافتراضية: إعادة التشغيل Reboot، الإيقاف Shut Down، فرض إعادة التعيين Force reset، فرض الإيقاف Force off (يشبه فصل حاسوب عن الطاقة دون إيقاف نظام التشغيل) وحفظ حالة الآلة Save. كما يمكن عن طريق زرّ Open فتح نافذة خاصّة للآلة الافتراضية يمكن عبرها أخذ لقطات سريعة Snapshots. تخزّن اللقطات السريعة جميع البيانات الموجودة على الآلة ويمكن الرجوع إلى هذه اللقطات في حالات مثل حدوث مشكل مع الآلة الافتراضية، توقفها عن العمل أو لإنشاء آلة افتراضية مطابقة لها تماما. ترجمة - بتصرّف - لمقال How to Create Virtual Machines in Linux Using KVM (Kernel-based Virtual Machine) – Part 1 لصاحبه Mohammad Dosoukey.
  3. يُعتمَد على الأنظمة الوهمية في مختلف البيئات والحالات؛ فلو كنت مطوِّرًا فتوفر لك الأنظمة الوهمية بيئة مُحتوَية حيث تستطيع أن تجري أي نوع من أنواع التطوير دون القلق من تخريب بيئة العمل الرئيسية عندك. وإذا كنت مديرًا للأنظمة، فتستطيع استخدام الأنظمة الوهمية لتعزل خدماتك عزلًا سهلًا وتنقلهم بناءً على الحاجة. تقنية الأنظمة الوهمية الافتراضية المدعومة في أوبنتو هي KVM، تتطلب KVM ملحقات لدعم الأنظمة الوهمية في عتاد Intel و AMD؛ وتقنية Xen مدعومة أيضًا في أوبنتو؛ حيث يمكن أن تستفيد Xen من تلك الملحقات عند توفرها، لكن يمكن تشغيلها على عتاد دون إضافات الأنظمة الوهمية؛ خيار شائع أخر هو Qemu للعتاد بدون ملحقات الأنظمة الوهمية (virtualization extensions). libvirt تُستخدَم المكتبة libvirt للتعامل مع مختلف تقنيات الأنظمة الوهمية؛ وقبل البدء مع libvirt، من الأفضل التحقق أنّ عتادك يدعم الملحقات الضرورية لعمل KVM، وذلك بإدخال الأمر الآتي في الطرفية: kvm-ok ستظهر رسالة تعلِمك إن كان معالجك يدعم أو لا يدعم الملحقات العتادية للأنظمة الوهمية. ملاحظة: يكون من الضروري في أغلب الحواسيب التي تدعم معالجاتها الأنظمة الوهمية أن يفعَّل خيارٌ في BIOS لتمكينها. التواصل الشبكي الوهمي هنالك عدِّة طرق للسماح لنظام وهمي بالوصول إلى الشبكة الخارجية؛ خيار ضبط التواصل الشبكي الوهمي الافتراضي هو «usermode»، الذي يستخدم بروتوكول SLIRP ويمرِّر التراسل الشبكي عبر NAT عبر بطاقة المضيف إلى الشبكة الخارجية. لتمكين وصول المضيفين الخارجيين إلى الخدمات مباشرةً على الأنظمة الوهمية، فيجب استخدام ضبط «bridge»؛ هذا يسمح للبطاقات الشبكية الوهمية بالاتصال إلى الشبكة الخارجية عبر البطاقة العتادية، مما يجعلها تبدو كأنها حواسيب عادية لبقية الشبكة. التثبيت أدخِل ما يلي في الطرفية لتثبيت الحزم اللازمة: sudo apt-get install kvm libvirt-bin يجب إضافة المستخدم الذي سيدير الآلات الوهمية إلى مجموعة libvirtd بعد تثبيت libvirt-bin؛ وبهذا تعطي المستخدم وصولًا إلى خيارات الشبكة المتقدمة؛ وذلك بإدخال الأمر الآتي: sudo adduser $USER libvirtd ملاحظة: إذا كان المستخدم الذي أضفته هو المستخدم الحالي، فيجب عليك تسجيل الخروج ثم الدخول مرةً أخرى لكي تأخذ عضوية المجموعة الجديدة مفعولها. أنت الآن جاهز لتثبيت نظام تشغيل «ضيف» (Guest)؛ طريقة تثبيت نظام التشغيل على الآلات الوهمية هي نفس طريقة تثبيته مباشرةً على العتاد؛ أي أنك إما أن تحتاج إلى أتمتة التثبيت، أو إلى لوحة مفاتيح وشاشة موصولين إلى الآلة الفيزيائية. في حالة الآلات الوهمية، تكون الواجهة الرسومية (GUI) مماثلة لاستخدام لوحة مفاتيح وفأرة فيزيائية؛ فبدلًا من تثبيت واجهة رسومية، يمكن استخدام التطبيق virt-viewer للاتصال إلى الآلة الوهمية باستخدام VNC، راجع القسم «عارض الآلات الوهمية» لمزيدٍ من التفاصيل. هنالك عدِّة طرق لأتمتة تثبيت أوبنتو، إذ يمكن ذلك باستخدام preseed أو kickstart على سبيل المثال. راجع دليل تثبيت أوبنتو للتفاصيل. طريقة أخرى لتثبيت أوبنتو على آلة افتراضية هي استخدام ubuntu-vm-builder، يسمح ubuntu-vm-builder بإعداد متقدم للأقسام، وتنفيذ سكربتات بعد التثبيت ...إلخ. للتفاصيل، راجع القسم «الصور السحابية وأداة uvtools». يمكن ضبط Libvirt مع Xen، راجع صفحة مجتمع أوبنتو المُشار إليها في المصادر. virt-install virt-install هو جزء من حزمة virtinst، أدخِل الأمر الآتي لتثبيتها: sudo apt-get install virtinst هنالك عدِّة خيارات متوفرة عند استخدام virt-install: sudo virt-install -n web_devel -r 256 \ --disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4 -c \ ubuntu-14.04-server-i386.iso --network network=default,model=virtio \ --graphics vnc,listen=0.0.0.0 --noautoconsole -v الخيار ‎-n web_devel: اسم الآلة الوهمية، سيكون web_devel في هذا المثال. الخيار ‎-r 256: تحديد مقدار الذاكرة التي ستستخدمها الآلة الوهمية مقدرًا بالميغابايت. الخيار ‎--disk path=/var/lib/libvirt/images/web_devel.img,size=4: الإشارة إلى مسار القرص الوهمي الذي يمكن أن يكون ملفًا أو قسمًا أو حجمًا وهميًا؛ في هذا المثال هنالك ملف باسم web_devel.img في مجلد ‎/var/lib/libvirt/images/‎ بحجم 4 غيغابايت، وسيستخدم virtio كناقل للقرص (disk bus). الخيار ‎:-c ubuntu-14.04-server-i386.iso الملف الذي سيُستخدَم كقرص CD-ROM وهمي، يمكن أن يكون الملف إما ملف ISO أو مسار إلى جهاز قرص CD-ROM في المضيف. الخيار ‎--network: يوفر معلومات حول البطاقة الشبكية للآلة الوهمية؛ يُستخدَم هنا default، وضُبِط موديل البطاقة إلى virtio. الخيار ‎--graphics vnc,listen=0.0.0.0: تصدير طرفية الضيف باستخدام VNC على جميع البطاقات الشبكية للمضيف؛ إذ عمومًا لا يكون للخادوم واجهة رسومية، لذلك فيمكن لحاسوب آخر على الشبكة المحلية ذي واجهةٍ رسومية أن يتصل عبر VNC لإكمال التثبيت. الخيار ‎--noautoconsole: يؤدي إلى عدم الاتصال تلقائيًا إلى طرفية الآلة الوهمية. الخيار ‎-v: إنشاء ضيف وهمي كامل. بعد تشغيل virt-install يمكنك الاتصال إلى طرفية الآلة الوهمية إما محليًا باستخدام GUI أو باستخدام الأداة virt-viewer. virt-clone يمكن استخدام virt-clone لنسخ آلة وهمية إلى آلة أخرى؛ على سبيل المثال: sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \ --connect=qemu:///system ‎-o: الآلة الوهمية الأصلية. ‎-n: اسم الآلة الوهمية الجديدة. ‎-f: المسار إلى الملف، أو القسم، أو الحجم المنطقي الذي سيُستخدَم من الآلة الوهمية الجديدة. ‎--connect: تحديد «المشرف» (hypervisor) الذي سيُتصَّل به. يمكن أيضًا استخدام الخيار ‎-d أو ‎--debug لاستكشاف الأخطاء مع virt-clone. ملاحظة: استبدل web_devel و database_devel بأسماء ملائمة للآلات الوهمية. إدارة الآلة الوهمية virsh هنالك عدِّة أدوات متوفرة لإدارة الآلات الوهمية و libvirt؛ يمكن أن تُستخدَم الأداة virsh من سطر الأوامر؛ هذه بعض الأمثلة: لعرض قائمة بالآلات الوهمية التي تعمل: virsh -c qemu:///system list لبدء تشغيل آلة وهمية: virsh -c qemu:///system start web_devel وبشكلٍ مشابه، لتشغيل آلة وهمية عند الإقلاع: virsh -c qemu:///system autostart web_devel أعد إقلاع آلة وهمية باستخدام الأمر: virsh -c qemu:///system reboot web_devel يمكن حفظ «حالة» (state) الآلة الوهمية إلى ملف لتُستعاد لاحقًا؛ ما يلي سوف يحفظ حالة الآلة الوهمية إلى ملف مسمى وفقًا لتاريخ اليوم: virsh -c qemu:///system save web_devel web_devel-022708.state ستتوقف الآلة الوهمية عن العمل بعد حفظ حالتها. يمكن استعادة الآلة الوهمية باستخدام: virsh -c qemu:///system restore web_devel-022708.state نفِّذ الأمر لإيقاف تشغيل آلة وهمية: virsh -c qemu:///system shutdown web_devel يمكن وصل جهاز CD-ROM إلى آلة وهمية بالأمر: virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom ملاحظة: استبدل في الأمثلة السابقة web_devel مع اسم الآلة الوهمية الملائم، و web_devel-022708.state باسم ملف أكثر وصفًا. مدير الآلات الوهمية تحتوي حزمة virt-manager على أداة رسومية لإدارة الآلات الوهمية المحلية والبعيدة؛ أدخِل الأمر الآتي لتثبيتها: sudo apt-get install virt-manager لما كانت الأداة virt-manager تتطلب واجهة رسومية (GUI) فمن المستحسن أن تُثبَّت على محطة عمل أو جهاز للاختبارات بدلًا من خادوم إنتاجي؛ أدخِل الأمر الآتي للاتصال بخدمة libvirt محلية: virt-manager -c qemu:///system تستطيع الاتصال بخدمة libvirt في مضيف آخر بإدخال ما يلي في الطرفية: virt-manager -c qemu+ssh://virtnode1.mydomain.com/system ملاحظة: يفترض المثال السابق أن إمكانية الاتصال عبر SSH بين نظام الإدارة و virtnode1.mydomain.com قد ضُبِطَت مسبقًا، وتستخدم مفاتيح SSH للاستيثاق؛ هنالك حاجة لمفاتيح SSH لأن المكتبة libvirt تُرسِل محث كلمة المرور إلى عملية أخرى. للتفاصيل عن ضبط SSH، راجع درس خادوم OpenSSH. عارض الآلات الوهمية يسمح التطبيق virt-viewer لك بالاتصال إلى طرفية الآلة الوهمية لكن virt-viewer يتطلب واجهة رسومية (GUI) للتعامل مع الآلة الوهمية، أدخِل الأمر الآتي من الطرفية لتثبيت virt-viewer: sudo apt-get install virt-viewer بعد تثبيت وتشغيل آلة وهمية، يمكنك الاتصال إلى طرفيتها بالأمر: virt-viewer -c qemu:///system web_devel وكما في virt-manager، يمكن اتصال virt-viewer إلى مضيف بعيد باستخدام SSH مع استيثاق باستخدام مفتاح: virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system web_devel تأكد من استبدال web_devel باسم الآلة الوهمية الملائم. إذا ضبطت استخدام بطاقة شبكية جسرية (bridged network interface)، فيمكنك ضبط وصول SSH إلى الآلة الوهمية؛ راجع درس خادوم OpenSSH لمزيدٍ من المعلومات. مصادر راجع صفحة KVM الرئيسية للمزيد من التفاصيل. للمزيد من المعلومات حول libvirt، انظر إلى صفحة libvirt الرئيسية. موقع «Virtual Machine Manager» فيه المزيد من المعلومات حول تطوير virt-manager. ادخل إلى قناة ‎#ubuntu-virt على خادوم freenode لمناقشة تقنيات الأنظمة الوهمية في أوبنتو. مصدر آخر جيد هو صفحة ويكي أوبنتو «KVM». للمزيد من المعلومات حول Xen، بما فيها استخدام Xen مع libvirt؛ رجاءً راجع صفحة ويكي أوبنتو «Xen». ترجمة -وبتصرف- للمقال Ubuntu Server Guide: libvirt.