Үй / Пікірлер / Kvm виртуализациясын орнату. Виртуализацияны басқаруға арналған пайдалы бағдарламалық құралға шолу. KVM виртуалды машиналарын жасау

Kvm виртуализациясын орнату. Виртуализацияны басқаруға арналған пайдалы бағдарламалық құралға шолу. KVM виртуалды машиналарын жасау

Мен көптеген веб-негізделген басқару интерфейсін сынап көрдім және олардың ешқайсысы virt-maneger сияқты жеткілікті жақсы болмады.

Білесіз бе, мен басқару элементтерінің 90% басылатын VMware бағдарламасы бар жігіттердің бірімін.

Менің сұрақтарым:

1) mc (түн ортасының командирі) сияқты «интерактивті» CLI утилитасы немесе KVM-ді басқару әдісі бар ма? (VM ҚОСУ/ӨШІРУ, жадты ұлғайту, VM қайта іске қосу, виртуалды жабдықты қосу, жаңа дискілерді қосу, т.б.)

2) Debian сығу кезінде KVM үшін веб-негізделген басқару интерфейсін ұсына аласыз ба? VMware Server 2 нұсқасын көрдіңіз бе? Веб-басқару бар. Мен оның баяу болғанын білемін, бірақ терминалсыз бір жерде болсаңыз, бұл қалыпты жағдай. (мысалы, веб-шолғышы бар Android жүйесінде) Мен олардың көпшілігін қолданып көрдім, бірақ ештеңе істемеді.

5) KVM қауіпсіздігін қалай жақсартуға болады? Кейбір веб-интерфейс бұл мәселені шеше ала ма? (мысалы, бухгалтерлік есеп, пайдаланушыларды басқару?)

Мен google, wiki бар екенін білемін, kvm үшін пайдаланушы интерфейсінің ұзақ тізімі бар, бірақ маған KVM пайдаланатын сарапшылардың немесе пайдаланушылардың пікірлері, тәжірибесі қажет. Бұл ақымақ сұрақ емес деп үміттенемін. Сұрақтарыма берген жауаптары үшін барлығына рахмет.

5 Шешімдер "KVM - қай веб-негізделген басқаруды пайдалануым керек?"

KVM веб-менеджері үшін Proxmox қолданбасын қолдануға болады. Debian Squeeze нұсқаулары осында.

Оның пәрмен жолы құралдары бар, бірақ мәтіндік базалық мәзір жоқ.

Сіз шағын ортаны орнатып, оны сынап көруіңіз керек. Содан кейін мақсатты айтып, оны жүзеге асырыңыз.

Бұл үшін нақты жауап/оқулық жоқ. KVM серверін/клиентін қайта конфигурациялау қаншалықты ресурстардың (процессор/RAM/жақтау) қолжетімділігіне байланысты.

Тағы да, бұл сіздің ортаңызға байланысты және бұл, мысалы, көп қабатты/құрылғылар. маршрутизаторлар, брандмауэр, IP кестелері, құпия сөз саясаты, кіру саясаты және т.б. Мен бұлардың барлығын, соның ішінде KVM-ді өңдей алатын ешбір gui, веб-база немесе білмеймін. (Жарайды, бұлт бар, бірақ менде онымен мүлдем тәжірибем жоқ)

Сен тырыстың кимчи? KVM жүйесіндегі ең ыңғайлы ашық дереккөз және IBM демеушісі.

Жауапкершіліктен бас тарту: Мен Кимчимен мүлде байланысты емеспін. Мен оның жай ғана достығын жақсы көремін.

Сарапшылар CLI пайдаланады. GUI емес. Бұл тіпті тәжірибелі Windows әкімшілеріне де қатысты.

Жоқ, графикалық интерфейстер әлі де жақсарып келеді, бірақ өздігінен жазылатын сценарийлер жылдамырақ және қалағаныңызды жасайды.

KVM өнімділігін жақсарту керек пе? Оны тастаңыз.

Бұл XEN-PV сарапшысының кеңесі ғана. Тек LXC (немесе басқа контейнерлер) немесе chroot негізіндегі шешімдер жылдамырақ.

KVM орнату нұсқаулығы өте егжей-тегжейлі болмауы мүмкін, бірақ кем дегенде орнату және конфигурациялау процесі туралы идеяларды береді немесе қамтамасыз етеді.

Boxilla деп аталатын жаңа кәсіпорын деңгейіндегі KVM және AV/IT жүйесін басқару бар, оның максималды өнімділікті, пайдаланудың қарапайымдылығын және қауіпсіздікті қамтамасыз ететін жан-жақты және орталықтандырылған басқару орталығы бар.

Ол жоғары өнімді KVM, IP арқылы KVM, виртуалдандырылған соңғы нүктелерді және әртүрлі AV/IT құрылғыларын бір орталықтандырылған командалық орталықта басқару мүмкіндігін береді, әкімшілерге қуатты веб пен ортақ пайдалану арқылы көп деңгейлі KVM және AV/IT орналастыруларын басқаруға мүмкіндік береді. пайдаланушы интерфейсі. Бұл туралы қосымша ақпаратты мына жерден таба аласыз: https://www.blackbox.co.uk/gb-gb/page/37929/Solutions-Industries/Technology-Products/KVM-Switching-and-Extension/Centralised-KVM-AV- Менеджер - боксилла

