Научете Linux

Какво е виртуална машина и защо да я използвам?

Какво е виртуална машина и защо да я използвам?

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

Виртуална машина и нейните нужди

Въведение

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

В случая на виртуална машина има някои очевидни моменти, които можем да направим. Точно както започнахме тази статия, това е нещо като VR за операционни системи. Виртуалните машини, които създаваме, използват „виртуален“ хардуер. Хардуерът, който хостваната операционна система използва, е толкова реален, колкото всеки друг, що се отнася до разбирането на самата тази операционна система, но операционната система е създадена само за да я гледа по този начин. Оперативната памет, паметта и мощността на процесора, използвани от ОС, са използването само на части от реалния хардуер. Цялата тази виртуализация и управление се извършва от нещо, наречено хипервизор.

Хипервизор

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

Хипервизорите осигуряват стабилна непревземаема граница между различните операционни системи, които се изпълняват като виртуални машини. Хипервизорът симулира хардуерните компоненти за виртуалната машина, които са конфигурирани от потребителя. Хардуерът, който VM използват (чрез хипервизори) са части от действителния хардуер на системата. По този начин човек не може да надвишава реалните хардуерни ограничения. Например, ако имате 16 GB RAM, можете да разделите това като 8 GB между две виртуални машини.

Критичният момент е, че технологията, която прави виртуалните машини възможни: хипервизори; не изисква специален хардуер. Това е само основен софтуерен компонент. Има два важни вида хипервизори:

Тип 2: Хоствани хипервизори

Наясно съм, че демонстрирам тип 2 преди 1, но има последователност. Хостваните хипервизори остават на ниво приложение. Това може да ви е познато, ако някога сте използвали Oracle VM VirtualBox, VMWare или GNOME Boxes.

Това е приложение, което ви позволява да инсталирате операционна система като виртуална машина във вашата операционна система (операционната система, в която е инсталирано самото приложение). Това е значително лесно за настройка и използване. Всичко, което трябва да направите, е да инсталирате приложение, което ви позволява да създавате виртуални машини и да получите изображение на необходимата операционна система. Можете директно да посочите колко RAM, място на твърдия диск и т.н. искате да разрешите виртуалната машина да използва.

Съществуват значителни положителни резултати при използването на хостван хипервизор, особено за редовни потребители като нас. Има обаче проблем. Обичайната структура на компютърна система следва тази последователност:

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

Сега разглеждаме случая на виртуална машина на хостван хипервизор. Например стартирате приложение в гост OS. Това ще изпрати syscall до ядрото на гост ОС. Това от своя страна ще бъде интерпретирано и преобразувано в друг syscall от хипервизора, който сега ще изпрати този syscall до ядрото на хост ОС (защото не забравяйте, че хостваният хипервизор е просто друго приложение за хост ОС). Ядрото на хост ОС ще изпрати отговора на хипервизора, който сега ще трябва да бъде преобразуван в подходящия отговор за приложението в гост ОС. Фу.

Всичко това означава, че хостваните хипервизори трябва да преминат през доста дълъг процес. На повечето съвременни хардуери това не отнема толкова време, колкото изглежда, но не е като естествената скорост и производителност. Решението за това е хипервизор тип 1.

Хостван хипервизор

Тип 1: Хипервизор с гол метал

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

Гол метален хипервизор

Някои често срещани примери за голи метални хипервизори включват VMWare ESXi, Microsoft Hyper-V, Citrix XenServer, Xen, Linux KVM и др.

Контейнери

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

Контейнер

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

Използва

И така, ние вече се задълбочихме в детайлите на принципите на работа на виртуалните машини. Време е да разберете как може да бъде полезно в реални сценарии.

Множество работни станции от една система

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

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

Максимално използване

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

По този начин VM се възползват максимално от използването на ресурсите. Но не говорим само за сървърите. Например, ако имате мощен компютър за игри, вместо това можете да използвате неговия хардуер изцяло, да речем, като използвате една операционна система като основна работна станция и една като NAS. Или може би по-значителен брой операционни системи и задачи.

Ефективност на захранването

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

Физическо пространство / мобилност

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

Възстановяване

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

Тестова зона

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

Заключение

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

Надяваме се, че сте намерили тази статия за информативна и полезна.

OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...
Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...