qemu/kvm یک نرم افزار آزاد و رایگان بوده که برای کاربران گنو/لینوکس و علاقه مندان به دنیای نرم افزارهای آزاد بسیار محبوب و مورد توجه است. اگر شما کاربر لینوکس هستید ما به شما توصیه میکنیم برای ساخت و مدیریت ماشین های مجازی خود از این ابزار قوی و آسان استفاده نمائید. شما میتوانید با استفاده از KVM که در هسته لینوکس تعبیه شده است ماشین های مجازی لینوکسی و ویندوزی خود را ایجاد و مدیریت کنید. همچنین یک بسته تحت عنوان virt-manager وجود دارد که به شما یک واسط گرافیکی نیز برای مدیریت میدهد.
گام اول – اطمینان از پشتیبانی سخت افزاری
جهت اینکه برسی نمائید که سخت افزار شما از این قابلیت پشتیبانی میکند یا خیر که البته به ندرت پیش می آید که شما نتوانید از این بسته روی سیستم خود استفاده کنید. پس برای بررسی وجود این قابلیت دستور زیر را در ترمینال وارد کنید:
1 |
root@arshatech:~# egrep -c '(svm|vmx)' /proc/cpuinfo |
1 |
4 |
اگر خروجی این دستور عددی بزرگتر از صفر باشد پاسخ مثبت و اگر برابر صفر باشد یعنی این امکان وجود ندارد. البته برای دریافت جزئیات بیشتر کسانی که در لینوکس حرفه ای تر هستند میتوانند با استفاده از دستور زیر نیر خروجی بیشتری را مشاهده کنند:
1 |
root@arshatech:~# egrep --color 'vmx|svm' /proc/cpuinfo |
1 2 3 4 |
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts |
گام دوم – نصب KVM
برای نصب qemu/kvm ابتدا مخازن ماشینتان را به روز رسانی کنید:
1 |
root@arshatech:~# apt update |
سپس دستور زیر را وارد کنید:
1 |
root@arshatech:~# apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager libguestfs-tools genisoimage virtinst libosinfo-bin |
البته توجه داشته باشید بعضی از این بسته ها در اوبونتو لازم نیست اما بهتر است تمام این بسته ها نصب شوند. مطلب بعد اینکه بسته virt-manager نیز تنها واسط گرافیکیست و شما میتوانید این بسته را نیز نصب نکنید.
بعد از اینکه بسته های مورد نظر را نصب کردید باید حساب کاربری خود را به گروه های مورد نظر برای دادن مجوز دسترسی عضو نمائید. برای این کار اگر فرض کنیم نام حساب کاربر شما blog است دستورات زیر را وارد کنید:
1 2 |
root@arshatech:~# adduser blog libvirt root@arshatech:~# adduser blog libvirt-qemu |
حال با دستور زیر وارد حساب کاربری خود شوید:
1 |
root@arshatech:~# su - blog |
سپس لیست گروه های خود را به روز کنید:
1 2 |
blog@arshatech:~$ newgrp libvirt blog@arshatech:~$ newgrp libvirt-qemu |
حال با دستور id خواهید دید که کاربر شما به عضویت گروه های مورد نظر در آمده است:
1 |
blog@arshatech:~$ id |
1 |
uid=1000(blog) gid=1000(blog) groups=1000(blog),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),106(netdev),123(libvirt),64055(libvirt-qemu) |
گام سوم – اتصال به شبکه
ابتدا شما باید تعریف نمائید که ماشین مجازی شما از طریق سیستم در شبکه تعریف گردد. برای این اتصال میتوانید از شبکه پیش فرض استفاده کرده و یا یک شبکه دیگر به صورت bridge تعریف نمائید. برای دیدن لیست و وضعیت شبکه میتوانید از دستور زیر با دسترسی ریشه استفاده کنید:
1 |
root@arshatech:~# virsh net-list --all |
1 2 3 |
Name State Autostart Persistent -------------------------------------------- default inactive no yes |
همانگونه که مشاهده مینمائید وضعیت شبکه پیش فرض غیر فعال است و هیچ شبکه دیگری برای آن تعریف نشده است. شما میتوانید برای آن شبکه ایجاد کرده یا حالت پیش فرض را فعال کنید.
اگر میخواهید حالت پیش فرض را فعال کنید دستورات زیر را وارد نمائید:
1 2 |
root@arshatech:~# virsh net-start default root@arshatech:~# virsh net-autostart default |
حال وضعیت شبکه را مجددا بررسی کنید:
1 |
root@arshatech:~# virsh net-list --all |
1 2 3 |
Name State Autostart Persistent -------------------------------------------- default active yes yes |
همانطور که مشاهده میکنید شبکه شما به صورت پیش فرض فعال شده و میتوانید ماشین های مجازی خود را ایجاد و مدیریت نمائید. در صورتی که شما بسته virt-manager را نیز نصب کرده باشید میتوانید از طریق داشبورد به واسط گرافیکی دسترسی داشته باشید:
بعد از کلیک بر روی آن میتوانید محیط این واسط گرافیکی را مشاهده کنید: