Qemu-KVM վիրտուալ մեքենայի տեղադրում տնային Linux համակարգչի վրա: KVM-ի օգտագործումը Kvm սերվերի վրա վիրտուալ մեքենաներ ստեղծելու համար՝ ստեղծելով ubuntu վիրտուալ մեքենա

Այս ներածական հոդվածում ես համառոտ կքննարկեմ բոլորը ծրագրային գործիքներօգտագործվում է ծառայության մշակման գործընթացում: Նրանց մասին ավելի մանրամասն կքննարկվեն հաջորդ հոդվածներում։

Ինչու՞ Սա օպերացիոն համակարգինձ համար մոտ ու հասկանալի է, ուստի բաշխման հավաքածու ընտրելիս չարչարանքներ, տանջանքներ ու նետումներ չեն եղել։ Այն առանձնահատուկ առավելություններ չունի Red Hat Enterprise Linux-ի նկատմամբ, սակայն որոշվել է աշխատել ծանոթ համակարգի հետ։

Եթե ​​դուք նախատեսում եք ինքնուրույն տեղակայել ենթակառուցվածքը՝ օգտագործելով նմանատիպ տեխնոլոգիաներ, ես ձեզ խորհուրդ կտամ վերցնել RHEL. լավ փաստաթղթերի և լավ գրված կիրառական ծրագրերի շնորհիվ դա կլինի, եթե ոչ մեծության կարգ, ապա, իհարկե, երկու անգամ ավելի հեշտ, և շնորհակալություն: զարգացած սերտիֆիկացման համակարգին հեշտությամբ կարող եք գտնել որոշակի թվով մասնագետներ, ովքեր պատշաճ մակարդակով ծանոթ են այս ՕՀ-ին:

Կրկին մենք որոշեցինք օգտագործել Debian Squeezeփաթեթների հավաքածուով Սիդ/Փորձարարականև որոշ փաթեթներ ապահովված և կառուցված մեր կարկատներով:
Ծրագրերը ներառում են փաթեթներով պահեստի հրատարակում:

Վիրտուալացման տեխնոլոգիա ընտրելիս դիտարկվել է երկու տարբերակ՝ Xen և KVM:

Հաշվի է առնվել նաև այն փաստը, որ Xen-ի վրա հիմնված ծրագրավորողների, հոսթերների, կոմերցիոն լուծումների հսկայական քանակ կա, այնքան ավելի հետաքրքիր էր KVM-ի վրա հիմնված լուծում իրականացնելը։

Հիմնական պատճառը, թե ինչու մենք որոշեցինք օգտագործել KVM-ն, վիրտուալ մեքենաները FreeBSD-ով և ապագայում MS Windows-ով գործարկելու անհրաժեշտությունն է:

Վարելու համար վիրտուալ մեքենաներՊարզվեց, որ չափազանց հարմար է արտադրանքներ օգտագործել իր API-ի միջոցով. վիրշ, virt-մենեջեր, virt-տեղադրելև այլն։

Սա համակարգ է, որը պահպանում է վիրտուալ մեքենաների կարգավորումները, կառավարում դրանք, վիճակագրություն է պահում դրանց վերաբերյալ, համոզվում է, որ գործարկման ժամանակ վիրտուալ մեքենաինտերֆեյսը բարձրացվեց, սարքերը միացնում է մեքենային - ընդհանուր առմամբ, կատարում է մի փունջ օգտակար աշխատանքև դրանից մի փոքր ավելին:

Իհարկե, լուծումը կատարյալ չէ։ Մինուսներից պետք է անվանել.

  • Բացարձակապես խելագար սխալի հաղորդագրություններ:
  • Վիրտուալ մեքենայի կոնֆիգուրացիայի մի մասը անմիջապես փոխելու անկարողությունը, չնայած QMP (QEMU Monitor Protocol) դա թույլ է տալիս:
  • Երբեմն անհնար է միանալ libvirtd-ին անհայտ պատճառով. այն դադարում է արձագանքել արտաքին իրադարձություններին:

Ծառայության ներդրման հիմնական խնդիրը հենց սկզբում եղել է վիրտուալ մեքենաների ռեսուրսների սահմանափակումը։ Xen-ում այս խնդիրը լուծվել է ներքին ժամանակացույցի օգնությամբ, որը ռեսուրսներ է բաշխում վիրտուալ մեքենաների միջև, և, ամենագեղեցիկը, նաև ներդրվել է սկավառակի գործողությունները սահմանափակելու հնարավորությունը:

Մինչև միջուկի ռեսուրսների բաշխման մեխանիզմի հայտնվելը KVM-ում նման բան չկար: Ինչպես սովորաբար Linux-ում, այս գործառույթների հասանելիությունն իրականացվել է հատուկ ֆայլային համակարգի միջոցով: խումբ, որի օգնությամբ պայմանական համակարգային զանգեր write() հնարավոր էր խմբին ավելացնել պրոցես, նշանակել դրա քաշը թութակներով, նշել միջուկը, որի վրա այն կաշխատի, նշեք. թողունակությունըսկավառակ, որը կարող է օգտագործել այս գործընթացը, կամ, կրկին, կշիռ նշանակել դրան:

Առավելությունն այն է, որ այս ամենն իրականացվում է միջուկի ներսում, և դուք կարող եք այն օգտագործել ոչ միայն սերվերի, այլև աշխատասեղանի համար (որն օգտագործվում էր հայտնի «The ~ 200 Line Linux Kernel Patch That Does Wonders» մեջ): Եվ իմ կարծիքով, սա 2.6 ճյուղի ամենանշանակալի փոփոխություններից մեկն է, բացի սիրելի #12309-ից, և ոչ միայն մեկ այլ ֆայլային համակարգ։ Դե, բացի POHMELFS-ից (բայց զուտ անվան պատճառով):

Իմ վերաբերմունքը այս գրադարան-օգտակար ծրագրին շատ երկիմաստ է:

Մի կողմից, այն կարծես հետևյալն է.

Եվ այս բանը նույնպես անիծյալ դժվար է կառուցել սկզբնաղբյուրից, և առավել եւս փաթեթի մեջ. երբեմն ինձ թվում է, որ Linux-ը զրոյից կառուցելը մի փոքր ավելի հեշտ է:

Մյուս կողմից, դա շատ հզոր բան է, որը թույլ է տալիս ստեղծել պատկերներ վիրտուալ մեքենաների համար, փոփոխել դրանք, սեղմել դրանք, տեղադրել grub, փոփոխել բաժանման աղյուսակը, կառավարել կազմաձևման ֆայլերը, ապարատային մեքենաները փոխանցել վիրտուալ միջավայր, փոխանցել վիրտուալ մեքենաներ: մի պատկերից մյուսը, վիրտուալ մեքենաները պատկերից ապարատային փոխանցեք և, անկեղծ ասած, այստեղ իմ երևակայությունը մի փոքր թուլանում է: Այո, դուք կարող եք նաև գործարկել դևոն Linux վիրտուալ մեքենայի ներսում և մուտք գործել վիրտուալ մեքենայի տվյալները ուղիղ եթերում, և ամեն ինչ անել shell, python, perl, java, ocaml տարբերակով: Դա կարճ է և հեռու ամբողջական ցանկըինչով կարելի է անել.

Հետաքրքիր է, որ կոդի մեծ մասը ստեղծվում է հավաքման պահին, ինչպես նաև նախագծի փաստաթղթերը: Շատ լայնորեն օգտագործվում է ocaml, perl: Կոդն ինքնին գրված է C-ով, որն այնուհետև փաթաթվում է OCaml-ով, և կոդի կրկնվող կտորները գեներացվում են իրենց կողմից: Պատկերների հետ աշխատելն իրականացվում է հատուկ ծառայության պատկերի գործարկումով (supermin appliance), որին ալիքով հրամաններ են ուղարկվում դրան: Այս պատկերը պարունակում է կոմունալ ծառայությունների մի շարք, ինչպիսիք են parted, mkfs և այլ օգտակար բաներ համակարգի ադմինիստրատորի համար:

Վերջերս ես նույնիսկ սկսեցի օգտագործել այն տանը, երբ ընտրեցի ինձ անհրաժեշտ տվյալները nandroid պատկերից: Բայց սա պահանջում է միջուկ՝ yaffs աջակցությամբ:

Այլ

Ստորև բերված են ևս մի քանի հետաքրքիր հղումներ դեպի օգտագործված ծրագրային գործիքների նկարագրությունը. հետաքրքրվելու դեպքում կարդացեք և ուսումնասիրեք ինքներդ: Օրինակ,

Ես գրում եմ այս գրառումը ցույց տալու համար քայլ առ քայլ տեղադրումև տեղադրել Linux վիրտուալ մեքենա՝ հիմնված KVM-ի վրա: Ավելի վաղ ես արդեն գրել էի վիրտուալացման մասին, որտեղ օգտագործել էի հրաշալի .

Հիմա ես կանգնած եմ վարձակալության հարցի առաջ լավ սերվերմեծ ծավալով պատահական մուտքի հիշողությունև ծավալուն կոշտ սկավառակ. Բայց ես չեմ ուզում նախագծերը գործարկել անմիջապես հյուրընկալող մեքենայի վրա, այնպես որ ես դրանք կառանձնացնեմ առանձին փոքր վիրտուալ սերվերների՝ Linux OS-ով կամ դոկեր կոնտեյներներով (դրանց մասին կխոսեմ մեկ այլ հոդվածում):

Բոլոր ժամանակակից ամպային հոսթինգները աշխատում են նույն սկզբունքով, i. լավ ապարատային հոսթերը բարձրացնում է վիրտուալ սերվերների մի փունջ, որոնք մենք օգտագործում էինք VPS / VDS անվանումով, և դրանք բաժանում օգտվողներին կամ ավտոմատացնում այս գործընթացը (բարև, DigitalOcean):

KVM (միջուկի վրա հիմնված վիրտուալ մեքենա) է ծրագրային ապահովում Linux-ի համար՝ օգտագործելով x86-ի հետ համատեղելի պրոցեսորների ապարատը՝ Intel VT/AMD SVM վիրտուալացման տեխնոլոգիայի հետ աշխատելու համար:

KVM տեղադրում

Ես կիրականացնեմ Ubuntu 16.04.1 LTS OS-ում վիրտուալ մեքենա ստեղծելու բոլոր մեքենայությունները։ Ստուգելու համար, թե արդյոք ձեր գործընթացները միացված են ապարատային վիրտուալացմանը Intel-ի վրա հիմնված VT/AMD SVM, կատարել:

Grep -E «(vmx|svm)» /proc/cpuinfo

Եթե ​​տերմինալը դատարկ չէ, ուրեմն ամեն ինչ կարգին է, և կարելի է տեղադրել KVM: Ubuntu-ն միայն պաշտոնապես աջակցում է KVM հիպերվիզորին (Linux միջուկի մի մասը) և խորհուրդ է տալիս օգտագործել libvirt գրադարանը որպես գործիք այն կառավարելու համար, ինչը մենք կանենք հաջորդիվ:

Կարող եք նաև ստուգել ապարատային վիրտուալացման աջակցությունը Ubuntu-ում հրամանի միջոցով.

Եթե ​​հաջողվի, կտեսնեք այսպիսի բան.

INFO. /dev/kvm գոյություն ունի KVM արագացումը կարող է օգտագործվել

Տեղադրեք փաթեթներ KVM-ի հետ աշխատելու համար.

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

Եթե ​​դուք մուտք ունեք համակարգի գրաֆիկական վահանակ, ապա կարող եք տեղադրել libvirt GUI մենեջեր.

sudo apt-get install virt-manager

Virt-manager-ի օգտագործումը բավականին պարզ է (ոչ ավելի դժվար, քան VirtualBox-ը), ուստի այս հոդվածը կկենտրոնանա վիրտուալ սերվերի տեղադրման և կազմաձևման կոնսոլային տարբերակի վրա:

Վիրտուալ սերվերի տեղադրում և կարգավորում

Տեղադրման, կազմաձևման և համակարգի կառավարման կոնսոլային տարբերակում virsh կոմունալը (լրացուցիչ libvirt գրադարանի համար) անփոխարինելի գործիք է: Այն ունի մեծ թվով տարբերակներ և պարամետրեր, մանրամասն նկարագրությունկարելի է ձեռք բերել այսպես.

մարդ virsh

կամ զանգահարեք ստանդարտ «օգնություն».

Virsh օգնություն

Վիրտուալ սերվերների հետ աշխատելիս ես միշտ հետևում եմ հետևյալ կանոններին.

  1. Պահպանում եմ iso պատկերներՕՀ /var/lib/libvirt/boot գրացուցակում
  2. Ես պահում եմ վիրտուալ մեքենայի պատկերները /var/lib/libvirt/images գրացուցակում
  3. Ես հստակորեն ստատիկ IP հասցե եմ հատկացնում յուրաքանչյուր նոր վիրտուալ մեքենային հիպերվիզորի DHCP սերվերի միջոցով:

Սկսենք տեղադրել առաջին վիրտուալ մեքենան (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

Պատկերը ներբեռնելուց հետո գործարկեք տեղադրումը.

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 \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604: img,size=20,bus=virtio

Այս բոլոր պարամետրերը թարգմանելով «մարդկային լեզվի»՝ պարզվում է, որ մենք ստեղծում ենք վիրտուալ մեքենա՝ Ubuntu 16.04 ՕՀ-ով, 1024 ՄԲ օպերատիվ հիշողությամբ, 1 պրոցեսորով, ստանդարտ ցանցային քարտով (վիրտուալ մեքենան ինտերնետ կմտնի, կարծես դրա պատճառով. NAT), 20 ԳԲ HDD:

Արժե ուշադրություն դարձնել պարամետրին --os-տարբերակ, այն ասում է հիպերվիզորին, թե որ օպերացիոն համակարգի ներքո պետք է հարմարեցվեն կարգավորումները:
ՕՀ-ի հասանելի տարբերակների ցանկը կարելի է ձեռք բերել՝ գործարկելով հրամանը.

osinfo հարցում os

Եթե ​​ձեր համակարգում նման օգտակար ծրագիր չկա, ապա տեղադրեք.

sudo apt-get install libosinfo-bin

Տեղադրումը սկսելուց հետո վահանակում կհայտնվի հետևյալ հաղորդագրությունը.

Դոմենի տեղադրումը դեռ ընթացքի մեջ է: Տեղադրման գործընթացը ավարտելու համար կարող եք նորից միանալ վահանակին:

Սա նորմալ վիճակ է, մենք կշարունակենք տեղադրումը VNC-ի միջոցով։
Մենք նայում ենք, թե որ պորտն է այն բարձրացվել մեր վիրտուալ մեքենայից (օրինակ, մոտակա տերմինալում).

Virsh dumpxml ubuntu1604 ... ...

Նավահանգիստ 5900, տեղական 127.0.0.1 հասցեում: VNC-ին միանալու համար անհրաժեշտ է օգտագործել Port Forwarding-ը ssh-ի միջոցով: Նախքան դա անելը, համոզվեք, որ tcp վերահասցեավորումը միացված է ssh daemon-ում: Դա անելու համար անցեք sshd կարգավորումներ.

Կատու /etc/ssh/sshd_config | grep AllowTcpForwarding

Եթե ​​ոչինչ չի հայտնաբերվել կամ տեսնում եք.

AllowTcpForwarding no

Այնուհետև մենք խմբագրում ենք կազմաձևը

AllowTcpForwarding այո

և վերագործարկեք sshd-ը:

Նավահանգիստների վերահասցեավորման կարգավորում

Գործարկեք հրամանը տեղական մեքենայի վրա.

Ssh -fN -l մուտք -L 127.0.0.1:5900:localhost:5900 server_ip

Այստեղ մենք կազմաձևել ենք ssh պորտի վերահասցեավորումը տեղական 5900 պորտից դեպի սերվերի նավահանգիստ 5900: Այժմ դուք կարող եք միանալ VNC-ին՝ օգտագործելով ցանկացած VNC հաճախորդ: Ես նախընտրում եմ UltraVNC-ն իր պարզության և հարմարության պատճառով:

Հաջող միացումից հետո էկրանին կցուցադրվի ստանդարտ Ubuntu տեղադրման ողջույնի պատուհանը.

Տեղադրման ավարտից և սովորական վերագործարկումից հետո մուտքի պատուհան կհայտնվի: Մուտք գործելուց հետո մենք որոշում ենք նոր արտադրված վիրտուալ մեքենայի IP հասցեն, որպեսզի հետագայում այն ​​ստատիկ դարձնենք.

ifconfig

Մենք հիշում ենք և գնում դեպի հյուրընկալող մեքենա: Մենք հանում ենք վիրտուալ մեքենայի «ցանցային» քարտի mac հասցեն.

Virsh dumpxml ubuntu1604 | grep «mac հասցե»

Հիշեք մեր Mac հասցեն.

Խմբագրում ցանցի կարգավորումները hypervisor:

sudo virsh net-edit default

Մենք փնտրում ենք DHCP և ավելացնում ենք սա.

Դուք պետք է ստանաք այսպիսի բան.

Որպեսզի կարգավորումներն ուժի մեջ մտնեն, դուք պետք է վերագործարկեք հիպերվիզորի DHCP սերվերը.

sudo virsh net-destroy default sudo virsh net-start լռելյայն sudo ծառայություն libvirt-bin վերագործարկում

Դրանից հետո մենք վերագործարկում ենք վիրտուալ մեքենան, այժմ դրա վրա միշտ նշանակված կլինի IP հասցեն՝ 192.168.122.131:

Վիրտուալ մեքենայի համար ստատիկ IP սահմանելու այլ եղանակներ կան, օրինակ՝ ուղղակիորեն խմբագրելով ցանցի կարգավորումները հյուրի համակարգի ներսում, բայց այստեղ դա կախված է ձեր սրտի բովանդակությունից: Ես պարզապես ցույց տվեցի այն տարբերակը, որը ես ինքս նախընտրում եմ օգտագործել։

Վիրտուալ մեքենայի տերմինալին միանալու համար գործարկեք՝

ssh 192.168.122.131

Մեքենան պատրաստ է մարտի։

Virsh. հրամանների ցուցակ

Գործող վիրտուալ հոսթեր տեսնելու համար (բոլոր հասանելիները կարելի է ձեռք բերել՝ ավելացնելով --all):

sudo virsh ցուցակ

Դուք կարող եք վերագործարկել հյուրընկալողը.

Sudo virsh-ը վերագործարկեց $VM_NAME-ը

Դադարեցրեք վիրտուալ մեքենան.

sudo virsh կանգառ $VM_NAME

Կատարել դադարեցում.

sudo virsh-ը ոչնչացնում է $VM_NAME-ը

sudo virsh start $VM_NAME

Անջատել:

sudo virsh-ի անջատում $VM_NAME

Ավելացնել autorun-ին.

sudo virsh ավտոմատ մեկնարկ $VM_NAME

Շատ հաճախ պահանջվում է կլոնավորել համակարգը, որպեսզի հետագայում այն ​​օգտագործվի որպես շրջանակ այլ վիրտուալ օպերացիոն համակարգերի համար, դրա համար օգտագործվում է virt-clone կոմունալ ծրագիրը:

Virt-clone - օգնություն

Այն կլոնավորում է գոյություն ունեցող վիրտուալ մեքենան և փոխում հյուրընկալող-զգայուն տվյալները, օրինակ՝ mac հասցեն: Գաղտնաբառերը, ֆայլերը և օգտագործողի համար նախատեսված այլ տեղեկություններ կլոնում մնում են նույնը: Եթե ​​կլոնավորված վիրտուալ մեքենայի վրա IP հասցեն ձեռքով մուտքագրվել է, ապա կարող են խնդիրներ առաջանալ կլոնին SSH մուտքի հետ կապված կոնֆլիկտի պատճառով (2 հոսթ նույն IP-ով):

Բացի VNC-ի միջոցով վիրտուալ մեքենայի տեղադրումից, հնարավոր է նաև օգտագործել X11Forwarding-ը virt-manager կոմունալ ծրագրի միջոցով: Windows-ում, օրինակ, Xming-ը և PuTTY-ն կարող են օգտագործվել դրա համար:

Ubuntu-ում խորհուրդ է տրվում օգտագործել KVM հիպերվիզորը (վիրտուալ մեքենայի կառավարիչ) և libvirt գրադարանը՝ որպես այն կառավարելու գործիք: Libvirt-ը ներառում է ծրագրային ապահովման API-ների և հատուկ վիրտուալ մեքենաների (VM) կառավարման հավելվածների մի շարք virt-manager (գրաֆիկական ինտերֆեյս, GUI) կամ virsh ( հրամանի տող, CLI): Որպես այլընտրանքային կառավարիչներ, դուք կարող եք օգտագործել convirt (GUI) կամ convirt2 (WEB ինտերֆեյս):

Ներկայումս Ubuntu-ում պաշտոնապես աջակցվում է միայն KVM հիպերվիզորը: Այս հիպերվիզորը օպերացիոն համակարգի միջուկի կոդի մի մասն է: Linux համակարգեր. Ի տարբերություն Xen-ի, KVM-ն չի աջակցում պարավիրտուալացմանը, ինչը նշանակում է, որ այն օգտագործելու համար ձեր պրոցեսորը պետք է աջակցի VT տեխնոլոգիաներին։ Դուք կարող եք ստուգել, ​​թե արդյոք ձեր պրոցեսորն աջակցում է այս տեխնոլոգիային՝ գործարկելով հրամանը տերմինալում.

Եթե ​​արդյունքը հաղորդագրություն է.

INFO. /dev/kvm գոյություն ունի KVM արագացումը կարող է օգտագործվել

այնպես որ KVM-ն կաշխատի առանց խնդիրների:

Եթե ​​ելքը հաղորդագրություն է.

Ձեր պրոցեսորը չի աջակցում KVM ընդլայնումներ KVM-ի արագացումը ՉԻ կարող օգտագործվել

ապա դուք դեռ կարող եք օգտագործել վիրտուալ մեքենան, բայց դա շատ ավելի դանդաղ կլինի:

    Տեղադրեք որպես հյուր 64-բիթանոց համակարգեր

    Հյուրերին հատկացրեք ավելի քան 2 ԳԲ օպերատիվ հիշողություն

Տեղադրում

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

Սա տեղադրում է առանց X սերվերի, այսինքն՝ չի ներառում գրաֆիկական ինտերֆեյս: Դուք կարող եք տեղադրել այն հրամանով

sudo apt-get install virt-manager

Դրանից հետո մենյուում կհայտնվի «Վիրտուալ մեքենայի կառավարիչ» տարրը և, ամենայն հավանականությամբ, ամեն ինչ կաշխատի: Եթե ​​դեռ որևէ խնդիր առաջանա, ապա ձեզ հարկավոր է կարդալ անգլերեն լեզվով վիքիի հրահանգները։

Ստեղծեք հյուրերի համակարգ

Ինչպես ստեղծել հյուրի համակարգ՝ օգտագործելով GUIբավականաչափ պարզ:

Բայց տեքստի ռեժիմը կարելի է նկարագրել:

qcow2

Գրաֆիկական ինտերֆեյսի օգտագործմամբ համակարգ ստեղծելիս որպես կոշտ սկավառակՁեզ կառաջարկվի ընտրել գոյություն ունեցող պատկերային ֆայլ կամ արգելափակել սարքը, կամ ստեղծել նոր ֆայլ՝ չմշակված (RAW) տվյալներով: Այնուամենայնիվ, սա հեռու է միակ հասանելի ֆայլի ձևաչափից: Man qemu-img-ում թվարկված բոլոր սկավառակների տեսակներից qcow2-ն ամենաճկունն է և արդիականը: Այն աջակցում է snapshots, ծածկագրման և սեղմման: Այն պետք է ստեղծվի նախքան նոր հյուր համակարգ ստեղծելը:

Qemu-img ստեղծել -o preallocation=metadata -f qcow2 qcow2.img 20G

Ըստ նույն մարդու qemu-img-ի, մետատվյալների նախաբաշխումը (-o preallocation=metadata) սկզբնապես մի փոքր ավելի մեծացնում է սկավառակը, բայց ապահովում է. ավելի լավ կատարումայն պահերին, երբ կերպարը պետք է աճի: Փաստորեն, այս դեպքում այս տարբերակը խուսափում է տհաճ սխալից: Ստեղծված պատկերն ի սկզբանե զբաղեցնում է մեկ մեգաբայթից պակաս տարածք և անհրաժեշտության դեպքում աճում է նշված չափի: Հյուրերի համակարգը պետք է անմիջապես տեսնի այս վերջնական նշված չափը, սակայն տեղադրման փուլում այն ​​կարող է տեսնել իրական չափֆայլ։ Բնականաբար, սահմանված է HDD 200 կբ չափով, կհրաժարվի։ Սխալը հատուկ չէ Ubuntu-ին, այն հայտնվում է նաև RHEL-ում, համենայն դեպս։

Բացի պատկերի տեսակից, հետագայում կարող եք ընտրել, թե ինչպես միացնել այն՝ IDE, SCSI կամ Virtio Disk: Սկավառակի ենթահամակարգի կատարումը կախված կլինի այս ընտրությունից: Միանշանակ ճիշտ պատասխան չկա, դուք պետք է ընտրեք՝ ելնելով այն առաջադրանքից, որը հանձնարարվելու է հյուրի համակարգին: Եթե ​​հյուրի համակարգը ստեղծվել է «տեսնելու համար», ապա ցանկացած մեթոդ կստացվի: Ընդհանուր առմամբ, I/O-ն սովորաբար վիրտուալ մեքենայի խցանն է, ուստի բարձր բեռնված համակարգ ստեղծելիս այս խնդիրը պետք է հնարավորինս պատասխանատու կերպով վերաբերվի:

Նախկինում գրել եմ տեղադրման մասին Քեմու-ԿՎՄՎ Դեբիան. Բայց, իմ կարծիքով, տեղեկատվությունը թերի է ստացվել։ Բացի այդ, ես հաշվի չեմ առել որոշ նրբերանգներ: Հետևաբար, ես ձեր ուշադրությանն եմ ներկայացնում թարմացված հոդված Qemu-KVM վիրտուալ մեքենայի տեղադրման վերաբերյալ: հին հոդվածԲնականաբար, կջնջեմ։

Կարծում եմ բացատրել, թե ինչ վիրտուալ մեքենա, չարժե այն. Դուք հավանաբար գիտեք սա (քանի որ կարդում եք այս հոդվածը): Եթե ​​ոչ - . Մենք ուղղակիորեն կկենտրոնանանք թեմայի վրա: Քեմու-ԿՎՄնախագիծ է՝ միավորելու երկու առավել ուշագրավ (իմ կարծիքով) ամբողջական վիրտուալացման տեխնոլոգիաները: Քեմումի տեսակ «համակարգչային էմուլյատոր» է, որն աջակցում է ապարատային ճարտարապետությունների մեծ բազմազանությանը: Այն կարող է գործարկել գրեթե ցանկացած ՕՀ ցանկացած սարքի համար (օրինակ, ես գործարկել եմ հին տարբերակները MacOS X, որի համար PowerPC) Qemu-ի թերությունը նրա դանդաղությունն է՝ ապարատային արագացման բացակայության պատճառով: Եվ ահա մեկ այլ նախագիծ գալիս է օգնության. KVM. Կամ միջուկի վիրտուալ մեքենա: KVM-ը Linux միջուկի տեխնոլոգիա է, որը հնարավորություն է տալիս ապարատային արագացումն ամբողջությամբ վիրտուալիզացիայի միջոցով: KVM-ի թերությունն այն է, որ այն աջակցում է միայն x86 ճարտարապետությանը:

Ինչու՞ Qemu-KVM: Linux-ի համար սա վիրտուալացման ամենաառաջարկվող նախագիծն է: Այն աշխատում է ավելի արագ, քան վիրտուալ տուփԵվ VMware նվագարկիչ(ըստ իմ թեստերի), KVM-ը բնիկ Linux-ն է: Գումարած, եթե դու բարիքի տերն ես խաղային համակարգիչերկու գրաֆիկայի քարտերով կարող եք տեղադրել Qemu-KVM Windows, դրա մեջ գցեք վիդեո քարտերից մեկը և մոռացեք մեկ այլ ՕՀ վերագործարկման մասին։ Եթե ​​ցանկանում եք խաղալ, գործարկեք վիրտուալ մեքենա Windows-ով և խաղացեք: Կատարումը կկազմի ապարատում տեղադրված Windows-ի կատարողականի 95%-ը: Բայց դա ուղղակի հիասքանչ է, իմ կարծիքով: Այս մասին առանձին հոդված կգրեմ։ Հետաքրքիր է լինելու :)

Իսկ հիմա նկարագրեմ մեր գործողությունների ծրագիրը։ Նախ, ես կիրականացնեմ տեղադրումը օրինակով Debian 8.2 GNOME 64bit, թեև այլ գրաֆիկական միջավայրերում մեծ տարբերություն չի լինի: Երկրորդ, ես կնկարագրեմ KVM-ի հետ աշխատանքը միայն գրաֆիկական ռեժիմով (ի վերջո, մենք այն սերվերի վրա չենք տեղադրի): Հետևաբար, չկան տերմինալներ, սցենարներ և այլն, ինչպես սովորաբար արվում է սերվերի վիրտուալացման դեպքում: Երրորդ, խորհուրդ եմ տալիս լրացուցիչ կարդալ Qemu-ի և KVM-ի փաստաթղթերը (հղումներ կտամ հոդվածի վերջում): Սա շատ օգտակար կլինի ձեզ համար, եթե ցանկանում եք առավելագույնս օգտագործել այս փաթեթի ողջ ներուժը: Դե, մեր գործողությունների ծրագիրը պարզ է. Այժմ գործողության քայլերը.

  • qemu-kvm-ի տեղադրում;
  • գրաֆիկական մենեջերի և լրացուցիչ կոմունալ ծառայությունների տեղադրում;
  • ցանցային կամուրջի տեղադրում;
  • վիրտուալ մեքենաների համար պահեստի ստեղծում;
  • հյուրերի համակարգի տեղադրում.
Նախ, եկեք ստուգենք, արդյոք ձեր համակարգիչը աջակցում է ապարատային վիրտուալացմանը: Դա անելու համար տերմինալում գործարկեք հետևյալ հրամանը.

egrep «(vmx|svm)» /proc/cpuinfo

Հրամանի ելքը պետք է պարունակի կամ vmx, կամ svm. Եթե ​​դրանք չկան, ստուգեք, արդյոք վիրտուալացումը միացված է BIOS-ում (փնտրեք տարրերը Intel VT-iկամ նմանատիպ համար դրամ) Եթե ​​ոչինչ չկա, ուրեմն ձեր բախտը չի բերում։

Տեղադրեք անհրաժեշտ բաղադրիչները.

sudo apt install qemu-kvm bridge-utils libvirt-bin virt-manager

Ավելացրեք ինքներդ libvirt խմբին.

sudo adduser $USER libvirt

Հիմա եկեք կարգավորենք ցանցը: Որպեսզի բոլոր վիրտուալ մեքենաները կարողանան մուտք գործել ցանց և շփվել միմյանց հետ, դուք պետք է ստեղծեք ցանցային կամուրջ և վիրտուալ ցանցային քարտեր յուրաքանչյուր վիրտուալ մեքենայի համար ( թակել սարքեր) Քանի որ մենք տեղադրելու ենք վիրտուալ մեքենաներ գրաֆիկական ինտերֆեյսից, կարիք չկա ձեռքով ստեղծել ծորակներ: Վիրտուալ մենեջերդա կանի մեզ համար ամեն անգամ, երբ մենք գործարկենք այն: Մեզ միայն պետք է կամուրջը տեղադրենք։ Նախ, միացրեք միջուկում երթուղիչը.

sudo nano /etc/sysctl.conf

Մենք փնտրում ենք net.ipv4_forward=0 տողը և փոխում ենք դրա արժեքը 1 . Պահպանել և.

sudo sysctl -p

Ավելին, ես կենթադրեմ հետևյալը. 1) ձեր համակարգիչը ունի մեկ LAN քարտ, որը երթուղիչից ip հասցե է ստանում։ 2) Դուք մուտք եք գործում ինտերնետ 3G մոդեմի միջոցով, և ձեր ցանցային քարտն անվճար է: Այս տարբերակը ներառում է ավելին ինքնուրույն պատրաստված, բայց այն բազմիցս փորձարկվել է (միևնույն ժամանակ մեքենաներից մեկի վրա): Այսպիսով, բացեք ինտերֆեյսի ֆայլը.

sudo nano /etc/ցանց/ինտերֆեյս

Դրա լռելյայն բովանդակությունը հետևյալն է.



auto lo
iface lo inet loopback

Մենք փոխում ենք դրա բովանդակությունը։ Առաջին տարբերակի համար.

աղբյուր /etc/network/interfaces.d/*

# Loopback ցանցային ինտերֆեյս
auto lo
iface lo inet loopback

ավտոմատ eth0
iface eth0 inet ձեռնարկ

ավտոմատ br0
iface br0 inet static
հասցե 192.168.0.2
դարպաս 192.168.0.1
ցանցի դիմակ 255.255.255.0
ցանց 192.168.0.0
հեռարձակում 192.168.0.255
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0

Երկրորդ տարբերակի համար.

աղբյուր /etc/network/interfaces.d/*

# Loopback ցանցային ինտերֆեյս
auto lo
iface lo inet loopback

ավտոմատ ppp0
iface ppp0 inet wvdial

ավտոմատ eth0
iface eth0 inet ձեռնարկ

ավտոմատ br0
iface br0 inet static
հասցե 192.168.0.2
դարպաս 192.168.0.1
ցանցի դիմակ 255.255.255.0
ցանց 192.168.0.0
հեռարձակում 192.168.0.255
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
մինչեւ երթուղի del default br0

Նշում:եթե ձեզ պետք չէ ավտոմատ միացումՀամակարգի գործարկումից հետո ինտերնետ մոդեմի միջոցով հեռացրեք ավտոմատ ppp0 տողերը կազմաձևից և
iface ppp0 inet wvdial. Հակառակ դեպքում, համոզվեք, որ մոդեմը միացված է USB պորտին, երբ համակարգը գործարկվի:

Մենք խնայում ենք. Այժմ մոդեմով տարբերակի համար անհրաժեշտ է տեղադրել հավաքիչը wvdial:

sudo apt install wvdial

Կազմաձևի խմբագրում (խնդրում ենք նկատի ունենալ. որպես օրինակ օգտագործվում է 3G մոդեմը beeline. Ինտերնետում հեշտությամբ կարող եք գտնել այլ մոդեմների կոնֆիգուրացիաների օրինակներ):

sudo nano /etc/wvdial.conf


Init1=ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1"IP","home.beeline.ru"
Հիմար ռեժիմ = 1
ISDN=0
Մոդեմի տեսակը = USB մոդեմ
Նոր PPPD=այո
Հեռախոս = *99#
Մոդեմ=/dev/ttyACM0
Օգտվողի անուն = beeline
Գաղտնաբառ = beeline
Բաուդ = 9600
Երկիր = Ռուսաստան
Ավտոմատ վերամիացում = միացված է
Ավտոմատ DNS = անջատված
Պարապ վայրկյան = 0

Մենք խնայում ենք. Այժմ մոդեմը կմիանա համակարգի բեռնումից անմիջապես հետո: Line up route del default br0 հեռացնում է լռելյայն երթուղին կամրջով: Եթե ​​դա չկատարվի, դուք չեք կարողանա միանալ ինտերնետին, քանի որ երթևեկությունը կանցնի կամրջով, այլ ոչ թե 3G մոդեմով։

Վերջին քայլը, որ պետք է ասենք firewallայնպես, որ այն մեր վիրտուալ մեքենաներից թրաֆիկը փոխանցի ցանց և հակառակը: Դա անելու համար կարող եք գնալ երկու ճանապարհով. գրել սցենար մի քանի կանոններով iptables, որը կաշխատի համակարգի հետ կամ ձեռքով մուտքագրեք այս կանոնները և պահպանեք դրանք: Ես կօգտագործեմ առաջին տարբերակը. Երկրորդի համար անհրաժեշտ կլինի տեղադրել փաթեթը iptables- համառև պարզապես մեկ առ մեկ մուտքագրեք կանոնները (օգտագործելով sudo): Այսպիսով. ստեղծել սցենար (ցանկացած տեքստային խմբագիր) Տեղադրեք հետևյալ բովանդակությունը այնտեղ.

#!/bin/sh

# Սահմանեք ելքային միջերեսը, որի համար կկիրառվի հասցեի փոխարինում (NAT):
iptables -v -t nat -A POSTROUTING -o ppp0 -j դիմակահանդես

# Փոխանցել բոլոր փաթեթները, որոնք եկել են մոդեմ գլոբալ ցանց(0.0.0.0/0) դեպի տեղական ցանց (192.168.0.0/24)
iptables -v -A FORWARD -i ppp0 -o br0 -s 0.0.0.0/0 -d 192.168.0.0/24 -j ԸՆԴՈՒՆԵԼ

# Փոխանցել բոլոր փաթեթները, որոնք գալիս են տեղական ցանց(192.168.0.0/24) մինչև գլոբալ (0.0.0.0/0)
iptables -v -A FORWARD -i br0 -o ppp0 -s 192.168.0.0/24 -d 0.0.0.0/0 -j ԸՆԴՈՒՆԵԼ

Պահպանեք այն որպես gateway.շև տվեք կատարման իրավունքներ (կամ ֆայլի հատկություններում, կամ տերմինալում հրամանով chmod +x gateway.sh) Այժմ դուք կարող եք կամ ձեռքով սկսել այն համակարգը գործարկվելուց հետո, կամ ավելացնել այն գործարկմանը: Դա անելու համար սկրիպտը տեղափոխեք ~/.config/autostartֆայլերի կառավարիչմիացրեք ցուցադրել թաքնված ֆայլերը և կտեսնեք գրացուցակը .configձեր տնային գրացուցակում):

Այժմ ամեն ինչ պատրաստ է վիրտուալ մեքենան տեղադրելու համար: Հավելվածի ընտրացանկից գործարկեք Virt Manager (վիրտուալ մեքենայի կառավարիչ).

Աջ սեղմեք տողի վրա localhostև ընտրիր Մանրամասներ. Գնացեք ներդիր պահեստավորում. Վիրտուալ մեքենաները պահելու համար մենք պետք է նշենք գրացուցակ (կամ սկավառակի բաժանում/սկավառակ):

Կտտացրեք ներքևի ձախ անկյունում գտնվող գումարած նշանին Ավելացնել լողավազան), նշելով պահեստավորման տեսակը և դրան տանող ուղին:

Ներդիրի վրա Ցանցային ինտերֆեյսներդուք կարող եք ստուգել, ​​արդյոք ամեն ինչ աշխատում է:

Այժմ մենք սեղմում ենք Ֆայլ - Նոր վիրտուալ մեքենա. Նշեք սկավառակի պատկերի ուղին, վիրտուալ մեքենայի տեսակը: Հաջորդը, մենք նշում ենք դրա համար նախատեսված RAM-ի և պրոցեսորի միջուկների քանակը: Հաջորդը, նշեք մեր պահեստը և սեղմեք Նոր ծավալ. Նշեք անունը, թողեք տեսակը qcow2, և չափս։ Սա կլինի վիրտուալ կոշտ սկավառակ: Եթե ​​նախատեսում եք համակարգ տեղադրել գրաֆիկական կեղևով և մի շարք ծրագրերով, ավելի շատ տեղ տվեք (50 գիգ): Վերջին ներդիրում նշեք վանդակը Փոխեք կարգավորումները գործարկումից առաջ, ստուգեք, որ մեր կամուրջն ընտրված է որպես ցանցային սարք, գրեք ցանկացած անուն վիրտուալ մեքենայի համար և սեղմեք Ամբողջական. Դուք կտեսնեք այս վիրտուալ մեքենայի կարգավորումների պատուհանը:





Գնացեք ներդիր CPU, և նշեք վանդակը Պատճենել հյուրընկալող համակարգի պրոցեսորի կարգավորումները.

Ներդիրի կողքին Ցանց(հաջորդ), ինչպես նաև նշել վիտիո. Ներդիրի վրա Ցուցադրելնշել Համեմունք, և ներդիրի վրա Տեսանյութ - QXL. Այս հղումը սովորաբար ապահովում է առավելագույն կատարումգրաֆիկայի ներկայացում, բայց եթե ցանկանում եք, կարող եք փորձարկել: Խնդրում ենք նկատի ունենալ, որ հյուրերի համար Windows համակարգեր, պահանջում է QXL դրայվերի առանձին տեղադրում (բուն Windows-ում):


Այժմ, երբ ամեն ինչ պատրաստ է, վերին ձախ անկյունում սեղմեք Սկսեք տեղադրումը. Եվ մենք տեղադրում ենք համակարգը, ինչպես միշտ, մեկ բացառությամբ. հենց որ տեղադրողը սկսում է ավտոմատ կերպով կարգավորել ցանցը, սեղմեք Չեղարկելև ընտրեք Ցանցը ձեռքով կարգավորեք. Նշեք ցանկալի IP հասցեն վիրտուալ մեքենայի համար (մեր դեպքում 192.168.0.3 ), ենթացանցային դիմակ ( 255.255.255.0 ), gateway (դարպասը կլինի հյուրընկալողի հասցեն, այսինքն. 192.168.0.2 ) և DNS սերվեր (այստեղ պարզապես մուտքագրեք Google-ը 8.8.8.8 ) Եվ վերջ։ Այլևս ոչինչ անել պետք չէ: Տեղադրեք համակարգը և կարգավորեք: Ընդհանուր առմամբ, ամեն ինչ. Նկարագրված քայլերը միջոց են, ասենք, VirtualBox-ը փոխարինելու ավելի լավ այլընտրանքով: Փաստաթղթերը կարդալուց հետո դուք կհասկանաք, թե որքան լայն են Qemu-KVM-ի հնարավորությունները: Ես միտումնավոր չեմ նկարագրել այստեղ տերմինալի միջոցով վիրտուալ մեքենաներ գործարկելու լրացուցիչ կոնսոլային պարամետրեր և մեթոդներ, քանի որ դա հեռու է միշտ անհրաժեշտությունից: տան մեքենա. Այս մասին առանձին հոդված կգրեմ՝ տնային բազմաֆունկցիոնալ սերվերի տեղադրման մասին (որը կարող է նաև գործել որպես վիրտուալ մեքենայի սերվեր)։ Նրանց համար, ովքեր ինչ-ինչ պատճառներով չեն հասկացել, թե ինչ է գրված, կամ եղել են անհասկանալի պահեր, առաջարկում եմ դիտել տեսանյութը, որում ես այլևս չեմ նկարագրի, այլ ցույց կտամ, թե ինչպես տեղադրել և կարգավորել այս ամենը: Եթե ​​հոդվածում առաջարկներ կամ լրացումներ ունեք, գրեք մեկնաբանություններում:

Հիպերվիզորի աջակցության ստուգում

Մենք ստուգում ենք, որ սերվերն աջակցում է վիրտուալացման տեխնոլոգիաներին.

կատու /proc/cpuinfo | egrep «(vmx|svm)»

Պատասխանը պետք է նման լինի.

դրոշներ՝ 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 nx pdpe1gb rdtscp lm konstant_stop_tspl. c aperfmperf pni pclmulqdq dtes64 մոնիտոր ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm epb tpr_shadow vnmi flexpriority ept vpid dtherm ida arat

Հակառակ դեպքում, մենք մտնում ենք BIOS, գտնում ենք վիրտուալացման տեխնոլոգիան միացնելու տարբերակը (այն ունի տարբեր անուններ, օրինակ՝ Intel Virtualization Technology կամ Virtualization) և միացնում ենք այն՝ սահմանել արժեքը։ միացնել.

Կարող եք նաև ստուգել համապատասխանությունը հրամանի հետ.

* եթե հրամանը վերադարձնում է սխալ «kvm-ok հրամանը չի գտնվել», տեղադրեք համապատասխան փաթեթը. apt-get install cpu-checker.

Եթե ​​տեսնենք.

INFO. /dev/kvm գոյություն ունի
KVM արագացումը կարող է օգտագործվել

նշանակում է, որ կա աջակցություն ապարատային կողմից:

Սերվերի պատրաստում

Մեր հարմարության համար եկեք ստեղծենք գրացուցակ, որտեղ մենք կպահենք տվյալները KVM-ի համար.

mkdir -p /kvm/(vhdd,iso)

* կստեղծվի երկու գրացուցակ. /kvm/vhdd(վիրտուալ համար կոշտ սկավառակներ) Եվ /kvm/iso(iso պատկերների համար):

Եկեք սահմանենք ժամանակը.

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* տրված հրամանըսահմանում է գոտին Մոսկվայի ժամանակին համապատասխան:

ntpdate en.pool.ntp.org

* կատարել համաժամացում ժամանակի սերվերի հետ:

Տեղադրում և գործարկում

Տեղադրեք KVM և անհրաժեշտ կառավարման կոմունալ ծառայություններ:

ա) Ubuntu-ն մինչև 18.10 տարբերակը

apt-get install qemu-kvm libvirt-bin virtinst libosinfo-bin

բ) Ubuntu 18.10-ից հետո.

apt-get տեղադրել qemu-kvm libvirt-daemon-system libvirt-bin virtinst libosinfo-bin

* Որտեղ քեմու-կվմ- հիպերվիզոր; libvirt-bin- հիպերվիզորի կառավարման գրադարան; վիրտինստ— վիրտուալ մեքենայի կառավարման կոմունալ; libosinfo-bin- Օպերացիոն համակարգի ընտրանքների ցանկը դիտելու օգտակար ծրագիր, որը կարող է օգտագործվել որպես հյուր:

Կարգավորել ավտոմատ մեկնարկծառայություն:

systemctl միացնել libvirtd

Եկեք սկսենք libvirtd:

systemctl start libvirtd

Ցանցի կոնֆիգուրացիա

Վիրտուալ մեքենաները կարող են աշխատել NAT-ի հետևում (որը KVM սերվերն է) կամ ստանալ IP հասցեներ տեղական ցանցից. դրա համար անհրաժեշտ է կարգավորել ցանցային կամուրջը: Մենք կտեղադրենք վերջինը:

Հեռակա կապ օգտագործելիս ուշադիր ստուգեք կարգավորումները: Սխալի դեպքում կապը կդադարեցվի։

Տեղադրեք Bridge-utils.

apt-get install bridge-utils

ա) ցանցի կարգավորում Ubuntu-ի հին տարբերակներում (/etc/ցանց/ինտերֆեյս):

Բացեք կազմաձևման ֆայլը՝ ցանցային միջերեսները կարգավորելու համար.

vi /etc/ցանց/ինտերֆեյս

Եվ հիշենք.

#face eth0 inet static
# հասցե 192.168.1.24
# ցանցային դիմակ 255.255.255.0
# դարպաս 192.168.1.1
# dns-nameservers 192.168.1.1 192.168.1.2

Ավտոմատ br0
iface br0 inet static
հասցե 192.168.1.24
ցանցի դիմակ 255.255.255.0
դարպաս 192.168.1.1
dns-nameservers 192.168.1.1 192.168.1.2
bridge_ports eth0
bridge_fd 9
կամուրջ_բարև 2
bridge_maxage 12
bridge_stp off

* որտեղ այն ամենը, ինչ մեկնաբանվում է, իմ ցանցի հին կարգավորումներն են. br0- ստեղծված կամրջի միջերեսի անվանումը. eth0- գոյություն ունեցող ցանցային ինտերֆեյսը, որի միջոցով կամուրջը կաշխատի:

Վերագործարկեք ցանցային ծառայությունը.

systemctl վերագործարկեք ցանցը

բ) ցանցի կարգավորում Ubuntu-ի նոր տարբերակներում (netplan):

vi /etc/netplan/01-netcfg.yaml

* կախված համակարգի տարբերակից, կազմաձևման ֆայլից յամլկարող է ունենալ այլ անուն:

Հիշենք.

ցանց:
տարբերակ: 2
մատուցող:ցանց
ethernets:
eth0:
dhcp4: կեղծ
dhcp6: կեղծ
wakeonlan: ճիշտ է

կամուրջներ:
br0:
մակադասցե՝ 2c:6d:45:c3:55:a7
միջերեսներ:
-eth0
հասցեները:
- 192.168.1.24/24
gateway4: 192.168.1.1
mtu: 1500
անունների սպասարկիչներ.
հասցեները:
- 192.168.1.1
- 192.168.1.2
պարամետրեր:
stp: ճշմարիտ
առաջ-ուշացում: 4
dhcp4: կեղծ
dhcp6: կեղծ

* Վ այս օրինակըմենք ստեղծում ենք վիրտուալ կամուրջ ինտերֆեյս br0; որպես ֆիզիկական ինտերֆեյս, որը մենք օգտագործում ենք eth0.

Կիրառել ցանցի կարգավորումները.

Մենք պնդում ենք վերահղումներ ցանցային տրաֆիկ(որպեսզի NAT ցանցային ինտերֆեյսով վիրտուալ մեքենաները կարողանան մուտք գործել ինտերնետ):

vi /etc/sysctl.d/99-sysctl.conf

Մենք տող ենք ավելացնում.

net.ipv4.ip_forward=1

Կիրառել կարգավորումները.

sysctl -p /etc/sysctl.d/99-sysctl.conf

Ստեղծեք վիրտուալ մեքենա

Առաջին վիրտուալ մեքենան ստեղծելու համար մուտքագրեք հետևյալ հրամանը.

virt-install -n VM1\
--Ավտոմատ մեկնարկ \
-- ոչ ավտոմատ վահանակ \
--ցանց=կամուրջ:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=2 --cpu host --check-cpu \
--սկավառակի ուղի=/kvm/vhdd/VM1-disk1.img,size=16 \
--cdrom /kvm/iso/ubuntu-18.04.3-server-amd64.iso \
--graphics vnc, listen=0.0.0.0, password=vnc_password \
--os-type linux --os-variant=ubuntu18.04 --boot cdrom,hd,menu=on

  • VM1 -Անուն ստեղծված մեքենա;
  • Ավտոմատ մեկնարկ-թույլ տալ, որ վիրտուալ մեքենան ավտոմատ կերպով գործարկվի KVM սերվերի հետ միասին.
  • noautoconsole-չի միանում վիրտուալ մեքենայի վահանակին.
  • ցանց-ցանցի տեսակը. Այս օրինակում մենք ստեղծում ենք վիրտուալ մեքենա՝ ցանցային կամուրջ ինտերֆեյսով: NAT տիպով ներքին ինտերֆեյս ստեղծելու համար մուտքագրեք --ցանց = լռելյայն, մոդել = վիրտուալ;
  • խոյ- RAM-ի քանակը;
  • vcpus-վիրտուալ պրոցեսորների քանակը;
  • սկավառակ-վիրտուալ սկավառակ. ճանապարհ-ճանապարհ դեպի սկավառակ; չափը-դրա ծավալը;
  • cdrom-վիրտուալ սկավառակ՝ համակարգի պատկերով;
  • գրաֆիկա-գրաֆիկական վահանակի միջոցով վիրտուալ մեքենային միանալու պարամետրերը (այս օրինակում մենք օգտագործում ենք vnc); լսել-որ հասցեում է այն ստանում vnc հարցումներ (մեր օրինակում՝ ընդհանրապես); գաղտնաբառ - vnc-ի միջոցով միանալու գաղտնաբառ;
  • os-տարբերակ-հյուրի օպերացիոն համակարգ (մենք ստացանք ամբողջ ցուցակը հրամանով osinfo-հարցում os, այս օրինակում մենք տեղադրում ենք Ubuntu 18.04):

Միացում վիրտուալ մեքենային

Համակարգչում, որտեղից մենք նախատեսում ենք աշխատել վիրտուալ մեքենաների հետ, ներբեռնեք VNC հաճախորդ, օրինակ՝ TightVNC և տեղադրեք այն:

Սերվերի վրա մուտքագրեք.

virsh vncdisplay VM1

հրամանը ցույց կտա, թե որ պորտում է աշխատում VNC-ը VM1 մեքենայի համար: Ես ունեցել եմ:

* :1 նշանակում է, որ դուք պետք է ավելացնեք 1 5900 - 5900 + 1 = 5901:

Մենք գործարկում ենք TightVNC Viewer-ը, որը մենք տեղադրել ենք և մուտքագրում ենք կապի տվյալները.

Սեղմեք Միացնել. Երբ ձեզ հուշում են գաղտնաբառ, մուտքագրեք այն, որը նշված է VM-ի ստեղծման ժամանակ, ( vnc_password) Մենք միանալու ենք վիրտուալ մեքենային հեռակառավարման վահանակով:

Եթե ​​մենք չենք հիշում գաղտնաբառը, բացեք վիրտուալ մեքենայի կարգավորումները հրամանով.

Եվ գտեք տողը.



* այս օրինակում վիրտուալ մեքենա մուտք գործելու համար օգտագործվում է գաղտնաբառ 12345678 .

Վիրտուալ մեքենայի կառավարում հրամանի տողից

Հրամանների օրինակներ, որոնք կարող են օգտակար լինել վիրտուալ մեքենաների հետ աշխատելիս:

1. Ստացեք ստեղծված մեքենաների ցանկը.

virsh ցուցակ - բոլորը

2. Միացրեք վիրտուալ մեքենան.

virsh start VMname

* Որտեղ VM անունըստեղծված մեքենայի անվանումն է։

3. Անջատեք վիրտուալ մեքենան.

ubuntu-vm-builder-ը Canonical-ի կողմից մշակված փաթեթ է՝ նոր վիրտուալ մեքենաների ստեղծումը պարզեցնելու համար:

Այն տեղադրելու համար մուտքագրեք.

apt-get տեղադրել ubuntu-vm-builder