در مقالات گذشته گفتیم که چگونه بررسی کنیم یک سیستم عامل لینوکس 32 بیتی است یا 64 بیتی و چگونه بفهمیم یک سیستم لینوکس فیزیکی است یا ماشین مجازی . امروز، ما میخواهیم موضوع مفید دیگری را بیاموزیم، یعنی اینکه چگونه بفهمیم یک CPU از فناوری مجازیسازی (VT) پشتیبانی میکند یا خیر. این اولین مرحله ای است که باید قبل از نصب برنامه های مجازی سازی مانند KVM ، Proxmox ، Gnome Boxes ، Quickemu ، VirtualBox و ایستگاه کاری VMWare برای اجرای ماشین های مجازی بر روی سیستم لینوکس خود انجام دهید. حالا اجازه دهید جلو برویم و بفهمیم که آیا CPU ما از VT پشتیبانی می کند یا خیر.
ببینید آیا یک CPU از فناوری مجازی سازی (VT) در لینوکس پشتیبانی می کند
ما می توانیم با روش های مختلف بررسی کنیم که آیا CPU ما از VT پشتیبانی می کند یا خیر. در اینجا من چهار روش را بررسی کرده ام.
روش ۱: با استفاده از دستور egrep
Egrep یکی از انواع ابزار خط فرمان Grep است که برای جستجوی فایل های متنی با عبارات منظم استفاده می شود.
برای اینکه بفهمید CPU شما از VT با استفاده از دستور egrep پشتیبانی می کند یا خیر، اجرا کنید:
$ egrep "(svm|vmx)" /proc/cpuinfo
این دستور grep را فایل /cpu/procinfo
بررسی می کند و نمایش می دهد که CPU از VT پشتیبانی کند یا خیر
خروجی نمونه:
اگر پردازنده شما از مجازی سازی پشتیبانی کند، شما یا “vmx” (فناوری Intel-VT) یا “svm” (پشتیبانی از AMD-V) را در خروجی دریافت خواهید کرد.
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 nxscall rdtscp lm konstant_tsc non-topspertspfdni pl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb pti tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm apts
[...]
از آنجایی که خروجی بسیار طولانی است، پیدا کردن کلمات “vmx” یا “svm” ممکن است کمی سخت باشد. جای نگرانی نیست! می توانید آن اصطلاحات را با رنگ هایی مانند زیر تشخیص دهید.
$ egrep --color -i "svm|vmx" /proc/cpuinfo
اگر هیچ خروجی دریافت نکردید به این معنی است که سیستم شما از مجازی سازی پشتیبانی نمی کند.
لطفا توجه داشته باشید که این پرچم های CPU (vmx یا svm) در فایل /proc/cpuinfo
نشان می دهد که سیستم شما از VT پشتیبانی می کند. در برخی از مدل های CPU، پشتیبانی VT ممکن است به طور پیش فرض در بایوس غیرفعال باشد. در چنین مواردی، باید تنظیمات BIOS خود را بررسی کنید تا پشتیبانی VT را فعال کنید.
روش ۲ – استفاده از دستور lscpu
دستور lscpu
برای نمایش اطلاعات معماری CPU شما استفاده می شود. این اطلاعات را از فایل sysfs
و /proc/cpuinfo
جمعآوری میکند و تعداد CPUها، Threadها، هستهها، سوکتها و … سیستم شما را نمایش میدهد
برای اینکه بفهمید پشتیبانی VT فعال است یا خیر، به سادگی اجرا کنید:
$ lscpu
خروجی نمونه:
روش ۳ – استفاده از ابزار Cpu-checker
Cpu-checker یکی دیگر از ابزارهای مفید برای آزمایش CPU شما برای پشتیبانی مجازی سازی است. تا جایی که من در وب جستجو کردم، این ابزار فقط برای سیستم های مبتنی بر اوبونتو در دسترس است. برای نصب آن، اجرا کنید:
$ sudo apt-get install cpu-checker
پس از نصب بسته cpu-checker، دستور زیر را اجرا کنید تا بررسی کنید که آیا پشتیبانی VT فعال است یا خیر:
$ kvm-ok
اگر CPU شما از VT پشتیبانی کند، خروجی زیر را دریافت خواهید کرد:
INFO: /dev/kvm exists
KVM acceleration can be used
اگر CPU شما از VT پشتیبانی نمی کند، خروجی مشابه زیر را مشاهده خواهید کرد.
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
روش ۴ – با استفاده از ابزار virt-host-validate
این ابزار به طور خاص برای توزیع های مبتنی بر RHEL مانند CentOS و Scientific Linux است. بسته libvirt-client ابزار virt-host-validate را ارائه می دهد. بنابراین برای استفاده از این ابزار باید بسته “libvert-client” را نصب کنید.
$ sudo yum install libvirt-client
اکنون، دستور “virt-host-validate” را اجرا کنید تا متوجه شوید آیا VT در سیستم های مبتنی بر RHEL شما فعال است یا خیر.
$ sudo virt-host-validate
اگر نتیجه PASS دریافت کنید ، سیستم شما از VT پشتیبانی می کند.
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'memory' controller mount-point : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
QEMU: Checking for cgroup 'cpu' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuacct' controller support : PASS
QEMU: Checking for cgroup 'cpuacct' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuset' controller support : PASS
QEMU: Checking for cgroup 'cpuset' controller mount-point : PASS
QEMU: Checking for cgroup 'devices' controller support : PASS
QEMU: Checking for cgroup 'devices' controller mount-point : PASS
QEMU: Checking for cgroup 'blkio' controller support : PASS
QEMU: Checking for cgroup 'blkio' controller mount-point : PASS
QEMU: Checking for device assignment IOMMU support : PASS
LXC: Checking for Linux >= 2.6.26 : PASS
LXC: Checking for namespace ipc : PASS
LXC: Checking for namespace mnt : PASS
LXC: Checking for namespace pid : PASS
LXC: Checking for namespace uts : PASS
LXC: Checking for namespace net : PASS
LXC: Checking for namespace user : PASS
LXC: Checking for cgroup 'memory' controller support : PASS
LXC: Checking for cgroup 'memory' controller mount-point : PASS
LXC: Checking for cgroup 'cpu' controller support : PASS
LXC: Checking for cgroup 'cpu' controller mount-point : PASS
LXC: Checking for cgroup 'cpuacct' controller support : PASS
LXC: Checking for cgroup 'cpuacct' controller mount-point : PASS
LXC: Checking for cgroup 'cpuset' controller support : PASS
LXC: Checking for cgroup 'cpuset' controller mount-point : PASS
LXC: Checking for cgroup 'devices' controller support : PASS
LXC: Checking for cgroup 'devices' controller mount-point : PASS
LXC: Checking for cgroup 'blkio' controller support : PASS
LXC: Checking for cgroup 'blkio' controller mount-point : PASS
اگر سیستم شما از VT پشتیبانی نمی کند، خروجی زیر را مشاهده خواهید کرد.
QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited)
[...]
نتیجه
در این راهنما، ما روشهای مختلفی را مورد بحث قرار دادهایم تا بفهمیم آیا یک CPU از VT پشتیبانی میکند یا خیر. همانطور که قبلا ذکر شد، بررسی اینکه آیا پردازنده شما از مجازی سازی سخت افزاری پشتیبانی می کند، قبل از نصب هایپروایزر الزامی است.
افزودن نظر