У дома / Инструкции / Управление на kvm qemu чрез уеб. Рускоезична документация за Ubuntu. Решения събират уеб формуляр за „KVM - Кое уеб базирано управление да използвам?“

Управление на kvm qemu чрез уеб. Рускоезична документация за Ubuntu. Решения събират уеб формуляр за „KVM - Кое уеб базирано управление да използвам?“

Вярвам, че мнозина са се сблъсквали с обикновени KVM превключватели. Съкращението "KVM" означава "Keyboard Video Mouse". KVM устройство позволява, като имате само един комплект клавиатура + монитор + мишка (K.M.M.), да управлявате няколко компютъра ( системни блокове). С други думи, вземаме N системни блока, свързваме техните изходи от K.M.M. към KVM устройството, а към самото устройство свързваме истински монитор, клавиатура и мишка. Превключвайки между компютри, използващи KVM, можем да видим какво се случва на екрана на избрания компютър, както и да го управляваме, сякаш сме свързани директно с него.

Това е удобно, ако имаме нужда от няколко машини за работа, но не е необходим достъп до тях едновременно. Освен това значително се пести място - мониторите, дори течнокристалните, заемат доста голямо пространство на масата. Да, и те не струват много. И в куп клавиатури и мишки на масата можете бързо да се объркате ...

Напредналите читатели ще възразят - защо такива трудности, ако компютрите най-вероятно са свързани към един локална мрежаи можете да използвате вградените в операционната система (или външни) програми отдалечен достъп, като Terminal Services или Radmin под Windows, VNC, ssh под *nix-подобни операционни системи. Всичко е правилно, но какво да правим, ако например трябва да влезете в BIOS на компютъра или операционната система е спряла да се зарежда, защото сме инсталирали грешен драйвер или програма? Или имаме инсталирани няколко операционни системи на компютъра и трябва да изберем грешната, която се стартира по подразбиране? Като цяло всички тези програми са наистина добри, но до определени граници - стига операционната система на компютъра да работи и да имаме нужда от достъп до компютъра само след като тази операционна система се стартира.

Например, нека да разгледаме няколко типични KVM превключвателя, използвайки примера на устройства, произведени от компанията.

Спецификации на устройството

CN-6000 поддържа разделяне на правомощията между потребителите и ви позволява да създадете до 64 административни или потребителски акаунта, от които до 16 акаунта могат едновременно да работят с устройството. Устройството разполага с вграден WEB-интерфейс за администриране, а малките му размери позволяват да бъде поставено на маса или монтирано (чрез специална скоба включена в комплекта) на странична ферма на стелаж (0U rack mountable). CN-6000 поддържа надграждане на фърмуера чрез Ethernet връзка (уеб интерфейс или собствена помощна програма). Максималната видео резолюция, поддържана от устройството, е 1600x1200 пиксела.

Обобщена таблица на спецификациите:

Хардуерно изискване (отдалечен клиент)Pentium III 1 Ghz
Интерфейсилокална конзолаКлавиатура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
Бутони/превключвателиНулиране на KVM1 × полускрит, отпред
Индикаторихрана1 × портокал
отдалечена потребителска връзка1 х зелено
LAN 10/100 Mbps1 × зелено/оранжево
Поддържани протоколи10baseT Ethernet и 100baseTX Fast Ethernet. TCP/IP
Разрешения за видеоДо 1600×1200 60Hz
Кадърметал
Размери (дължина × ширина × височина)200×80×25 мм

Нека да преминем към тестовете.

Има четири помощни програми на компактдиска, който идва с комплекта:

  • CN6000 Client е клиентска програма за Windows, която ви позволява да се свържете с отдалечен компютър
  • подобна клиентска програма, написана на Java (във формат jar)
  • CN6000 Admin Tool - мениджър за конфигурация на устройства (под Windows)
  • лог сървър - програма, която може да бъде конфигурирана да получава и съхранява лог файлове от CN-6000

Освен това в KVM превключвателя е вграден WEB сървър, така че устройството може да бъде достъпно през WEB браузър. Но ние ще се върнем към уеб интерфейса малко по-късно, първо ще разгледаме отделните помощни програми.

Конфигуриране на CN-6000 чрез Admin Tool.

Програмата е предназначена за конфигуриране на устройството, задаване на пароли за достъп, защита и др.

Когато беше пуснат, не беше без любопитство:

Първият път, когато стартирате всички помощни програми от включения диск, трябва да въведете сериен номер. В документацията (дори последна версия, който се намира на уебсайта на производителя) се казва, че серийният номер е отпечатан на дъното на кутията CN-6000. И там наистина се отпечатва някакъв сериен номер, само че е много по-кратък, отколкото изискват програмите. Като цяло, след като пострадах малко, въвеждайки серийния номер, намерен по този начин, добавяйки нули или интервали към него и не достигайки нищо повече от прозореца „Невалиден сериен номер“, вече исках да завърша тестването на устройството този ден. Изваждайки компактдиска от CD-ROM-а (първоначално го поставих в CD-устройството - трябваше да инсталирам софтуера), открих странен стикер на диска - това се оказа желаният сериен номер.

Разбира се, теоретично човек може да обърне внимание какво е написано или поставено на CD-то, когато го постави в устройството. Но колко веднага обръщат внимание на това? :) И, да се чуди човек, защо беше необходимо да се пише съзнателно невярна информация в документацията? Повтарям - сайтът съдържа повече нова версияДокументация и там тази "печатна грешка" не е коригирана. Отбелязвам, че това не е последната неточност, която се промъква в документацията, така че понякога трябва да действате според поговорката „не вярвайте на очите си“.

Помощната програма за администриране на CN-6000 е полезна с това, че ви позволява да намерите устройство в мрежата, дори ако неговият IP адрес не принадлежи към подмрежата, в която се намираме, достатъчно е ние (компютърът, от който се опитваме да достъп до CN-6000 ) бяха в същия LAN сегмент като KVM превключвателя.

След като въведете потребителското име и паролата, стигаме до менюто за конфигурация на устройството:

ATEN подходи добре към въпроса за сигурността на устройството. Когато за първи път влезете в конфигурацията на устройството, ние сме предупредени, че би било хубаво да промените стандартните потребителско име и парола ...

В глава мрежаКонфигурирано е IP адресиране на устройството, зададени са портове за отдалечен достъп до компютри, управлявани от CN-6000. Също така тук можете да посочите MAC адреса на машината, на която се намира програмата "Log Server", която съхранява регистрационните файлове (събития), изпратени от KVM превключвателя (ако не е зададен, регистрационните файлове ще се съхраняват на самият KVM и можете да ги видите от уеб интерфейса). Тази машина (за Log-сървъра) може да бъде всеки компютър, на който е инсталиран Windows и се изпълнява обсъжданата програма. Единственият проблем е, че компютърът трябва да е в същия мрежов сегмент (грубо казано, свързан към същия превключвател) като самия KVM CN-6000, така че полезността на тази "функция" е под въпрос.

Маркиран Сигурностконфигурират се филтри (по MAC и/или IP адреси) за достъп до отдалечения екран на администрираните компютри, както и филтър за администриране на самия CN-6000.

В следващия раздел се задават потребителски имена и пароли, както и техните права. Забележително е, че можете да ограничите влизанията за конфигуриране на CN-6000 и използване на JAVA клиента. Минималната дължина на паролата, която помощната програма за конфигуриране приема, е осем знака. Жалко, разбира се, че паролата не се проверява за "простота", но дори проверката на дължината на паролата показва, че ATEN обръща внимание на сигурността.

Последният раздел ви позволява да актуализирате фърмуера на устройството, да активирате възможността за едновременна връзка с отдалечен компютър за няколко души (въпреки че мишката и клавиатурата са все същите, от гледна точка на контролирания компютър, така че един контролира , останалите изглеждат ... или си пречат, като плъзнете мишката към различни страни). Незабавно се конфигурира реакцията на неправилен процес на удостоверяване, както и включването на различни "скрити" режими на CN-6000 (без отговор на ping и забрана да се показва, когато автоматично търсенеустройства в локалната мрежа чрез клиентската помощна програма или помощната програма за администриране).

В същия раздел има още един елемент - Нулиране при излизане. Бих предположил, че това е нулиране на настройките по подразбиране, но в този случайтова предполага рестартиране на устройството при излизане от помощната програма за конфигуриране. В противен случай (ако не се рестартира), новите настройки, въпреки че ще бъдат запомнени, няма да бъдат приложени (до рестартирането).

На този етап разглеждането на помощната програма за конфигуриране може да се счита за завършено (друг аспект ще бъде обсъден в раздела за Java клиента).

Да отидем на уеб интерфейса.

Конфигуриране чрез WEB интерфейс

За да влезете в уеб интерфейса на устройството, е достатъчно да въведете IP адреса, който е зададен на CN-6000 във всеки браузър.

Трябва да се отбележи, че браузърът веднага пренасочва клиента към връзка чрез HTTPS://, т.е. цялата по-нататъшна работа се извършва чрез защитена SSL връзка.

След въвеждане на данните за вход и парола, иконите вляво и в горната част на уеб интерфейса стават активни (можете да щракнете върху тях).

Горните икони отварят секции, свързани с конфигурирането на CN-6000. В по-голямата си част всички опции там повтарят опциите на интерфейса на помощната програма на Windows. AdminTool, но има някои разлики. Например в този прозорец (конфигуриране на мрежови адреси) можем да зададем само IP адреса на устройството, но не можем да посочим подмрежовата маска и шлюза. Освен това настройката на IP адреса работи някак си криво - не успях да променя IP адреса на устройството от уеб интерфейса (с помощта на помощната програма Admin Tools се промени без проблеми).

Ето какво можете да видите в помощната програма Admin Tool, когато се опитате да промените адреса през уеб интерфейса от 10.0.0.9 на 192.168.0.1. По някаква причина подмрежовата маска се промени от стандартната 255.255.255.0 на 10.0.0.9 и устройството (след рестартиране) отговаря на 192.168.0.1 за 5 секунди и след това започва да отговаря на 10.0.0.9 (то напълно забравя за 192.168 0,1). Това може да е грешка в текущата версия на фърмуера (1.5.141), но тази версия, по време на тестването, беше най-новата, която можеше да бъде намерена на уебсайта на компанията.

По време на тестването не бяха открити повече грешки, свързани с уеб интерфейса.

Глава Сигурностповтаря същия раздел в инструмента за администриране.

Подобна ситуация и със секцията Потребителски мениджър

... и раздел персонализиране.

Икона Дневник, разположен от лявата страна на уеб интерфейса, ви позволява да видите събитията, настъпили по време на работа на устройството. В този случай екранната снимка отразява регистрационните файлове, които са се появили по времето, когато устройството е било тествано от Nessus.

Както бе споменато по-горе, регистрационните файлове могат да бъдат изхвърлени към външен регистрационен сървър (но с определени ограничения за местоположението му).

Днес много задачи, които традиционно са били възлагани на няколко физически сървъра, се прехвърлят във виртуални среди. Технологиите за виртуализация също са търсени от разработчиците на софтуер, тъй като позволяват цялостно тестване на приложения в различни операционни системи. В същото време, опростявайки много проблеми, самите системи за виртуализация трябва да бъдат управлявани и не може да се направи без специални решения.

Скитник

Виртуалната машина VirtualBox е заслужено популярна сред администраторите и разработчиците, като ви позволява бързо да създавате необходимите среди с помощта на графичен интерфейс или интерфейс на командния ред. Ако броят на виртуалните машини не надвишава три, няма трудности при внедряването и управлението, но модерните проекти са склонни да придобиват конфигурации и в резултат на това се получава много сложна инфраструктура, която става трудна за управление. Това е проблемът, който мениджърът на виртуалната среда на Vagrant е предназначен да разреши, като ви позволява да създавате копия на виртуални машини с предварително дефинирана конфигурация и динамично да преразпределяте VM ресурси (Provisioning), ако е необходимо. В основната дистрибуция Vagrant работи с VirtualBox, но плъгин системата ви позволява да свържете друга система за виртуализация. Днес кодът на плъгина за AWS и Rackspace Cloud е отворен и е наличен плъгин за търговски абонамент за поддръжка на VMware Fusion / Workstation.

Vagrant не създава виртуална машина от нулата. За удобство проектът предлага няколко базови изображения (кутии), които се импортират и впоследствие се използват за бързо внедряване на системата, вече на базата на кутии се сглобява гост OS с желаната конфигурация.

Chef и Puppet са предварително инсталирани в кутии, за да се опрости внедряването на приложенията. Освен това желаните настройки могат да бъдат зададени с помощта на обвивката. Средите включват пълен комплект за стартиране и разработване на приложения в Ruby. SSH се използва за достъп до VM, възможен е обмен на файлове през споделена директория.

Написан от Vagrant с помощта на Ruby, той може да бъде инсталиран на всяка платформа, за която има компоненти VirtualBox и Ruby. Пакетите за Windows, Linux (deb и rpm) и OS X са налични на страницата за изтегляне.

Процесът на инсталиране и използване на Ubuntu е прост. Изтеглете пакетите VirtualBox и Vagrant и инсталирайте:

$ sudo dpkg -i virtualbox-4.2.10_amd64.deb $ sudo dpkg -i vagrant_1.2.2_x86_64.deb

По време на писането на тази статия, с най-новата актуална версия на VirtualBox 4.2.14, имаше проблеми със стартирането на Vagrant, така че засега е по-добре да използвате 4.2.12 или да тествате 4.2.15. Като алтернатива можете да направите:

$ cd ~/.vagrant.d/boxes/BoxName/virtualbox $ openssl sha1 *.vmdk *.ovf > box.mf

Ето алтернативен начин за инсталиране на Vagrant - с помощта на Ruby:

$ sudo apt-get инсталирайте ruby1.8 ruby1.8-dev rubygems1.8 $ sudo gem инсталирайте vagrant

Всички настройки на проекта се правят в специален Vagrantfile. За да не създавате шаблон ръчно, той може да бъде генериран по следния начин:

$ mkdir проект $ cd проект $ vagrant инициал

Сега можете да погледнете в създадения конфигурационен файл и да попълните: VM настройки (config.vm. ), опции за SSH връзка (config.ssh.), параметрите на самия Vagrant (config.vagrant). Всички те са добре документирани, значението на някои е ясно и без обяснение.

Всъщност няколко такива файла се използват при стартиране, като всеки следващ замества предходния: вграден във Vagrant (не може да бъде променен), снабден с кутии (опаковани чрез превключвателя "--vagrantfile"), разположен в ~/.vagrant .d и файла на проекта. Този подход ви позволява да използвате настройките по подразбиране, заменяйки само това, което е необходимо в конкретен проект.


Всички инсталации се извършват с помощта на командата vagrant, списъкът с налични ключове може да се види с помощта на "-h". След инсталирането нямаме нито едно изображение, стартирането на vagrant box list ще покаже празен списък. Готовата кутия може да се намира в локална файлова система или на отдалечен сървър, името й се задава като параметър, който ще се използва в проекти. Например, ние използваме официалния Box Ubuntu 12.04 LTS, предлаган от разработчиците на Vagrant.

$ vagrant box add precise64 http://files.vagrantup.com/precise64.box

Сега може да бъде достъпен от Vagrantfile:

config.vm.box = "precise64"

Въпреки че е по-лесно да го посочите веднага при инициализиране на проекта:

$ vagrant init precise64

Най-лесният начин, който не изисква изучаване на Chef and Puppet, е да се използват стандартни команди на shell за конфигуриране на VM, които могат да бъдат написани директно във Vagrantfile или, дори по-добре, комбинирани в скрипт, който е свързан по следния начин:

Vagrant.configure("2") направете |config| config.vm.provision:shell, :inline => "script.sh" край

Сега всички команди, посочени в script.sh, ще бъдат изпълнени, когато VM се стартира. Когато проектът се стартира, се създава ovf файл, неговите настройки могат да се видят с помощта на GUI на VirtualBox или командата VBoxManage:

$ VBoxManage import /home/user/.vagrant.d/boxes/precise64/virtualbox/box.ovf Виртуална система 0: 0: Предложен тип ОС: "Ubuntu_64" (променете с "--vsys 0 --ostype "; използвайте "list ostypes", за да изброите всички възможни стойности) 1: Предложено име на VM "precise64" (променете с "--vsys 0 --vmname ") 2: Брой процесори: 2 (променете с "--vsys 0 --cpus ") 3: Памет за гости: 384 MB (променете с "--vsys 0 --memory ")

Те не винаги отговарят на посочените условия, но с помощта на настройките на доставчика можете лесно да промените настройките на определена виртуална машина (вижте съветите „промяна с ...“):

Config.vm.provider:virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "1024"] край

Стартирайте и се свържете със системата чрез SSH:

$ скитник нагоре $ скитник ssh

За да спрете VM, използвайте опцията за спиране или унищожаване (втората ще изчисти всички файлове, следващия път всички операции ще бъдат извършени отначало), ако трябва да я изпратите в хибернация - vagrant suspend, return - vagrant resume. За пример за работа с Chef можете да използвате готова рецепта, с която да конфигурирате APT и Apache2:

Config.vm.provision:chef_solo do |chef| chef.recipe_url = "http://files.vagrantup.com/getting_started/cookbooks.tar.gz" chef.add_recipe("vagrant_main") край

За достъп до VM "отвън", ще трябва да конфигурирате пренасочване на портове. По подразбиране се извършва пренасочване 22 -> 2222, което ви позволява да се свържете чрез SSH. Добавяне към Vagrantfile:

Vagrant::Config.run направете |config| config.vm.forward_port 80, 1111 край

Уеб сървърът вече може да бъде достъпен чрез навигация до http://127.0.0.1:1111/. За да не конфигурирате средата всеки път, по-добре е да изградите готов пакет въз основа на нея.

$ vagrant package --vagrantfile Vagrantfile --output project.box

Сега файлът project.box може да бъде разпространен на други администратори, разработчици или обикновени потребители, които ще го включат с помощта на командата vagrant box add project.box.

Convirt

Системите за виртуализация Xen/KVM, пуснати под безплатни лицензи, нямат удобен интерфейс, което често се тълкува не в тяхна полза. Този недостатък обаче лесно се отстранява. ConVirt ви позволява да разположите виртуални машинина множество Xen и KVM сървъри само с едно кликване, използвайки лесен за използване интерфейс. Налични са всички необходими операции с виртуални машини: стартиране, спиране, създаване на моментни снимки, контрол и преразпределяне на ресурси, свързване към VM чрез VNC, автоматизиране на административни задачи. Технологията Ajax прави интерфейса интерактивен и подобен на десктоп приложение. Например, VM може просто да бъде преместен от един сървър на друг. Интерфейсът не е локализиран, но контролите са интуитивни.


Обединяването на сървъри ви дава възможност да конфигурирате и контролирате виртуални машини и ресурси на ниво сървърен пул, а не отделен сървър. Агентите не се инсталират на виртуални системи, необходим е само пакетът convirt-tool на физическия сървър. Това опростява администрирането и внедряването.

След като бъде добавен нов сървър, ConVirt автоматично ще събира неговата конфигурация и данни за производителността, предоставяйки обобщена информация на няколко нива - от една виртуална машина, физически сървър, до целия пул. Събраните данни се използват за автоматично хостване на нови системи за гости. Тази информация също се показва под формата на визуални графики.

За създаване на виртуални машини се използват шаблони - описания на настройките на виртуалната машина, съдържащи данни за разпределените ресурси, пътя до файловете на ОС и допълнителни настройки. След инсталирането са налични няколко готови шаблона, но ако е необходимо, е лесно да ги създадете сами.

Поддържат се всички технологии: балансиране на натоварването, гореща миграция, виртуални дисковес нарастващ капацитет, което ви позволява да използвате ресурси според нуждите и много други функции, внедрени в Xen и KVM. Не е необходимо да спирате VM, за да преразпределите ресурси.

Въведена е възможност за управление на виртуална среда за няколко администратори с възможност за одит и контрол на техните действия.

ConVirt е разработен от компанията Convirture, използвайки концепцията за отворено ядро ​​(отворена основа), когато само основен набор от функции се разпространява свободно с изходните текстове, останалото е достъпно в търговската версия. Версията с отворен код няма поддръжка за висока наличност, VLAN интеграция, резервиране и възстановяване, управление на командния ред, известия и официална поддръжка.

По време на разработката са използвани рамката TurboGears2, библиотеките ExtJs и FLOT, MySQL е използван за съхраняване на информация, dnsmasq е използван като DHCP и DNS сървър. Необходимият пакет може да бъде намерен в хранилищата на популярни Linux дистрибуции.

Каресансуй

Реализирани са всички възможности за управление на виртуални среди: инсталиране на ОС, създаване на дискова подсистема и конфигурации на виртуална среда. мрежови карти, управление на квоти, репликация, замразяване на VM, създаване на моментна снимка, преглед на подробни статистики и данни от регистрационни файлове, наблюдение на натоварването. От една конзола можете да управлявате множество физически сървъри и виртуални машини, хоствани на тях. Възможна е работа с много потребители с разделяне на правата. В резултат на това разработчиците успяха да внедрят виртуална среда в браузъра, която ви позволява да управлявате напълно системите.

Написан от Karesansui в Python, SQLite се използва като СУБД за система с един възел. Ако планирате да управлявате инсталации на Karesansui, хоствани на множество физически сървъри, трябва да използвате MySQL или PostgreSQL.

Можете да разположите Karesansui на всеки Linux. Самите разработчици предпочитат CentOS (за който сайтът има подробни инструкции), въпреки че Karesansui се справя добре с Debian и Ubuntu. Преди инсталиране трябва да изпълните всички зависимости, посочени в документацията. След това се стартира инсталационният скрипт и базата данни се инициализира. Ако се използва мулти-сървърна конфигурация, тогава просто трябва да посочите външна база данни.

Последващата работа напълно компенсира неудобството от монтажа. Всички настройки са разделени на седем раздела, чиято цел е ясна от името: Гост, Настройки, Работа, Мрежа, Съхранение, Отчет и Дневник. В зависимост от ролята на потребителя, не всички от тях ще бъдат достъпни за него.

Можете да създадете нова виртуална машина от локален ISO файл или като посочите HTTP/FTP ресурс с инсталационни изображения. Ще трябва да зададете и други атрибути: името на системата, което ще се показва в списъка, име на мрежата (име на хост), технология за виртуализация (Xen или KVM), размер на RAM и харддиск(Размер на паметта и размер на диска) - и изберете картина, която ще съответства на виртуалната операционна система, което улеснява бързото й визуално избиране в конзолата.

WebVirtMgr

Възможностите на описаните решения често са излишни и инсталирането им не винаги е ясно за администратор с малък опит. Но и тук има изход. Услугата за централизирано управление на виртуална машина WebVirtMgr е създадена като прост заместител на virt-manager, който ще осигури удобна работа с VM с помощта на браузър с инсталиран плъгин Java. Поддържа се управление на настройките на KVM: създаване, инсталиране, конфигуриране, стартиране на VM, снимки и архивиране на виртуални машини. Осигурява управление на мрежовия пул и пул за съхранение, работа с ISO, клониране на изображения, преглед на използването на CPU и RAM. Достъпът до виртуалната машина се осъществява чрез VNC. Всички транзакции се записват в регистрационни файлове. С една инсталация на WebVirtMgr можете да управлявате множество KVM сървъри. За свързване с тях се използва RPC libvirt (TCP/16509) или SSH.


Интерфейсът е написан на Python/Django. Ще ви е необходим Linux сървър за инсталиране. Разпространява се в изходни и RPM пакети за CentOS, RHEL, Fedora и Oracle Linux 6. Самият процес на внедряване е прост и добре описан в документацията на проекта (на руски), просто трябва да конфигурирате libvirt и да инсталирате webvirtmgr. Целият процес отнема пет минути. След като се свържете с таблото за управление, изберете Добавяне на връзка и посочете параметрите на възела, след което можем да конфигурираме VM.

Скриптиране на създаването на VM

Най-простият скрипт за създаване и стартиране на виртуална машина с помощта на VirtualBox:

#!/bin/bash vmname="debian01" VBoxManage createvm --name $(vmname) --ostype "Debian" --register VBoxManage modifyvm $(vmname) --memory 512 --acpi on --boot1 dvd VBoxManage createhd - -filename "$(vmname).vdi" --size 10000 --variant Fixed VBoxManage storagectl $(vmname) --name "IDE Controller" --add ide --controller PIIX4 VBoxManage storageattach $(vmname) --storagectl "IDE Контролер" --port 0 --device 0 --type hdd --medium "$(vmname).vdi" VBoxManage storageattach $(vmname) --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /iso/debian-7.1.0-i386-netinst.iso VBoxManage modifyvm $(vmname) --nic1 bridged --bridgeadapter1 eth0 --cableconnected1 на VBoxManage modifyvm $(vmname) --vrde на екрана VBoxHeadless --startvm $(vmname)

Proxmox VE

Предишните решения са добри за ситуации, в които вече има известна инфраструктура. Но ако трябва само да го внедрите, трябва да помислите за специализирани платформи, които ви позволяват бързо да получите желания резултат. Пример тук е Proxmox Virtual Environment , което е дистрибуция на Linux (базирана на Debian 7.0 Wheezy), която ви позволява бързо да изградите виртуална сървърна инфраструктура с помощта на OpenVZ и KVM и е практически наравно с продукти като VMware vSphere, MS Hyper-V и Citrix XenServer.


Всъщност системата трябва да бъде инсталирана само (няколко прости стъпки), всичко останало вече работи извън кутията. След това, като използвате уеб интерфейса, можете да създадете VM. За тази цел най-лесно е да използвате OpenVZ шаблони и контейнери, които се зареждат от външни ресурси директно от интерфейса с едно кликване (ако ръчно, тогава копирайте в директорията /var/lib/vz/template). Но шаблоните могат да бъдат създадени и чрез клониране на вече създадени системи в режим на свързване. Тази опция спестява дисково пространство, тъй като всички свързани среди използват само едно споделено копие на данните от референтния шаблон без дублиране на информация. Интерфейсът е локализиран и разбираем, не изпитвате особено неудобство при работа с него.

Има поддръжка за клъстери, инструменти за Резервно копиевиртуални среди е възможно да мигрирате VM между възли, без да спирате работата. Контролът на достъпа до съществуващи обекти (VM, съхранение, възли) се реализира на базата на роли, поддържат се различни механизми за удостоверяване (AD, LDAP, Linux PAM, вграден Proxmox VE). Уеб интерфейсът предоставя възможност за достъп до VM с помощта на VNC и SSH конзоли, можете да видите състоянието на задания, регистрационни файлове, данни за наблюдение и много други. Вярно е, че някои операции, специфични за HA системите, все още ще трябва да се изпълняват по старомодния начин в конзолата, като например създаване на оторизирана iSCSI връзка, конфигуриране на клъстер, създаване на множество пътища и някои други операции.

Системните изисквания са ниски: x64 CPU (за предпочитане с Intel VT/AMD-V), 1+ GB RAM. Проектът предлага готово ISO изображение и хранилище за Debian.

Заключение

Всички описани решения са добри по свой начин и се справят отлично със задачите. Просто трябва да изберете най-подходящия за конкретна ситуация.

В Ubuntu се препоръчва да използвате KVM хипервайзор (диспечер на виртуална машина) и библиотеката libvirt като инструмент за управление. Libvirt включва набор от софтуерни API и персонализирани приложения за управление на виртуална машина (VM) virt-manager (графичен интерфейс, GUI) или virsh ( командна линия, CLI). Като алтернативни мениджъри можете да използвате convirt (GUI) или convirt2 (WEB интерфейс).

В момента само KVM хипервайзорът се поддържа официално в Ubuntu. Този хипервизор е част от кода на ядрото операционна система linux. За разлика от Xen, KVM не поддържа паравиртуализация, което означава, че за да го използвате, вашият процесор трябва да поддържа VT технологии. Можете да проверите дали вашият процесор поддържа тази технология, като изпълните командата в терминала:

Ако резултатът е съобщение:

ИНФОРМАЦИЯ: /dev/kvm съществува Може да се използва KVM ускорение

така че KVM ще работи без проблеми.

Ако изходът е съобщение:

Вашият процесор не поддържа KVM разширения KVM ускорението НЕ може да се използва

тогава все още можете да използвате виртуалната машина, но ще бъде много по-бавно.

    Инсталирайте като гост 64-битови системи

    Разпределете повече от 2 GB RAM за гостите

Инсталация

sudo apt-get инсталирате qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Това е инсталация на сървър без X, т.е. не включва графичен интерфейс. Можете да го инсталирате с командата

sudo apt-get инсталирайте virt-manager

След това в менюто ще се появи елементът „Диспечер на виртуална машина“ и с голяма степен на вероятност всичко ще работи. Ако все още възникнат проблеми, ще трябва да прочетете инструкциите в англоезичното wiki.

Създайте система за гости

Процедурата за създаване на система за гости с помощта на графичния интерфейс е доста проста.

Но текстовият режим може да бъде описан.

qcow2

Когато създавате система с помощта на графичния интерфейс, ще бъдете подканени или да изберете съществуващ файл с изображение или да блокирате устройство като твърд диск, или да създадете нов файл със сурови (RAW) данни. Това обаче далеч не е единственият наличен файлов формат. От всички типове дискове, изброени в man qemu-img, qcow2 е най-гъвкавият и актуален. Поддържа моментни снимки, криптиране и компресиране. Тя трябва да бъде създадена преди създаването на нова система за гости.

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

Според същия човек qemu-img, предварителното разпределение на метаданни (-o preallocation=metadata) прави диска малко по-голям първоначално, но осигурява по-добра производителност, когато изображението трябва да расте. Всъщност в този случай тази опция избягва неприятен бъг. Създаденото изображение първоначално заема по-малко от мегабайт пространство и нараства до определения размер, ако е необходимо. Системата за гости трябва незабавно да види този окончателен зададен размер, но по време на фазата на инсталиране тя може да види действителния размер на файла. Естествено, че ще откаже да бъде инсталиран на 200 kb твърд диск. Грешката не е специфична за Ubuntu, появява се поне в RHEL.

В допълнение към вида на изображението, по-късно можете да изберете как да го свържете - IDE, SCSI или Virtio Disk. Производителността на дисковата подсистема ще зависи от този избор. Няма недвусмислено правилен отговор, трябва да изберете въз основа на задачата, която ще бъде възложена на системата за гости. Ако системата за гости е създадена "за да видите", тогава всеки метод ще свърши работа. Като цяло, обикновено I / O е тясното място на виртуална машина, следователно, когато създавате силно натоварена система, този проблем трябва да се приема възможно най-отговорно.

Kimchi е базиран на HTML5 уеб интерфейс за KVM. Той предоставя лесен и гъвкав интерфейс за създаване и управление на виртуална машина за гости. Kimchi се инсталира и работи като демон на KVM хоста. Той управлява KVM гости с помощта на libvirt. Интерфейсът Kimchi поддържа всички най-нови версии на браузърите с версия -1, поддържа и мобилни браузъри.

Kimchi може да се инсталира на най-новата версия на RHEL, Fedora, openSUSE и Ubuntu. В това ръководство използвах Ubuntu 14.10 като KVM хост.

Преди да конфигурирате kimchi, трябва да инсталирате следните зависими пакети.

$ sudo apt-get install gcc make autoconf automake gettext git python-cherrypy3 python-cheetah python-libvirt libvirt-bin python-imaging python-pam python-m2crypto python-jsonschema qemu-kvm libtool python-psutil python-ethtool sosreport python-ipaddr python-ldap python-lxml nfs-common open-iscsi lvm2 xsltproc python-parted nginx firewalld python-guestfs libguestfs-tools python-requests websockify novnc spice-html5 wget

Системата ще ви попита за следните подробности по време на инсталирането на пакети.

1. OK за конфигурацията на Postfix.

2. Изберете Интернет сайт от общия тип конфигурация на пощата.

3. Въведете FQDN и след това изберете OK.

Веднъж инсталиран, изтеглете най-новата версия на kimchi от github.

$ wget https://github.com/kimchi-project/kimchi/archive/master.zip

Разархивирайте изтегления файл.

$ разархивирайте master.zip $ cd kimchi-master/

Изградете кимчи, като използвате следната команда.

$ ./autogen.sh --система

$ make $ sudo make install # По избор, ако се изпълнява от дървото на източника

$ sudo kimchid --host=0.0.0.0

Достъп до кимчи чрез уеб браузър, https://localhost:8001. Ще бъдете помолени да влезете, да използвате вашите системни идентификационни данни, които обикновено използвате за влизане в системата.


След като влезете, ще получите страница като по-долу. Това показва списъка с работещи виртуални машини за гости на текущия хост, имате бутони за извършване на изключване, рестартиране и свързване към конзолата, като щракнете върху действие.


За да създадете нова машина за гости, щракнете върху знака + в десния ъгъл. Ако използвате тази опция за създаване на машина, това ще стане чрез шаблони.


Можете да управлявате шаблони, като посетите менюто за шаблони. За да създадете нов шаблон, щракнете върху знака + в десния ъгъл. Можете да създадете шаблон с помощта на ISO изображения, можете да поставите iso изображения в /var/lib/kimchi/isos или да използвате отдалечен.


Можете да управлявате пула за съхранение, като отидете в менюто за съхранение, там можете да добавите ново хранилище, като щракнете върху знака +. Поддържа добавяне на NFS, iSCSI и SCSI оптичен канал за съхранение.


Мрежата може да се управлява, като отидете в мрежовото меню, можете да създадете нова мрежа с изолирана, NAT и мостова мрежа.


KVM или Kernel Virtual Module е модул за виртуализация за ядрото на Linux, който ви позволява да превърнете вашия компютър в хипервайзор за управление на виртуални машини. Този модул работи на ниво ядро ​​и поддържа технологии за хардуерно ускорение като Intel VT и AMD SVM.

От само себе си софтуер KVM в потребителското пространство не виртуализира нищо. Вместо това той използва файла /dev/kvm, за да настрои виртуални адресни пространства за машината за гости в ядрото. Всяка машина за гости ще има собствена видеокарта, мрежова и звукова карта, HDDи друго оборудване.

Освен това системата за гости няма да има достъп до компонентите на реалната операционна система. Виртуалната машина работи в напълно изолирано пространство. Можете да използвате kvm както на GUI система, така и на сървъри. В тази статия ще ви преведем през инсталирането на kvm Ubuntu 16.04.

Преди да преминете към самата инсталация на KVM, трябва да проверите дали вашият процесор поддържа хардуерно виртуализиращо ускорение от Intel-VT или AMD-V. За да направите това, изпълнете следната команда:

egrep -c "(vmx|svm)" /proc/cpuinfo

Ако резултатът е 0, вашият процесор не поддържа хардуерна виртуализация, ако 1 или повече, тогава можете да използвате KVM на вашата машина.

Сега можем да преминем към инсталиране на KVM, набор от програми може да бъде получен директно от официалните хранилища:

sudo apt инсталирайте qemu-kvm libvirt-bin bridge-utils virt-manager cpu-checker

Инсталирахме не само помощната програма kvm, но и библиотеката libvirt, както и мениджъра на виртуална машина. След като инсталацията приключи, трябва да добавите своя потребител към групата libvirtd, тъй като само root и потребителите от тази група могат да използват KVM виртуални машини:

sudo gpasswd -a ПОТРЕБИТЕЛ libvirtd

След като изпълните тази команда, излезте и влезте отново. След това нека проверим дали всичко е инсталирано правилно. За да направите това, използвайте командата kvm-ok:

ИНФО: /dev/kvm съществува
Може да се използва KVM ускорение

Ако всичко е направено правилно, ще видите същото съобщение.

Използване на KVM на Ubuntu 16.04

Завършихте задачата да инсталирате kvm на Ubuntu, но все още не можете да използвате тази среда за виртуализация, но тя все още трябва да бъде конфигурирана. След това ще разгледаме как се извършва настройката на kvm на Ubuntu. Първо трябва да настроите мрежата. Трябва да създадем мост, с който виртуалната машина ще се свърже с мрежата на компютъра.

Конфигуриране на мост в NetworkManager

Това може да стане по няколко начина, например можете да използвате програмата за мрежова конфигурация NetworkManager.

Щракнете върху иконата NetworkManager в панела, след което изберете промяна на връзките, след което щракнете върху бутона Добавете:

След това изберете тип връзка Мости натиснете Създавайте:

В прозореца, който се отваря, щракнете върху бутона добавете,за да свържем нашия мост към интернет връзката:

Изберете от списъка ethernetи натиснете Създавайте:

В следващия прозорец изберете в полето устройство, мрежов интерфейс, с който трябва да бъде свързан нашият мост:

Сега ще видите вашия мост в списъка с мрежови връзки. Остава да рестартирате мрежата, за да приложите напълно промените, за да направите това, стартирайте:

Ръчна настройка на моста

Първо трябва да инсталирате набора помощни програми bridge-utils, ако още не сте го направили:

sudo apt инсталирайте bridge-utils

След това, използвайки програмата brctl, можем да създадем моста, от който се нуждаем. За да направите това, използвайте следните команди:

sudo brctl addbr bridge0
$ sudo ip адрес показване
$ sudo addif bridge0 eth0

Първата команда добавя br0 мостовото устройство, с втората трябва да определите кой мрежов интерфейс е основната връзка към външната мрежа, в моя случай това е eth0. И с последната команда свързваме bridge br0 към eth0.

Сега трябва да добавите няколко реда към мрежовите настройки, така че всичко да се повдига автоматично след стартиране на системата. За да направите това, отворете файла /etc/network/interfaces и добавете следните редове там:

sudo gedit /etc/network/interfaces

loopback
auto lo bridge0
iface lo inet loopback
iface bridge0 inet dhcp
bridge_ports eth0

Когато настройките са добавени, рестартирайте мрежата:

sudo systemctl рестартирайте мрежата

Сега инсталирането и конфигурирането на KVM е завършено и можете да създадете първата си виртуална машина. След това можете да видите наличните мостове с командата:

Създаване на KVM виртуални машини

Настройката на Ubuntu KVM е завършена и сега можем да преминем към използването му. Първо, нека да разгледаме списъка с вече съществуващи виртуални машини:

virsh -c qemu:///системен списък

Празно е. Можете да създадете виртуална машина през терминала или в графичния интерфейс. За изграждане от терминала използвайте командата virt-install. Първо, нека отидем в папката libvirt:

cd /var/lib/libvirt/boot/

За да инсталирате CentOS, командата ще изглежда така:

sudo virt-install \
--virt-type=kvm \
--име centos7\
--ram 2048\
--vcpus=2 \
--os-variant=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--network=bridge=br0,model=virtio \
--graphics vnc\
--диск път=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Нека да разгледаме по-отблизо какво означават параметрите на тази команда:

  • тип virt- тип виртуализация, в нашия случай kvm;
  • име- име нова кола;
  • овен- количество памет в мегабайти;
  • vcpus- брой ядра на процесора;
  • ос-вариант- тип операционна система;
  • CD ROM- инсталационен образ на системата;
  • мрежа-мост - мрежов мост, който настроихме по-рано;
  • графики- как да получите достъп до графичния интерфейс;
  • дискова пътека- адрес на новия твърд диск за тази виртуална машина;

След като инсталацията на виртуалната машина приключи, можете да разберете настройките за връзка чрез VNC, като използвате командата:

sudo virsh vncdisplay centos7

Сега можете да въведете получените данни във вашия VNC клиент и да се свържете с виртуалната машина дори от разстояние. За Debian командата ще бъде малко по-различна, но всичко изглежда подобно:

Отидете в папката за изображения:

cd /var/lib/libvirt/boot/

Можете да изтеглите инсталационното изображение от интернет, ако е необходимо:

sudo wget https://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-8.5.0-amd64-DVD-1.iso

Тогава нека създадем виртуална машина:

sudo virt-install \
--virt-type=kvm \
--name=debina8 \
--ram=2048 \
--vcpus=2 \
--os-variant=debian8 \
--hvm\
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso \
--network=bridge=bridge0,model=virtio \
--graphics vnc\
--диск път=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Сега нека отново да видим списъка с наличните машини:

virsh -c qemu:///системен списък

За да стартирате виртуалната машина, можете да използвате командата:

sudo virsh начално име на хост

Да спра:

име на хост за изключване на sudo virsh

За да поставите в режим на заспиване:

sudo virsh suspend име на хост

За да рестартирате:

sudo virsh рестартиране на хост име

sudo virsh нулиране на име на хост

За да премахнете напълно виртуална машина:

sudo virsh унищожи име на хост

Създаване на виртуални машини в GUI\

Ако имате достъп до графичен интерфейс, тогава няма нужда да използвате терминал, можете да използвате пълния графичен интерфейс на мениджъра на виртуална машина Virtual Manager. Програмата може да се стартира от главното меню:

За да създадете нова машина, щракнете върху иконата с иконата на монитора. След това ще трябва да изберете ISO изображение на вашата система. Можете също да използвате истинско CD/DVD устройство:

На следващия екран изберете количеството памет, което ще бъде налично за виртуалната машина, както и броя на процесорните ядра:

На този екран трябва да изберете размера на твърдия диск, който ще бъде наличен във вашето устройство:

В последната стъпка на съветника трябва да проверите правилността на настройките на машината, както и да въведете нейното име. Трябва също така да посочите мрежовия мост, чрез който устройството ще се свърже към мрежата:

След това машината ще бъде готова за употреба и ще се появи в списъка. Можете да го стартирате, като използвате зеления триъгълник в лентата с инструменти на мениджъра.

заключения

В тази статия разгледахме как се извършва инсталацията на Ubuntu 16.04 KVM, как да подготвим напълно тази среда за работа, както и как да създаваме виртуални машини и да ги използваме. Ако имате въпроси, попитайте в коментарите!

В края, лекция от Yandex за това какво е виртуализация в Linux: