ماشین مجازی مبتنی بر هسته KVM یک ماژول مجازی سازی برای هسته لینوکس است که آن را به یک hypervisor تبدیل کرده است. چگونه می توان KVM را با استفاده از اتصالات شبکه نصب کرد؟ آیا نصب سیستم عامل مهمان از طریق فناوری مجازی سازی برای سرورهای غیرگرافیکی اوبونتو ۱۶.۰۴ امکان پذیر است؟ بله ! در ادامه قصد داریم تا مراحل نصب KVM در سرور اوبونتو ۱۶.۰۴ به صورت گام به گام و تصویری را به شما عزیزان نشان دهیم. می توانید با به کار گرفتن KVM چندین سیستم عامل مجزا همانند ویندوز، BSD و لینوکس را به طور همزمان در سرور مجازی خود داشته باشید. هر دستگاه مجازی ایجاد شده دارای یک دیسک شخصی، کارت گرافیک، کارت شبکه و … به طور مجزا می باشد.
نکته : واژه ی headless بدین معناست که هیچ گونه رابط گرافیکی و یا ترمینال برای ارتباط لوکال با آن در دسترس نیست.
مراحل نصب KVM در سرور اوبونتو ۱۶.۰۴
- در واقع سرور میزبان در مرکز داده (مرکز اطلاعات) قرار گرفته است و یک سرور headless می باشد .
- تمام دستورات در این آموزش بر روی نشست های مبتنی بر SSH تایپ شده اند.
- برای نصب سیستم عامل مهمان به یک سرویس گیرنده VNC نیاز دارید.
- در این آموزش شما نحوه نصب نرم افزار KVM را در سرور ابونتو LTS 16.04 و استفاده از KVM برای راه اندازی اولین مهمان خود یعنی ماشین مجازی را خواهید آموخت.
گام های نصب KVM در سرور اوبونتو ۱۶.۰۴
در زیر تمامی مراحل نصب به همراه مثال آورده شده است.
گام اول نصب KVM در سرور اوبونتو ۱۶.۰۴ : نصب KVM
دستور apt-get command/apt command را همانند زیر در ترمینال تایپ کنید:
$ sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker
گام دوم نصب KVM در سرور اوبونتو ۱۶.۰۴ : تایید نصب KVM
$ kvm-ok INFO: /dev/kvm exists KVM acceleration can be used
گام سوم نصب KVM در سرور اوبونتو ۱۶.۰۴ : پیکر بندی شبکه های ارتباطی
$ sudo cp /etc/network/interfaces /etc/network/interfaces.bakup-1-july-2016 $ sudo vi /etc/network/interfaces
مانند نمونه ی زیر فایل را اضافه و یا اگر وجود دارد آن را ویرایش نمایید:
auto br0 iface br0 inet static address 10.18.44.26 netmask 255.255.255.192 broadcast 10.18.44.63 dns-nameservers 10.0.80.11 10.0.80.12 # set static route for LAN post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.18.44.1 post-up route add -net 161.26.0.0 netmask 255.255.0.0 gw 10.18.44.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 # br1 setup with static wan IPv4 with ISP router as a default gateway auto br1 iface br1 inet static address 208.43.222.51 netmask 255.255.255.248 broadcast 208.43.222.55 gateway 208.43.222.49 bridge_ports eth1 bridge_stp off bridge_fd 0 bridge_maxwait 0
فایل را ذخیره کنید و صفحه مربوط به آن را ببندید.
سرویس شبکه را مجددا راه اندازی کرده و دستور زیر را وارد کنید:
$ sudo systemctl restart networking
تاییدیه ی آن به صورت زیر است:
$ sudo brctl show
گام چهارم نصب KVM در سرور اوبونتو ۱۶.۰۴ : اولین دستگاه مجازی خود را ایجاد کنید.
من قصد دارم تا VM CentOS 7.x را ایجاد کنم. برای اولین قدم از اخرین تصویر iso آن را دریافت می کنم. برای این کار از دستور زیر استفاده می کنیم:
$ cd /var/lib/libvirt/boot/ $ sudo wget https://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
ایجاد CENTOS 7 VM
در این مثال CentOS 7.x VM را با ۲ گیگ رم، پردازنده ی دو هسته ای ، ۲ عدد کارت شبکه (یکی برای lan و یکی برای Wan ) و ۴۰ گیگ فضای آزاد دیسک ایجاد می کنیم:
$ sudo virt-install \ --virt-type=kvm \ --name centos7 \ --ram 2048 \ --vcpus=2 \ --os-variant=centos7.0 \ --virt-type=kvm \ --hvm \ --cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1708.iso \ --network=bridge=br0,model=virtio \ --network=bridge=br1,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2
برای تنظیم ورودی vnc از طریق ترمینال دیگری بر روی ssh دستور زیر را تایپ می کنیم:
$ sudo virsh dumpxml centos7 | grep vnc <graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>
همچنین می توانید از دستور زیر استفاده کنید:
$ sudo virsh vncdisplay centos7
لطفا مقدار نام پورت را در نظر بگیرید (به عنوان مثال ۵۹۰۱). برای دسترسی به سرور میزبان SSH برای نصب راه ها و سرویس دهنده باید VNC را تنظیم کنید. دستور زیر را می توانید برای ارسال پورت SSH برای سیستم مشتری یا دسکتاپ (محیط کاری) در محیط ترمینال تایپ کنید:
$ ssh vivek@server1.cyberciti.biz -L 5901:127.0.0.1:5901
هنگامی که ارتباط با SSH برقرار شد، می توانید VNC مربوط به مشتری خود را در آدرس خود ۱۲۷.۰.۰.۱ (محل میزبان) و پورت ۵۹۰۱ مشاهده نمایید:
صفحه ی نصب سیتم عامل ۷ CentOS Linux مانند زیر برای شما نمایان می گردد.
در حال حاضر باید دستورات ارائه شده بر روی صفحه نمایش و نصب CentOS 7 را طی کنید.
پس از نصب، مراحل را به ترتیب انجام دهید و بر روی دکمه reboot کلیک کنید. سرور از راه دور به VNC مشتری متصل می شود. شما می توانید از طریق KVM دوباره اتصال را برقرار کنید تا پیکر بندی بقیه سرور از جمله SSH براساس نشست های ارائه شده و یا فایروال ها راه اندازی شوند.
ایجاد ۱۰.X FREEBSD یا VM.X .11
در این مثال، VM 10 FreeBSD را با دو گیگ رم، پردازنده ی دو هسته ای، ۲ عدد کارت شبکه (یکی برای lan و یکی برای Wan ) و ۴۰ گیگ فضای آزاد دیسک ایجاد می کنیم:
$ cd /var/lib/libvirt/boot/ $ sudo wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-disc1.iso $ sudo virt-install \ --virt-type=kvm \ --name freebsd \ --ram 2048 \ --vcpus=2 \ --os-variant=freebsd11.1 \ --virt-type=kvm \ --hvm \ --cdrom=/var/lib/libvirt/boot/FreeBSD-11.1-RELEASE-amd64-disc1.iso \ --network=bridge=br0,model=virtio \ --network=bridge=br1,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/freebsd10.qcow2,size=40,bus=virtio,format=qcow2
در مثال دیگری، VM 11 FreeBSD را با یک گیگ رم (قابل ارتقا تا ۲ گیگ)، ۱ هسته vCPU(قابل ارتقا تا ۲ vCPU )، یک کارت شبکه و ۴۰ گیگ فضای آزاد دیسک ایجاد می کنیم:
$ sudo virt-install \ --virt-type=kvm \ --name freebsd \ --memory=1024,maxmemory=2048 \ --vcpus=1,maxvcpus=2 \ --os-variant=freebsd10.0 \ --virt-type=kvm \ --hvm \ --cdrom=/var/lib/libvirt/boot/FreeBSD-11.0-RELEASE-amd64-disc1.iso \ --network=bridge=br0,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/freebsd11.qcow2,size=40,bus=virtio,format=qcow2
برای تنظیم ورودی vnc در ترمینال دیگری و از طریق ssh دستورات زیر را تایپ می کنیم:
$ sudo virsh dumpxml freebsd | grep vnc <graphics type='vnc' port='5902' autoport='yes' listen='127.0.0.1'>
لطفا مقدار نام پورت را در نظر بگیرید (به عنوان مثال ۵۹۰۲). برای دسترسی به سرور میزبان SSH برای نصب راه ها و سرویس دهنده باید VNC را تنظیم کنید. دستور زیر را می توانید برای ارسال پورت SSH برای سیستم مشتری یا دسکتاپ (محیط کاری) در محیط ترمینال تایپ کنید:
$ ssh vivek@server1.cyberciti.biz -L 5902:127.0.0.1:5902
هنگامی که ارتباط برقرار شد، می توانید به سرویس گیرنده VNC خود در آدرس ۱۲۷.۰.۰.۱ (میزبان محلی) و پورت ۵۹۰۲ دسترسی داشته باشید و مراحل نصب FreeBSD 10.3 را ادامه دهید.
ایجاد OPENBSD 5.9 VM
در این مثال، VM 5.9 OPENBSD را با دو گیگ رم، پردازنده ی دو هسته ای، ۲ عدد کارت شبکه (یکی برای lan و یکی برای Wan ) و ۴۰ گیگ فضای آزاد دیسک ایجاد می کنیم:
$ cd /var/lib/libvirt/boot/ $ sudo wget https://mirror.esc7.net/pub/OpenBSD/6.2/amd64/install62.iso $ sudo virt-install \ --virt-type=kvm \ --name openbsd \ --ram 2048 \ --vcpus=2 \ --os-variant=openbsd5.8 \ --virt-type=kvm \ --hvm \ --cdrom=/var/lib/libvirt/boot/install62.iso \ --network=bridge=br0,model=virtio \ --network=bridge=br1,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/openbsd59.qcow2,size=40,bus=virtio,format=qcow2
برای تنظیم ورودی vnc در ترمینال دیگری و از طریق ssh دستورات زیر را تایپ می کنیم:
$ sudo virsh dumpxml openbsd | grep vnc <graphics type='vnc' port='5903' autoport='yes' listen='127.0.0.1'>
لطفا مقدار نام پورت را در نظر بگیرید (به عنوان مثال ۵۹۰۳). برای دسترسی به سرور میزبان SSH برای نصب راه ها و سرویس دهنده باید VNC را تنظیم کنید. دستور زیر را می توانید برای ارسال پورت SSH برای سیستم مشتری یا دسکتاپ (محیط کاری) در محیط ترمینال تایپ کنید:
$ ssh vivek@server1.cyberciti.biz -L 5903:127.0.0.1:5903
هنگامی که ارتباط برقرار شد، می توانید سرویس گیرنده VNC خود را در آدرس ۱۲۷.۰.۰.۱ (میزبان محلی) و پورت ۵۹۰۳ جهت نصب OpenBSD 5.9 تایپ نمایید.
ایجاد DEBIAN 9.X VM
در این مثال، VM DEBIAN 8.5 را با دو گیگ رم، پردازنده ی ۲ هسته ای ، ۲ عدد کارت شبکه (یکی برای lan و یکی برای Wan ) و ۴۰ گیگ فضای آزاد دیسک ایجاد می کنیم:
$ cd /var/lib/libvirt/boot/ $ sudo wget http://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-9.3.0-amd64-DVD-1.iso $ sudo virt-install \ --virt-type=kvm \ --name=debina9 \ --ram=2048 \ --vcpus=2 \ --os-variant=debian8 \ --virt-type=kvm \ --hvm \ --cdrom=/var/lib/libvirt/boot/debian-9.3.0-amd64-DVD-1.iso \ --network=bridge=br0,model=virtio \ --network=bridge=br1,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2
برای تنظیم ورودی vnc در ترمینال دیگری و از طریق ssh دستورات زیر را تایپ می کنیم:
$ sudo virsh dumpxml debian8 | grep vnc <graphics type='vnc' port='5904' autoport='yes' listen='127.0.0.1'>
لطفا مقدار نام پورت را در نظر بگیرید (به عنوان مثال ۵۹۰۴). برای دسترسی به سرور میزبان SSH برای نصب راه ها و سرویس دهنده باید VNC را تنظیم کنید. دستور زیر را می توانید برای ارسال پورت SSH برای سیستم مشتری یا دسکتاپ (محیط کاری) در محیط ترمینال تایپ کنید:
$ ssh vivek@server1.cyberciti.biz -L 5904:127.0.0.1:5904
هنگامی که ارتباط برقرار شد، می توانید به سرویس گیرنده VNC خود در آدرس ۱۲۷.۰.۰.۱ (میزبان محلی) و پورت ۵۹۰۴ دسترسی داشته باشید و مراحل نصب Debian Linux 8.5 را ادامه دهید.
دستورات مفید در نصب KVM در سرور اوبونتو ۱۶.۰۴
در ادامه برخی از دستورات مفید و مورد استفاده را بیان می کنیم:
یافتن لیست سیستم عامل های مورد قبول :
$ osinfo-query os | less $ osinfo-query os | grep debian $ osinfo-query os | grep freebsd
لیستی از دامنه ها یا ماشین های مجازی در حال اجرا :
$ sudo virsh list
خاموش کردن ماشین مجازی یا دامنه ای با نام openbsd :
$ sudo virsh shutdown openbsd
روشن کردن ماشین مجازی یا دامنه ای با نام openbsd :
$ sudo virsh start openbsd
در حالت انتظار نگه داشتن (suspend) ماشین مجازی یا دامنه ای با نام openbsd :
$ sudo virsh suspend openbsd
را اندازی مجدد ماشین مجازی یا دامنه ای با نام openbsd :
$ sudo virsh reset openbsd
حذف و پاک کردن ماشین مجازی یا دامنه ای با نام openbsd :
$ sudo virsh undefine openbsd $ sudo virsh destroy openbsd
جهت مشاهده ی تمامی دستورات از نوع virsh باید کد های زیر را در ترمینال وارد نمایید:
$ virsh help | less $ virsh help | grep reboo