در دنیای مجازی سازها ( virtualization) نرم افزارهای گوناگونی وجود دارد که هر کدام ویزگی های خاص خود را دارند. یکی از این نرم افزارهای مجازی ساز KVM می باشد که سر نام واژه های Kernel-Based Virtual Machine می باشد.
مجازی ساز KVM یک نرم افزار آزاد می باشد که بوسیله ی آن می توانید ماشین های مجازی با سیستم عامل های مختلف را اجرا کنید. برای ارتباط با KVM Server و مدیریت آن ابزارهای گوناگونی نیز وجود دارد که برخی از آنها رایگان و برخی دیگر پولی می باشند. در ادامه نحوه ی نصب KVM ، نحوه ی ارتباط و مدیریت آن را آموزش خواهیم داد. این آموزش قابل اجرا بر روی توزیع محبوب فدورا و همچنین توزیع های هم خانواده آن مانند RHEL و CentOS می باشد.
پیش نیازها:
قبل از شروع به کار ابتدا بررسی کنید که CPU شما از Hardware Virtualization پشتیبانی می کند یا خیر. برای اینکار می توانید دستور زیر را اجرا کنید :
# grep -E '(vmx|svm)' /proc/cpuinfo
اگر در خروجی دستور چیزی مشاهده نکردید به این معنی می باشد که CPU شما از Hardware Virtualization پشتیبانی نمی کند و یا اینکه این قابلیت بر روی سیستم شما غیر فعال می باشد. در صورتی که CPU سیستم از Hardware Virtualization پشتیبانی می کند ولی غیرفعال می باشد، برای فعال کردن آن باید به BIOS سیستم مراجعه کنید و آن را فعال کنید.
نصب KVM :
ابتدا سیستم را update و reboot کنید تا با آخرین نسخه ی کرنل Boot شود :
بر روی فدورا :
# dnf update -y ; reboot
بر روی CentOS :
# yum update -y ; reboot
برای نصب KVM و بسته های مورد نیاز کافیست تا دستور زیر را اجرا کنید :
بر روی فدورا :
#dnf install qemu-kvm qemu-img virt-manager libvirt libvirt-python3 libvirt-client virt-install virt-viewer bridge-utils xorg-x11-xauth dejavu-lgc-sans-fonts libvirt-daemon-kvm qemu-system-x86 libvirt-daemon-config-network libvirt-client
بر روی CentOS :
#yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils xorg-x11-xauth dejavu-lgc-sans-fonts libvirt-daemon-kvm qemu-system-x86 libvirt-daemon-config-network libvirt-client
اکنون سرویس libvirtd را start و enable کنید :
# systemctl start libvirtd
# systemctl enable libvirtd
با استفاده از دستور پایین می توانید load شدن KVM module را بررسی کنید :
# lsmod | grep kvm
پیکربندی Bridge Interface :
اگر بخواهید ماشین های مجازی به شبکه ی خارج از hypervisor دسترسی داشته باشند، باید Bridge interface را پیکربندی کنید. اکنون فایل زیر را باز کنید :
# vi /etc/sysctl.conf
سپس خط زیر را به فایل اضافه کنید و آن را ذخیره کنید :
net.ipv4.ip_forward = 1
اکنون برای اعمال تغییر کافیست تا دستور زیر را اجرا کنید :
# sysctl -p
اکنون ما فرض می کنیم که نام کارت شبکه ی سرور ما ifcfg-enp2s0 می باشد و تنظیمات فعلی آن به صورت زیر می باشد :
# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
NAME=”enp2s0″
DEVICE=”enp2s0″
ONBOOT=yes
NETBOOT=yes
UUID=”948d5187-89e5-49ba-94d5-de5a47486fd9″
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.10.72
PREFIX=24
GATEWAY=192.168.10.1
DNS1=4.2.2.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
اکنون فایل تنظیمات کارت شبکه ی گفته شده را باز کنید :
# vi /etc/sysconfig/network-scripts/ifcfg-enp2s0
سپس تنظیمات آن را مانند زیر تغییر دهید :
NAME=”enp2s0″
DEVICE=”enp2s0″
ONBOOT=yes
NETBOOT=yes
UUID=”948d5187-89e5-49ba-94d5-de5a47486fd9″
BOOTPROTO=none
TYPE=Ethernet
###IPADDR=192.168.10.72
###PREFIX=24
###GATEWAY=192.168.10.1
###DNS1=4.2.2.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
BRIDGE=virbr0
اکنون فایل زیر را ایجاد کنید :
# vi /etc/sysconfig/network-scripts/ifcfg-virbr0
سپس تنظیمات زیر را درون فایل بنویسید و آن را ذخیره کنید :
###NAME=”enp2s0″
DEVICE=”virbr0″
ONBOOT=yes
NETBOOT=yes
###UUID=”948d5187-89e5-49ba-94d5-de5a47486fd9″
BOOTPROTO=static
TYPE=BRIDGE
IPADDR=192.168.10.72
PREFIX=24
GATEWAY=192.168.10.1
DNS1=4.2.2.4
###DEFROUTE=yes
###IPV4_FAILURE_FATAL=no
IPV6INIT=no
اکنون سرویس شبکه را restart کنید :
# systemctl restart network
جهت بررسی Bridge Interface می توانید دستور زیر را اجرا کنید :
# ip a show virbr0
مدیریت KVM Server با Virsh :
همانطور که در ابتدای مطلب گفته شد. برای ارتباط و مدیریت KVM Server ابزارهای گوناگونی و جود دارد یکی از آن virsh می باشد که یک نرم افزار خط فرمانی جهت کنترل و مدیریت KVM می باشد. با نصب بسته ی libvirt-client که در ابتدای مطلب آن را نصب کردیم. می توانیم از virsh استفاده کنیم. در ادامه برخی از دستورهای پر کاربرد را مرور خواهیم کرد.
برای لیست کردن تمامی سیستم عامل هایی که KVM از آنها پشتیبانی می کند، دستور زیر را می توان اجرا کرد :
# osinfo-query os
لیست کردن ماشین مجازی هایی که روشن می باشند :
# virsh -c qemu:///system list
لیست کردن تمامی ماشین های مجازی :
# virsh list --all
لیست کردن IP آدرس های ماشین های مجازی (DHCP Address) :
# virsh net-dhcp-leases default
دریافت اطلاعات از ماشین مجازی (VM) :
# virsh dominfo vmName
نکته اینکه بجای vmName باید نام ماشین مجازی مورد نظر خود را بنویسید.
shutdown و یا stop کردن یک ماشین مجازی :
# virsh shutdown vmName
خاموش کردن سریع به صورت forceful shutdown ماشین مجازی :
# virsh destroy vmName
روشن یا همان start کردن یک ماشین مجازی :
# virsh start vmName
فعال کردن قابلیت autostart یک ماشین مجازی هنگام Boot شدن سیستم :
# virsh autostart vmName
Reboot (soft & safe reboot) ماشین مجازی :
# virsh reboot vmName
Reset (hard reset/not safe) ماشین مجازی :
# virsh reset vmName
حذف ماشین مجازی :
# virsh shutdown vmName
# virsh undefine vmName
ساخت یک ماشین مجازی :
# virt-install --connect qemu:///system -n vm-centos7.6 -r 1024 --vcpus=1 --disk path=/var/lib/libvirt/images/vm-centos7.6.img,size=5 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type linux --os-variant centos7.0 --accelerate --network=bridge:virbr0 --hvm --cdrom /tmp/CentOS-7-x86_64-Minimal-1810.iso
نمونه ای دیگر :
# virt-install --name=fedora30 --ram=1024 --vcpus=1 --cdrom=/tmp/Fedora-KDE-Live-x86_64-30-1.2.iso --os-type=linux --os-variant=fedora30 --network bridge=virbr0 --graphics=spice --disk path=/var/lib/libvirt/images/fedora30-kde.dsk,size=4
نمایش کل دستورات virsh :
# virsh help
مدیریت KVm Server با Virtual Machine Manager:
یکی دیگر از نرم افزارها جهت اتصال و مدیریت KVM Server نرم افزار Virtual Machine Manager می باشد. که در واقع یکه برنامه ی دسکتاپی برای مدیریت KVM می باشد. برای نصب آن روی سیستم خود کافیست تا دستور زیر را در فدورا اجرا کنید :
# dnf install virt-manager
اگر از هر توزیع لینوکس دیگری استفاده می کنید به راحتی می توانید آن را نصب و از آن استفاده کنید. در پایین تصویری از برنامه ی Virtual Machine Manager را مشاهده می کنید:
اکنون با استفاده از برنامه Virtual Machine Manager می توانید به KVM Server متصل شوید و ماشین مجازی بسازید و آنها را مدیریت کنید.
امید است تا از این مطلب استفاده لازم را برده باشید.
لطفا راجع به این که چطور میشه به هر ماشین مجازی یک ای پی اختصاص داد هم بگین.
تشکر
اگه Bridge Interface رو تنظیم کنین و به هر ماشین مجازی کارت شبکه مربوط به اون شبکه رو اختصاص بدین، در واقع ماشین مجازی میاد توی همون شبکه ی Host و به همین ترتیب می تونید از شبکه بیرون بهش دسترسی داشته باشد.
پیروز باشید.
سلام
می خواستم بپرسم که برای Full Screen کردن سیستم عامل مجازی هم باید اکستنشن نصب کرد یا خیر؟؟؟
می خواستم بپرسم کلا این حالت رو چطوری باید فعال کرد..
باتشکر
درود بر شما
با همون برنامه ی Virtual Machine Manager می تونید اینکار رو بکنید.
پیروز باشید