Uy / Sharhlar / Kvm virtualizatsiyasini o'rnatish. Virtualizatsiyani boshqarish uchun foydali dasturlarning umumiy ko'rinishi. KVM virtual mashinalarini yaratish

Kvm virtualizatsiyasini o'rnatish. Virtualizatsiyani boshqarish uchun foydali dasturlarning umumiy ko'rinishi. KVM virtual mashinalarini yaratish

Men ko'plab veb-ga asoslangan boshqaruv interfeyslarini sinab ko'rdim va ularning hech biri virt-meneger kabi etarlicha yaxshi emas edi.

Bilasizmi, men boshqaruvning 90% bosiladigan VMware dasturiga ega bo'lganlardan biriman.

Mening savollarim:

1) mc (midnight komandiri) kabi "interaktiv" CLI yordam dasturi yoki KVMni qanday boshqarish mumkin? (VMni yoqish/o‘chirish, xotirani oshirish, VMlarni qayta ishga tushirish, virtual apparat qo‘shish, yangi disklar qo‘shish va h.k.)

2) Menga debian siqishida KVM uchun vebga asoslangan boshqaruv interfeysini tavsiya qila olasizmi? VMware Server 2 ni ko'rdingizmi? Veb-nazorat mavjud. Bilaman, bu sekin edi, lekin terminalsiz joyda bo'lsangiz, bu normal holat. (masalan, veb-brauzer bilan Androidda) Men ulardan ko'pini sinab ko'rdim, lekin hech narsa ishlamadi.

5) KVM xavfsizligini qanday yaxshilash mumkin? Ba'zi veb-interfeys bu muammoni hal qila oladimi? (masalan, buxgalteriya hisobi, foydalanuvchi boshqaruvi?)

Men google, wiki borligini bilaman, kvm uchun foydalanuvchi interfeysining uzun ro'yxati bor, lekin menga KVM-dan foydalanadigan mutaxassislar yoki foydalanuvchilarning fikri, tajribasi kerak. Umid qilamanki, bu ahmoqona savol emas. Savollarimga javoblar uchun barchaga rahmat.

5 Yechimlar "KVM - Qaysi veb-asoslangan boshqaruvdan foydalanishim kerak?"

KVM veb-menejeri uchun Proxmox-ni sinab ko'rishingiz mumkin. Debian Squeeze bo'yicha ko'rsatmalar bu erda.

Unda buyruq qatori vositalari mavjud, lekin matnli asosiy menyu yo'q.

Siz kichik muhitni o'rnatishingiz va uni sinab ko'rishingiz kerak. Keyin maqsadni belgilang va uni amalga oshiring.

Buning uchun aniq javob/qo'llanma yo'q. KVM-server/mijozni qanchalik qayta sozlanishi haqiqatan ham qancha resurslar (cpu/RAM/xotira) mavjudligiga bog'liq.

Shunga qaramay, bu sizning muhitingizga bog'liq va bular, masalan, ko'p qatlamli/qurilmalar. marshrutizatorlar, xavfsizlik devori, IP-jadvallar, parol siyosati, kirish siyosati va boshqalar. Men bularning barchasini, shu jumladan KVMni ham hal qila oladigan gui, veb-base yoki yo'qligini bilmayman. (Yaxshi, bulut bor, lekin u bilan umuman tajribam yo'q)

Siz harakat qildingiz kimchi? KVM-dagi eng qulay ochiq manba bo'lib, IBM tomonidan homiylik qilinadi.

Rad etish: Men Kimchi bilan umuman aloqador emasman. Men uning do'stona munosabatini yaxshi ko'raman.

Mutaxassislar CLI-dan foydalanadilar. GUI emas. Bu hatto tajribali Windows ma'murlari uchun ham amal qiladi.

Yo'q, GUI'lar hali ham yaxshilanmoqda, lekin o'z-o'zidan yoziladigan skriptlar tezroq va xohlaganingizni qiladi.

KVMda unumdorlikni oshirasizmi? Uni tashlang.

Bu faqat XEN-PV ekspertining maslahati. Faqat LXC (yoki boshqa konteynerlar) yoki chrootga asoslangan yechimlar tezroq.

KVM o'rnatish qo'llanmasi juda batafsil bo'lmasligi mumkin, lekin hech bo'lmaganda o'rnatish va sozlash jarayoni bo'yicha g'oyalarni bering yoki taqdim eting.

Boxilla deb nomlangan yangi korporativ darajadagi KVM va AV/IT tizimini boshqarish mavjud bo'lib, u maksimal ishlash, foydalanish qulayligi va xavfsizlikni ta'minlaydigan keng qamrovli va markazlashtirilgan boshqaruv markaziga ega.

U yuqori unumdor KVM, IP orqali KVM, virtuallashtirilgan so'nggi nuqtalar va turli AV/IT qurilmalarini bitta markazlashtirilgan boshqaruv markazida boshqarish imkoniyatini beradi, ma'murlarga kuchli veb va umumiy tarmoqdan foydalangan holda ko'p bosqichli KVM va AV/IT joylashuvlarini boshqarish imkonini beradi. foydalanuvchi interfeysi. Bu haqda ko'proq ma'lumotni bu yerda topishingiz mumkin: https://www.blackbox.co.uk/gb-gb/page/37929/Solutions-Industries/Technology-Products/KVM-Switching-and-Extension/Centralised-KVM-AV- Menejer - boxilla

Oddiy KVM kalitlari bilan, ishonamanki, ko'pchilik duch kelgan. "KVM" qisqartmasi "Klaviatura video sichqonchasi" degan ma'noni anglatadi. KVM qurilmasi faqat bitta klaviatura + monitor + sichqoncha (K.M.M.) to'plamiga ega bo'lgan holda bir nechta kompyuterlarni boshqarish imkonini beradi ( tizim bloklari). Boshqacha qilib aytganda, biz N tizim bloklarini olamiz, ularning chiqishlarini K.M.M.dan ulaymiz. KVM qurilmasiga va allaqachon qurilmaning o'ziga biz haqiqiy monitor, klaviatura va sichqonchani ulaymiz. KVM-dan foydalangan holda kompyuterlar o'rtasida almashinish orqali biz tanlangan kompyuterning ekranida nima sodir bo'layotganini ko'rishimiz, shuningdek, uni bevosita unga ulangandek boshqarishimiz mumkin.

Agar bizga ish uchun bir nechta mashina kerak bo'lsa, bu qulay, biroq ularga bir vaqtning o'zida kirish shart emas. Bundan tashqari, bo'sh joy sezilarli darajada tejaladi - monitorlar, hatto suyuq kristallilar ham stolda juda ko'p joy egallaydi. Ha, va ular juda qimmatga tushmaydi. Stol ustidagi bir nechta klaviatura va sichqonlarda siz tezda chalkashib ketishingiz mumkin ...

Ilg'or o'quvchilar e'tiroz bildirishadi - agar kompyuterlar bitta kompyuterga ulangan bo'lsa, nima uchun bunday qiyinchiliklar paydo bo'ladi mahalliy tarmoq va siz o'rnatilgan operatsion tizim (yoki tashqi) dasturlardan foydalanishingiz mumkin masofaviy kirish, masalan, Windows ostida Terminal Services yoki Radmin, VNC, *nix-ga o'xshash operatsion tizimlar ostida ssh. Hammasi to'g'ri, lekin, masalan, kompyuterning BIOS-ga kirishingiz kerak bo'lsa yoki biz noto'g'ri drayver yoki dasturni o'rnatganimiz sababli operatsion tizim yuklashni to'xtatgan bo'lsa, nima qilishimiz kerak? Yoki kompyuterda bir nechta operatsion tizim o'rnatilganmi va biz sukut bo'yicha boshlanadigan noto'g'risini tanlashimiz kerak edi? Umuman olganda, bu dasturlarning barchasi haqiqatan ham yaxshi, lekin ma'lum chegaralarga qadar - agar kompyuterning OS ishlayotgan bo'lsa va biz faqat ushbu OS yuklangandan keyin kompyuterga kirishimiz kerak.

Masalan, kompaniya tomonidan ishlab chiqarilgan qurilmalar misolidan foydalanib, bir nechta tipik KVM kalitlarini ko'rib chiqaylik.

Qurilma spetsifikatsiyalari

CN-6000 foydalanuvchilar o'rtasida vakolatlarni ajratishni qo'llab-quvvatlaydi va 64 tagacha ma'muriy yoki foydalanuvchi hisoblarini yaratishga imkon beradi, ulardan 16 tagacha hisob bir vaqtning o'zida qurilma bilan ishlashi mumkin. Qurilma boshqaruv uchun o‘rnatilgan WEB-interfeysga ega bo‘lib, uning kichik o‘lchamlari uni stol ustiga qo‘yish yoki (to‘plamga kiritilgan maxsus kronshteyn yordamida) tokchaning yon fermasida (0U stendga o‘rnatiladigan) o‘rnatish imkonini beradi. CN-6000 Ethernet ulanishi (veb-interfeys yoki mahalliy yordamchi dastur) orqali mikrodasturni yangilashni qo'llab-quvvatlaydi. Qurilma tomonidan qo'llab-quvvatlanadigan maksimal video o'lchamlari 1600x1200 piksel.

Xususiyatlarning qisqacha jadvali:

Uskuna talabi (masofaviy mijoz)Pentium III 1 Gts
Interfeyslarmahalliy konsolKlaviatura1 × Mini-DIN-6 F (binafsha)
Video1 × HDB-15 F (Moviy)
Sichqoncha1 × HDB-15 F (yashil)
Tizim (KVM)1 × SPHD-15F (sariq)
LAN porti1 x RJ-45(F)
Tarmoqda quvvat (zahiralangan)1 × DB9(M)
Quvvat interfeysi1
Tugmalar/kalitlarKVM qayta o'rnatish1 × yarim yashirin, old
Ko'rsatkichlaroziqlanish1 × apelsin
masofaviy foydalanuvchi ulanishi1 x yashil
LAN 10/100 Mbit / s1 × yashil/to'q sariq
Qo'llab-quvvatlanadigan protokollar10baseT Ethernet va 100baseTX Fast Ethernet. TCP/IP
Video ruxsatnomalari1600×1200 60Hz gacha
Ramkametall
Olchamlari (uzunlik × kenglik × balandlik)200×80×25 mm

Keling, testlarga o'tamiz.

To'plam bilan birga kelgan kompakt diskda to'rtta yordamchi dastur mavjud:

  • CN6000 Client - bu ulanish imkonini beruvchi Windows mijoz dasturi masofaviy kompyuter
  • Java-da yozilgan shunga o'xshash mijoz dasturi (jar formatida)
  • CN6000 Admin Tool - qurilma konfiguratsiya menejeri (Windows ostida)
  • log server - CN-6000 dan jurnal fayllarini qabul qilish va saqlash uchun sozlanishi mumkin bo'lgan dastur

Bundan tashqari, WEB-server KVM kalitiga o'rnatilgan, shuning uchun qurilmaga WEB-brauzer orqali kirish mumkin. Ammo biz veb-interfeysga birozdan keyin qaytamiz, avval individual yordamchi dasturlarni ko'rib chiqamiz.

Administrator vositasi orqali CN-6000 ni sozlash.

Dastur qurilmani sozlash, kirish parollarini o'rnatish, xavfsizlik va boshqalar uchun mo'ljallangan.

U ishga tushirilganda, u qiziquvchan emas edi:

Ilk bor kiritilgan diskdagi barcha yordamchi dasturlarni ishga tushirganingizda, seriya raqamini kiritishingiz talab qilinadi. Hujjatlarda (hatto oxirgi versiya, ishlab chiqaruvchining veb-saytida joylashgan) seriya raqami CN-6000 korpusining pastki qismida bosilganligi aytiladi. Va u erda qandaydir seriya raqami chop etilgan, faqat u dasturlar talab qilganidan ancha qisqaroq. Umuman olganda, bir oz azob chekib, seriya raqamini kiritish u yoki bu yo'lni topdim, unga nol yoki bo'sh joy qo'shib, "Noto'g'ri seriya raqami" oynasidan boshqa hech narsaga erishmadim, men o'sha kuni qurilmani sinovdan o'tkazishni tugatmoqchi edim. CD-ni CD-ROMdan olib (men uni birinchi navbatda CD-diskga joylashtirdim - dasturiy ta'minotni o'rnatishim kerak edi), diskda g'alati stiker topdim - bu juda ko'p seriya raqami bo'lib chiqdi.

Albatta, nazariy jihatdan, odam diskni diskka joylashtirganda diskda nima yozilgan yoki yopishtirilganiga e'tibor berishi mumkin. Ammo qanchalar bunga darhol e'tibor berishadi? :) Va, hayron bo'ladi, nima uchun hujjatlarga ataylab yolg'on ma'lumot yozish kerak edi? Takror aytaman - sayt ko'proq narsani o'z ichiga oladi yangi versiya Hujjatlar va u erda bu "xato" tuzatilmagan. Shuni ta'kidlaymanki, bu hujjatlarda o'tib ketadigan so'nggi noaniqlik emas, shuning uchun ba'zida siz "ko'zingizga ishonmang" degan gapga ko'ra harakat qilishingiz kerak.

CN-6000 ma'muriy yordam dasturi foydalidir, chunki u tarmoqdagi qurilmani topishga imkon beradi, hatto uning IP-manzili biz joylashgan quyi tarmoqqa tegishli bo'lmasa ham, biz (biz kirishga harakat qilayotgan kompyuter) kifoya qiladi. CN-6000 ) KVM kaliti bilan bir xil LAN segmentida edi.

Foydalanuvchi nomi va parolni kiritgandan so'ng biz qurilma konfiguratsiya menyusiga o'tamiz:

ATEN qurilma xavfsizligi masalasiga yaxshi yondashdi. Qurilma konfiguratsiyasini birinchi marta kiritganingizda, standart login va parolni o'zgartirish yaxshi bo'lishi haqida ogohlantirildi ...

Bobda tarmoq Qurilmaning IP manzili sozlangan, CN-6000 tomonidan boshqariladigan kompyuterlarga masofadan kirish uchun portlar o'rnatilgan. Shuningdek, bu erda siz KVM kommutatoridan yuborilgan jurnal fayllarini (hodisalar) saqlaydigan "Jurnal serveri" dasturi joylashgan mashinaning MAC manzilini belgilashingiz mumkin (agar u o'rnatilmagan bo'lsa, jurnallar kompyuterda saqlanadi. KVMning o'zi va ularni veb-interfeysdan ko'rishingiz mumkin). Ushbu mashina (Log-server uchun) Windows o'rnatilgan va muhokama qilinayotgan dastur ishlayotgan har qanday kompyuter bo'lishi mumkin. Yagona muammo shundaki, kompyuter KVM CN-6000 ning o'zi bilan bir xil tarmoq segmentida (taxminan aytganda, bir xil kalitga ulangan) bo'lishi kerak, shuning uchun bu "xususiyat" ning foydaliligi shubhali.

Xatcho‘plangan Xavfsizlik boshqariladigan kompyuterlarning masofaviy ekraniga kirish uchun filtrlar (MAC va/yoki IP manzillar bo'yicha), shuningdek, CN-6000 ning o'zini boshqarish uchun filtr sozlangan.

Keyingi yorliqda foydalanuvchi nomlari va parollar, shuningdek ularning huquqlari o'rnatiladi. Shunisi e'tiborga loyiqki, siz CN-6000 ni sozlash va JAVA mijozidan foydalanish uchun loginlarni cheklashingiz mumkin. Konfiguratsiya yordam dasturi qabul qiladigan minimal parol uzunligi sakkiz belgidan iborat. Achinarlisi, albatta, parol “soddalik” uchun tekshirilmaydi, lekin parol uzunligini tekshirish ham ATEN xavfsizlikka e'tibor qaratishini ko'rsatadi.

Oxirgi yorliq sizga qurilmaning dasturiy ta'minotini yangilash imkonini beradi, bir vaqtning o'zida bir nechta odamlar tomonidan masofaviy kompyuterga ulanish imkoniyatini yoqadi (garchi sichqoncha va klaviatura boshqariladigan kompyuter nuqtai nazaridan bir xil bo'lsa ham, bitta boshqaruvchi , qolganlari ... ko'rinadi yoki sichqonchani sudrab bir-biriga aralashadi turli tomonlar). Noto'g'ri autentifikatsiya jarayoniga reaktsiya darhol sozlanadi, shuningdek qo'shiladi turli rejimlar"yashirish" CN-6000 (pingga javob bermaslik va qachon o'zini ko'rsatishni taqiqlash avtomatik qidiruv mijoz yordam dasturi yoki ma'muriy yordam dasturi orqali mahalliy tarmoqdagi qurilmalar).

Xuddi shu yorliqda yana bir element mavjud - Chiqishda asl holatini tiklash. Men bu standart sozlamalarni tiklash deb taxmin qilaman, lekin ichida bu holat bu konfiguratsiya yordam dasturidan chiqqanda qurilmani qayta ishga tushirishni nazarda tutadi. Aks holda (agar u qayta ishga tushirilmasa), yangi sozlamalar eslab qolsa ham, qo'llanilmaydi (qayta ishga tushirilgunga qadar).

Shu nuqtada, konfiguratsiya yordam dasturini ko'rib chiqish tugallangan deb hisoblanishi mumkin (boshqa jihat Java mijozi bo'limida muhokama qilinadi).

Keling, veb-interfeysga o'tamiz.

WEB-interfeys orqali konfiguratsiya

Qurilmaning veb-interfeysiga kirish uchun istalgan brauzerda CN-6000-da o'rnatilgan IP-manzilni kiritish kifoya.

Shunisi e'tiborga loyiqki, brauzer darhol mijozni HTTPS:// orqali ulanishga yo'naltiradi, ya'ni. barcha keyingi ishlar xavfsiz SSL ulanishi orqali amalga oshiriladi.

Login va parolni kiritgandan so'ng, veb-interfeysning chap va yuqori qismidagi belgilar faollashadi (ularni bosishingiz mumkin).

Yuqori piktogrammalarda CN-6000 ni sozlash bilan bog'liq bo'limlar ochiladi. Ko'pincha, u erdagi barcha variantlar Windows yordam dasturi interfeysi variantlarini takrorlaydi. AdminTool, lekin ba'zi farqlar mavjud. Misol uchun, ushbu oynada (tarmoq manzillarini sozlash) biz faqat qurilmaning IP-manzilini o'rnatishimiz mumkin, ammo biz pastki tarmoq maskasi va shlyuzni aniqlay olmaymiz. Bundan tashqari, IP-manzilni o'rnatish qandaydir tarzda egri ishlaydi - men qurilmaning IP-manzilini veb-interfeysdan o'zgartira olmadim (Admin Tools yordam dasturidan foydalanib, u muammosiz o'zgartirildi).

Veb-interfeys orqali manzilni 10.0.0.9 dan 192.168.0.1 ga o‘zgartirmoqchi bo‘lganingizda Admin Tool yordam dasturida nimani ko‘rishingiz mumkin. Ba'zi sabablarga ko'ra, pastki tarmoq niqobi standart 255.255.255.0 dan 10.0.0.9 ga o'zgardi va qurilma (qayta ishga tushirilgandan so'ng) 5 soniya davomida 192.168.0.1 da javob beradi va keyin 10.0.0.9 da javob beradi (u 192.16.0 haqida butunlay unutadi) .0.1). Ehtimol, bu xatodir joriy versiya proshivka (1.5.141), ammo bu versiya sinov paytida kompaniyaning veb-saytida topish mumkin bo'lgan eng yangi versiya edi.

Sinov paytida veb-interfeys bilan bog'liq boshqa xatoliklar topilmadi.

Bob Xavfsizlik Administrator vositasida bir xil bo'limni takrorlaydi.

Bo'lim bilan o'xshash vaziyat Foydalanuvchi menejeri

... va bo'lim moslashtirish.

Belgi Jurnal, veb-interfeysning chap tomonida joylashgan bo'lib, qurilmaning ishlashi paytida sodir bo'lgan voqealarni ko'rish imkonini beradi. Bunday holda, ekran tasviri qurilma Nessus tomonidan sinovdan o'tkazilganda paydo bo'lgan jurnallarni aks ettiradi.

Yuqorida aytib o'tilganidek, jurnallar tashqi jurnal serveriga o'tkazilishi mumkin (lekin uning joylashuvida ma'lum cheklovlar bilan).

Men bu eslatmani ko'rsatish uchun yozyapman bosqichma-bosqich o'rnatish va KVM asosida Linux virtual mashinasini o'rnatish. Avvalroq, men virtualizatsiya haqida yozganman, u erda men ajoyib ishlatganman .

Endi menda katta hajmli yaxshi serverni ijaraga olish masalasi bor tasodifiy kirish xotirasi va katta qattiq disk. Lekin men loyihalarni to'g'ridan-to'g'ri xost mashinasida ishga tushirishni xohlamayman, shuning uchun ularni Linux OS yoki docker konteynerlari bilan alohida kichik virtual serverlarga ajrataman (ular haqida boshqa maqolada gaplashaman).

Barcha zamonaviy bulutli hostinglar bir xil printsip asosida ishlaydi, ya'ni. yaxshi uskunadagi hoster biz VPS / VDS deb ataydigan bir qator virtual serverlarni ko'taradi va ularni foydalanuvchilarga tarqatadi yoki bu jarayonni avtomatlashtiradi (salom, DigitalOcean).

KVM (yadroga asoslangan virtual mashina) hisoblanadi dasturiy ta'minot Linux uchun, Intel VT/AMD SVM virtualizatsiya texnologiyasi bilan ishlash uchun x86-mos protsessorlar apparatidan foydalanish.

KVM o'rnatish

Men Ubuntu 16.04.1 LTS OS da virtual mashina yaratish uchun barcha hiyla-nayranglarni bajaraman. Jarayonlaringiz Intel VT/AMD SVM asosidagi apparat virtualizatsiyasini qo'llab-quvvatlayotganligini tekshirish uchun quyidagilarni bajaring:

Grep -E "(vmx|svm)" /proc/cpuinfo

Agar terminal bo'sh bo'lmasa, unda hamma narsa tartibda va KVM o'rnatilishi mumkin. Ubuntu faqat rasmiy ravishda KVM gipervizorini (Linux yadrosining bir qismi) qo'llab-quvvatlaydi va libvirt kutubxonasidan uni boshqarish vositasi sifatida foydalanishni maslahat beradi, biz bundan keyin buni qilamiz.

Bundan tashqari, Ubuntu-da apparat virtualizatsiyasini qo'llab-quvvatlashni buyruq orqali tekshirishingiz mumkin:

Muvaffaqiyatli bo'lsa, siz shunga o'xshash narsani ko'rasiz:

INFO: /dev/kvm mavjud KVM tezlashuvidan foydalanish mumkin

KVM bilan ishlash uchun paketlarni o'rnating:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Agar siz tizimning grafik qobig'iga kirish imkoniga ega bo'lsangiz, libvirt GUI menejerini o'rnatishingiz mumkin:

sudo apt-get install virt-manager

Virt-manager-dan foydalanish juda oddiy (VirtualBox-dan qiyinroq emas), shuning uchun ushbu maqola virtual serverni o'rnatish va sozlashning konsol versiyasiga qaratiladi.

Virtual serverni o'rnatish va sozlash

O'rnatish, sozlash va tizimni boshqarishning konsol versiyasida virsh yordam dasturi (libvirt kutubxonasi uchun qo'shimcha) ajralmas vositadir. U juda ko'p variant va parametrlarga ega, batafsil tavsifni quyidagicha olish mumkin:

odam virsh

yoki standart "yordam" ni chaqiring:

Virsh yordami

Virtual serverlar bilan ishlashda men har doim quyidagi qoidalarga amal qilaman:

  1. Men iso OS tasvirlarini /var/lib/libvirt/boot katalogida saqlayman
  2. Men virtual mashina tasvirlarini /var/lib/libvirt/images katalogida saqlayman
  3. Men gipervisorning DHCP serveri orqali har bir yangi virtual mashinaga statik IP-manzilni aniq belgilayman.

Keling, birinchi virtual mashinani o'rnatishni boshlaylik (64-bit server ubunt 16.04 LTS):

CD /var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Rasmni yuklab olgandan so'ng, o'rnatishni ishga tushiring:

sudo virt-install \ --virt-type=kvm \ --name ubuntu1604\ --ram 1024 \ --vcpus=1 \ --os-variant=ubuntu16.04 \ --hvm \ --cdrom=/var/ lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \ --tarmoq tarmog'i=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604. img, o'lcham = 20, avtobus = virtio

Ushbu parametrlarning barchasini "inson tiliga" tarjima qilsak, biz Ubuntu 16.04 OS, 1024 MB operativ xotira, 1 protsessor, standart tarmoq kartasi bilan virtual mashina yaratmoqdamiz (virtual mashina xuddi shu sababli Internetga o'tadi) NAT), 20 GB qattiq disk.

Parametrga e'tibor berishga arziydi --os-variant, u hipervisorga qaysi operatsion tizim ostida sozlamalar moslashtirilishi kerakligini aytadi.
Mavjud OS opsiyalari ro'yxatini buyruqni bajarish orqali olish mumkin:

osinfo so'rovi os

Agar tizimingizda bunday yordamchi dastur bo'lmasa, o'rnating:

sudo apt-get install libosinfo-bin

O'rnatishni boshlaganingizdan so'ng, konsolda quyidagi xabar paydo bo'ladi:

Domenni oʻrnatish davom etmoqda. O'rnatish jarayonini yakunlash uchun konsolga qayta ulanishingiz mumkin.

Bu oddiy holat, biz VNC orqali o'rnatishni davom ettiramiz.
Biz virtual mashinamizdan qaysi port ko'tarilganiga qaraymiz (masalan, yaqin terminalda):

Virsh dumpxml ubuntu1604 ... ...

Port 5900, mahalliy manzilda 127.0.0.1. VNC-ga ulanish uchun ssh orqali Port Forwarding-dan foydalanishingiz kerak. Buni amalga oshirishdan oldin, ssh daemonida tcp uzatish yoqilganligiga ishonch hosil qiling. Buning uchun sshd sozlamalariga o'ting:

Cat /etc/ssh/sshd_config | grep AllowTcpForwarding

Hech narsa topilmasa yoki ko'rsangiz:

AllowTcpForwarding raqami

Keyin konfiguratsiyani tahrirlaymiz

AllowTcpForwarding ha

va sshd-ni qayta ishga tushiring.

Portni yo'naltirishni sozlash

Buyruqni mahalliy mashinada ishga tushiring:

Ssh -fN -l login -L 127.0.0.1:5900:localhost:5900 server_ip

Bu yerda biz ssh portini mahalliy port 5900 dan server port 5900 ga yo'naltirishni sozladik. Endi siz VNC ga istalgan VNC mijozi yordamida ulanishingiz mumkin. Men UltraVNC ni soddaligi va qulayligi tufayli afzal ko'raman.

Muvaffaqiyatli ulanishdan so'ng, standart Ubuntu o'rnatilishini xush kelibsiz oynasi ekranda ko'rsatiladi:

O'rnatish tugallangandan va odatiy qayta ishga tushirilgandan so'ng, kirish oynasi paydo bo'ladi. Tizimga kirgandan so'ng, biz yangi yaratilgan virtual mashinaning IP-manzilini aniqlaymiz, bu keyinchalik uni statik qiladi:

ifconfig

Biz eslaymiz va xost mashinasiga o'tamiz. Biz virtual mashinaning "tarmoq" kartasining mac-manzilini chiqaramiz:

Virsh dumpxml ubuntu1604 | grep "mac manzili"

Mac manzilimizni eslab qoling:

Tahrirlash tarmoq sozlamalari gipervizor:

sudo virsh net-edit sukut bo'yicha

Biz DHCP ni qidirmoqdamiz va buni qo'shamiz:

Siz shunga o'xshash narsani olishingiz kerak:

Sozlamalar kuchga kirishi uchun siz gipervisorning DHCP serverini qayta ishga tushirishingiz kerak:

sudo virsh net-destroy standart sudo virsh net-start standart sudo xizmati libvirt-bin qayta ishga tushirish

Shundan so'ng biz virtual mashinani qayta ishga tushiramiz, endi u har doim unga tayinlangan IP-manzilga ega bo'ladi - 192.168.122.131.

Virtual mashina uchun statik IP-ni o'rnatishning boshqa usullari mavjud, masalan, mehmon tizimi ichidagi tarmoq sozlamalarini to'g'ridan-to'g'ri tahrirlash orqali, ammo bu erda hamma narsa sizning xohishingizga bog'liq. Men faqat o'zim foydalanishni afzal ko'rgan variantni ko'rsatdim.

Virtual mashina terminaliga ulanish uchun quyidagilarni bajaring:

ssh 192.168.122.131

Mashina jangga tayyor.

Virsh: buyruqlar ro'yxati

Ishlayotgan virtual xostlarni ko'rish uchun (barcha mavjud bo'lganlarni --all qo'shish orqali olish mumkin):

sudo virsh ro'yxati

Xostni qayta ishga tushirishingiz mumkin:

Sudo virsh $VM_NAME qayta ishga tushirildi

Virtual mashinani to'xtating:

sudo virsh stop $VM_NAME

To'xtatishni bajaring:

sudo virsh $VM_NAME-ni yo'q qiladi

sudo virsh $VM_NAME boshlang

Yopmoq:

sudo virsh o'chirish $VM_NAME

Avtomatik ishga tushirishga qo'shing:

sudo virsh autostart $VM_NAME

Ko'pincha kelajakda boshqa virtual operatsion tizimlar uchun ramka sifatida foydalanish uchun tizimni klonlash talab qilinadi, buning uchun virt-klon yordam dasturidan foydalaniladi.

Virt-klon - yordam

U mavjud virtual mashinani klonlaydi va xost uchun sezgir ma'lumotlarni, masalan, Mac manzilini o'zgartiradi. Klondagi parollar, fayllar va boshqa foydalanuvchiga tegishli ma'lumotlar bir xil bo'lib qoladi. Agar klonlangan virtual mashinada IP-manzil qo'lda kiritilgan bo'lsa, ziddiyat (bir xil IP-ga ega 2 ta xost) tufayli klonga SSH kirishida muammolar bo'lishi mumkin.

VNC orqali virtual mashinani o'rnatishdan tashqari, virt-manager yordam dasturi orqali X11Forwarding dan ham foydalanish mumkin. Windows-da, masalan, Xming va PuTTY buning uchun ishlatilishi mumkin.

Ubuntu'da uni boshqarish uchun vosita sifatida KVM gipervisor (virtual mashina menejeri) va libvirt kutubxonasidan foydalanish tavsiya etiladi. Libvirt dasturiy ta'minot API'lari to'plamini va maxsus virtual mashinani (VM) boshqarish ilovalari virt-menejer (grafik interfeys, GUI) yoki virsh ( buyruq qatori, CLI). Muqobil menejerlar sifatida siz convirt (GUI) yoki convirt2 (WEB interfeysi) dan foydalanishingiz mumkin.

Hozirda Ubuntu'da faqat KVM gipervisor rasman qo'llab-quvvatlanadi. Ushbu gipervizor yadro kodining bir qismidir operatsion tizim linux. Xendan farqli o'laroq, KVM paravirtualizatsiyani qo'llab-quvvatlamaydi, ya'ni undan foydalanish uchun protsessoringiz VT texnologiyalarini qo'llab-quvvatlashi kerak. Terminalda buyruqni ishga tushirish orqali protsessoringiz ushbu texnologiyani qo'llab-quvvatlashini tekshirishingiz mumkin:

Agar natija xabar bo'lsa:

INFO: /dev/kvm mavjud KVM tezlashuvidan foydalanish mumkin

shuning uchun KVM muammosiz ishlaydi.

Agar chiqish xabar bo'lsa:

Sizning protsessoringiz KVM kengaytmalarini qo'llab-quvvatlamaydi KVM tezlashuvidan foydalanish MUMKIN

keyin siz hali ham virtual mashinadan foydalanishingiz mumkin, lekin u ancha sekinroq bo'ladi.

    Mehmon sifatida 64 bitli tizimlarni o'rnating

    Mehmonlarga 2 GB dan ortiq RAM ajrating

O'rnatish

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Bu X-siz serverda o'rnatish, ya'ni grafik interfeysni o'z ichiga olmaydi. Siz uni buyruq bilan o'rnatishingiz mumkin

sudo apt-get install virt-manager

Shundan so'ng, menyuda "Virtual mashina menejeri" elementi paydo bo'ladi va yuqori ehtimollik bilan hamma narsa ishlaydi. Agar biron bir muammo hali ham paydo bo'lsa, ingliz tilidagi wiki-dagi ko'rsatmalarni o'qib chiqishingiz kerak bo'ladi.

Mehmon tizimini yarating

Grafik interfeysdan foydalangan holda mehmon tizimini yaratish tartibi juda oddiy.

Lekin matn rejimini tasvirlash mumkin.

qcow2

Sifatida grafik interfeys yordamida tizim yaratishda qattiq disk sizdan mavjud rasm faylini tanlash yoki qurilmani bloklash yoki yaratish taklif qilinadi yangi fayl xom (RAW) ma'lumotlar bilan. Biroq, bu yagona mavjud fayl formatidan uzoqdir. Man qemu-img ro'yxatidagi barcha disk turlaridan qcow2 eng moslashuvchan va eng dolzarb hisoblanadi. U oniy tasvirlarni, shifrlashni va siqishni qo'llab-quvvatlaydi. Yangi mehmon tizimini yaratishdan oldin uni yaratish kerak.

Qemu-img create -o preallocation=metadata -f qcow2 qcow2.img 20G

Xuddi shu man qemu-img ga ko'ra, metama'lumotlarni oldindan taqsimlash (-o preallocation=metadata) dastlab diskni biroz kattalashtiradi, lekin tasvir o'sishi kerak bo'lganda yaxshi ishlashni ta'minlaydi. Aslida, bu holda, bu variant yoqimsiz xatolikdan qochadi. Yaratilgan rasm dastlab bir megabaytdan kamroq joy egallaydi va kerak bo'lganda belgilangan hajmgacha o'sadi. Mehmon tizimi ushbu oxirgi belgilangan hajmni darhol ko'rishi kerak, ammo o'rnatish bosqichida u faylning haqiqiy hajmini ko'rishi mumkin. Tabiiyki, sozlang qattiq disk 200 kb hajmda, u rad etadi. Xato Ubuntu-ga xos emas, u hech bo'lmaganda RHEL-da ham paydo bo'ladi.

Tasvir turiga qo'shimcha ravishda siz uni qanday ulashni keyinroq tanlashingiz mumkin - IDE, SCSI yoki Virtio Disk. Disk quyi tizimining ishlashi ushbu tanlovga bog'liq bo'ladi. Aniq to'g'ri javob yo'q, siz mehmon tizimiga topshiriladigan vazifaga asoslanib tanlashingiz kerak. Agar mehmon tizimi "ko'rish uchun" yaratilgan bo'lsa, unda har qanday usul yordam beradi. Umuman olganda, virtual mashinaning to'siqlari odatda I / U hisoblanadi, shuning uchun yuqori yuklangan tizimni yaratishda bu muammoga imkon qadar mas'uliyat bilan yondashish kerak.

Shaxsan men uchun KVM (yadroga asoslangan virtual mashina) ni Intel VT-x va AMD-V apparat virtualizatsiya texnologiyalariga nisbatan mavhumlik darajasi deb o'ylash eng oson. Biz ushbu texnologiyalardan birini qo'llab-quvvatlaydigan protsessorli mashinani olamiz, Linuxni ushbu mashinaga joylashtiramiz, Linuxda KVMni o'rnatamiz va natijada virtual mashinalar yaratish imkoniyatiga ega bo'lamiz. Bulutli xosting xizmatlari shunday ishlaydi, masalan, Amazon Web Services. KVM bilan bir qatorda, ba'zida Xen ham qo'llaniladi, ammo bu texnologiyani muhokama qilish ushbu post doirasidan tashqarida. Konteynerlarni virtualizatsiya qilish texnologiyalaridan farqli o'laroq, masalan, xuddi shu Docker, KVM har qanday operatsion tizimni mehmon tizimi sifatida ishlatishga imkon beradi, lekin u ham bor haqida Virtualizatsiya uchun katta xarajatlar.

Eslatma: Quyidagi qadamlar men tomonidan Ubuntu Linux 14.04 da sinovdan o'tkazildi, ammo nazariy jihatdan Ubuntu va boshqa Linux tarqatishlarining boshqa versiyalari uchun amal qiladi. Hamma narsa ish stolida ham, SSH orqali kiradigan serverda ham ishlashi kerak.

KVM o'rnatish

Intel VT-x yoki AMD-V protsessorimiz tomonidan qo'llab-quvvatlanishini tekshiring:

grep -E "(vmx|svm)" /proc/cpuinfo

Agar biror narsa qizib ketsa, u qo'llab-quvvatlanadi va siz davom etishingiz mumkin.

KVMni o'rnating:

sudo apt-get yangilanishi
sudo apt-get install qemu-kvm libvirt-bin virtinst-bridge-utils

Qayerda saqlash odatiy holdir:

  • /var/lib/libvirt/boot/ - mehmon tizimlarini o'rnatish uchun ISO tasvirlari;
  • /var/lib/libvirt/images/ - mehmon tizimlarining qattiq diskdagi tasvirlari;
  • /var/log/libvirt/ - bu yerda siz barcha jurnallarni qidirishingiz kerak;
  • /etc/libvirt/ - konfiguratsiya fayllari bilan katalog;

Endi KVM o'rnatildi, keling, birinchi virtual mashinamizni yarataylik.

Birinchi virtual mashinani yaratish

Men mehmon tizimi sifatida FreeBSD ni tanladim. Tizimning ISO tasvirini yuklab oling:

CD /var/lib/libvirt/boot/
sudo wget http:// ftp.freebsd.org/path/ to/ some-freebsd-disk.iso

Aksariyat hollarda virtual mashinalar virsh yordam dasturi yordamida boshqariladi:

sudo virsh - yordam

Virtual mashinani ishga tushirishdan oldin biz ba'zi qo'shimcha ma'lumotlarni to'plashimiz kerak.

Biz mavjud tarmoqlar ro'yxatini ko'rib chiqamiz:

sudo virsh net-list

Muayyan tarmoq haqidagi ma'lumotlarni ko'rish (birlamchi nomli):

sudo virsh net-info sukut bo'yicha

Mehmon OS uchun mavjud optimallashtirishlar ro'yxatini ko'rib chiqamiz:

sudo virt-install --os-variant ro'yxati

Shunday qilib, endi biz standart tarmoqqa ulangan 1 protsessor, 1 GB RAM va 32 GB disk maydoniga ega virtual mashinani yaratamiz:

sudo virt-install \
--virt-type = kvm \
--nomi freebsd10 \
--ram 1024\
--vcpus=1 \
--os-variant=freebsd8 \
--hvm\
--cdrom=/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--tarmoq tarmog'i = standart, model = virtio \
--graphics vnc\
--disk yo'li =/ var/ lib/ libvirt/ images/ freebsd10.img,size=32 ,bus=virtio

Ko'rishingiz mumkin:

OGOHLANTIRISH Grafik konsolga ulanib bo'lmadi: virt-viewer emas
o'rnatilgan. Iltimos, "virt-viewer" paketini o'rnating.

Domenni oʻrnatish davom etmoqda. Siz konsolga qayta ulanishingiz mumkin
o'rnatish jarayonini yakunlash uchun.

Hechqisi yo'q, shunday bo'lishi kerak.

Keyin biz virtual mashinaning XML formatidagi xususiyatlarini ko'rib chiqamiz:

sudo virsh dumpxml freebsd10

Mana eng to'liq ma'lumot. Jumladan, masalan, MAC manzili ham mavjud bo'lib, u bizga keyinroq kerak bo'ladi. Hozircha biz VNC haqida ma'lumot topamiz. Mening holimda:

Sevimli mijozimning yordami bilan (men shaxsan Ramminadan foydalanaman), agar kerak bo'lsa, SSH portini yo'naltirish orqali VNC orqali o'tamiz. Biz to'g'ridan-to'g'ri FreeBSD o'rnatuvchisiga kiramiz. Keyin hamma narsa odatdagidek - Keyingi, Keyingi, Keyingi, biz o'rnatilgan tizimni olamiz.

Asosiy buyruqlar

Endi KVM bilan ishlashning asosiy buyruqlarini ko'rib chiqamiz.

Barcha virtual mashinalar ro'yxatini olish:

sudo virsh ro'yxati --hammasi

Muayyan virtual mashina haqida ma'lumot olish:

sudo virsh dominfo freebsd10

Virtual mashinani ishga tushiring:

sudo virsh start freebsd10

Virtual mashinani to'xtatish:

sudo virsh o'chirish freebsd10

Virtual mashinani engish qiyin (nomiga qaramay, bu emas o'chirish):

sudo virsh freebsd10 ni yo'q qiladi

Virtual mashinani qayta ishga tushiring:

sudo virsh freebsd10-ni qayta ishga tushiring

Virtual mashinani klonlash:

sudo virt-clone -o freebsd10 -n freebsd10-clone \
--file / var/ lib/ libvirt/ images/ freebsd10-clone.img

Avtomatik ishga tushirishni yoqish/o‘chirish:

sudo virsh autostart freebsd10
sudo virsh autostart --freebsd10-ni o'chirib qo'ying

virsh-ni dialog rejimida ishga tushiring (dialog rejimidagi barcha buyruqlar - yuqorida tavsiflanganidek):

sudovirsh

XML-da virtual mashinaning xususiyatlarini tahrirlash, shu jumladan bu erda siz xotira miqdori chegarasini o'zgartirishingiz mumkin va hokazo:

sudo virsh tahrirlash freebsd10

Muhim! Tahrirlangan XML dan izohlar afsuski oʻchirib tashlandi.

Virtual mashina to'xtatilganda, disk hajmini ham o'zgartirish mumkin:

sudo qemu-img hajmini o'zgartirish / var/ lib/ libvirt/ images/ freebsd10.img -2G
sudo qemu-img info / var/ lib/ libvirt/ images/ freebsd10.img

Muhim! Sizning mehmon operatsion tizimingiz diskning to'satdan kattalashishi yoki kichrayishi yoqmaydi. Eng yaxshi holatda, diskni qayta qismlarga ajratish taklifi bilan favqulodda rejimda yuklanadi. Ehtimol, buni qilishni xohlamaysiz. Yangi virtual mashinani ishga tushirish va unga barcha ma'lumotlarni ko'chirish ancha oson bo'lishi mumkin.

Zaxiralash va tiklash juda oddiy. Bir joyda dumpxml chiqishini, shuningdek, disk tasvirini saqlash va keyin ularni qayta tiklash kifoya. YouTube'da video topildi bu jarayonning namoyishi bilan hamma narsa haqiqatdan ham oson.

Tarmoq sozlamalari

Qiziqarli savol - virtual mashina yuklanganidan keyin qanday IP-manzilni qanday aniqlash mumkin? KVMda bu aqlli tarzda amalga oshiriladi. Men quyidagi Python skriptini yozishni tugatdim:

#!/usr/bin/env python3

# virt-ip.py skripti
# (c) 2016 yil Aleksandr Alekseev
# http://veb-sayt/

import sys
import qayta
import os
import subprocess
xml dan .etree import ElementTree

def print(str ):
chop etish (str , fayl = sys.stderr )

agar len (sys.argv )< 2 :
eprint("FOYDALANISH: " + sys.argv [ 0 ] + " " )
eprint("Misol: " + sys .argv [ 0 ] + " freebsd10" )
sys.exit(1)

agar os.geteuid() != 0 :
eprint("XATO: siz root bo'lishingiz kerak")
eprint("Maslahat: run `sudo" + sys .argv [ 0 ] + " ...`" );
sys.exit(1)

agar subprocess .call( "qaysi arping 2>&1 >/dev/null", qobiq = rost ) != 0 :
eprint("XATO: arping topilmadi")
chop etish ( "Maslahat: "sudo apt-get install arping" ni ishga tushiring")
sys.exit(1)

Domen = sys.argv [1]

agar .match bo'lmasa ("^*$" , domen):
chop etish ( "XATO: domen nomidagi belgilar yaroqsiz")
sys.exit(1)

Domout = subprocess .check_output ("virsh dumpxml " +domain+" || true" ,
shell=To'g'ri)
domout = domout.decode("utf-8").strip()

agar domout == "" :
# xato xabari allaqachon dumpxml tomonidan chop etilgan
sys.exit(1)

Hujjat = ElementTree.fromstring (domout)

# 1. barcha tarmoq interfeyslarini sanab o'ting
# 2. parallel ravishda har bir interfeysda “arping”ni ishga tushiring
№3 grep javoblari
cmd= "(ifconfig | cut -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
"grep "baytlar dan") || rost"

doc.iter() da bola uchun:
if child.tag == "mac":
macaddr = child.attrib["adres"]
macout = subprocess .check_output(cmd .format(macaddr) ,
shell=To'g'ri)
chop etish(macout.decode("utf-8" ) )

Skript standart tarmoq va ko'prikli tarmoq bilan ishlaydi, ularning konfiguratsiyasini keyinroq muhokama qilamiz. Biroq, amalda, KVM-ni mehmonlarga har doim bir xil IP-manzillarni tayinlashi uchun sozlash ancha qulayroqdir. Buning uchun tarmoq sozlamalarini tahrirlang:

sudo virsh net-edit sukut bo'yicha

... shunga o'xshash narsa:

>



>

Ushbu o'zgarishlarni amalga oshirgandan so'ng


>

... va uni shunga o'xshash narsa bilan almashtiring:




>

Mehmon tizimini qayta ishga tushiramiz va u routerdan DHCP orqali IP qabul qilinganligini tekshiramiz. Agar siz mehmon tizimiga ega bo'lishni istasangiz statik IP manzili, bu odatda mehmonning o'zida sozlangan.

virt-menejer dasturi

Sizni virt-menejer dasturi ham qiziqtirishi mumkin:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd USERNAME

Uning asosiy oynasi quyidagicha ko'rinadi:

Ko'rib turganingizdek, virt-menejeri nafaqat mahalliy ishlaydigan virtual mashinalar uchun grafik interfeys. Uning yordamida siz boshqa xostlarda ishlaydigan virtual mashinalarni boshqarishingiz, shuningdek, real vaqtda chiroyli grafikalarni ko'rishingiz mumkin. Shaxsan men virt-menejerda ma'lum bir mehmon tizimining VNC qaysi portida ishlayotgan konfiguratsiyalarni ko'rib chiqishga hojat yo'qligini ayniqsa qulay deb bilaman. Siz shunchaki ro'yxatda virtual mashinani topasiz, ikki marta bosing va siz monitorga kirish huquqiga ega bo'lasiz.

Bundan tashqari, virt-meneger bilan XML fayllarini mashaqqatli tahrirlashni va ba'zi hollarda qo'shimcha buyruqlarni bajarishni talab qiladigan ishlarni qilish juda qulay. Masalan, virtual mashinalar nomini o'zgartirish, CPU yaqinligini sozlash va shunga o'xshash narsalar. Aytgancha, CPU yaqinligidan foydalanish shovqinli qo'shnilarning ta'sirini va virtual mashinalarning xost tizimiga ta'sirini sezilarli darajada kamaytiradi. Har doim iloji boricha foydalaning.

Agar siz KVM-ni VirtualBox o'rniga ishlatishga qaror qilsangiz, ular apparat virtualizatsiyasini baham ko'ra olmasligini unutmang. KVM ish stolida ishlashi uchun siz nafaqat VirtualBox va Vagrant-dagi barcha virtual mashinalarni to'xtatishingiz, balki tizimni qayta ishga tushirishingiz kerak bo'ladi. Men shaxsan KVM-ni VirtualBox-ga qaraganda ancha qulayroq deb bilaman, chunki u hech bo'lmaganda buyruqni bajarishni talab qilmaydi sudo /sbin/rcvboxdrv sozlamalari har bir yadro yangilanishidan so'ng, u Unity bilan etarli darajada ishlaydi va odatda barcha oynalarni yashirishga imkon beradi.