Кәдімгі KVM қосқыштарымен, менің ойымша, көптеген адамдар кездесті. «KVM» аббревиатурасы «Пернетақта бейне тінтуірі» дегенді білдіреді. KVM құрылғысы пернетақта + монитор + тінтуірдің бір жиынтығы бар (K.M.M.) бірнеше компьютерді басқаруға мүмкіндік береді ( жүйелік блоктар). Басқаша айтқанда, біз N жүйелік блоктарды аламыз, олардың шығыстарын K.M.M. KVM құрылғысына, ал қазірдің өзінде құрылғының өзіне біз нақты мониторды, пернетақтаны және тінтуірді қосамыз. KVM көмегімен компьютерлер арасында ауысу арқылы біз таңдалған компьютердің экранында не болып жатқанын көре аламыз, сонымен қатар оны тікелей қосылған сияқты басқара аламыз.

Бұл жұмыс үшін бірнеше машина қажет болса ыңғайлы, бірақ оларға бір уақытта қол жеткізу қажет емес. Сонымен қатар, кеңістік айтарлықтай үнемделеді - мониторлар, тіпті сұйық кристалды да, үстелде жеткілікті үлкен орын алады. Иә, және олардың құны көп емес. Үстелдегі көптеген пернетақталар мен тышқандарда сіз тез шатасуыңыз мүмкін ...

Жетілдірілген оқырмандар қарсы болады - егер компьютерлер бір компьютерге қосылған болса, неге мұндай қиындықтар туындайды жергілікті желіжәне кірістірілген операциялық жүйені (немесе сыртқы) бағдарламаларды пайдалануға болады қашықтан қол жеткізу, мысалы, Windows жүйесіндегі Terminal Services немесе Radmin, VNC, *nix тәрізді операциялық жүйелердегі ssh. Барлығы дұрыс, бірақ, мысалы, компьютердің BIOS жүйесіне кіру қажет болса немесе қате драйверді немесе бағдарламаны орнатқандықтан операциялық жүйе жүктеуді тоқтатса, не істеуіміз керек? Немесе компьютерде орнатылған бірнеше операциялық жүйе бар және біз әдепкі бойынша басталатын қатені таңдауымыз керек пе? Жалпы алғанда, бұл бағдарламалардың барлығы шынымен жақсы, бірақ белгілі бір шектеулерге дейін - компьютердің ОЖ жұмыс істеп тұрған кезде және бізге осы ОЖ жүктелгеннен кейін ғана компьютерге кіру қажет.

Мысалы, компания шығарған құрылғылардың мысалын пайдаланып, бірнеше типтік KVM қосқыштарын қарастырайық.

Құрылғының техникалық сипаттамалары

CN-6000 пайдаланушылар арасындағы өкілеттіктерді бөлуді қолдайды және 64-ке дейін әкімшілік немесе пайдаланушы тіркелгісін жасауға мүмкіндік береді, оның ішінде 16 тіркелгіге дейін құрылғымен бір уақытта жұмыс істей алады. Құрылғыда әкімшілендіруге арналған кірістірілген WEB-интерфейсі бар және оның шағын өлшемі оны үстелдің үстіне қоюға немесе (жинаққа кіретін арнайы кронштейнді пайдалана отырып) тіректің бүйірлік фермасына (0U тірекке орнатылатын) орнатуға мүмкіндік береді. CN-6000 Ethernet қосылымы (веб-интерфейс немесе жергілікті утилита) арқылы микробағдарламаны жаңартуды қолдайды. Құрылғы қолдайтын максималды бейне ажыратымдылығы - 1600x1200 пиксель.

Техникалық сипаттамалардың жиынтық кестесі:

Жабдық талаптары (қашықтағы клиент)Pentium III 1 ГГц
Интерфейстержергілікті консольПернетақта1 × Mini-DIN-6 F(күлгін)
Бейне1 × HDB-15 F(көк)
Тышқан1 × HDB-15 F(жасыл)
Жүйе (KVM)1 × SPHD-15F(сары)
LAN порты1 x RJ-45(F)
Желідегі қуат (сақталған)1 × DB9(M)
Қуат интерфейсі1
Түймелер/қосқыштарKVM қалпына келтіру1 × жартылай жасырын, алдыңғы
Көрсеткіштертамақ1 × қызғылт сары
қашықтағы пайдаланушы қосылымы1 x жасыл
LAN 10/100 Мбит/с1 × жасыл/қызғылт сары
Қолдау көрсетілетін протоколдар10baseT Ethernet және 100baseTX Fast Ethernet. TCP/IP
Бейне рұқсаттары1600×1200 60 Гц дейін
Жақтауметалл
Өлшемдері (ұзындығы × ені × биіктігі)200×80×25мм

Тесттерге көшейік.

Жинақпен бірге келетін ықшам дискіде төрт қызметтік бағдарлама бар:

  • CN6000 Client қашықтағы компьютерге қосылуға мүмкіндік беретін Windows клиенттік бағдарламасы
  • Java тілінде жазылған ұқсас клиенттік бағдарлама (jar пішімінде)
  • CN6000 Admin Tool - құрылғы конфигурация менеджері (Windows астында)
  • журнал сервері - CN-6000 жүйесінен журнал файлдарын қабылдау және сақтау үшін конфигурацияланатын бағдарлама

Сонымен қатар, WEB сервері KVM қосқышына орнатылған, сондықтан құрылғыға WEB шолғышы арқылы қол жеткізуге болады. Бірақ біз веб-интерфейске сәл кейінірек ораламыз, алдымен жеке утилиталарды қарастырамыз.

Әкімші құралы арқылы CN-6000 конфигурациялау.

Бағдарлама құрылғыны конфигурациялауға, кіру құпиясөздерін орнатуға, қауіпсіздікті және т.б.

Ол іске қосылғанда қызығушылық тудырған жоқ:

Жинақтағы дискідегі барлық утилиталарды бірінші рет іске қосқан кезде сериялық нөмірді енгізу қажет. Құжаттамада (тіпті соңғы нұсқасы, өндірушінің веб-сайтында орналасқан) сериялық нөмір CN-6000 корпусының төменгі жағында басылған деп айтылады. Сериялық нөмірдің қандай да бір түрі шынымен де сонда басылады, тек ол бағдарламалар талап еткеннен әлдеқайда қысқа. Тұтастай алғанда, аздап қиналып, сериялық нөмірді енгізу мынаны тапты, оған нөлдерді немесе бос орындарды қосып, «Жарамсыз сериялық нөмір» терезесінен басқа ештеңеге жетпестен, мен сол күні құрылғыны сынауды аяқтағым келді. Ықшам дискіні CD-ROM-дан алып (мен оны CD-дискісіне бірінші кезекте қойдым - бағдарламалық жасақтаманы орнату керек болды), мен дискіден біртүрлі жапсырманы таптым - бұл таңдаған сериялық нөмір болып шықты.

Әрине, теориялық тұрғыдан адам компакт-дискіде не жазылғанына немесе оны дискіге салған кезде оған мән бере алады. Бірақ бұған бірден назар аударатындар қанша? :) Ал, құжатта әдейі жалған ақпарат жазудың қажеті не болды екен деген ой келеді. Қайталап айтамын - сайтта көбірек жаңа нұсқасыҚұжаттама және онда бұл «қате» түзетілмейді. Бұл құжаттамада сырғып кететін соңғы дәлсіздік емес екенін ескертемін, сондықтан кейде «өз көзіңізге сенбеңіз» деген сөзге сәйкес әрекет ету керек.

CN-6000 әкімшілік утилитасы желідегі құрылғыны табуға мүмкіндік беретінімен пайдалы, тіпті оның IP мекенжайы біз кіретін ішкі желіге жатпаса да, бізге (біз қолданатын компьютер) жеткілікті. CN-6000 ) KVM қосқышы сияқты бір LAN сегментінде болды.

Пайдаланушы аты мен құпия сөзді енгізгеннен кейін біз құрылғының конфигурация мәзіріне өтеміз:

ATEN құрылғының қауіпсіздігі мәселесіне жақсы көзқарас танытты. Құрылғы конфигурациясын алғаш рет енгізген кезде стандартты логин мен парольді өзгерту жақсы болатыны туралы ескертеміз ...

тарауда желіҚұрылғының IP мекенжайы конфигурацияланған, CN-6000 басқаратын компьютерлерге қашықтан қол жеткізу порттары орнатылған. Сондай-ақ, мұнда KVM қосқышынан жіберілген журнал файлдарын (оқиғаларды) сақтайтын «Журнал сервері» бағдарламасы орналасқан құрылғының MAC мекенжайын көрсетуге болады (егер ол орнатылмаған болса, журналдар компьютерде сақталады. KVM өзі және сіз оларды веб-интерфейстен көре аласыз). Бұл құрылғы (журнал сервері үшін) Windows орнатылған және талқыланатын бағдарлама іске қосылған кез келген компьютер болуы мүмкін. Жалғыз мәселе, компьютер KVM CN-6000 өзі сияқты желілік сегментте (шамамен айтқанда, бір коммутаторға қосылған) болуы керек, сондықтан бұл «функцияның» пайдалылығы күмәнді.

Бетбелгі қойылған Қауіпсіздікбасқарылатын компьютерлердің қашықтағы экранына кіруге арналған сүзгілер (MAC және/немесе IP мекенжайлары бойынша), сондай-ақ CN-6000 өзін басқаруға арналған сүзгі конфигурацияланған.

Келесі қойындыда пайдаланушы аттары мен құпия сөздер, сондай-ақ олардың құқықтары орнатылады. Бір қызығы, CN-6000 конфигурациялау және JAVA клиентін пайдалану үшін кірулерді шектеуге болады. Конфигурациялау утилитасы қабылдайтын ең аз құпия сөз ұзындығы - сегіз таңба. Әрине, парольдің «қарапайымдылығы» тексерілмейтіні өкінішті, бірақ парольдің ұзындығын тексерудің өзі ATEN қауіпсіздікке көңіл бөлетінін көрсетеді.

Соңғы қойынды құрылғының микробағдарламасын жаңартуға, қашықтағы компьютерге бірнеше адамның бір уақытта қосылу мүмкіндігін қосуға мүмкіндік береді (бірақ басқарылатын компьютер тұрғысынан тінтуір мен пернетақта бұрынғысынша бірдей, сондықтан біреуі басқарады. , қалғандары ... қарайды немесе тінтуірді сүйреу арқылы бір-біріне кедергі жасайды әртүрлі жақтары). Қате аутентификация процесіне реакция дереу конфигурацияланады, сонымен қатар CN-6000 әртүрлі «жасырын» режимдерін қосу (пингке жауап жоқ және өзін көрсетуге тыйым салу) автоматты іздеужергілікті желідегі құрылғылар клиенттік утилита немесе әкімшілік қызметтік бағдарлама арқылы).

Сол қойындыда тағы бір элемент бар - Шығу кезінде қалпына келтіру. Мен бұл әдепкі параметрлерді қалпына келтіру деп ойлаймын, бірақ ішінде бұл жағдайбұл конфигурациялау утилитасынан шыққан кезде құрылғыны қайта жүктеуді білдіреді. Әйтпесе (егер ол қайта жүктелмесе), жаңа параметрлер есте сақталса да (қайта жүктеуге дейін) қолданылмайды.

Осы кезде конфигурациялау утилитасын қарастыруды аяқталды деп санауға болады (басқа аспект Java клиенті бөлімінде талқыланады).

Веб-интерфейске көшейік.

WEB-интерфейс арқылы конфигурациялау

Құрылғының веб-интерфейсіне кіру үшін кез келген браузерде CN-6000 орнатылған IP мекенжайын теру жеткілікті.

Бір қызығы, браузер бірден клиентті HTTPS:// арқылы қосылымға қайта бағыттайды, яғни. барлық әрі қарай жұмыс қауіпсіз SSL қосылымы арқылы орындалады.

Логин мен парольді енгізгеннен кейін веб-интерфейстің сол жағындағы және жоғарғы жағындағы белгішелер белсенді болады (оларды басуға болады).

Жоғарғы белгішелер CN-6000 конфигурациялауға қатысты бөлімдерді ашады. Көбінесе ондағы барлық опциялар Windows қызметтік интерфейсінің опцияларын қайталайды. AdminTool, бірақ кейбір айырмашылықтар бар. Мысалы, бұл терезеде (желі мекенжайларын конфигурациялау) біз тек құрылғының IP мекенжайын орната аламыз, бірақ ішкі желі маскасы мен шлюзді көрсете алмаймыз. Сонымен қатар, IP мекенжайын орнату қандай да бір түрде қисық жұмыс істейді - мен веб-интерфейстен құрылғының IP мекенжайын өзгерте алмадым (Әкімші құралдарының қызметтік бағдарламасын пайдаланып, ол еш қиындықсыз өзгерді).

Веб-интерфейс арқылы мекенжайды 10.0.0.9-дан 192.168.0.1-ге өзгертуге әрекеттенгенде, әкімші құралының қызметтік бағдарламасында мынаны көруге болады. Қандай да бір себептермен ішкі желі маскасы стандартты 255.255.255.0-ден 10.0.0.9-ға өзгерді және құрылғы (қайта жүктегеннен кейін) 5 секунд ішінде 192.168.0.1-ге жауап береді, содан кейін 10.0.0.9-да жауап бере бастайды (ол 192.16-ны мүлде ұмытады) .0.1). Мүмкін бұл қате шығар ағымдағы нұсқасымикробағдарлама (1.5.141), бірақ бұл нұсқа тестілеу кезінде компанияның веб-сайтында табуға болатын ең жаңа нұсқа болды.

Тестілеу кезінде веб-интерфейске қатысты басқа қателер табылмады.

Бөлім ҚауіпсіздікӘкімші құралындағы бірдей бөлімді қайталайды.

Бөліммен ұқсас жағдай Пайдаланушы менеджері

... және бөлім теңшеу.

Белгіше Журнал, веб-интерфейстің сол жағында орналасқан, құрылғының жұмысы кезінде орын алған оқиғаларды көруге мүмкіндік береді. Бұл жағдайда скриншот құрылғыны Nessus сынаған кезде пайда болған журналдарды көрсетеді.

Жоғарыда айтылғандай, журналдарды сыртқы журнал серверіне тастауға болады (бірақ оның орналасқан жерінде белгілі бір шектеулер бар).

Мен бұл жазбаны көрсету үшін жазып отырмын қадамдық орнатужәне KVM негізіндегі Linux виртуалды машинасын орнату. Бұрын мен виртуализация туралы жазған болатынмын, онда мен тамаша қолдандым.

Енді менде үлкен көлемі бар жақсы серверді жалға алу мәселесі бар жедел жадыжәне үлкен қатты диск. Бірақ мен жобаларды тікелей хост машинасында іске қосқым келмейді, сондықтан мен оларды Linux ОЖ немесе докер контейнерлері бар жеке шағын виртуалды серверлерге бөлемін (олар туралы басқа мақалада айтатын боламын).

Барлық заманауи бұлттық хостингтер бір принцип бойынша жұмыс істейді, яғни. жақсы жабдықтағы хосттер біз бұрын VPS / VDS деп атайтын виртуалды серверлер тобын көтереді және оларды пайдаланушыларға таратады немесе бұл процесті автоматтандырады (сәлеметсіз бе, DigitalOcean).

KVM (ядроға негізделген виртуалды машина) болып табылады бағдарламалық қамтамасыз ету Linux үшін Intel VT/AMD SVM виртуалдандыру технологиясымен жұмыс істеу үшін x86-үйлесімді процессорлардың аппараттық құралдарын пайдалану.

KVM орнату

Мен Ubuntu 16.04.1 LTS операциялық жүйесінде виртуалды машина жасаудың барлық айла-шарғыларын орындаймын. Процесстеріңіз Intel VT/AMD SVM негізіндегі аппараттық виртуалдандыруды қолдайтынын тексеру үшін келесіні іске қосыңыз:

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

Терминал бос болмаса, онда бәрі реттелген және KVM орнатуға болады. Ubuntu тек ресми түрде KVM гипервизорын (Linux ядросының бөлігі) қолдайды және оны басқару құралы ретінде libvirt кітапханасын пайдалануға кеңес береді, біз оны келесі орындаймыз.

Сондай-ақ, Ubuntu жүйесінде аппараттық виртуалдандыруды қолдауды пәрмен арқылы тексеруге болады:

Сәтті болса, сіз келесідей нәрсені көресіз:

АҚПАРАТ: /dev/kvm бар KVM жеделдетуін пайдалануға болады

KVM-мен жұмыс істеуге арналған пакеттерді орнату:

sudo apt-get орнату qemu-kvm libvirt-bin ubuntu-vm-Builder bridge-utils

Жүйенің графикалық қабығына кіру мүмкіндігіңіз болса, libvirt GUI менеджерін орнатуға болады:

sudo apt-get орнату virt-manager

virt-manager пайдалану өте қарапайым (VirtualBox-тан қиын емес), сондықтан бұл мақала виртуалды серверді орнату және конфигурациялаудың консольдік нұсқасына назар аударады.

Виртуалды серверді орнату және конфигурациялау

Орнату, конфигурациялау және жүйені басқарудың консольдік нұсқасында virsh утилитасы (libvirt кітапханасына арналған қосымша) таптырмас құрал болып табылады. Оның көптеген нұсқалары мен параметрлері бар, егжей-тегжейлі сипаттаманы келесідей алуға болады:

адам вирш

немесе стандартты «анықтамаға» қоңырау шалыңыз:

Вирш көмегі

Виртуалды серверлермен жұмыс істеу кезінде мен әрқашан келесі ережелерді ұстанамын:

  1. Мен iso OS кескіндерін /var/lib/libvirt/boot каталогында сақтаймын
  2. Виртуалды машина кескіндерін /var/lib/libvirt/images каталогында сақтаймын
  3. Мен гипервизордың DHCP сервері арқылы әрбір жаңа виртуалды машинаға статикалық IP мекенжайын нақты тағайындаймын.

Бірінші виртуалды машинаны орнатуды бастайық (64-биттік сервер 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 \ --желілік желі=әдепкі,модель=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604. img,өлшем=20,автобус=виртио

Осы параметрлердің барлығын «адам тіліне» аударсақ, біз Ubuntu 16.04 ОЖ, 1024 Мбайт жедел жады, 1 процессор, стандартты желі картасы бар виртуалды машина жасап жатырмыз (виртуалды машина Интернетке осыған байланысты сияқты өтеді) NAT), 20 ГБ қатты диск.

Параметрге назар аударған жөн --os-варианты, ол гипервизорға параметрлерді қай операциялық жүйеге бейімдеу керектігін айтады.
Қолжетімді ОЖ опцияларының тізімін пәрменді іске қосу арқылы алуға болады:

osinfo сұрауы os

Жүйеде мұндай утилита болмаса, келесіні орнатыңыз:

sudo apt-get орнату libosinfo-bin

Орнатуды бастағаннан кейін консольде келесі хабарлама пайда болады:

Доменді орнату әлі орындалуда. Орнату процесін аяқтау үшін консольге қайта қосылуға болады.

Бұл қалыпты жағдай, орнатуды VNC арқылы жалғастырамыз.
Біз оның виртуалды машинамыздан қай портты көтергенін қарастырамыз (мысалы, жақын маңдағы терминалда):

Virsh dumpxml ubuntu1604 ... ...

5900 порты, 127.0.0.1 жергілікті мекенжайы бойынша. VNC жүйесіне қосылу үшін ssh арқылы Port Forwarding қызметін пайдалану қажет. Мұны жасамас бұрын, ssh демонында tcp қайта жіберу мүмкіндігі қосылғанын тексеріңіз. Мұны істеу үшін sshd параметрлеріне өтіңіз:

Cat /etc/ssh/sshd_config | grep AllowTcpForwarding

Егер ештеңе табылмаса немесе сіз:

AllowTcpForwarding №

Содан кейін біз конфигурацияны өңдейміз

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 мекенжайымызды есте сақтаңыз:

Өңдеу желі параметрлерігипервизор:

sudo virsh net-edit әдепкі

Біз DHCP іздейміз және мынаны қосыңыз:

Сіз келесідей нәрсені алуыңыз керек:

Параметрлер күшіне енуі үшін гипервизордың DHCP серверін қайта іске қосу керек:

sudo virsh net-destroy әдепкі 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 $VM_NAME бастауы

Жабу:

sudo virsh өшіру $VM_NAME

Автоматты іске қосу:

sudo virsh автоқосылу $VM_NAME

Көбінесе жүйені болашақта басқа виртуалды операциялық жүйелер үшін негіз ретінде пайдалану үшін клондау қажет, бұл үшін virt-clone утилитасы қолданылады.

Virt-clone - көмек

Ол бар виртуалды машинаны клондайды және mac мекенжайы сияқты хост-сезімтал деректерді өзгертеді. Клондағы құпия сөздер, файлдар және басқа пайдаланушыға қатысты ақпарат өзгеріссіз қалады. Егер клондалған виртуалды машинада IP мекенжайы қолмен енгізілген болса, қақтығысқа байланысты клонға SSH қатынасында ақаулар болуы мүмкін (бір IP бар 2 хост).

VNC арқылы виртуалды машинаны орнатудан басқа, virt-manager утилитасы арқылы X11Forwarding-ті пайдалануға болады. Windows жүйесінде, мысалы, бұл үшін Xming және PuTTY қолданылуы мүмкін.

Ubuntu жүйесінде оны басқару құралы ретінде KVM гипервизорын (виртуалды машина менеджері) және libvirt кітапханасын пайдалану ұсынылады. Libvirt бағдарламалық қамтамасыз етудің API жиынтығын және пайдаланушы виртуалды машинаны (VM) басқару қолданбаларының virt-manager (графикалық интерфейс, GUI) немесе virsh ( пәрмен жолы, CLI). Балама менеджерлер ретінде convirt (GUI) немесе convirt2 (WEB интерфейсі) пайдалана аласыз.

Қазіргі уақытта Ubuntu жүйесінде ресми түрде тек KVM гипервизорына қолдау көрсетіледі. Бұл гипервизор ядро ​​кодының бөлігі болып табылады операциялық жүйе linux. Xen-ден айырмашылығы, KVM паравиртуализацияны қолдамайды, яғни оны пайдалану үшін сіздің орталық процессорыңыз VT технологияларын қолдауы керек. Терминалдағы пәрменді іске қосу арқылы процессордың бұл технологияны қолдайтынын тексеруге болады:

Егер нәтиже хабарлама болса:

АҚПАРАТ: /dev/kvm бар KVM жеделдетуін пайдалануға болады

сондықтан KVM еш қиындықсыз жұмыс істейді.

Егер шығыс хабарлама болса:

Сіздің процессорыңыз KVM кеңейтімдерін қолдамайды KVM жеделдету функциясын ПАЙДАЛАНУ БОЛМАЙДЫ

онда сіз әлі де виртуалды машинаны пайдалана аласыз, бірақ ол әлдеқайда баяу болады.

    Қонақ ретінде 64 биттік жүйелерді орнатыңыз

    Қонақтарға 2 ГБ-тан астам жедел жад бөліңіз

Орнату

sudo apt-get орнату qemu-kvm libvirt-bin ubuntu-vm-Builder bridge-utils

Бұл X жоқ сервердегі орнату, яғни графикалық интерфейсті қамтымайды. Оны пәрмен арқылы орнатуға болады

sudo apt-get орнату virt-manager

Осыдан кейін мәзірде «Виртуалды машина менеджері» тармағы пайда болады және жоғары ықтималдықпен бәрі жұмыс істейді. Егер қандай да бір мәселе әлі де туындаса, ағылшын тіліндегі викидегі нұсқауларды оқуыңыз керек.

Қонақ жүйесін жасаңыз

Графикалық интерфейсті пайдаланып қонақтық жүйені құру процедурасы өте қарапайым.

Бірақ мәтіндік режимді сипаттауға болады.

qcow2

ретінде графикалық интерфейсті пайдаланып жүйені құру кезінде қатты дискбұрыннан бар кескін файлын таңдау немесе құрылғыны блоктау немесе өңделмеген (RAW) деректері бар жаңа файл жасау ұсынылады. Дегенмен, бұл жалғыз қол жетімді файл пішімінен алыс. man qemu-img тізімінде көрсетілген барлық диск түрлерінің ішінде qcow2 ең икемді және жаңартылған болып табылады. Ол суреттерді, шифрлауды және қысуды қолдайды. Ол жаңа қонақ жүйесін жасамас бұрын жасалуы керек.

Qemu-img жасау -o алдын ала бөлу=метадеректер -f qcow2 qcow2.img 20G

Дәл сол man qemu-img сәйкес, метадеректерді алдын ала бөлу (-o алдын ала бөлу=метадеректер) бастапқыда дискіні сәл үлкейтеді, бірақ кескіннің өсуі қажет болғанда жақсы өнімділікті қамтамасыз етеді. Шын мәнінде, бұл жағдайда бұл опция жағымсыз қатені болдырмайды. Жасалған кескін бастапқыда бір мегабайттан аз орын алады және қажет болған жағдайда көрсетілген өлшемге дейін өседі. Қонақ жүйесі осы соңғы көрсетілген өлшемді бірден көруі керек, бірақ орнату кезеңінде ол файлдың нақты өлшемін көре алады. Әрине, орнату қатты диск 200 кб өлшемі, ол бас тартады. Қате Ubuntu-ға тән емес, ол кем дегенде RHEL-де де пайда болады.

Кескін түріне қосымша, оны қосу жолын кейінірек таңдауға болады - IDE, SCSI немесе Virtio Disk. Дискілік ішкі жүйенің өнімділігі осы таңдауға байланысты болады. Бір мағыналы дұрыс жауап жоқ, сіз қонақтық жүйеге тағайындалатын тапсырма негізінде таңдауыңыз керек. Қонақ жүйесі «көру үшін» құрылса, кез келген әдіс орындалады. Жалпы алғанда, виртуалды машинаның тар жолы әдетте енгізу/шығару болып табылады, сондықтан жоғары жүктелген жүйені құру кезінде бұл мәселеге мүмкіндігінше жауапкершілікпен қарау керек.

Жеке маған KVM (ядроға негізделген виртуалды машина) Intel VT-x және AMD-V аппараттық виртуалдандыру технологиялары бойынша абстракцияның осындай деңгейі ретінде ойлау оңайырақ. Біз осы технологиялардың бірін қолдайтын процессоры бар машинаны алып, осы машинаға Linux орнатып, Linux жүйесінде KVM орнатып, нәтижесінде виртуалды машиналарды құру мүмкіндігін аламыз. Бұлттық хостинг қызметтері осылай жұмыс істейді, мысалы, Amazon Web Services. KVM-мен қатар кейде Xen де қолданылады, бірақ бұл технологияны талқылау бұл мақаланың шеңберінен тыс. Контейнерді виртуалдандыру технологияларынан айырмашылығы, мысалы, бірдей Docker, KVM кез келген ОЖ-ны қонақтық жүйе ретінде іске қосуға мүмкіндік береді, бірақ ол сонымен бірге туралыВиртуализацияға көбірек шығындар.

Ескерту:Төмендегі қадамдарды мен Ubuntu Linux 14.04 нұсқасында сынап көрдім, бірақ теория жүзінде Ubuntu және басқа Linux дистрибутивтерінің басқа нұсқалары үшін жарамды болады. Барлығы жұмыс үстелінде де, SSH арқылы қол жеткізілетін серверде де жұмыс істеуі керек.

KVM орнату

Intel VT-x немесе AMD-V-ге біздің процессор қолдау көрсететінін тексеріңіз:

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

Егер бірдеңе қызып кетсе, оған қолдау көрсетіледі, әрі қарай жалғастыруға болады.

KVM орнату:

sudo apt-get жаңартуы
sudo apt-get орнату qemu-kvm libvirt-bin virtinst-bridge-utils

Қай жерде сақтау әдеттегідей:

  • /var/lib/libvirt/boot/ - қонақ жүйелерін орнатуға арналған ISO кескіндері;
  • /var/lib/libvirt/images/ - қонақ жүйелерінің қатты дискідегі кескіндері;
  • /var/log/libvirt/ - мұнда барлық журналдарды іздеу керек;
  • /etc/libvirt/ - конфигурация файлдары бар каталог;

Енді KVM орнатылған соң, бірінші виртуалды машинамызды жасайық.

Бірінші виртуалды машинаны құру

Қонақ жүйесі ретінде мен FreeBSD таңдадым. Жүйенің ISO кескінін жүктеп алыңыз:

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

Көп жағдайда виртуалды машиналар virsh утилитасының көмегімен басқарылады:

sudo virsh - көмек

Виртуалды машинаны іске қоспас бұрын, бізге қосымша ақпарат жинау керек.

Біз қол жетімді желілер тізімін қарастырамыз:

sudo virsh желі тізімі

Белгілі бір желі туралы ақпаратты көру (әдепкі деп аталады):

sudo virsh net-info әдепкі

Қонақ ОЖ үшін қолжетімді оңтайландырулар тізімін қарастырамыз:

sudo virt-install --os-variant тізімі

Сонымен, қазір біз әдепкі желіге қосылған 1 процессоры, 1 ГБ жедел жады және 32 ГБ дискілік кеңістігі бар виртуалды машина жасаймыз:

sudo virt-install \
--virt-type=kvm \
--атауы freebsd10 \
--RAM 1024\
--vcpus=1 \
--os-variant=freebsd8 \
--hvm\
--cdrom=/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--желілік желі=әдепкі,үлгі=виртио \
--graphics vnc\
--диск жолы =/ var/ lib/ libvirt/ images/ freebsd10.img,size=32 ,bus=virtio

Сіз көре аласыз:

ЕСКЕРТУ Графикалық консольге қосылу мүмкін емес: virt-viewer жоқ
орнатылған. "virt-viewer" бумасын орнатыңыз.

Доменді орнату әлі орындалуда. Консольге қайта қосылуға болады
орнату процесін аяқтау үшін.

Жарайды, солай болуы керек.

Содан кейін XML пішіміндегі виртуалды машинаның қасиеттерін қарастырамыз:

sudo virsh dumpxml freebsd10

Мұнда ең толық ақпарат берілген. Соның ішінде, мысалы, MAC мекенжайы бар, ол бізге әрі қарай қажет болады. Әзірге біз VNC туралы ақпаратты табамыз. Менің жағдайда:

Менің сүйікті клиентімнің көмегімен (мен Rammina-ны жеке қолданамын) қажет болған жағдайда SSH портын қайта бағыттау арқылы VNC арқылы өтеміз. Біз тікелей FreeBSD орнатушысына кіреміз. Содан кейін бәрі әдеттегідей - Келесі, Келесі, Келесі, біз орнатылған жүйені аламыз.

Негізгі командалар

Енді KVM-мен жұмыс істеудің негізгі командаларын қарастырайық.

Барлық виртуалды машиналар тізімін алу:

sudo virsh тізімі --барлығы

Арнайы виртуалды машина туралы ақпарат алу:

sudo virsh dominfo freebsd10

Виртуалды машинаны іске қосыңыз:

sudo virsh start freebsd10

Виртуалды машинаны тоқтату:

sudo virsh өшіру freebsd10

Виртуалды машинаны жеңу қиын (атауға қарамастан, бұл емесжою):

sudo virsh freebsd10-ны жояды

Виртуалды машинаны қайта жүктеңіз:

sudo virsh freebsd10 қайта жүктеңіз

Виртуалды машинаны клондау:

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

Автоматты іске қосуды қосу/өшіру:

sudo virsh autostart freebsd10
sudo virsh autostart --freebsd10 өшіру

virsh диалогтық режимде іске қосыңыз (диалогтық режимдегі барлық командалар - жоғарыда сипатталғандай):

судовирш

XML-де виртуалды машинаның қасиеттерін өңдеу, соның ішінде мұнда жад көлеміне шектеуді өзгертуге болады және т.б.:

sudo virsh freebsd10 өңдеу

Маңызды!Өңделген XML-ден түсініктемелер, өкінішке орай, жойылды.

Виртуалды машина тоқтатылған кезде, дискінің өлшемін өзгертуге болады:

sudo qemu-img өлшемін өзгерту / var/ lib/ libvirt/ images/ freebsd10.img -2G
sudo qemu-img ақпарат / var/ lib/ libvirt/ images/ freebsd10.img

Маңызды!Қонақ ОЖ дискінің кенеттен үлкейіп немесе кішірейіп кеткенін ұнатпайтын шығар. Ең дұрысы, ол дискіні қайта бөлу ұсынысымен төтенше режимде жүктеледі. Сіз мұны істегіңіз келмейтін шығар. Жаңа виртуалды машинаны іске қосу және оған барлық деректерді тасымалдау оңайырақ болуы мүмкін.

Сақтық көшірме жасау және қалпына келтіру өте қарапайым. Бір жерде dumpxml шығысын, сондай-ақ диск кескінін сақтап, содан кейін оларды қалпына келтіру жеткілікті. YouTube сайтында бейнені таптыбұл процесті көрсету арқылы бәрі өте оңай.

Желі параметрлері

Қызықты сұрақ - жүктегеннен кейін виртуалды машина қандай IP мекенжайын алғанын қалай анықтауға болады? KVM-де бұл ақылды түрде жасалады. Мен келесі Python сценарийін жазуды аяқтадым:

#!/usr/bin/env python3

# virt-ip.py сценарийі
№ (c) 2016 Александр Алексеев
# http://website/

импорт жүйесі
импорт қайта
импорттау
импорттау қосалқы процесі
xml .etree ішінен ElementTree импорттау

def print(str ):
басып шығару (str , файл = sys.stderr )

егер len(sys.argv )< 2 :
eprint("ҚОЛДАНУ: " + sys.argv [ 0 ] + " " )
eprint("Мысалы: " + sys .argv [ 0 ] + " freebsd10" )
sys.exit(1)

if os.geteuid() != 0 :
eprint("ҚАТЕ: сіз root болуыңыз керек" )
eprint("Кеңес: run `sudo " + sys .argv [ 0 ] + " ...`" );
sys.exit(1)

егер қосалқы процесс .call( "2>&1 >/dev/null arping", қабық = True ) != 0 :
eprint("ҚАТЕ: arping табылмады" )
басып шығару( «Кеңес: «sudo apt-get install arping» іске қосыңыз.)
sys.exit(1)

Домен = sys.argv [1]

егер қайта .match («^*$» , домен) болмаса:
басып шығару( «ҚАТЕ: домен атауындағы жарамсыз таңбалар»)
sys.exit(1)

Domout = subprocess .check_output («virsh dumpxml « +domain+» || шын» ,
shell=Шын)
domout = domout.decode("utf-8").strip()

егер domout == "" :
# қате туралы хабар dumpxml арқылы басып шығарылған
sys.exit(1)

Құжат = ElementTree.fromstring(домout)

№ 1. барлық желі интерфейстерін тізімдеңіз
№ 2. әрбір интерфейсте «arping» параллельді орындаңыз
№3 grep жауаптары
cmd= "(ifconfig | кесу -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 |" + \
"grep "байттардан") || шын"

doc.iter() ішіндегі бала үшін:
if child.tag == "mac":
macaddr = child.attrib["адрес"]
macout = ішкі процесс .check_output(cmd .format(macaddr) ,
shell=Шын)
басып шығару(macout.decode("utf-8" ) )

Сценарий әдепкі желімен де, көпірлі желімен де жұмыс істейді, оның конфигурациясы кейінірек талқыланады. Дегенмен, іс жүзінде KVM-ді қонақтарға әрқашан бірдей IP мекенжайларын тағайындайтын етіп конфигурациялау әлдеқайда ыңғайлы. Ол үшін желі параметрлерін өңдеңіз:

sudo virsh net-edit әдепкі

... сол сияқты бірнәрсе:

>



>

Осы өзгерістерді енгізгеннен кейін


>

... және оны келесідей нәрсемен ауыстырыңыз:




>

Қонақ жүйесін қайта жүктейміз және оның маршрутизатордан DHCP арқылы IP алғанын тексереміз. Қонақ жүйесінде статикалық IP мекенжайы болғанын қаласаңыз, бұл әдеттегідей қонақ жүйесінің өзінде конфигурацияланады.

virt-менеджер бағдарламасы

Сондай-ақ сізді virt-manager бағдарламасы қызықтыруы мүмкін:

sudo apt-get орнату virt-manager
sudo usermod -a -G libvirtd USERNAME

Оның негізгі терезесі келесідей көрінеді:

Көріп отырғаныңыздай, virt-manager тек жергілікті жерде жұмыс істейтін виртуалды машиналарға арналған GUI ғана емес. Оның көмегімен сіз басқа хосттарда жұмыс істейтін виртуалды машиналарды басқара аласыз, сонымен қатар нақты уақытта әдемі графиканы көре аласыз. Вирт-менеджерде маған жеке қонақтық жүйенің VNC қай портта жұмыс істейтінін конфигурациялаудың қажеті жоқ екенін өте ыңғайлы деп санаймын. Сіз жай ғана тізімнен виртуалды машинаны тауып, екі рет басыңыз және мониторға қол жеткізе аласыз.

Сондай-ақ virt-manager көмегімен XML файлдарын өңдеуді және кейбір жағдайларда қосымша пәрмендерді орындауды қажет ететін әрекеттерді орындау өте ыңғайлы. Мысалы, виртуалды машиналар атын өзгерту, процессордың ұқсастығын орнату және ұқсас нәрселер. Айтпақшы, процессордың жақындығын пайдалану шулы көршілердің әсерін және виртуалды машиналардың хост жүйесіне әсерін айтарлықтай төмендетеді. Әрқашан мүмкіндігінше пайдаланыңыз.

Егер сіз KVM-ді VirtualBox-тың орнына пайдалануды шешсеңіз, олардың аппараттық виртуалдандыруды бір-бірімен бөлісе алмайтынын ескеріңіз. KVM жұмыс үстелінде жұмыс істеуі үшін VirtualBox және Vagrant-тегі барлық виртуалды машиналарды тоқтатып қана қоймай, жүйені қайта жүктеу керек. Мен KVM-ді VirtualBox-қа қарағанда әлдеқайда ыңғайлы деп санаймын, кем дегенде, ол пәрменді орындауды талап етпейтіндіктен sudo /sbin/rcvboxdrv орнатуәрбір ядро ​​жаңартуынан кейін ол Unity бағдарламасымен сәйкес жұмыс істейді және әдетте барлық терезелерді жасыруға мүмкіндік береді.