جدول محتوایی
نصب و پیکربندی هایپروایزر KVM در لینوکس CentOS
در این مقاله از سری مقاله های آموزشی ایرانیکاسرور، به نحوه نصب و پیکربندی هایپروایزر KVM روی سروری که لینوکس RHEL یا CentOS را اجرا می کند، خواهیم پرداخت.
نحوه ایجاد یک ماشین مجازی در KVM، تغییر تنظیمات آن و نصب سیستم عامل مهمان را نشان خواهیم داد. ما همچنین برخی از دستورات معمولی برای مدیریت یک VM را شرح خواهیم داد
KVM (ماشین مجازی مبتنی بر هسته) یک هایپروایزر لینوکس است که از فناوری های مجازی سازی سخت افزاری Intel VT یا AMD SVM استفاده می کند. با استفاده از KVM، می توانید ماشین های مجازی ایزوله را با سخت افزار مجازی خود ایجاد کنید: آداپتورهای شبکه، دیسک ها، کارت های گرافیک یا دستگاه های دیگر.
شما می توانید هر سیستم عامل مهمان را روی یک ماشین مجازی (نه تنها لینوکس) نصب کنید.
چگونه KVM را روی CentOS/RHEL نصب کنیم؟
هنگامی که KVM را روی سرور خود پیکربندی می کنید، باید با بررسی CPU شروع کنید.
باید مطمئن شوید که CPU نصب شده روی هاست شما از مجازی سازی سخت افزار پشتیبانی می کند یا خیر. دستور زیر را در کنسول سرور خود اجرا کنید:
# cat /proc/cpuinfo | egrep "(vmx|svm)"
اگر پردازنده شما از VT-x پشتیبانی می کند، خروجی زیر را مشاهده خواهید کرد:
اگر دستور مورد نظر خروجی ای نداشته باشد (nothing)، اما می دانید که CPU شما از مجازی سازی پشتیبانی می کند، مطمئن شوید که این گزینه در بایوس سرور غیرفعال نیست.
به دنبال گزینه های Intel Virtualization Technology یا SVM MODE باشید.
سرور من از VT-x پشتیبانی می کند و فعال است، بنابراین می توانیم با استفاده از yum/dnf بسته های لازم را روی CentOS/RHEL نصب کنیم:
# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y
بسته های زیادی روی سرور لینوکس شما نصب خواهند شد. اطمینان حاصل کنید که در هنگام نصب هیچ خطایی رخ نمی دهد.
سپس سرویس libvirtd را راه اندازی اضافه کنید و آن را اجرا کنید:
# systemctl enable libvirtd # systemctl start libvirtd
مطمئن شوید که ماژول های kvm_intel و kvm کرنل بارگذاری شده اند:
# lsmod | grep kvm
kvm_intel 188688 0 kvm 636931 1 kvm_intel irqbypass 13503 1 kvm
اگر این دستور خروجی نداشت، یا چیزی را برنگرداند، هاست خود را مجددا راه اندازی کرده و دوباره ان را بررسی کنید.
ایجاد و پیکربندی Bridge Networking برای هایپروایزر KVM
سپس دایرکتوری هایی برای ذخیره دیسک های ماشین مجازی و تصاویر ISO ایجاد کنید:
# mkdir -p /vz/{disk,iso}
# rpm -qa | grep bridge-utils
در صورت نیاز به نصب، میتوانید دستور زیر را وارد کنید:
# yum install bridge-utils -y
پس از نصب بسته، رابط شبکه virbr0 در سیستم عامل ظاهر شد:
# ip a
برای ایجاد یک bridge، باید فایل پیکربندی رابط شبکه سرور خود را تنظیم کنید:
# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak
– back up the file# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0
— open it to editمحتویات فایل را حذف کرده و با موارد زیر جایگزین کنید:
محتویات فایل را حذف کرده و با موارد زیر جایگزین کنید:
DEVICE="enp1s0f0" ONBOOT="yes" BRIDGE=br0
در مورد شما، نام رابط ممکن است متفاوت باشد (آن را با استفاده از دستور ip a دریافت کنید).
سپس یک فایل ایجاد کنید:
# nano /etc/sysconfig/network-scripts/ifcfg-br0
حاوی کانفیگ زیر:
DEVICE="br0" TYPE=BRIDGE ONBOOT=yes BOOTPROTO=static IPADDR="IP_address_of_the_server" NETMASK="255.255.255.0" GATEWAY="Default_gateway" DNS1="8.8.8.8" DNS2="8.8.4.4"
شما باید آدرس IP سرور و دروازه پیش فرض خود را مشخص کنید. پس از ویرایش فایل پیکربندی رابط شبکه، شبکه را مجددا راه اندازی کنید:
# service network restart
اگر پس از راه اندازی مجدد شبکه نمی توانید به سرور خود دسترسی پیدا کنید، سعی کنید هاست را نیز راه اندازی مجدد کنید. گاهی اوقات لازم است که bridge را به درستی پیکربندی کنید.
برای مشاهده وضعیت bridge از این دستور استفاده کنید:
# brctl show
bridge name bridge id STP enabled interfaces br0 8000.ac1f6b654321 no enp1s0f0در مرحله آخر، انتقال ترافیک شبکه را پیکربندی کنید: virbr0 8000.525400abcdef1 yes virbr0-nic
در مرحله آخر، انتقال ترافیک شبکه را پیکربندی کنید:
# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
سپس libvirtd را مجددا راه اندازی کنید:
# service libvirtd restart
حالا پیکربندی اصلی شبکه KVM به پایان رسیده است و می توانید یک ماشین مجازی ایجاد کنید.
ایجاد ماشین مجازی در KVM
قبل از ایجاد یک ماشین مجازی، من یک تصویر CentOS 8 را از یک آینه رسمی به /vz/iso دانلود کرده ام:
# cd /vz/iso && wget http://mirror.imt-systems.com/centos/8.3.2011/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso
برای ایجاد یک ماشین مجازی KVM جدید، دستورات زیر را اجرا کنید:
virt-install -n test-centosvm \ --noautoconsole \ --network=bridge:br0 \ --ram 2048 --arch=x86_64 \ --vcpus=4 --cpu host --check-cpu \ --disk path=/vz/disk/test-centosvm.img,size=32 \ --cdrom /vz/iso/CentOS-8.3.2011-x86_64-dvd1.iso \ --graphics vnc,listen=IP,password=p@sswdr0w1 \ --os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on
- test-centosvm – نام VM
- noautoconsole – پس از ایجاد یک VM، به طور خودکار به کنسول VM متصل نمی شوید
- network – یک نوع شبکه یا bridge
- ram – مقدار رم در VM.
- vcpus – تعداد هسته های CPU (پیکربندی vCPU برای VM)
- disk – یک دیسک مجازی مسیر – یک مسیر به دیسک، اندازه – اندازه دیسک (شما می توانید بعداً آن را گسترش یا کوچک کنید)
- cdrom – یک CDROM مجازی، یک تصویر ISO برای نصب یک سیستم عامل میهمان روی آن نصب شده است.
- Graphics – پارامترهایی برای اتصال به یک ماشین مجازی با استفاده از کنسول گرافیکی. ما از VNC برای اتصال به آن استفاده خواهیم کرد، بنابراین برای گوش دادن، آدرس IP سرور KVM را که VM روی آن ایجاد کردهاید و رمز عبور اتصال به کنسول ماشین مجازی را مشخص کنید.
برای بوت شدن خودکار VM، دستور زیر را اجرا کنید:
# virsh autostart test-centosvm
چگونه با استفاده از VNC به هایپروایزر KVM متصل شویم و یک سیستم عامل نصب کنیم؟
برای اتصال به یک ماشین مجازی KVM با استفاده از VNC، باید درگاهی که روی آن در حال اجرا است را پیدا کنید:
# virsh vncdisplay test-centovms
IP:0
0 به این معنی است که شماره پورت برای اتصال با استفاده از VNC 5900 است. اگر مقدار دیگری دریافت کردید، فقط عددی را که دستور برگردانده است به 5900 اضافه کنید.
برای اتصال به سرورها با استفاده از VNC، من از TightVNC استفاده می کنم. آن را اجرا کنید و آدرس IP سرور خود و پورت VNC را که قبلاً گرفتیم (با دو نقطه به عنوان جداکننده) مشخص کنید.
روی Connect کلیک کنید و رمز عبوری را که هنگام ایجاد KVM VM خود تعیین کرده اید وارد کنید. اگر این کار را به درستی انجام داده باشید، کنسول سرور ظاهر میشود که در آن نصب CentOS (یا سیستمعامل مهمان دیگری که تصویر آن را نصب کردهاید) در حال اجرا است.
اگر فایروال روی سرور شما فعال است، پورت های 5900-5910 را برای VNC در فایروال/iptables باز کنید (ده پورت کافی خواهد بود).
پس از نصب سیستم عامل مهمان بر روی ماشین مجازی، VM را از کنسول سرور راه اندازی کنید:
برای خاموش کردن ماشین مجازی KVM از این دستور استفاده کنید:
# virsh shutdown test-centosvm
برای نمایش لیستی از تمام ماشین های مجازی KVM ثبت شده، دستور زیر را وارد کنید:
# virsh list --all
حالا پیکربندی اولیه هاست هایپروایزر KVM به پایان رسیده است و یک ماشین مجازی ایجاد شده است.
شما می توانید هر تعداد ماشین مجازی را در KVM ایجاد کنید، این فقط به منابع سرور و نیاز شما بستگی دارد.
ممنون بابت مطالب خوبتون
خیلی خوب توضیح دادید
با سلام خیلی عالی بود از مطلبی که گذاشتید متشکرم