Виртуальные машины и их операционные системы: Виртуальная машина
Виртуальная машина
Виртуальная машина (Virtual Machine) — это программная среда, которая эмулирует аппаратную составляющую компьютера со всеми его компонентами. По существу, виртуальная машина — это отдельный виртуальный компьютер, на который можно будет устанавливать операционные системы, программы, драйверы и т. п., которые потом можно будет запускать изолированно от основной операционной системы, установленной на данном компьютере.
В этой статье мы разберем, что такое виртуальная машина, и чего она нужна. Многие пользователи что-то слышали о существовании виртуальных машин, но не знают, для чего она нужна.
Для чего нужна виртуальная машина
Использование виртуальной машины происходит примерно таким образом: вы устанавливаете на свой компьютер специальную программу виртуализации (виртуальную машину), в которую вы затем можете установить одну или несколько поддерживаемых этой программой операционных систем.
Например, на вашем компьютере установлена операционная система Windows 7, а вы хотите попробовать в работе другую операционную систему: Windows 8.1, или Windows 10. Вы пока не готовы сразу перейти на более новую операционную систему, поэтому установив Windows 10 на виртуальную машину, вы можете подробно ознакомиться с ее работой и возможностями, получить необходимые навыки.
Параллельно вы можете установить в виртуальную машину другие операционные системы: различные дистрибутивы Linux, Mac OS X и т. д. Одновременно вы можете использовать на своем компьютере, например, на основной системе Windows 10, а на виртуальной машине Windows 7, Ubuntu, и Mac OS X.
Наиболее популярные программы для создания виртуальных машин (ВМ) для обычных пользователей (есть большой корпоративный сегмент систем виртуализации): Oracle VirtualBox (бесплатная), VMware (бесплатный для личного пользования VMware Player, платная VMware Workstation), Parallels (для компьютеров с Mac OS X), Windows Virtual PC (в Windows 7, начиная с редакции Pro, поддерживается бесплатная установка виртуальной среды Windows XP Mode), Hyper-V (работает в x64 битных версиях Windows, начиная с Windows 8) и другие.
Виртуальные машины разных производителей отличаются своими возможностями и особенностями. Скачать виртуальные машины можно будет с сайтов производителей программ.
Использование виртуальных машин
Виртуальные машины (ВМ), в основном, применяют для следующих целей:
- установка другой операционной системы для изучения, или работы;
- тестирование незнакомых программ без риска для основной операционной системы;
- использование программ, которые не могут работать на вашем компьютере;
- настройка локальной сети;
- безопасный запуск подозрительных приложений;
- одновременная установка на компьютер нескольких операционных систем.
Например, на моем компьютере в разное время, были установлены в виртуальной среде следующие операционные системы: Windows XP, Windows 7, Windows 8.1, Windows 10, Mac OS X, Linux Mint, Android.
Работа в операционной системе, установленной в виртуальной машине, ничем не отличается от работы в обычной системе, установленной на компьютере. Это обычная ОС, запущенная в виртуальной среде. Вы можете делать все, что хотите, не боясь «убить» Windows, или другую систему. Если в результате ваших действий ОС станет неработоспособной, то вы можете просто удалить эту операционную систему, взамен установив другую.
Во многих виртуальных машинах весть возможность для создания снимка системы, поэтому вы без труда можете восстановить «убитую» ОС.
Скорее всего, на виртуальной машине не пойдут мощные ресурсоемкие игры, потому что такие игры, скорее всего, будут сильно тормозить. Производительность работы в операционной системе, установленной на виртуальной машине, зависит от мощности конкретного компьютера.
На этом изображении вы можете увидеть, что на моем компьютере установлена Windows 10, а в окне виртуальной машины (я специально уменьшил окно программы виртуализации) запущена операционная система Windows 8.1. Таким образом, на моем компьютере в этот момент работали одновременно две разные операционные системы, независимо друг от друга.
Операционная система, установленная в виртуальной машине, будет работать изолированно от основной операционной системы, установленной на вашем компьютере. Вы можете делать что угодно, с установленной на виртуальной машине Windows (или другой операционной системой). Основная система, установленная на вашем компьютере, не будет затронута работой в виртуальной машине, или другими производимыми изменениями в операционной системе, установленной на виртуальной машине.
Вы можете тестировать незнакомые программы на виртуальной машине, перед установкой их на реальную систему. ОС Windows, или другую операционную систему (если она не бесплатная), необходимо будет активировать.
Некоторые программы не работают в определенной операционной системе, поэтому вы можете установить такую программу в поддерживаемую операционную систему на виртуальной машине. В этом случае, вы сможете продолжать использовать на своем компьютере необходимое приложение.
Виртуальную машину можно использовать в целях безопасности. Например, можно будет не сразу устанавливать на свой компьютер программу, которая вызывает у вас подозрение, а предварительно установить такую программу на виртуальную машину. В том случае, если ваши подозрения подтвердятся, то установленная на вашем компьютере основная операционная система никак не пострадает.
Вы можете безопасно посещать подозрительные сайты, рискуя только гостевой системой, установленной в ВМ.
На этом изображении, на виртуальной машине VMware Workstation запущена операционная система Mac OS X, в окне которой открыт браузер Safari. В VMware Workstation гостевая система может быть раскрыта на весь экран монитора вашего компьютера.
При использовании виртуальной машины, наряду с достоинствами, есть и некоторые недостатки. Основная проблема: на маломощных компьютерах работа в гостевой системе, установленной на виртуальной машине, может замедляться (зависать, тормозить). Это вызвано тем, что в это время ресурсы вашего компьютера одновременно потребляют две операционные системы: основная, установленная на вашем компьютере, и гостевая, установленная в виртуальной машине.
Для того, чтобы сильно не нагружать свой компьютер, я рекомендую, во время работы в гостевой операционной системе, закрыть в основной системе ненужные, в данный момент, приложения. После этого несколько снизится нагрузка на ресурсы вашего компьютера, станет более комфортной работа в гостевой ОС, установленной на виртуальной машине. На мощных компьютерах подобные проблемы, обычно, не возникают.
Вам также может быть интересно:
Если вы желаете попробовать работу другой операционной системы Windows на своем компьютере, а из-за малой мощности компьютера, работа в виртуальной машине будет затруднена, то вы можете установить другую систему на виртуальный жесткий диск (VHD). Подробнее об этом можно прочитать здесь. При таком варианте, вы будете по очереди запускать операционные системы на своем компьютере.
Работая с виртуальной машиной, вы можете без проблем удалить оттуда любую операционную систему без каких-либо последствий для своего компьютера, а также удалить со своего компьютера программу — виртуальную машину.
Выводы статьи
С помощью специальной программы: виртуальной машины (Virtual Machine), вы можете установить на свой компьютер другую операционную систему для ознакомления с работой ОС, для тестирования приложений, решения проблем совместимости, в целях безопасности и т. п. Вы можете попробовать в работе несколько разных виртуальных машин и остановиться на наиболее удобном для себя варианте.
Похожие публикации:
Какие бывают виртуальные машины: три основных вида виртуализации
Был такой популярный фильм Кристофера Нолана «Начало» (который на самом деле Inception — «внедрение»). Речь в нем шла про сон внутри сна, который происходит тоже внутри сна. И сейчас мы поговорим о виртуальных машинах, которые как раз являются «компьютером внутри компьютера» (а внутри компьютера еще бывают контейнеры, которые тоже являются компьютерами).
Зачем делают такие матрешки из вложенных реальностей, какие виртуальные машины бывают и кто их применяет — обсудим в этой статье.
Зачем нужны виртуальные машины
Виртуальная машина — это когда вы ставите на компьютер операционную систему и в ней запускаете некую программу, имитирующую компьютер с другой ОС, другую аппаратную платформу или принципиально другую вычислительную архитектуру. Это как операционная система, запущенная внутри другой операционной системы. Подробнее о виртуальных машинах и том, как они работают, мы писали в отдельной статье.
Зачем такое вообще нужно?
- Облачные серверы. Вы берете сверхмощный сервер и ставите на него софт для запуска виртуальных машин. А потом начинаете продавать доступ к ресурсам этого сервера. Клиенты получают доступ, и им создается виртуальная машина с нужной операционной системой и заданным количеством ресурсов. Такие системы виртуализации нужны для бизнеса и поставщиков сервисных услуг.
- Виртуальные машины отдельных языков программирования. Некоторые языки программирования работают так: вы пишете код, который затем компилируется в специальный файл, предназначенный для исполнения в виртуальной машине определенного типа. Звучит сложно, но на деле встречается повсеместно. Например, язык Java — программы транслируются в специальный код, предназначенный для исполнения на виртуальной Java-машине.
- Безопасность. Запустить программу внутри виртуальной машины — это почти как запуск программы на отдельном компьютере. Это значит, что в случае проблем с безопасностью — например, через ошибку в запущенной программе кто-то получил доступ к компьютеру — хакер окажется заперт в песочнице, из которой некуда деваться. Взломщик «сидит» внутри виртуальной машины и не может получить доступ к данным и программам за ее пределами.
- Дистрибуция ПО. Серверные программы не всегда просто запустить — обычно нужно прописывать дополнительные настройки в разные файлы конфигурации, создавать пользователей ОС, прописывать им права и делать множество других тонких вещей. Дистрибуция серверного софта в виде виртуальных машин помогает упростить (или вовсе исключить) предварительную настройку — все необходимые конфигурационные файлы и параметры запуска ПО можно включить в виртуальную машину и запускать программу в готовой рабочей среде.
Какие бывают виды виртуальных машин
Их принято делить на три больших группы, отличающиеся по «глубине» виртулизационного процесса. Ниже небольшой обзор виртуальных машин и видов виртуализации.
Полная виртуализация
Это когда система управления виртуальными машинами полностью и на 100% изображает компьютер, со всеми его железками и устройствами. Этой технологией активно пользуются, например, безопасники. На своем компьютере они запускают полностью изолированную операционную систему и внутри нее исследуют работу опасного вируса. Вирус при этом может полностью нарушить работу виртуальной ОС, но основной компьютер инженера останется цел.
Еще эту штуку очень любят тестировщики. Например, чтобы на компьютере запустить 10 разных версий Windows и 20 разных версий Linux, а в них проверить работу программы.
Полная виртуализация — штука интересная, но она подходит не для всех целей, например, не годится для облаков. Поэтому обсудим два других, более облачных типа.
Виртуализация с доступом к железу
В отличие от полной виртуализации, этот метод дает гостевой операционной системе возможность обращаться напрямую к железу, не подсовывая вместо реальных девайсов софтовые эмуляции.
Этим методом организации работы операционной системы пользуются многие облачные решения, про которые вы точно слышали хоть краем уха: Xen, Hyper-V, KVM, Virtualbox.
Все эти продукты используют для построения крутых и надежных облаков для запуска виртуальных машин под нужды клиентов. Основное преимущество виртуализации с доступом к железу — скорость: запросы гостевых ОС можно выполнять напрямую на железе, без затратных процессов эмуляции.
Виртуализация уровня операционной системы
«Народный» облачный метод виртуализации — наиболее популярный подход для запуска софта в облаке и дистрибуции серверных программ. В этом случае жесткой виртуализации не происходит. Ядро хозяйской операционной системы выделяет несколько независимых пространств прямо на уровне хозяйской ОС и пускает в эти пространства несколько других программ на выполнение. При этом каждой программе предоставляется своя изолированная среда.
Звучит похоже на кое-что, не так ли? Именно, этот подход широко применяется в контейнеризации приложений. Это LXS, OpenVZ, jails и, конечно же, всенародно любимый Docker, сделавший применение виртуализации повсеместной практикой.
Виртуализация на уровне ОС позволяет контролировать поведение гостевых контейнеров извне, жестко определяя политики доступа гостей к ресурсам и данным.
При сравнении виртуальных машин такой метод виртуализации обладает самой большой производительностью — нет тяжелой эмуляции и нет контроля за доступом к железу, все решается средствами родительской операционной системы. А собирать и копировать программы в таких виртуалках очень просто.
Виртуальные машины дома и в бизнесе
Стремительное развитие технологий виртуализации оказало значительное влияние не только на развитие ИТ-инфраструктуры крупных предприятий. Мощности настольных персональных компьютеров достигли такого уровня, когда одна физическая машина может поддерживать несколько одновременно запущенных операционных систем в виртуальных машинах. Еще несколько лет назад виртуальные машины были чем-то экзотическим для конечных пользователей, которые устанавливали их, большей частью, в ознакомительных целях. Теперь многоядерные процессоры и большие объемы оперативной памяти на домашнем или офисном компьютере не редкость, и это позволяет придумывать новые варианты их использования в контексте технологий виртуализации.
Множество пользователей находят разнообразные применения настольным платформам виртуализации, как дома, так и на работе. Ведь виртуальная машина, по сравнению с физической, обладает существенно большей гибкостью в отношении переносимости на другую физическую платформу. К тому же, за последние пару лет существенно выросло качество настольных платформ виртуализации в отношении функциональности, простоты использования и быстродействия. Появившаяся сравнительно недавно поддержка аппаратной виртуализации в настольных системах говорит, что ведущие производители процессоров, такие как Intel и AMD, верят в будущее технологий виртуализации на персональных компьютерах.
Безусловно, такие громоздкие и требовательные к аппаратным ресурсам операционные системы, как Windows Vista, способны поглотить мощности пользовательских десктопов, какими бы высокими они не были, однако прогресс не стоит на месте, и дальнейшее развитие настольных аппаратных платформ вскоре даст возможность поддерживать несколько таких систем одновременно, удовлетворяя требованиям по быстродействию. Тем не менее, многие пользователи считают, что применение технологий виртуализации дома не является необходимым и считают виртуализацию еще одной специфической технологией, которая не окажет на них большого влияния. Большей частью, это связано с тем, что они не видят достойных путей применения виртуальных машин.
В сфере бизнеса, технологии виртуализации внедряются в основном для поддержания виртуальной инфраструктуры серверов компании и на конечных пользователей оказывают весьма малое влияние. В этой статье мы покажем, что практически любой пользователь персонального компьютера может применять технологии виртуализации, чтобы повысить эффективность своей работы за персональным компьютером дома, а также для повседневных задач на рабочем месте.
Как использовать виртуальные машины дома
Большинство пользователей персональных компьютеров часто сталкиваются с проблемой использования потенциально опасных или нестабильных приложений, которые могут либо повредить операционную систему, либо оказать влияние на работу других программ. Зачастую домашний компьютер, на котором расположены также и рабочие документы, используется несколькими людьми, среди которых не все понимают, как правильно с ним обращаться, чтобы не повредить важные данные или операционную систему. Создание учетных записей типа «User» не решает этой проблемы, поскольку для установки многих приложений необходимы административные права, и работа за компьютером в таком режиме существенно ограничивает его использование. Безусловно, многие сталкиваются также и с проблемой перенесения операционной системы и установленных приложений на другой компьютер при его покупке. Категория пользователей, активно использующих ноутбуки, сталкивается с проблемой синхронизации данных между ним и стационарным компьютером. Ведь необходима не только синхронизация файлов, но требуется также использовать одни и те приложения на работе и дома. Для множества людей, немаловажна также возможность обучения работе с различными операционными системами, от которых в этом случае не требуется высокого быстродействия. При этом, например, работая в Linux, пользователю требуется обращаться к Windows-приложениям, и для этого приходится перезагружать компьютер. И главной проблемой при обучении является невозможность моделирования реальной сети между несколькими компьютерами при наличии в распоряжении одного. Все эти и множество других проблем, позволяет решить использование виртуальных машин в настольных системах виртуализации.
Основными вариантами домашнего использования виртуальных машин являются следующие:
- Создание персональной виртуальной среды, изолированной от хостовой системы, что позволяет использовать на одном компьютере несколько копий рабочих окружений, полностью изолированных друг от друга. К сожалению, такая модель исключает вариант использования виртуальных сред для 3D-игр, поскольку производители платформ виртуализации не научились еще полноценно поддерживать эмуляцию всех функций видеоадаптеров. Впереди всех на данный момент в этом отношении компания VMware, которая в последних версиях своей настольной платформы VMware Workstation включила функции по экспериментальной поддержке Direct-3D и шейдеров. Тем не менее, не так давно компания PCI-SIG, занимающаяся разработкой стандарта PCI Express, опубликовала новые спецификации стандарта PCI Express 2.0, в которых заявляется о поддержке функций виртуализации ввода-вывода, которые значительно упрощают гостевым системам доступ к физическому железу. Бесспорно, не за горами то время, когда мы будем играть в игры на виртуальных машинах.
- Создание переносных виртуальных машин, готовых к использованию на любой другой совместимой по архитектуре платформе. Если вам необходимо продемонстрировать работу какой-либо программы, при этом она или окружение операционной системы должны быть определенным образом настроены — виртуальные машины лучший вариант в этом случае. Сделайте в виртуальной машине все необходимые действия, запишите ее на DVD-диск и там, где вам нужно показать, как все работает, установите платформу виртуализации и запустите виртуальную машину.
- Получение безопасных пользовательских окружений для Интернет. При работе в сети Интернет, которая, как всем известно, изрядно наполнена вирусами и «троянскими конями», запуск интернет-браузера в режиме user-mode для многих не является приемлемым решением, с точки зрения безопасности. Ведь в программном обеспечении, в том числе и в операционных системах, существует множество уязвимостей, сквозь которые вредоносное ПО может повредить важные данные. Виртуальная машина в этом случае является более выигрышным вариантом, поскольку вредоносная программа после получения контроля над операционной системой в виртуальной машине, может причинить вред только внутри нее, не затрагивая при этом хостовую ОС. Кстати, в последнее время начали появляться вирусы, обнаруживающие свое присутствие в виртуальной машине и не выдающие себя в этом случае, однако пока таких вредоносных программ единицы, и в любом случае вред важным данным нанесен не будет, пока зараженные объекты не будут перенесены в хостовую ОС. Поэтому применение виртуальных машин в этом случае нисколько не исключает использование антивирусного ПО.
- Создание сред для экспериментов с потенциально опасным программным обеспечением. На виртуальной машине вы можете безболезненно опробовать новый чистильщик реестра или дисковую утилиту. Вы также можете без всякого риска устанавливать прикладное ПО, которое может при определенных условиях повредить систему или ваши данные. В этом случае виртуальная машина выступает в роли «песочницы», в которой играются ваши программы. Вы можете спокойно наблюдать за их работой и изучать их, не беспокоясь при этом за сохранность данных.
- Удобное и простое резервное копирование пользовательских сред. В конечном счете, виртуальная машина — это всего лишь папка с файлами на вашем компьютере, которая может быть скопирована на резервный носитель, а потом легко восстановлена. В этом случае не требуется создавать образов жесткого диска, чтобы сделать резервную копию вашей системы.
- Возможность обучения работе с операционными системами, отличными от вашей хостовой. Безусловно, можно установить вторую ОС параллельно с вашей основной системой, но в таком случае, если вам понадобится какое-либо приложение из основной системы, вам придется перезагрузиться. В этом случае виртуальная машина идеальный вариант: вы запускаете нужную вам ОС параллельно с хостовой и переключаетесь между ними в случае необходимости. Во многих системах обмен файлами между гостевой и хостовой системой организован просто — перетаскиванием файлов и папок указателем мыши.
Мы перечислили лишь основные варианты использования виртуальных машин дома, конечно, есть и другие, более специфические сферы их применения. Но настоящие перспективы при использовании настольных систем виртуализации открываются в бизнесе, где важны, прежде всего, доступность и экономия времени, и затрат на приобретение дополнительного оборудования.
Настольные платформы виртуализации в бизнесе
Для большинства компаний, когда идет речь о виртуализации, это, в первую очередь, означает виртуализацию серверной инфраструктуры предприятия. Однако есть множество решений на базе виртуальных машин для конечных пользователей, значительно повышающих эффективность работы сотрудников компании. Рассмотрим основные сферы применения виртуальных машин в бизнесе на платформах виртуализации пользователей настольных компьютеров:
- Создание хранилищ типовых шаблонов рабочих окружений пользователей. В зависимости от специфики работы организации, ее сотрудникам необходимо применение определенного набора программного обеспечения. При приходе в организацию нового сотрудника, ему необходимо установить операционную систему, определенным образом настроить ее, в соответствии с требованиями организации и политиками безопасности, а также установить все необходимое прикладное ПО. При использовании шаблонов виртуальных машин эта проблема решается очень просто: сотруднику устанавливается настольная платформа виртуализации, а в ней запускается виртуальная машина из набора шаблонов организации, в которой установлено все необходимое ПО и сделаны соответствующие настройки операционной системы. Такая модель позволит существенно сократить временные затраты на развертывание, а также обеспечить высокую гибкость при переносе виртуального десктопа сотрудника на другую физическую машину. Безусловно, такой вариант использования, возможно, потребует повышенных аппаратных ресурсов оборудования, однако это с лихвой окупится, если сотруднику приходится оперировать большими объемами разнородных данных, резервное копирование которых потребует значительного времени. Например, сотрудники службы маркетинга, которые устанавливают множество необходимых им программ, ежедневно пробуют что-то и работают с различными документами. В этом случае, они могут копировать папку с файлами их рабочей виртуальной машины в конце рабочего дня, не боясь при этом, что завтра при установке очередной программы все «сломается».
- Создание виртуальной инфраструктуры десктопов, позволяющей централизованно хранить пользовательские окружения на защищенных серверах компании. Сами конечные пользователи при этом используют средства удаленного доступа к рабочему столу своих окружений (например, Terminal Services), хранящихся в корпоративном датацентре. Такой вариант использования виртуальных машин требует значительных затрат на его внедрение, поскольку в этом случае требуется поддержка серверных платформ виртуализации датацентра компании. Однако в этом случае обеспечивается наилучший уровень безопасности и доступности. Поскольку все рабочие среды хранятся и обслуживаются централизованно в защищенном средствами безопасности датацентре, вероятность утечки конфиденциальной информации существенно снижается. При этом степень доступности таких окружений значительно повышается, ведь доступ к ним может быть обеспечен из любой точки с высокоскоростным соединением. Строго говоря, это решение не относится к настольным платформам виртуализации, однако затрагивает конечных пользователей. Примером такого решения может служить VMware Virtual Desktop Infrastructure, основанное на виртуальной инфраструктуре серверов организации в корпоративном датацентре. Структура такой модели приведена на рисунке:
Виртуальная инфраструктура десктопов VMware Desktop Infrastructure
- Применение защищенных политиками безопасности виртуальных машин. IT-профессионалам, которым требуется обеспечение конфиденциальности их персональных данных, а также частая демонстрация различного программного обеспечения заказчикам, отлично подойдут решения для создания защищенных виртуальных машин, которые предоставляют средства разграничения доступа к различным функциям по работе с виртуальной машиной. Также можно установить срок действия виртуальной машины и таким образом распространить программное обеспечение, чтобы определенный круг лиц не мог использовать виртуальную машину свыше дозволенного времени. Примером такого решения служит продукт ACE Manager компании VMware.
- Упрощение обучения пользователей за счет создания учебных классов с виртуальными машинами, где установлены различные операционные системы и прикладное программное обеспечение. В случае если группу сотрудников организации необходимо обучить использованию какого-либо продукта или программы, можно создать один шаблон виртуальной машины и установить платформу виртуализации на каждом из компьютеров учебного класса. Далее виртуальная машина может быть скопирована на все компьютеры и запущена со всем необходимым количеством программ. Если понадобится обучение другому продукту, можно создать новый шаблон виртуальной машины и также развернуть его на всех компьютерах учебного класса.
- Разработка и тестирование программного обеспечения в компании. Виртуальная машина, являясь изолированной средой, идеально подходит для разработки ПО. Разработчики и тестеры могут создавать необходимые им конфигурации операционных систем и пользовательских окружений для симуляции поведения программы на различных платформах. В рамках этого варианта использования возможно также моделирование рабочих связок виртуальных машин на одной физической платформе, осуществляющих между собой сетевое взаимодействие. Кроме того, некоторые платформы, такие как VMware Workstation, позволяют создавать деревья состояний виртуальных машин, в каждом из которых сохранена определенная пользовательская конфигурация. К каждому из таких состояний возможен откат одним кликом мыши. Пример такого дерева:
Пример дерева состояний виртуальной машины
Сравнительный обзор настольных платформ виртуализации
Ведущие компании в сфере производства настольных платформ виртуализации за последние два года много сделали, чтобы максимально упростить их использование и сделать доступными даже самому неискушенному пользователю. Лидерами в производстве систем виртуализации для конечных пользователей на данный момент являются компании: VMware с продуктами VMware Workstation, VMware ACE и VMware Fusion, Microsoft с продуктом Virtual PC, Parallels, продвигающая свою платформу виртуализации для Mac OS с продуктом Parallels Desktop for Mac, и компания InnoTek с бесплатной платформой с открытым исходным кодом VirtualBox. Кратко рассмотрим возможности некоторых из этих продуктов.
VMware Workstation
Консоль управления виртуальными машинами VMware Workstation 6
Компания VMware является на сегодняшний день безусловным лидером в области настольных систем виртуализации. Ее продукты просты в использовании, обладают широкими функциональными возможностями и отличаются высоким быстродействием. На продукт VMware Workstation ориентируются практически все производители настольных платформ виртуализации. Процесс создания виртуальной машины и установки гостевой операционной системы не вызывает особых трудностей: при создании необходимо указать объем оперативной памяти, выделяемой под гостевую систему, тип и размер виртуального диска, папку, где будут расположены файлы виртуальной машины и тип устанавливаемой гостевой ОС. В качестве установочного дистрибутива гостевой системы может использоваться загрузочный CD или DVD-диск или ISO-образ. После установки операционной системы в виртуальной машине обязательно необходимо установить VMware Tools и отключить все ненужные эмулируемые устройства в настройках в целях оптимизации быстродействия. Также можно создать мгновенный снимок (snapshot) «чистого» состояния гостевой системы, при этом все данные виртуальных дисков на этот момент будут сохранены, и в любое время можно будет вернуться к их сохраненному состоянию. К ключевым особенностям VMware Workstation можно отнести:
- Поддержку различных типов виртуальных дисков (эмулируются контроллеры как для IDE, так и для SCSI дисков):
- фиксированного размера (Preallocated) или растущие по мере заполнения (Growing), при этом первые оптимизированы по быстродействию, а вторые удобны тем, что не занимают много места до того, как будут заполнены
- независимые (Independent) диски, на которые не оказывает влияния создание снимков состояния операционной системы. Такие диски удобны для организации хранилищ файлов, изменение которых не требуется при работе со снимками состояний гостевой системы
- поддержка дисков, состояние которых не сохраняется при выключении виртуальной машины
- возможность прямой записи на физический диск
- Поддержку различных типов сетевого взаимодействия между виртуальными машинами, включая объединение виртуальных машин в «команды» (Teams), что позволяет создавать виртуальные подсети, состоящие из виртуальных машин с различным количеством виртуальных сетевых адаптеров (до трех). Виртуальный сетевой интерфейс при этом может работать в трех различных режимах:
- Bridged Networking — виртуальная машина разделяет ресурсы сетевой карты с хостовой операционной системой и работает с внешней по отношению к ней сетью как самостоятельная машина.
- Host-only Networking — виртуальная машина получает IP-адрес в собственной подсети хоста от DHCP-сервера VMware. Соответственно, работать в сети можно только с другими виртуальными машинами на этом хосте и с ОС самого хоста.
- NAT — виртуальная машина работает также в собственной подсети хоста (но другой), однако, через NAT сервер VMware, может инициировать соединения во внешнюю сеть. Из внешней сети инициировать соединение с такой виртуальной машиной невозможно. В пределах хоста сетевое взаимодействие обеспечивается.
- Диски также можно монтировать в хостовую систему с помощью утилиты vmware-mount и расширять с помощью утилиты vmware-vdiskmanager (эта утилита служит также для выполнения еще ряда действий над виртуальными дисками).
- Возможность простого обмена файлами с помощью интерфейса Drag&Drop, а также путем создания общих папок (Shared Folders) между хостом и гостевой ОС.
- Поддержку большого списка гостевых и хостовых операционных систем.
В последней версии VMware Workstation 6 включены также следующие полезные функции:
- полная поддержка интерфейса USB 2.0
- возможность записи активности виртуальной машины
- интегрированный продукт VMware Converter (для Windows-хостов) для импорта виртуальных машин других производителей
- запуск виртуальной машины в качестве сервиса
Стоит также отметить, что продукт VMware Workstation является на данный момент единственной платформой виртуализации, экспериментально поддерживающей Direct-3D в гостевых операционных системах. Основным и, пожалуй, единственным недостатком этой платформы является тот факт, что она не бесплатна.
Microsoft Virtual PC
Консоль управления виртуальными машинами Microsoft Virtual PC 2007
Появившись как конкурент VMware Workstation, продукт компании Connectix, купленный впоследствии корпорацией Microsoft вместе с компанией, не получил в ее руках достойного развития. В результате, на данный момент, практически по всем параметрам он проигрывает платформе VMware Workstation и может быть запущен только в хостовой операционной системе Windows. Однако достаточное количество пользователей применяют его в качестве настольной платформы виртуализации, поскольку Virtual PC является бесплатным и удовлетворяет основные потребности в отношении использования виртуальных машин. Процесс установки гостевой системы также весьма прост и интуитивен. После того, как операционная система будет установлена, необходимо установить Virtual Machine Additions (аналог VMware Tools в VMware Workstation), существенно повышающие быстродействие гостевой ОС, за счет улучшения техники виртуализации. VM Additions также можно установить и в гостевых операционных системах Linux.
К основным достоинствам продукта Microsoft Virtual PC можно отнести следующие возможности:
- Полная поддержка Windows Vista как в качестве хостовой, так и в качестве гостевой операционной системы. В отношении быстродействия в Virtual PC 2007 был сделан существенный шаг вперед по сравнению с прошлой версией, и теперь быстродействие Windows Vista в виртуальной машине вполне приемлемо.
- Поддержка 64-битных хостовых Windows-систем.
- Повышенное быстродействие за счет использования улучшений, введенных в Microsoft Virtual Server 2005 R2.
- Наличие различных типов виртуальных дисков:
- Dynamically expanding (аналог Growing в VMware Workstation)
- Fixed Size (аналог Preallocated в VMware Workstation)
- Differencing — диск, хранящий в себе изменения от текущего состояния виртуального диска
- Linked to a hard disk (аналог прямой записи на диск в VMware Workstation)
- Наличие различных типов сетевого взаимодействия между виртуальными машинами и хостом:
- аналог Bridged Networking в VMware Workstation
- Local only (аналог Host-only в VMware Workstation)
- Shared Networking (аналог NAT в VMware Workstation)
Нужно отметить, что продукт Virtual PC направлен, скорее, на применение домашними пользователями, нежели IT-профессионалами и разработчиками программного обеспечения, в то время как VMware Workstation, обладая значительно большей функциональностью, способен покрыть потребности последних. В то же время, Virtual PC бесплатен и предназначен в основном для упрощения миграции на новые операционные системы Microsoft и поддержки их устаревших версий. И, безусловно, на популярность платформы Virtual PC оказывает ее бесплатность, создавая определенную нишу для применения этого продукта.
Parallels Workstation и Parallels Desktop for Mac
Консоль виртуальной машины Parallels Desktop
Продукт Parallels Workstation предназначен для использования на Windows и Linux-платформах в качестве настольной системы виртуализации. В связи с тем, что компания Parallels (фактически принадлежащая российской компании SWSoft) сосредоточилась сейчас в основном на продукте Parallels Desktop, развитие этого продукта в данный момент несколько приостановилось и по функциональным возможностям он уступает двум ведущим настольным платформам от VMware и Microsoft. Поэтому расскажем о платформе Parallels Desktop for Mac, которая сейчас является основной для компьютеров от Apple. К тому же в данный момент развитие этой платформы весьма динамично, что обусловлено, в первую очередь, тем, что копания VMware всерьез намерена вторгнуться на рынок виртуализации для Маков со своим практически готовым к окончательному релизу продуктом VMware Fusion. Ключевые возможности платформы Parallels Desktop for Mac:
- Простое создание виртуальных машин в три шага с помощью Parallels Installation Assistant. Чтобы создать виртуальную машину и установить в ней гостевую операционную систему, не потребуется лишних усилий.
- Наличие утилиты Parallels Transporter, позволяющей осуществить миграцию с физической машины на виртуальную.
- Полная поддержка гостевой ОС Windows Vista. При этом обеспечивается простой обмен файлами между гостевой и хостовой операционной системами
- Поддержка интерфейса USB 2.0
- Поддержка Mac OS X «Leopard»
Как и большинство продуктов для платформы Mac OS X, Parallels Desktop предоставляет пользователю простой и удобный интерфейс. Не секрет, что многие пользователи платформы Mac зачастую испытывают потребность в использовании продуктов для Windows, и Parallels Desktop предоставляет им такую возможность, позволяя чувствовать себя «в двух мирах».
Также можно упомянуть такие продукты компании Parallels, как Parallels Compressor Workstation и Parallels Compressor Server, позволяющие сжимать диски не только виртуальных машин Parallels, но и VMware, что является решением одной из проблем, часто возникающих у пользователей.
VirtualBox
Консоль виртуальной машины VirtualBox
Компания InnoTek недавно появилась на рынке настольных систем виртуализации с неожиданным бесплатным решением с открытым исходным кодом. В то время, когда, казалось бы, новую платформу виртуализации сложно вывести на достойный уровень, компания InnoTek добилась неожиданно быстрого успеха и народного признания.
Многие блоггеры, лояльно настроенные к компании VMware, тем не менее, заявили, что на их десктопах виртуальные машины на платформе VirtualBox работают заметно быстрее, чем виртуальные машины в VMware Workstation. К тому же до недавнего времени платформа VirtualBox была доступна только для Linux и Windows хостов, а в конце апреля появилась первая сборка для Mac OS X, где планируется конкуренция платформы с такими «монстрами» систем виртуализации, как Parallels и VMware. И, безусловно, у нее есть все шансы на победу. Учитывая полную открытость платформы и ее бесплатность, множество энтузиастов готовы взяться за доработку платформы и наращивание функционала, будем надеяться, без ущерба ее производительности. На данный момент VirtualBox обладает не такой широкой функциональностью, как ведущие платформы, не поддерживает 64-битные системы и сетевое взаимодействие с Windows Vista, но на сайте www.virtualbox.org можно получить оперативную информацию, над какими функциями системы ведется работа. На данный момент платформа обладает следующими основными возможностями:
- Достаточно большой список поддерживаемых хостовых и гостевых операционных систем.
- Поддержка множественных снимков текущего состояния гостевой системы (snapshots).
- Динамически расширяющиеся и фиксированного размера диски.
- Возможность установки Guest Additions (аналог VMware Tools) для повышения степени интеграции с хостовой ОС
Безусловно, касательно функциональности, VirtualBox является весьма незрелым продуктом, однако показатели его быстродействия говорят, что у платформы есть будущее, и сообщество Open Source приложит все усилия к его совершенствованию и развитию.
Что выбрать в качестве настольной системы виртуализации?
Подводя итоги, можно сказать, что каждая из описанных выше платформ занимает на данный момент свою нишу в области применения технологий виртуализации на настольных компьютерах. Каждая из систем виртуализации имеет достоинства и недостатки. Со временем, конечно, многие из них приобретут необходимый функционал, удовлетворяющий большинство потребностей пользователей. Хочется также надеяться на то, что будут предоставлены средства для конвертирования форматов виртуальных машин между платформами.
Бесспорно, когда речь идет об использовании настольной системы виртуализации дома на Windows хостах, следует выбирать между платформами Microsoft Virtual PC или VirtualBox, поскольку они бесплатны и обладают необходимым функционалом для поддержки виртуальных машин дома. Однако когда речь идет о применении виртуальных машин в бизнесе, в корпоративной среде предприятия, где развертывание настольных систем виртуализации предъявляет высокие требования к функциональности и надежности, не обойтись без VMware Workstation, существенно превосходящего другие описанные платформы. Здесь также может найти свое место и продукт VirtualBox, как наиболее оптимизированный по быстродействию.
Virtual PC следует использовать при обеспечении поддержки старых версий Windows и обкатке Windows Vista в качестве гостевой ОС. А без продукта Parallels Desktop пользователям платформы Мак не обойтись: об этом говорит тот факт, что результат в более чем 100 000 проданных копий продукта был зафиксирован еще в 2006 году. Пользователям Маков следует также обратить внимание на платформу VMware Fusion, которая в будущем претендует на лидерство в сфере настольных платформ виртуализации.
Технологии виртуализации для персональных компьютеров становятся все ближе к конечному пользователю и сейчас могут использоваться как повседневной работе сотрудников организаций, так и на домашних компьютерах для создания защищенных или изолированных персональных сред. К тому же использование виртуальных машин на десктопах не ограничивается описанными вариантами. Например, в виртуальной машине VMware, в оконном режиме консоли гостевой операционной системы, можно выставить большее поддерживаемого монитором разрешение, при этом у окна гостевой системы появятся полосы прокрутки. Это позволит протестировать веб-сайт или приложение на высоких разрешениях при отсутствии соответствующего монитора. Этот пример показывает, что варианты использования виртуальных машин на настольных компьютерах зависят от вашей фантазии. А стремительно развивающиеся пользовательские платформы виртуализации помогут вам в удовлетворении ваших потребностей.
Автоматизация Для Самых Маленьких. Часть 1.1. Основы виртуализации / Хабр
Предыдущая статья рассматривала архитектуру виртуализированной сети, underlay-overlay, путь пакета между VM и прочее.
Роман Горге вдохновился ею и решил написать обзорный выпуск о виртуализации вообще.
В данной статье мы затронем (или попытаемся затронуть) вопросы: а как собственно происходит виртуализация сетевых функций, как реализован backend основных продуктов, обеспечивающих запуск и управление VM, а также как работает виртуальный свитчинг (OVS и Linux bridge).
Тема виртуализации широка и глубока, объяснить все детали работы гипервизора невозможно (да и не нужно). Мы ограничимся минимальным набором знаний необходимым для понимания работы любого виртуализированного решения, не обязательно Telco.
- Введение и краткая история виртуализации
- Типы виртуальных ресурсов — compute, storage, network
- Виртуальная коммутация
- Инструменты виртуализации — libvirt, virsh и прочее
- Заключение
История современных технологий виртуализации берет свое начало в 1999 году, когда молодая компания VMware выпустила продукт под названием VMware Workstation. Это был продукт обеспечивающий виртуализацию desktop/client приложений. Виртуализация серверной части пришла несколько позднее в виде продукта ESX Server, который в дальнейшем эволюционировал в ESXi (i означает integrated) — это тот самый продукт, который используется повсеместно как в IT так и в Telco как гипервизор серверных приложений.
На стороне Opensource два основных проекта принесли виртуализацию в Linux:
- KVM (Kernel-based Virtual Machine) — модуль ядра Linux, который позволяет kernel работать как гипервизор (создает необходимую инфраструктуру для запуска и управления VM). Был добавлен в версии ядра 2.6.20 в 2007 году.
- QEMU (Quick Emulator) — непосредственно эмулирует железо для виртуальной машины (CPU, Disk, RAM, что угодно включая USB порт) и используется совместно с KVM для достижения почти «native» производительности.
На самом деле на сегодняшний момент вся функциональность KVM доступна в QEMU, но это не принципиально, так как бо́льшая часть пользователей виртуализации на Linux не использует напрямую KVM/QEMU, а обращается к ним как минимум через один уровень абстракции, но об этом позже.
Сегодня VMware ESXi и Linux QEMU/KVM это два основных гипервизора, которые доминируют на рынке. Они же являются представителями двух разных типов гипервизоров:
- Type 1 — гипервизор запускается непосредственно на железе (bare-metal). Таковым является VMware ESXi, Linux KVM, Hyper-V
- Type 2 — гипервизор запускается внутри Host OS (операционной системы). Таковым является VMware Workstation или Oracle VirtualBox.
Обсуждение что лучше, а что хуже выходит за рамки данной статьи.
Производители железа также должны были сделать свою часть работы, дабы обеспечить приемлемую производительность.
Пожалуй, наиболее важной и самой широко используемой является технология Intel VT (Virtualization Technology) — набор расширений, разработанных Intel для своих x86 процессоров, которые используются для эффективной работы гипервизора (а в некоторых случаях необходимы, так, например, KVM не заработает без включенного VT-x и без него гипервизор вынужден заниматься чисто софтверной эмуляцией, без аппаратного ускорения).
Наиболее известны два из этих расширений — VT-x и VT-d. Первое важно для улучшения производительности CPU при виртуализации, так как обеспечивает аппаратную поддержку некоторых ее функций (с VT-x 99.9% Guest OS кода выполняется прямо на физическом процессоре, делая выходы для эмуляции только в самых необходимых случаях), второе для подключения физических устройств напрямую в виртуальную машину (для проброса виртуальных функций (VF) SRIOV, например, VT-d должен быть включен).
Следующей важной концепцией является отличие полной виртуализации (full virtualization) от пара-виртуализации (para-virtualization).
Полная виртуализация — это хорошо, это позволяет запускать какую угодно операционную систему на каком угодно процессоре, однако, это крайне неэффективно и абсолютно не подходит для высоконагруженных систем.
Пара-виртуализация, если коротко, это когда Guest OS понимает что она запущена в виртуальной среде и кооперируется с гипервизором для достижения большей эффективности. То есть появляется guest-hypervisor интерфейс.
Подавляющее большинство используемых операционных систем сегодня имеют поддержку пара-виртуализации — в Linux kernel это появилось начиная с ядра версии 2.6.20.
Для работы виртуальной машины нужны не только виртуальный процессор (vCPU) и виртуальная память (RAM), требуется также эмуляция PCI-устройств. То, есть по сути, требуется набор драйверов для управления виртуальными сетевыми интерфейсами, дисками и тд.
В гипервизоре Linux KVM данная задача была решена посредством внедрения virtio — фреймворка для разработки и использования виртуализированных устройств ввода/вывода.
Virtio представляет из себя дополнительный уровень абстракции, который позволяет эмулировать различные I/O устройства в пара-виртуализированном гипервизоре, предоставляя в сторону виртуальной машины единый и стандартизированный интерфейс. Это позволяет переиспользовать код virtio-драйвера для различных по своей сути устройств. Virtio состоит из:
- Front-end driver — то что находится в виртуальной машине
- Back-end driver — то что находится в гипервизоре
- Transport driver — то что связывает backend и frontend
Эта модульность позволяет изменять технологии, применяемые в гипервизоре, не затрагивая драйверы в виртуальной машине (этот момент очень важен для технологий сетевой акселерации и Cloud-решений в целом, но об этом позже).
То есть существует связь guest-hypervisor, когда Guest OS «знает» о том, что запущена в виртуальной среде.
Если вы хоть раз писали вопрос в RFP или отвечали на вопрос в RFP «Поддерживается ли в вашем продукте virtio?» Это как раз было о поддержке front-end virtio драйвера.
Из чего же состоит виртуальная машина?
Выделяют три основных вида виртуальных ресурсов:
- compute — процессор и оперативная память
- storage — системный диск виртуальной машины и блочные хранилища
- network — сетевые карты и устройства ввода/вывода
CPU
Теоретически QEMU способен эмулировать любой тип процессора и соотвествующие ему флаги и функциональность, на практике используют либо host-model и точечно выключают флаги перед передачей в Guest OS либо берут named-model и точечно включают\выключают флаги.
По умолчанию QEMU будет эмулировать процессор, который будет распознан Guest OS как QEMU Virtual CPU. Это не самый оптимальный тип процессора, особенно если приложение, работающее в виртуальной машине, использует CPU-флаги для своей работы. Подробнее о разных моделях CPU в QEMU.
QEMU/KVM также позволяет контролировать топологию процессора, количество тредов, размер кэша, привязывать vCPU к физическому ядру и много чего еще.
Нужно ли это для виртуальной машины или нет, зависит от типа приложения, работающего в Guest OS. Например, известный факт, что для приложений, выполняющих обработку пакетов с высоким PPS, важно делать CPU pinning, то есть не позволять передавать физический процессор другим виртуальным машинам.
Memory
Далее на очереди оперативная память — RAM. С точки зрения Host OS запущенная с помощью QEMU/KVM виртуальная машина ничем не отличается от любого другого процесса, работающего в user-space операционной системы. Соотвественно и процесс выделения памяти виртуальной машине выполняется теми же вызовами в kernel Host OS, как если бы вы запустили, например, Chrome браузер.
Перед тем как продолжить повествование об оперативной памяти в виртуальных машинах, необходимо сделать отступление и объяснить термин NUMA — Non-Uniform Memory Access.
Архитектура современных физических серверов предполагает наличие двух или более процессоров (CPU) и ассоциированной с ней оперативной памятью (RAM). Такая связка процессор + память называется узел или нода (node). Связь между различными NUMA nodes осуществляется посредством специальной шины — QPI (QuickPath Interconnect)Выделяют локальную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящуюся в одной NUMA node, и удаленную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящиеся в разных NUMA nodes, то есть для взаимодействия процессора и памяти требуется передача данных через QPI шину.
С точки зрения виртуальной машины память ей уже выделена на момент ее запуска, однако в реальности это не так, и kernel Host OS выделяет процессу QEMU/KVM новые участки памяти по мере того как приложение в Guest OS запрашивает дополнительную память (хотя тут тоже может быть исключение, если прямо указать QEMU/KVM выделить всю память виртуальной машине непосредственно при запуске).
Память выделяется не байт за байтом, а определенным размером — page. Размер page конфигурируем и теоретически может быть любым, но на практике используется размер 4kB (по умолчанию), 2MB и 1GB. Два последних размера называются HugePages и часто используются для выделения памяти для memory intensive виртуальных машин. Причина использования HugePages в процессе поиска соответствия между виртуальным адресом page и физической памятью в Translation Lookaside Buffer (TLB), который в свою очередь ограничен и хранит информацию только о последних использованных pages. Если информации о нужной page в TLB нет, происходит процесс, называемый TLB miss, и требуется задействовать процессор Host OS для поиска ячейки физической памяти, соответствующей нужной page.
Данный процесс неэффективен и медлителен, поэтому и используется меньшее количество pages бо́льшего размера.
QEMU/KVM также позволяет эмулировать различные NUMA-топологии для Guest OS, брать память для виртуальной машины только из определенной NUMA node Host OS и так далее. Наиболее распространенная практика — брать память для виртуальной машины из NUMA node локальной по отношению к процессорам, выделенным для виртуальной машины. Причина — желание избежать лишней нагрузки на QPI шину, соединяющую CPU sockets физического сервера (само собой, это логично если в вашем сервере 2 и более sockets).
Как известно, оперативная память потому и называется оперативной, что ее содержимое исчезает при отключении питания или перезагрузке операционной системы. Чтобы хранить информацию, требуется постоянное запоминающее устройство (ПЗУ) или persistent storage.
Существует два основных вида persistent storage:
- Block storage (блоковое хранилище) — блок дискового пространства, который может быть использован для установки файловой системы и создания партиций. Если грубо, то можно воспринимать это как обычный диск.
- Object storage (объектное хранилище) — информация может быть сохранена только в виде объекта (файла), доступного по HTTP/HTTPS. Типичными примерами объектного хранилища являются AWS S3 или Dropbox.
Виртуальная машина нуждается в persistent storage, однако, как это сделать, если виртуальная машина «живет» в оперативной памяти Host OS? Если вкратце, то любое обращение Guest OS к контроллеру виртуального диска перехватывается QEMU/KVM и трансформируется в запись на физический диск Host OS. Этот метод неэффективен, и поэтому здесь так же как и для сетевых устройств используется virtio-драйвер вместо полной эмуляции IDE или iSCSI-устройства. Подробнее об этом можно почитать здесь. Таким образом виртуальная машина обращается к своему виртуальному диску через virtio-драйвер, а далее QEMU/KVM делает так, чтобы переданная информация записалась на физический диск. Важно понимать, что в Host OS дисковый backend может быть реализован в виде CEPH, NFS или iSCSI-полки.
Наиболее простым способом эмулировать persistent storage является использование файла в какой-либо директории Host OS как дискового пространства виртуальной машины. QEMU/KVM поддерживает множество различных форматов такого рода файлов — raw, vdi, vmdk и прочие. Однако наибольшее распространение получил формат qcow2 (QEMU copy-on-write version 2). В общем случае, qcow2 представляет собой определенным образом структурированный файл без какой-либо операционной системы. Большое количество виртуальных машин распространяется именно в виде qcow2-образов (images) и являются копией системного диска виртуальной машины, упакованной в qcow2-формат. Это имеет ряд преимуществ — qcow2-кодирование занимает гораздо меньше места, чем raw копия диска байт в байт, QEMU/KVM умеет изменять размер qcow2-файла (resizing), а значит имеется возможность изменить размер системного диска виртуальной машины, также поддерживается AES шифрование qcow2 (это имеет смысл, так как образ виртуальной машины может содержать интеллектуальную собственность).
Далее, когда происходит запуск виртуальной машины, QEMU/KVM использует qcow2-файл как системный диск (процесс загрузки виртуальной машины я опускаю здесь, хотя это тоже является интересной задачей), а виртуальная машина имеет возможность считать/записать данные в qcow2-файл через virtio-драйвер. Таким образом и работает процесс снятия образов виртуальных машин, поскольку в любой момент времени qcow2-файл содержит полную копию системного диска виртуальной машины, и образ может быть использован для резервного копирования, переноса на другой хост и прочее.
В общем случае этот qcow2-файл будет определяться в Guest OS как /dev/vda-устройство, и Guest OS произведет разбиение дискового пространства на партиции и установку файловой системы. Аналогично, следующие qcow2-файлы, подключенные QEMU/KVM как /dev/vdX устройства, могут быть использованы как block storage в виртуальной машине для хранения информации (именно так и работает компонент Openstack Cinder).
Последним в нашем списке виртуальных ресурсов идут сетевые карты и устройства ввода/вывода. Виртуальная машина, как и физический хост, нуждается в PCI/PCIe-шине для подключения устройств ввода/вывода. QEMU/KVM способен эмулировать разные типы чипсетов — q35 или i440fx (первый поддерживает — PCIe, второй — legacy PCI ), а также различные PCI-топологии, например, создавать отдельные PCI-шины (PCI expander bus) для NUMA nodes Guest OS.
После создания PCI/PCIe шины необходимо подключить к ней устройство ввода/вывода. В общем случае это может быть что угодно — от сетевой карты до физического GPU. И, конечно же, сетевая карта, как полностью виртуализированная (полностью виртуализированный интерфейс e1000, например), так и пара-виртуализированная (virtio, например) или физическая NIC. Последняя опция используется для data-plane виртуальных машин, где требуется получить line-rate скорости передачи пакетов — маршрутизаторов, файрволов и тд.
Здесь существует два основных подхода — PCI passthrough и SR-IOV. Основное отличие между ними — для PCI-PT используется драйвер только внутри Guest OS, а для SRIOV используется драйвер Host OS (для создания VF — Virtual Functions) и драйвер Guest OS для управления SR-IOV VF. Более подробно об PCI-PT и SRIOV отлично написал Juniper.
Для уточнения стоит отметить что, PCI passthrough и SR-IOV это дополняющие друг друга технологии. SR-IOV это нарезка физической функции на виртуальные функции. Это выполняется на уровне Host OS. При этом Host OS видит виртуальные функции как еще одно PCI/PCIe устройство. Что он дальше с ними делает — не важно.
А PCI-PT это механизм проброса любого Host OS PCI устройства в Guest OS, в том числе виртуальной функции, созданной SR-IOV устройством
Таким образом мы рассмотрели основные виды виртуальных ресурсов и следующим шагом необходимо понять как виртуальная машина общается с внешним миром через сеть.
Если есть виртуальная машина, а в ней есть виртуальный интерфейс, то, очевидно, возникает задача передачи пакета из одной VM в другую. В Linux-based гипервизорах (KVM, например) эта задача может решаться с помощью Linux bridge, однако, большое распространение получил проект Open vSwitch (OVS).
Есть несколько основных функциональностей, которые позволили OVS широко распространиться и стать de-facto основным методом коммутации пакетов, который используется во многих платформах облачных вычислений(например, Openstack) и виртуализированных решениях.
- Передача сетевого состояния — при миграции VM между гипервизорами возникает задача передачи ACL, QoSs, L2/L3 forwarding-таблиц и прочего. И OVS умеет это.
- Реализация механизма передачи пакетов (datapath) как в kernel, так и в user-space
- CUPS (Control/User-plane separation) архитектура — позволяет перенести функциональность обработки пакетов на специализированный chipset (Broadcom и Marvell chipset, например, могут такое), управляя им через control-plane OVS.
- Поддержка методов удаленного управления трафиком — протокол OpenFlow (привет, SDN).
Архитектура OVS на первый взгляд выглядит довольно страшно, но это только на первый взгляд.
Для работы с OVS нужно понимать следующее:
- Datapath — тут обрабатываются пакеты. Аналогия — switch-fabric железного коммутатора. Datapath включает в себя приём пакетов, обработку заголовков, поиск соответствий по таблице flow, который в Datapath уже запрограммирован. Если OVS работает в kernel, то выполнен в виде модуля ядра. Если OVS работает в user-space, то это процесс в user-space Linux.
- vswitchd и ovsdb — демоны в user-space, то что реализует непосредственно сам функциональность коммутатора, хранит конфигурацию, устанавливает flow в datapath и программирует его.
- Набор инструментов для настройки и траблшутинга OVS — ovs-vsctl, ovs-dpctl, ovs-ofctl, ovs-appctl. Все то, что нужно, чтобы прописать в ovsdb конфигурацию портов, прописать какой flow куда должен коммутироваться, собрать статистику и прочее. Добрые люди написали статью по этому поводу.
Каким же образом сетевое устройство виртуальной машины оказывается в OVS?
Для решения данной задачи нам необходимо каким-то образом связать между собой виртуальный интерфейс, находящийся в user-space операционной системы с datapath OVS, находящимся в kernel.
В операционной системе Linux передача пакетов между kernel и user-space-процессами осуществляется посредством двух специальных интерфейсов. Оба интерфейса использует запись/чтение пакета в/из специальный файл для передачи пакетов из user-space-процесса в kernel и обратно — file descriptor (FD) (это одна из причин низкой производительности виртуальной коммутации, если datapath OVS находится в kernel — каждый пакет требуется записать/прочесть через FD)
- TUN (tunnel) — устройство, работающее в L3 режиме и позволяющее записывать/считывать только IP пакеты в/из FD.
- TAP (network tap) — то же самое, что и tun интерфейс + умеет производить операции с Ethernet-фреймами, т.е. работать в режиме L2.
Именно поэтому при запущенной виртуальной машине в Host OS можно увидеть созданные TAP-интерфейсы командой ip link или ifconfig — это «ответная» часть virtio, которая «видна» в kernel Host OS. Также стоит обратить внимание, что TAP-интерфейс имеет тот же MAC-адрес что и virtio-интерфейс в виртуальной машине.
TAP-интерфейс может быть добавлен в OVS с помощью команд ovs-vsctl — тогда любой пакет, скоммутированный OVS в TAP-интерфейс, будет передан в виртуальную машину через file descriptor.
Реальный порядок действий при создании виртуальной машины может быть разным, т.е. сначала можно создать OVS bridge, потом указать виртуальной машине создать интерфейс, соединенный с этим OVS, а можно и наоборот.
Теперь, если нам необходимо получить возможность передачи пакетов между двумя и более виртуальными машинами, которые запущены на одном гипервизоре, нам потребуется лишь создать OVS bridge и добавить в него TAP-интерфейсы с помощью команд ovs-vsctl. Какие именно команды для этого нужны легко гуглится.
На гипервизоре может быть несколько OVS bridges, например, так работает Openstack Neutron, или же виртуальные машины могут находиться в разных namespace для реализации multi-tenancy.
А если виртуальные машины находятся в разных OVS bridges?
Для решения данной задачи существует другой инструмент — veth pair. Veth pair может быть представлен как пара сетевых интерфейсов, соединенных кабелем — все то, что «влетает» в один интерфейс, «вылетает» из другого. Veth pair используется для соединения между собой нескольких OVS bridges или Linux bridges. Другой важный момент что части veth pair могут находиться в разных namespace Linux OS, то есть veth pair может быть также использован для связи namespace между собой на сетевом уровне.
В предыдущих главах мы рассматривали теоретические основы виртуализации, в этой главе мы поговорим об инструментах, которые доступны пользователю непосредственно для запуска и изменения виртуальных машин на KVM-гипервизоре.
Остановимся на трех основных компонентах, которые покрывают 90 процентов всевозможных операций с виртуальными машинами:
- libvirt
- virsh CLI
- virt-install
Конечно, существует множество других утилит и CLI-команд, которые позволяют управлять гипервизором, например, можно напрямую пользоваться командами qemu_system_x86_64 или графическим интерфейсом virt manager, но это скорее исключение. К тому же существующие сегодня Cloud-платформы, Openstack, например, используют как раз libvirt.
libvirt
libvirt — это масштабный open-source проект, который занимается разработкой набора инструментов и драйверов для управления гипервизорами. Он поддерживает не только QEMU/KVM, но и ESXi, LXC и много чего еще.
Основная причина его популярности — структурированный и понятный интерфейс взаимодействия через набор XML-файлов плюс возможность автоматизации через API. Стоит оговориться что libvirt не описывает все возможные функции гипервизора, он лишь предоставляет удобный интерфейс использования полезных, с точки зрения участников проекта, функции гипервизора.
И да, libvirt это де-факто стандарт в мире виртуализации сегодня. Только взгляните на список приложений, которые используют libvirt.
Хорошая новость про libvirt — все нужные пакеты уже предустановлены во всех наиболее часто используемых Host OS — Ubuntu, CentOS и RHEL, поэтому, скорее всего, собирать руками нужные пакеты и компилировать libvirt вам не придется. В худшем случае придется воспользоваться соответствующим пакетным инсталлятором (apt, yum и им подобные).
При первоначальной установке и запуске libvirt по умолчанию создает Linux bridge virbr0 и его минимальную конфигурацию.
Именно поэтому при установке Ubuntu Server, например, вы увидите в выводе команды ifconfig Linux bridge virbr0 — это результат запуска демона libvirtd
Этот Linux bridge не будет подключен ни к одному физическому интерфейсу, однако, может быть использован для связи виртуальных машин внутри одного гипервизора. Libvirt безусловно может быть использован вместе с OVS, однако, для этого пользователь должен самостоятельно создать OVS bridges с помощью соответствующих OVS-команд.
Любой виртуальный ресурс, необходимый для создания виртуальной машины (compute, network, storage) представлен в виде объекта в libvirt. За процесс описания и создания этих объектов отвечает набор различных XML-файлов.
Детально описывать процесс создания виртуальных сетей и виртуальных хранилищ не имеет особого смысла, так как эта прикладная задача хорошо описана в документации libvirt:
Сама виртуальная машина со всеми подключенными PCI-устройствами в терминологии libvirt называется domain. Это тоже объект внутри libvirt, который описывается отдельным XML-файлом.
Этот XML-файл и является, строго говоря, виртуальной машиной со всеми виртуальными ресурсами — оперативная память, процессор, сетевые устройства, диски и прочее. Часто данный XML-файл называют libvirt XML или dump XML.
Вряд ли найдется человек, который понимает все параметры libvirt XML, однако, это и не требуется, когда есть документация.
В общем случае, libvirt XML для Ubuntu Desktop Guest OS будет довольно прост — 40-50 строчек. Поскольку вся оптимизация производительности описывается также в libvirt XML (NUMA-топология, CPU-топологии, CPU pinning и прочее), для сетевых функций libvirt XML может быть очень сложен и содержать несколько сот строк. Любой производитель сетевых устройств, который поставляет свое ПО в виде виртуальных машин, имеет рекомендованные примеры libvirt XML.
virsh CLI
Утилита virsh — «родная» командная строка для управления libvirt. Основное ее предназначение — это управление объектами libvirt, описанными в виде XML-файлов. Типичными примерами являются операции start, stop, define, destroy и так далее. То есть жизненный цикл объектов — life-cycle management.
Описание всех команд и флагов virsh также доступно в документации libvirt.
virt-install
Еще одна утилита, которая используется для взаимодействия с libvirt. Одно из основных преимуществ — можно не разбираться с XML-форматом, а обойтись лишь флагами, доступными в virsh-install. Второй важный момент — море примеров и информации в Сети.
Таким образом какой бы утилитой вы ни пользовались, управлять гипервизором в конечном счете будет именно libvirt, поэтому важно понимать архитектуру и принципы его работы.
В данной статье мы рассмотрели минимальный набор теоретических знаний, который необходим для работы с виртуальными машинами. Я намеренно не приводил практических примеров и выводов команд, поскольку таких примеров можно найти сколько угодно в Сети, и я не ставил перед собой задачу написать «step-by-step guide». Если вас заинтересовала какая-то конкретная тема или технология, оставляйте свои комментарии и пишите вопросы.
- Александру Шалимову — моему коллеге и эксперту в области разработки виртуальных сетей. За комментарии и правки.
- Евгению Яковлеву — моему коллеге и эксперту в области виртуализации за комментарии и правки.
Виртуальный машины
2.1. ORACLE VirtualBox — универсальная бесплатная виртуальная машина
VirtualBox — очень простой, мощный и бесплатный инструмент для виртуализации, развивающийся благодаря поддержжке знаменитой корпорации ORACLE. Он распространяется бесплатно, с открытым исходным кодом. VirtualBox
позволяет устанавливать в качестве «гостевой» практически любую современную операционную систему, будь то Windows, MacOS или любой из многочисленных представителей семейства Linux.
Преимуществом VirtualBox является простой и понятный пользовательский интерфейс. Хорошо сделан перевод на русский язык. Все основные функции вынесены в виде кнопок под меню. Создание виртуальных машин выполняется с помощью пошагового мастера.
VirtualBox поддерживает работу с сетями, поэтому ваша виртуальная ОС сможет легко выйти в Интернет. Очень полезной является функция «снимков» операционной системы. Виртуальная машина записывает на винчестер «точки восстановления», к которым вы в любой момент можете откатить гостевую систему в случае возникновения ошибок или сбоев.
2.2 Windows Visual PC — виртуальная машина от Microsoft
Windows Virtual PC — виртуальная машина для работы только и исключительно с Windows. Установить на Visual PC операционную систему Linux или MacOS просто невозможно.
Visual PC позволяет запускать несколько разных копий Windows на одном компьютере. Поддерживается работа с операционными системами Microsoft разных поколений, в том числе с 64-битными.
Плюсом Visual PC является возможность задать, какая из запущенных виртуальных машин будет более приоритетной по сравнению с другими. При этом «хостовый» компьютер сможет в автоматическом режиме выделять под ее нужды большее количество ресурсов за счёт других виртуальных систем, если «гостевой» системе это необходимо.
Моноплатформенность виртуальной машины Visual PC является её главным недостатком, впрочем, если требуется тестировать только разные версии Windows, это не актуально. Некоторым недостатком можно считать менее функциональный и менее удобный чем в VirtualBox интерфейс. В остальном Visual PC вполне надёжный инструмент, позволяющий тестировать операцонные системы Microsoft.
2.3 VMware Workstation — для серьёзных задач
VMware Workstation – мощная, платная, максимально-надёжная программа для виртуализации, которая поддерживает работу с Windows и Linux. Для виртуализации MacOS, данная машина не предназначена.
Благодаря высокой надёжности и широчайшей функциональности VMware Workstation часто используется не просто для тестирования, а даже для постоянной работы виртуальных машин в качестве серверов даже для бизнес-приложений, будь то фаервол, отеляющий сеть организации от Интернет или даже сервер какой-либо базы данных.
VMware Workstation можно очень гибко настраивать, включая множество параметров сетевых подключений для работы с интернетом. Система имеет собственный виртуальный 3D-ускоритель, который позволяет получить высокое качество графики.
Интерфейс VMware Workstation достаточно грамотно организован, поэтому освоиться со всем её богатым функционалом довольно легко. В программе полностью поддерживается русский язык.
Необходимо отметить, что у VMware Workstation есть бесплатный «младший брат» — VMWare Player. В отличие от версии Workstation, плеер не умеет создавать виртуальные машины, но позволяет запускать ранее созданные. Эта программа будет полезна в случаях тестирования, когда, к примеру, разработчик какой-либо автоматизированной системы передат её на ознакомление именно в виде образа виртуальной машины. Эта практика получает всё большее распространение, поскольку избавляет пользователя от необходимости разворачивать незнакомую программу самостоятельно.
Практическая часть
- Установить ORACLE VirtualBox.
- Запустить программу на исполнение.
- Создать виртуальную машину для установки ОС Windiws XP.
- Укажите объем оперативной памяти 343МБ.
- Создайте новый виртуальный жесткий диск (тип VDI).
- Укажите формат хранения «Фиксированный виртуальный жесткий диск».
- Размер жесткого диска должен быть 11ГБ.
- Покажите результат преподавателю.
Вопросы для самоконтроля
- Что называется виртуальной машиной?
- Какие преимущества у виртуальной машины? Какие недостатки?
- Чем отличается системная виртуальная машина от процессорной?
- Перечислите основные типы виртуализаций.
- Какие существуют подходы к созданию интерфейсов между виртуальными машинами и системами виртуализации ресурсов?
- Какие существуют виртуальные машины? В чем их отличие друг от друга?
НОУ ИНТУИТ | Лекция | Введение
Аннотация: В данной лекции вводится понятие операционной системы; рассматривается эволюция развития операционных систем; описываются функции операционных систем и подходы к построению операционных систем.
Операционная система (ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом. Вводная лекция рассказывает о предмете, изучаемом в рамках настоящего курса. Сначала мы попытаемся ответить на вопрос, что такое ОС. Затем последует анализ эволюции ОС и рассказ о возникновении основных концепций и компонентов современных ОС. В заключение будет представлена классификация ОС с точки зрения особенностей архитектуры и использования ресурсов компьютера.
Что такое операционная система
Структура вычислительной системы
Из чего состоит любая вычислительная система? Во-первых, из того, что в англоязычных странах принято называть словом hardware, или техническое обеспечение: процессор, память, монитор, дисковые устройства и т.д., объединенные магистральным соединением, которое называется шиной. Некоторые сведения об архитектуре компьютера имеются в приложении 1 к настоящей лекции.
Во-вторых, вычислительная система состоит из программного обеспечения. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся разнообразные банковские и прочие бизнес-программы, игры, текстовые процессоры и т. п. Под системным программным обеспечением обычно понимают программы, способствующие функционированию и разработке прикладных программ. Надо сказать, что деление на прикладное и системное программное обеспечение является отчасти условным и зависит от того, кто осуществляет такое деление. Так, обычный пользователь, неискушенный в программировании, может считать Microsoft Word системной программой, а, с точки зрения программиста, это – приложение. Компилятор языка Си для обычного программиста – системная программа, а для системного – прикладная. Несмотря на эту нечеткую грань, данную ситуацию можно отобразить в виде последовательности слоев (см. рис. 1.1), выделив отдельно наиболее общую часть системного программного обеспечения – операционную систему:
Рис.
1.1.
Слои программного обеспечения компьютерной системы
Что такое ОС
Большинство пользователей имеет опыт эксплуатации операционных систем, но тем не менее они затруднятся дать этому понятию точное определение. Давайте кратко рассмотрим основные точки зрения.
Операционная система как виртуальная машина
При разработке ОС широко применяется абстрагирование, которое является важным методом упрощения и позволяет сконцентрироваться на взаимодействии высокоуровневых компонентов системы, игнорируя детали их реализации. В этом смысле ОС представляет собой интерфейс между пользователем и компьютером.
Архитектура большинства компьютеров на уровне машинных команд очень неудобна для использования прикладными программами. Например, работа с диском предполагает знание внутреннего устройства его электронного компонента – контроллера для ввода команд вращения диска, поиска и форматирования дорожек, чтения и записи секторов и т. д. Ясно, что средний программист не в состоянии учитывать все особенности работы оборудования (в современной терминологии – заниматься разработкой драйверов устройств), а должен иметь простую высокоуровневую абстракцию, скажем, представляя информационное пространство диска как набор файлов. Файл можно открывать для чтения или записи, использовать для получения или сброса информации, а потом закрывать. Это концептуально проще, чем заботиться о деталях перемещения головок дисков или организации работы мотора. Аналогичным образом, с помощью простых и ясных абстракций, скрываются от программиста все ненужные подробности организации прерываний, работы таймера, управления памятью и т. д. Более того, на современных вычислительных комплексах можно создать иллюзию неограниченного размера оперативной памяти и числа процессоров. Всем этим занимается операционная система. Таким образом, операционная система представляется пользователю виртуальной машиной, с которой проще иметь дело, чем непосредственно с оборудованием компьютера.
Операционная система как менеджер ресурсов
Операционная система предназначена для управления всеми частями весьма сложной архитектуры компьютера. Представим, к примеру, что произойдет, если несколько программ, работающих на одном компьютере, будут пытаться одновременно осуществлять вывод на принтер. Мы получили бы мешанину строчек и страниц, выведенных различными программами. Операционная система предотвращает такого рода хаос за счет буферизации информации, предназначенной для печати, на диске и организации очереди на печать. Для многопользовательских компьютеров необходимость управления ресурсами и их защиты еще более очевидна. Следовательно, операционная система, как менеджер ресурсов, осуществляет упорядоченное и контролируемое распределение процессоров, памяти и других ресурсов между различными программами.
Операционная система как защитник пользователей и программ
Если вычислительная система допускает совместную работу нескольких пользователей, то возникает проблема организации их безопасной деятельности. Необходимо обеспечить сохранность информации на диске, чтобы никто не мог удалить или повредить чужие файлы. Нельзя разрешить программам одних пользователей произвольно вмешиваться в работу программ других пользователей. Нужно пресекать попытки несанкционированного использования вычислительной системы. Всю эту деятельность осуществляет операционная система как организатор безопасной работы пользователей и их программ. С такой точки зрения операционная система представляется системой безопасности государства, на которую возложены полицейские и контрразведывательные функции.
Операционная система как постоянно функционирующее ядро
Наконец, можно дать и такое определение: операционная система – это программа, постоянно работающая на компьютере и взаимодействующая со всеми прикладными программами. Казалось бы, это абсолютно правильное определение, но, как мы увидим дальше, во многих современных операционных системах постоянно работает на компьютере лишь часть операционной системы, которую принято называть ее ядром.
Как мы видим, существует много точек зрения на то, что такое операционная система. Невозможно дать ей адекватное строгое определение. Нам проще сказать не что есть операционная система, а для чего она нужна и что она делает. Для выяснения этого вопроса рассмотрим историю развития вычислительных систем.
новый подход к построению IT-инфраструктуры
Что такое виртуализация и виртуальные машины
Информационные технологии принесли в жизнь современного общества множество полезных и интересных вещей. Каждый день изобретательные и талантливые люди придумывают все новые и новые применения компьютерам как эффективным инструментам производства, развлечения и сотрудничества. Множество различных программных и аппаратных средств, технологий и сервисов позволяют нам ежедневно повышать удобство и скорость работы с информацией. Все сложнее и сложнее выделить из обрушивающегося на нас потока технологий действительно полезные и научиться применять их с максимальной пользой. В этой статье пойдет речь о еще одной невероятно перспективной и по-настоящему эффективной технологии, стремительно врывающейся в мир компьютеров — технологии виртуализации.
В широком смысле, понятие виртуализации представляет собой сокрытие настоящей реализации какого-либо процесса или объекта от истинного его представления для того, кто им пользуется. Продуктом виртуализации является нечто удобное для использования, на самом деле, имеющее более сложную или совсем иную структуру, отличную от той, которая воспринимается при работе с объектом. Иными словами, происходит отделение представления от реализации чего-либо. В компьютерных технологиях под термином «виртуализация» обычно понимается абстракция вычислительных ресурсов и предоставление пользователю системы, которая «инкапсулирует» (скрывает в себе) собственную реализацию. Проще говоря, пользователь работает с удобным для себя представлением объекта, и для него не имеет значения, как объект устроен в действительности.
Сам термин «виртуализация» в компьютерных технологиях появился в шестидесятых годах прошлого века вместе с термином «виртуальная машина», означающим продукт виртуализации программно-аппаратной платформы. В то время виртуализация была, скорее, интересной технической находкой, чем перспективной технологией. Разработки в сфере виртуализации в шестидесятых-семидесятых годах проводились только компанией IBM. С появлением в компьютере IBM M44/44X экспериментальной системы пэйджинга, впервые был употреблен термин «виртуальная машина» (virtual machine), который заменил более ранний термин «псевдо машина» (pseudo machine). Затем в мэйнфреймах IBM серии System 360/370, можно было использовать виртуальные машины для сохранения предыдущих версий операционных систем. До конца девяностых годов никто кроме IBM так и не решался использовать эту оригинальную технологию всерьез. Однако в девяностых годах стали очевидны перспективы подхода виртуализации: с ростом аппаратных мощностей, как персональных компьютеров, так и серверных решений, вскоре представится возможность использовать несколько виртуальных машин на одной физической платформе.
В 1997 году компания Connectix выпускает первую версию Virtual PC для платформы Macintosh, а в 1998 году VMware патентует свои техники виртуализации. Компания Connectix впоследствии была куплена корпорацией Microsoft, а VMware корпорацией EMC, и на данный момент обе эти компании являются двумя основными потенциальными конкурентами на рынке технологий виртуализации в будущем. Потенциальными — потому что сейчас VMware безоговорочный лидер на этом рынке, однако у Microsoft, как всегда, есть козырь в рукаве.
Со времени своего появления термины «виртуализация» и «виртуальная машина» приобрели множество различных значений и употреблялись в разных контекстах. Давайте попробуем разобраться с тем, что такое виртуализация на самом деле.
Виды виртуализации
Понятие виртуализации условно можно разделить на две фундаментально различающиеся категории:
- виртуализация платформ
Продуктом этого вида виртуализации являются виртуальные машины — некие программные абстракции, запускаемые на платформе реальных аппаратно-программных систем. - виртуализация ресурсов
Данный вид виртуализации преследует своей целью комбинирование или упрощение представления аппаратных ресурсов для пользователя и получение неких пользовательских абстракций оборудования, пространств имен, сетей и т. п.
Виды виртуализации
Виртуализация платформ
Под виртуализацией платформ понимают создание программных систем на основе существующих аппаратно-программных комплексов, зависящих или независящих от них. Система, предоставляющая аппаратные ресурсы и программное обеспечение, называется хостовой (host), а симулируемые ей системы — гостевыми (guest). Чтобы гостевые системы могли стабильно функционировать на платформе хостовой системы, необходимо, чтобы программное и аппаратное обеспечение хоста было достаточно надежным и предоставляло необходимый набор интерфейсов для доступа к его ресурсам. Есть несколько видов виртуализации платформ, в каждом из которых осуществляется свой подход к понятию «виртуализация». Виды виртуализации платформ зависят от того, насколько полно осуществляется симуляция аппаратного обеспечения. До сих пор нет единого соглашения о терминах в сфере виртуализации, поэтому некоторые из приведенных далее видов виртуализации могут отличаться от тех, что предоставят другие источники.
Виды виртуализации платформ:
- Полная эмуляция (симуляция).
При таком виде виртуализации виртуальная машина полностью виртуализует все аппаратное обеспечение при сохранении гостевой операционной системы в неизменном виде. Такой подход позволяет эмулировать различные аппаратные архитектуры. Например, можно запускать виртуальные машины с гостевыми системами для x86-процессоров на платформах с другой архитектурой (например, на RISC-серверах компании Sun). Долгое время такой вид виртуализации использовался, чтобы разрабатывать программное обеспечение для новых процессоров еще до того, как они были физически доступными. Такие эмуляторы также применяют для низкоуровневой отладки операционных систем. Основной минус данного подхода заключается в том, что эмулируемое аппаратное обеспечение весьма и весьма существенно замедляет быстродействие гостевой системы, что делает работу с ней очень неудобной, поэтому, кроме как для разработки системного программного обеспечения, а также образовательных целей, такой подход мало где используется.
Примеры продуктов для создания эмуляторов: Bochs, PearPC, QEMU (без ускорения), Hercules Emulator.
- Частичная эмуляция (нативная виртуализация).
В этом случае виртуальная машина виртуализует лишь необходимое количество аппаратного обеспечения, чтобы она могла быть запущена изолированно. Такой подход позволяет запускать гостевые операционные системы, разработанные только для той же архитектуры, что и у хоста. Таким образом, несколько экземпляров гостевых систем могут быть запущены одновременно. Этот вид виртуализации позволяет существенно увеличить быстродействие гостевых систем по сравнению с полной эмуляцией и широко используется в настоящее время. Кроме того, в целях повышения быстродействия в платформах виртуализации, использующих данный подход, применяется специальная «прослойка» между гостевой операционной системой и оборудованием (гипервизор), позволяющая гостевой системе напрямую обращаться к ресурсам аппаратного обеспечения. Гипервизор, называемый также «Монитор виртуальных машин» (Virtual Machine Monitor) — одно из ключевых понятий в мире виртуализации. Применение гипервизора, являющегося связующим звеном между гостевыми системами и аппаратурой, существенно увеличивает быстродействие платформы, приближая его к быстродействию физической платформы.
К минусам данного вида виртуализации можно отнести зависимость виртуальных машин от архитектуры аппаратной платформы.
Примеры продуктов для нативной виртуализации: VMware Workstation, VMware Server, VMware ESX Server, Virtual Iron, Virtual PC, VirtualBox, Parallels Desktop и другие.
- Частичная виртуализация, а также «виртуализация адресного пространства» («address space virtualization»).
При таком подходе, виртуальная машина симулирует несколько экземпляров аппаратного окружения (но не всего), в частности, пространства адресов. Такой вид виртуализации позволяет совместно использовать ресурсы и изолировать процессы, но не позволяет разделять экземпляры гостевых операционных систем. Строго говоря, при таком виде виртуализации пользователем не создаются виртуальные машины, а происходит изоляция каких-либо процессов на уровне операционной системы. В данный момент многие из известных операционных систем используют такой подход. Примером может послужить использование UML (User-mode Linux), в котором «гостевое» ядро запускается в пользовательском пространстве базового ядра (в его контексте).
- Паравиртуализация.
При применении паравиртуализации нет необходимости симулировать аппаратное обеспечение, однако, вместо этого (или в дополнение к этому), используется специальный программный интерфейс (API) для взаимодействия с гостевой операционной системой. Такой подход требует модификации кода гостевой системы, что, с точки зрения сообщества, Open Source не так и критично. Системы для паравиртуализации также имеют свой гипервизор, а API-вызовы к гостевой системе, называются «hypercalls» (гипервызовы). Многие сомневаются в перспективах этого подхода виртуализации, поскольку в данный момент все решения производителей аппаратного обеспечения в отношении виртуализации направлены на системы с нативной виртуализацией, а поддержку паравиртуализации приходится искать у производителей операционных систем, которые слабо верят в возможности предлагаемого им средства. В настоящее время провайдерами паравиртуализации являются компании XenSource и Virtual Iron, утверждающие, что быстродействие паравиртуализации выше.
- Виртуализация уровня операционной системы.
Сутью данного вида виртуализации является виртуализация физического сервера на уровне операционной системы в целях создания нескольких защищенных виртуализованных серверов на одном физическом. Гостевая система, в данном случае, разделяет использование одного ядра хостовой операционной системы с другими гостевыми системами. Виртуальная машина представляет собой окружение для приложений, запускаемых изолированно. Данный тип виртуализации применяется при организации систем хостинга, когда в рамках одного экземпляра ядра требуется поддерживать несколько виртуальных серверов клиентов.
Примеры виртуализации уровня ОС: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers и FreeBSD Jails.
- Виртуализация уровня приложений.
Этот вид виртуализации не похож на все остальные: если в предыдущих случаях создаются виртуальные среды или виртуальные машины, использующиеся для изоляции приложений, то в данном случае само приложение помещается в контейнер с необходимыми элементами для своей работы: файлами реестра, конфигурационными файлами, пользовательскими и системными объектами. В результате получается приложение, не требующее установки на аналогичной платформе. При переносе такого приложения на другую машину и его запуске, виртуальное окружение, созданное для программы, разрешает конфликты между ней и операционной системой, а также другими приложениями. Такой способ виртуализации похож на поведение интерпретаторов различных языков программирования (недаром интерпретатор, Виртуальная Машина Java (JVM), тоже попадает в эту категорию).
Примером такого подхода служат: Thinstall, Altiris, Trigence, Softricity.
Виртуализация ресурсов
При описании виртуализации платформ мы рассматривали понятие виртуализации в узком смысле, преимущественно применяя его к процессу создания виртуальных машин. Однако если рассматривать виртуализацию в широком смысле, можно прийти к понятию виртуализации ресурсов, обобщающим в себе подходы к созданию виртуальных систем. Виртуализация ресурсов позволяет концентрировать, абстрагировать и упрощать управление группами ресурсов, таких как сети, хранилища данных и пространства имен.
Виды виртуализации ресурсов:
- Объединение, агрегация и концентрация компонентов.
Под таким видом виртуализации ресурсов понимается организация нескольких физических или логических объектов в пулы ресурсов (группы), представляющих удобные интерфейсы пользователю. Примеры такого вида виртуализации:
- многопроцессорные системы, представляющиеся нам как одна мощная система,
- RAID-массивы и средства управления томами, комбинирующие несколько физических дисков в один логический,
- виртуализация систем хранения, используемая при построении сетей хранения данных SAN (Storage Area Network),
- виртуальные частные сети (VPN) и трансляция сетевых адресов (NAT), позволяющие создавать виртуальные пространства сетевых адресов и имен.
- Кластеризация компьютеров и распределенные вычисления (grid computing).
Этот вид виртуализации включает в себя техники, применяемые при объединении множества отдельных компьютеров в глобальные системы (метакомпьютеры), совместно решающие общую задачу.
- Разделение ресурсов (partitioning).
При разделении ресурсов в процессе виртуализации происходит разделение какого-либо одного большого ресурса на несколько однотипных объектов, удобных для использования. В сетях хранения данных это называется зонированием ресурсов («zoning»).
- Инкапсуляция.
Многим это слово известно как сокрытие объектом внутри себя своей реализации. Применительно к виртуализации, можно сказать, что это процесс создания системы, предоставляющей пользователю удобный интерфейс для работы с ней и скрывающей подробности сложности своей реализации. Например, использование центральным процессором кэша для ускорения вычислений не отражается на его внешних интерфейсах.
Виртуализация ресурсов, в отличие от виртуализации платформ, имеет более широкий и расплывчатый смысл и представляет собой массу различных подходов, направленных на повышение удобства обращения пользователей с системами в целом. Поэтому, далее мы будем опираться в основном на понятие виртуализации платформ, поскольку технологии, связанные именно с этим понятием, являются в данный момент наиболее динамично развивающимися и эффективными.
Где применяется виртуализация
Виртуализация операционных систем за последние три-четыре года очень хорошо продвинулась вперед, как в технологическом, так и в маркетинговом смысле. С одной стороны, пользоваться продуктами виртуализации стало намного проще, они стали более надежными и функциональными, а с другой — нашлось немало новых интересных применений виртуальным машинам. Сферу применения виртуализации можно определить, как «место, где есть компьютеры», однако на данный момент можно обозначить следующие варианты использования продуктов виртуализации:
- Консолидация серверов.
В данный момент приложения, работающие на серверах в IT-инфраструктуре компаний, создают небольшую нагрузку на аппаратные ресурсы серверов (в среднем 5-15 процентов). Виртуализация позволяет мигрировать с этих физических серверов на виртуальные и разместить их все на одном физическом сервере, увеличив его загрузку до 60-80 процентов и, повысив тем самым коэффициент использования аппаратуры, что позволяет существенно сэкономить на аппаратуре, обслуживании и электроэнергии.
- Разработка и тестирование приложений.
Множество продуктов виртуализации позволяют запускать несколько различных операционных систем одновременно, позволяя тем самым разработчикам и тестерам программного обеспечения тестировать их приложения на различных платформах и конфигурациях. Также удобные средства по созданию «снимков» текущего состояния системы одним кликом мыши и такого же простого восстановления из этого состояния, позволяют создавать тестовые окружения для различных конфигураций, что существенно повышает скорость и качество разработки.
- Использование в бизнесе.
Этот вариант использования виртуальных машин является наиболее обширным и творческим. К нему относится все, что может понадобиться при повседневном обращении с IT-ресурсами в бизнесе. Например, на основе виртуальных машин можно легко создавать резервные копии рабочих станций и серверов (просто скопировав папку), строить системы, обеспечивающие минимальное время восстановления после сбоев и т. п. К данной группе вариантов использования относятся все те бизнес-решения, которые используют основные преимущества виртуальных машин.
- Использование виртуальных рабочих станций.
С приходом эры виртуальных машин будет бессмысленно делать себе рабочую станцию с ее привязкой к аппаратуре. Теперь создав однажды виртуальную машину со своей рабочей или домашней средой, можно будет использовать её на любом другом компьютере. Также можно использовать готовые шаблоны виртуальных машин (Virtual Appliances), которые решают определенную задачу (например, сервер приложений). Концепция такого использования виртуальных рабочих станций может быть реализована на основе хост-серверов для запуска на них перемещаемых десктопов пользователей (нечто подобное мэйнфреймам). В дальнейшем эти десктопы пользователь может забрать с собой, не синхронизируя данные с ноутбуком. Этот вариант использования также предоставляет возможность создания защищенных пользовательских рабочих станций, которые могут быть использованы, например, для демонстрации возможностей программы заказчику. Можно ограничить время использования виртуальной машины — и по прошествии этого времени виртуальная машина перестанет запускаться. В этом варианте использования заложены большие возможности.
Все перечисленные варианты использования виртуальных машин фактически являются лишь сферами их применения в данный момент, со временем, несомненно, появятся новые способы заставить виртуальные машины работать в различных отраслях IT. Но давайте посмотрим, как сейчас обстоят дела с виртуализацией.
Как работает виртуализация сегодня
На сегодняшний день проекты по виртуализации IT-инфраструктуры активно внедряются многими ведущими компаниями, занимающимися системной интеграцией и являющимися авторизованными партнерами провайдеров систем виртуализации. В процессе виртуализации IT-инфраструктуры создается виртуальная инфраструктура – комплекс систем на основе виртуальных машин, обеспечивающих функционирование всей IT-инфраструктуры, обладающий многими новыми возможностями при сохранении существующей схемы деятельности IT-ресурсов. Вендоры различных платформ виртуализации готовы предоставить информацию об успешных проектах по внедрению виртуальной инфраструктуры в крупных банках, промышленных компаниях, больницах, образовательных учреждениях. Множество достоинств виртуализации операционных систем позволяют компаниям экономить на обслуживании, персонале, аппаратном обеспечении, обеспечении бесперебойной работы, репликации данных и восстановлении после сбоев. Также рынок виртуализации начинает наполняться мощными средствами управления, миграции и поддержки виртуальных инфраструктур, позволяющими использовать преимущества виртуализации наиболее полно. Давайте посмотрим, как именно виртуализация позволяет компаниям, внедряющим у себя виртуальную инфраструктуру, экономить деньги.
10 причин использовать виртуальные машины
- Экономия на аппаратном обеспечении при консолидации серверов.
Существенная экономия на приобретении аппаратного обеспечения происходит при размещении нескольких виртуальных продакшен-серверов на одном физическом сервере. В зависимости, от вендора платформы виртуализации, доступны возможности по балансировке рабочей нагрузки, контролю выделяемых ресурсов, миграции между физическими хостами и бэкапу. Все это влечет за собой реальную экономию денежных средств на обслуживании, управлении и администрировании инфраструктуры серверов.
- Возможность поддержания старых операционных систем в целях обеспечения совместимости.
При выходе новой версии операционной системы, старую версию можно поддерживать на виртуальной машине, пока не будет полностью обкатана новая ОС. И наоборот, можно «поднять» новую ОС на виртуальной машине и опробовать ее без ущерба для основной системы.
- Возможность изолировать потенциально опасные окружения.
Если какое-то приложение или компонент вызывает сомнения в его надежности и защищенности, можно использовать его на виртуальной машине без опасности повредить жизненно важные компоненты системы. Такую изолированную среду называют также «песочницей» (sandbox). Помимо этого, можно создавать виртуальные машины, ограниченные политиками безопасности (например, машина перестанет запускаться через две недели).
- Возможность создания требуемых аппаратных конфигураций.
Иногда требуется использовать заданную аппаратную конфигурацию (процессорное время, количество выделяемой оперативной и дисковой памяти) при проверке работоспособности приложений в определенных условиях. Довольно сложно без виртуальной машины «загнать» физическую машину в такие условия. В виртуальных машинах — это пара кликов мыши.
- Виртуальные машины могут создавать представления устройств, которых у вас нет.
Например, многие системы виртуализации позволяют создавать виртуальные SCSI диски, виртуальные многоядерные процессоры и т. п. Это может пригодиться для создания различного рода симуляций.
- На одном хосте может быть запущено одновременно несколько виртуальных машин, объединенных в виртуальную сеть.
Такая особенность предоставляет безграничные возможности по созданию моделей виртуальной сети между несколькими системами на одном физическом компьютере. Особенно это необходимо, когда требуется смоделировать некую распределенную систему, состоящую из нескольких машин. Также можно создать несколько изолированных пользовательских окружений (для работы, развлечений, работы в Интернет), запустить их и переключаться между ними по мере необходимости выполнения тех или иных задач.
- Виртуальные машины предоставляют великолепные возможности по обучению работе с операционными системами.
Можно создать репозиторий готовых к использованию виртуальных машин с различными гостевыми операционными системами и запускать их по мере необходимости в целях обучения. Их можно безнаказанно подвергать всяческим экспериментам, поскольку в случае порчи системы, её восстановление из сохраненного состояния займет пару минут.
- Виртуальные машины повышают мобильность.
Папка с виртуальной машиной может быть перемещена на другой компьютер, и там виртуальная машина может быть сразу запущена. Не требуется создавать никаких образов для миграции, и, к тому же, виртуальная машина отвязана от конкретной аппаратуры.
- Виртуальные машины могут быть организованы в «пакеты приложений».
Вы можете создавать виртуальной окружение для конкретного варианта использования (например, дизайнерскую машину, машину менеджера и т. п.), установив в ней все требуемое программное обеспечение, и разворачивать десктопы по мере необходимости.
- Виртуальные машины более управляемы.
При использовании виртуальных машин существенно повышается управляемость в отношении создания резервных копий, создания снимков состояний виртуальных машин («снапшотов») и восстановлений после сбоев.
На этом, конечно, достоинства виртуальных машин не исчерпываются, это лишь пища для размышления и исследования их возможностей. Безусловно, как и у всякого нового и перспективного решения, у виртуальных машин есть и свои недостатки:
- Невозможность эмуляции всех устройств.
В данный момент все основные устройства аппаратных платформ поддерживаются вендорами систем виртуализации, однако если вы используете, например, какие-либо контроллеры или устройства, не поддерживаемые ими, придется отказаться от виртуализации такого окружения.
- Виртуализация требует дополнительных аппаратных ресурсов.
В настоящее время использование различных техник виртуализации позволило приблизить показатели быстродействия виртуальных машин к реальным, однако, чтобы физический хост смог запускать хотя бы пару виртуальных машин, требуется достаточное для них количество аппаратных ресурсов.
- Некоторые платформы виртуализации требовательны к конкретному аппаратному обеспечению.
В частности, замечательная платформа компании VMware, ESX Server, была бы и вовсе замечательной, если бы не предъявляла жестких требований к аппаратному обеспечению.
- Хорошие платформы виртуализации стоят хороших денег.
Порой, стоимость развертывания одного виртуального сервера равна стоимости еще одного физического, в определенных условиях это может оказаться нецелесообразным. К счастью, есть множество бесплатных решений, но они, в основном, ориентированы на домашнего пользователя и малый бизнес.
Несмотря на перечисленные и вполне устранимые недостатки, виртуализация продолжает набирать обороты, и в 2007 году ожидается существенное расширение, как рынка платформ виртуализации, так и средств управления виртуальными инфраструктурами. За последние несколько лет интерес к виртуализации вырос в разы, что можно увидеть по статистике Google Trends:
Статистика тренда «виртуализация»
Тем не менее, в связи со сложностью и высокой стоимостью развертывания и поддержки виртуальной инфраструктуры, а также трудностью правильной оценки возвращения инвестиций, многие проекты по виртуализации увенчались неудачей. По результатам исследований, проведенных Computer Associates среди различных компаний, предпринявших попытки виртуализации, 44 процента не могут охарактеризовать результат как успешный. Это обстоятельство сдерживает многие компании, планирующие проекты по виртуализации. Проблему составляет также факт отсутствия по-настоящему грамотных специалистов в этой области.
Что ждет виртуализацию в будущем
2006 год стал для технологий виртуализации ключевым: множество новых игроков пришли на этот рынок, множество релизов платформ виртуализации и средств управления, а также немалое количество заключенных партнерских соглашений и альянсов, говорят о том, что в будущем технология окажется очень и очень востребованной. Рынок средств виртуализации находится в заключительной стадии своего формирования. Множество производителей аппаратного обеспечения заявили о поддержки технологий виртуализации, а это верный залог успеха любой новой технологии. Виртуализация становится ближе к людям: упрощаются интерфейсы для использования виртуальных машин, появляются, не закрепленные пока официально, соглашения об использовании различных средств и техник, упрощается миграция с одной виртуальной платформы на другую. Безусловно, виртуализация займет свою нишу в списке необходимых технологий и инструментальных средств при проектировании IT-инфраструктуры предприятий. Обычные пользователи также найдут свое применение виртуальным машинам. С ростом производительности аппаратных платформ настольных компьютеров появится возможность поддерживать на одной машине несколько пользовательских окружений и переключаться между ними.
Производители аппаратного обеспечения также не собираются оставаться на месте: помимо существующих техник аппаратной виртуализации, вскоре появятся аппаратные системы, нативно поддерживающие виртуализацию и предоставляющие удобные интерфейсы для разрабатываемого программного обеспечения. Это позволит быстро разрабатывать надежные и эффективные платформы виртуализации. Возможно, что любая устанавливаемая операционная система будет сразу виртуализовываться, а специальное низкоуровневое ПО, при поддержке аппаратных функций, будет осуществлять переключение между запущенными операционными системами без ущерба для производительности.
Сама идея, заложенная в технологиях виртуализации, открывает широкие возможности по их использованию. Ведь, в конечном счете, все делается для удобства пользователя и упрощения использования привычных ему вещей. А можно ли на этом существенно экономить деньги, покажет время.
Что такое виртуальная машина (ВМ)?
Введение в виртуальные машины (ВМ), технологию для создания виртуализированных вычислительных сред и основу первого поколения облачных вычислений.
Что такое виртуальная машина (ВМ)?
Виртуальная машина — это виртуальное представление или эмуляция физического компьютера. Их часто называют гостями, а физическая машина, на которой они работают, — хостом.
Виртуализация позволяет создавать несколько виртуальных машин, каждая со своей собственной операционной системой (ОС) и приложениями, на одной физической машине. Виртуальная машина не может напрямую взаимодействовать с физическим компьютером. Вместо этого ему нужен легкий программный уровень, называемый гипервизором, для координации между ним и базовым физическим оборудованием. Гипервизор выделяет физические вычислительные ресурсы, такие как процессоры, память и хранилище, каждой виртуальной машине. Каждая виртуальная машина отделена от других, поэтому они не мешают друг другу.
Хотя эта технология может иметь множество названий, включая виртуальный сервер, экземпляр виртуального сервера (VSI) и виртуальный частный сервер (VPS), в этой статье они будут называться просто виртуальными машинами.
Как работает виртуализация
Когда гипервизор используется на физическом компьютере или сервере (также известном как «голый железный сервер»), он позволяет физическому компьютеру отделить свою операционную систему и приложения от оборудования. Затем он может разделиться на несколько независимых «виртуальных машин».”
Каждая из этих новых виртуальных машин может затем независимо запускать свои собственные операционные системы и приложения, при этом совместно используя исходные ресурсы с голого сервера, которым управляет гипервизор. Эти ресурсы включают память, оперативную память, хранилище и т. Д.
В следующем видео рассказывается об основах виртуализации (5:20) и просмотрите статью «5 преимуществ виртуализации»:
Гипервизор действует как своего рода диспетчер трафика, направляя и распределяя ресурсы «голого железа» для каждой из различных новых виртуальных машин, гарантируя, что они не мешают друг другу.
Есть два основных типа гипервизоров.
Гипервизоры типа 1 работают непосредственно на физическом оборудовании (обычно на сервере), заменяя ОС. Как правило, вы используете отдельный программный продукт для создания и управления виртуальными машинами на гипервизоре. Некоторые инструменты управления, такие как VMware vSphere, позволяют выбрать гостевую ОС для установки на виртуальную машину.
Вы можете использовать одну виртуальную машину в качестве шаблона для других, дублируя ее для создания новых. В зависимости от ваших потребностей вы можете создать несколько шаблонов виртуальных машин для разных целей, например для тестирования программного обеспечения, производственных баз данных и сред разработки.
Гипервизоры типа 2 работают как приложение в ОС хоста и обычно предназначены для однопользовательских платформ настольных компьютеров или ноутбуков. С гипервизором типа 2 вы вручную создаете виртуальную машину, а затем устанавливаете в нее гостевую ОС. Вы можете использовать гипервизор для выделения физических ресурсов вашей виртуальной машине, вручную задав количество ядер процессора и памяти, которые он может использовать. В зависимости от возможностей гипервизора вы также можете установить такие параметры, как 3D-ускорение для графики.
Полный обзор гипервизоров см. В «Гипервизоры: полное руководство.”
Преимущества и преимущества виртуальных машин
Виртуальные машины
обладают рядом преимуществ по сравнению с традиционным физическим оборудованием:
- Использование ресурсов и повышенная рентабельность инвестиций: Поскольку несколько виртуальных машин работают на одном физическом компьютере, клиентам не нужно покупать новый сервер каждый раз, когда они хотят запустить другую ОС, и они могут получить большую отдачу от каждого элемента оборудования они уже владеют.
- Масштаб: Используя облачные вычисления, можно легко развернуть несколько копий одной и той же виртуальной машины, чтобы лучше обслуживать возрастающую нагрузку.
- Переносимость: виртуальных машин могут быть перемещены по мере необходимости между физическими компьютерами в сети. Это позволяет распределять рабочие нагрузки по серверам, у которых есть резервная вычислительная мощность. Виртуальные машины могут даже перемещаться между локальной и облачной средами, что делает их полезными для сценариев гибридного облака, в которых вы совместно используете вычислительные ресурсы между центром обработки данных и поставщиком облачных услуг.
- Гибкость: Создание виртуальной машины быстрее и проще, чем установка ОС на физический сервер, поскольку вы можете клонировать виртуальную машину с уже установленной ОС.Разработчики и тестировщики программного обеспечения могут создавать новые среды по запросу для решения новых задач по мере их возникновения.
- Безопасность: виртуальных машин улучшают безопасность несколькими способами по сравнению с операционными системами, работающими непосредственно на оборудовании. Виртуальная машина — это файл, который может сканироваться на наличие вредоносных программ с помощью внешней программы. Вы можете создать полный снимок виртуальной машины в любой момент времени, а затем восстановить его до этого состояния, если он будет заражен вредоносным ПО, что фактически вернет виртуальную машину назад во времени.Быстрое и простое создание виртуальных машин также позволяет полностью удалить скомпрометированную виртуальную машину, а затем быстро воссоздать ее, ускоряя восстановление после заражения вредоносным ПО.
Варианты использования виртуальных машин
Виртуальные машины
имеют несколько применений, как для корпоративных ИТ-администраторов, так и для пользователей. Вот несколько вариантов:
- Облачные вычисления: В течение последних 10 с лишним лет виртуальные машины были основной единицей вычислений в облаке, что позволяло десяткам различных типов приложений и рабочих нагрузок успешно запускаться и масштабироваться.
- Поддержка DevOps: виртуальных машин — отличный способ поддержать корпоративных разработчиков, которые могут настраивать шаблоны виртуальных машин с настройками для своих процессов разработки и тестирования программного обеспечения. Они могут создавать виртуальные машины для конкретных задач, таких как статические тесты программного обеспечения, включая эти шаги в автоматизированный рабочий процесс разработки. Все это помогает оптимизировать цепочку инструментов DevOps.
- Протестируйте новую операционную систему: Виртуальная машина позволяет вам тестировать новую операционную систему на рабочем столе, не затрагивая основную ОС.
- Исследование вредоносных программ: виртуальных машин полезны для исследователей вредоносных программ, которым часто требуются новые машины для тестирования вредоносных программ.
- Запустить несовместимое программное обеспечение: Некоторые пользователи могут предпочесть одну ОС, но при этом нуждаются в программе, доступной только в другой. Хорошим примером является программа для голосового диктовки Dragon. Его поставщик, Nuance, прекратил выпуск версии своего продукта для macOS. Однако запуск гипервизора, ориентированного на настольные компьютеры, такого как VMware Fusion или Parallels, позволяет запускать Windows на виртуальной машине, предоставляя доступ к этой версии программного обеспечения.
- Безопасный просмотр: Использование виртуальной машины для просмотра позволяет посещать сайты, не беспокоясь о заражении. Вы можете сделать снимок своего компьютера, а затем возвращаться к нему после каждого сеанса просмотра. Это то, что пользователь может настроить самостоятельно, используя настольный гипервизор типа 2. В качестве альтернативы администратор может предоставить временный виртуальный рабочий стол, расположенный на сервере.
Типы ВМ
В этом разделе рассматриваются некоторые типы виртуальных машин:
- Виртуальные машины Windows
- Виртуальные машины Android
- Виртуальные машины Mac
- Виртуальные машины iOS
- Виртуальные машины Java
- Виртуальные машины Python
- Виртуальные машины Linux
- Виртуальные машины VMware
- Виртуальные машины Ubuntu
Виртуальные машины Windows
Большинство гипервизоров поддерживают виртуальные машины под управлением ОС Windows в качестве гостя.Гипервизор Microsoft Hyper-V входит в состав операционной системы Windows. После установки он создает родительский раздел, содержащий как себя, так и основную ОС Windows, каждая из которых получает привилегированный доступ к оборудованию. Другие операционные системы, в том числе гостевые системы Windows, работают в дочерних разделах, которые взаимодействуют с оборудованием через родительский раздел.
Виртуальные машины Android
ОС Android с открытым исходным кодом от Google широко используется на мобильных и подключенных домашних устройствах, например, домашних развлекательных устройствах.ОС Android работает только на архитектуре процессора ARM, которая является общей для этих устройств, но энтузиасты, геймеры Android или разработчики программного обеспечения могут захотеть запустить ее на ПК.
Это проблематично, потому что ПК работают на совершенно другой архитектуре процессора x86, а аппаратный гипервизор виртуализации передает инструкции только между виртуальной машиной и процессором. Он не переводит их для процессоров с разными наборами команд. Существуют различные проекты по решению этой проблемы.
Некоторые проекты, такие как Shashlik или Genymotion, используют эмулятор, который воссоздает архитектуру ARM в программном обеспечении.Одна из альтернатив, проект Android-x86, вместо этого переносит Android на архитектуру x86. Для его запуска необходимо установить программу Android-x86 как виртуальную машину с использованием гипервизора VirtualBox типа 2. Другая альтернатива, Anbox, запускает операционную систему Android на ядре основной ОС Linux.
Виртуальные машины Mac
Apple разрешает запускать свою систему macOS только на оборудовании Apple, запрещая людям запускать ее на оборудовании сторонних производителей в качестве виртуальной машины или иным образом в соответствии с лицензионным соглашением с конечным пользователем.Вы можете использовать гипервизоры типа 2 на оборудовании Mac для создания виртуальных машин с гостевой ОС macOS.
Виртуальные машины iOS
Сегодня невозможно запустить iOS на виртуальной машине, потому что Apple строго контролирует свою ОС iOS и не позволяет ей работать ни на чем другом, кроме устройств iOS.
Наиболее близким к виртуальной машине iOS является симулятор iPhone, который поставляется с интегрированной средой разработки Xcode, которая имитирует всю систему iPhone в программном обеспечении.
Виртуальные машины Java
Платформа Java — это среда выполнения для программ, написанных на языке разработки программного обеспечения Java.Обещание Java заключалось в функциональности «напиши один раз, запусти где угодно». Это означало, что любая программа Java могла работать на любом оборудовании, работающем на платформе Java. Для этого платформа Java включает виртуальную машину Java (JVM).
Программы Java содержат байт-код, который представляет собой инструкции, предназначенные для JVM. JVM компилирует этот байт-код в машинный код, который является языком нижнего уровня, используемым главным компьютером. JVM на платформе Java одной вычислительной платформы будет создавать другой набор инструкций машинного кода, чем JVM в другой, на основе машинного кода, ожидаемого процессором.
Таким образом, JVM не запускает всю ОС и не использует гипервизор, как другие виртуальные машины. Вместо этого он переводит программы прикладного уровня для работы на определенном оборудовании.
Дополнительную информацию о Java см. В «Java: Полное руководство».
Виртуальные машины Python
Как и JVM, виртуальная машина Python не работает на гипервизоре и не содержит гостевую ОС. Это инструмент, который позволяет программам, написанным на языке программирования Python, работать на различных процессорах.
Подобно Java, Python переводит свои программы в промежуточный формат, называемый байт-кодом, сохраняя его в файле, готовом к выполнению. Когда программа запускается, виртуальная машина Python переводит байт-код в машинный код для быстрого выполнения.
Виртуальные машины Linux
Linux — это обычная гостевая ОС, используемая во многих виртуальных машинах. Это также обычная хост-ОС, используемая для запуска виртуальных машин, и даже имеет собственный гипервизор, называемый виртуальной машиной на основе ядра (KVM). Основное ядро Linux включает KVM с 2007 года.Хотя это проект с открытым исходным кодом, Red Hat теперь владеет компанией, которая разработала KVM.
Виртуальные машины VMware
VMware была одним из первых поставщиков программного обеспечения для виртуализации, а сейчас является популярным поставщиком гипервизоров типов 1 и 2, а также программного обеспечения виртуальных машин для корпоративных клиентов.
«VMware: полное руководство» содержит исчерпывающий обзор всего, что связано с VMware.
Виртуальные машины Ubuntu
Ubuntu — это дистрибутив Linux, производимый Canonical.Он доступен в настольной и серверной версиях, любую из которых можно установить как виртуальную машину. Ubuntu можно развернуть как гостевую ОС на Microsoft Hyper-V. Он предоставляет оптимизированную версию Ubuntu Desktop, которая хорошо работает в расширенном режиме сеанса Hyper-V, обеспечивая тесную интеграцию между хостом Windows и виртуальной машиной Ubuntu. Он включает в себя поддержку интеграции с буфером обмена, динамического изменения размера рабочего стола, общих папок и перемещения мыши между главным и гостевым рабочими столами.
Мультитенант против одного арендатора
В облачных вычислениях виртуальные машины обычно предлагаются как в однопользовательском, так и в мультитенантном вариантах.
Общедоступные или многопользовательские виртуальные машины — это виртуальные машины, на которых несколько пользователей совместно используют общую физическую инфраструктуру. Это наиболее рентабельный и масштабируемый подход к предоставлению виртуальных машин, но ему не хватает некоторых характеристик изоляции, которые могли бы предпочесть организации со строгими требованиями к безопасности или соответствию требованиям.
Две модели для виртуальных машин с одним арендатором — это выделенные узлы и выделенные экземпляры.
Выделенный хост предполагает аренду всей физической машины и поддержание постоянного доступа и контроля над этой машиной, ее аппаратным обеспечением и любым установленным на нем программным обеспечением.Эта модель обеспечивает максимальную гибкость и прозрачность оборудования, контроль и размещение рабочих нагрузок, а также предлагает некоторые преимущества для определенных программ с собственными лицензиями.
Выделенный экземпляр предлагает такую же изоляцию для одного клиента и такой же контроль над размещением рабочей нагрузки, но он не связан с конкретной физической машиной. Так, например, если выделенный экземпляр перезагружается, он может оказаться на новой физической машине — машине, выделенной для отдельной учетной записи, но, тем не менее, новой машине, возможно, в другом физическом месте.
Модели ценообразования для виртуальных машин
Наиболее распространенные модели ценообразования для виртуальных машин в облаке — это оплата по мере использования (по часам или секундам), временные / спотовые инстансы, зарезервированные инстансы и выделенные хосты.
- Pay-as-you-go : В модели pay-as-you-go виртуальная машина не требует никаких авансовых затрат, и пользователи просто платят за то, что они используют, как правило, почасовая или секундная оплата в зависимости от поставщик и тип экземпляра.
- Переходные / спотовые инстансы : модель с наименьшей стоимостью виртуальных машин, временные и спотовые инстансы используют преимущества избыточной мощности поставщика, но поставщик может вернуть их в любое время.Обычно они полезны для приложений, которые не обязательно должны быть постоянно включены или которые слишком дороги в любой другой модели.
- Зарезервированные инстансы : в отличие от моделей с оплатой по мере использования, зарезервированные инстансы имеют явный срок действия, обычно от одного до трех лет, но также сопровождаются большими скидками.
- Выделенные хосты : В случае выделенных хостов пользователь обычно берет на себя общую стоимость физического сервера, и ему выставляется счет с любыми приращениями, которые поставщик предлагает выделенные серверы, обычно ежечасно или ежемесячно.
Виртуальные машины и серверы без операционной системы
Выбор виртуальной машины вместо физической, также известной как «голый железный сервер», связан не столько с конкурирующими возможностями, сколько с пониманием того, что вам нужно и когда это нужно.
Серверы
Bare Metal — это чистое оборудование, мощность и изоляция. Это физические серверы с одним арендатором, полностью лишенные циклов гипервизора (программное обеспечение виртуализации) и полностью посвященные одному заказчику — вам.
Рабочие нагрузки, которые отдают приоритет производительности и изоляции, такие как приложения с интенсивным использованием данных и нормативные требования, обычно лучше всего подходят для серверов без операционной системы, особенно при развертывании в течение продолжительных периодов времени.
Приложения для электронной коммерции, ERP, CRM, SCM и финансовых услуг — это лишь некоторые из рабочих нагрузок, идеально подходящих для серверов без операционной системы.
Итак, когда бы вы разместили гипервизор поверх «голого железа», чтобы создать виртуальную машину? Когда ваши рабочие нагрузки требуют максимальной гибкости и масштабируемости.
Виртуальные машины
легко увеличивают емкость сервера и повышают коэффициент использования — идеально для перемещения данных с одной виртуальной машины на другую, изменения размеров наборов данных и разделения динамических рабочих нагрузок.
Виртуальные машины и контейнеры
Самый простой способ понять контейнер — это понять, чем он отличается от традиционной виртуальной машины (ВМ). При традиционной виртуализации — локальной или облачной — гипервизор используется для виртуализации физического оборудования. Каждая виртуальная машина затем содержит гостевую ОС, виртуальную копию оборудования, которое требуется ОС для работы, а также приложение и связанные с ним библиотеки и зависимости.
Вместо виртуализации базового оборудования контейнеры виртуализируют операционную систему (обычно Linux), так что каждый отдельный контейнер содержит только приложение, его библиотеки и зависимости.Отсутствие гостевой ОС является причиной того, что контейнеры такие легкие и, следовательно, быстрые и портативные.
Контейнеры
и управляющий ими механизм оркестрации Kubernetes хорошо подходят для современных облачных архитектур и архитектур микросервисов. И хотя контейнеры чаще всего ассоциируются с сервисами без сохранения состояния, на них также можно подать в суд за службы с отслеживанием состояния.
Контейнеры
также становятся все более распространенными в сценариях гибридного облака, поскольку они могут работать согласованно на портативных компьютерах, в облаке и в традиционных локальных ИТ.
Сообщение в блоге «Контейнеры против виртуальных машин: в чем разница?» объясняет больше.
В следующем видео Сай Веннам разбирает основы контейнеризации и сравнивает ее с использованием виртуальных машин (8:09):
Как выбрать поставщика виртуальной машины
Выбор виртуальной машины и облачного провайдера не должен быть сложной задачей, если вы знаете, что искать. Виртуальная машина, конечно, должна соответствовать вашим рабочим нагрузкам и бизнес-бюджету, но другие факторы играют ключевую роль между вами и вашей средой виртуализации.Ниже приведены десять вещей, которые следует учитывать при выборе поставщика услуг виртуальных машин.
- Надежная поддержка — Обеспечьте круглосуточную поддержку клиентов по телефону, электронной почте и в чате или уходите. Вам нужен реальный человек на другом конце провода, который поможет вам в критических ИТ-ситуациях. Также важно отметить, какие облачные провайдеры предлагают дополнительные услуги для более практической поддержки.
- Управляемые опции — Предлагает ли облачный провайдер как неуправляемые, так и управляемые решения? Если вы не знакомы с технологиями виртуализации, выберите поставщика, который будет отвечать за настройку, обслуживание и постоянный мониторинг производительности.
- Интеграция программного обеспечения — Будет ли ваша среда виртуальной машины хорошо взаимодействовать с другими? Операционные системы, стороннее программное обеспечение, технологии и приложения с открытым исходным кодом помогут вам предоставить больше решений для вашего бизнеса. Вам понадобится поставщик виртуальных машин с поддержкой и прочными партнерскими отношениями с наиболее часто используемыми в отрасли поставщиками программного обеспечения. Примечание: держитесь подальше от привязки к продавцу.
- Высококачественная сеть и инфраструктура — Насколько актуальна инфраструктура, на которой будет работать ваша новая виртуальная машина? Сюда входят надежные серверы без операционной системы, современные центры обработки данных и магистральная сеть.Облачный провайдер должен иметь возможность выполнить свою часть сделки с помощью современного оборудования и высокоскоростных сетевых технологий.
- Местоположение, местоположение, местоположение — Чем ближе данные к вашим пользователям, тем меньше проблем вы столкнетесь с задержками, безопасностью и своевременным предоставлением услуг. Хорошая глобальная сеть, состоящая из разрозненных центров обработки данных и точек присутствия POP, имеет решающее значение для получения данных там, где и когда они вам больше всего нужны.
- Резервное копирование и восстановление — Какой план у вашего облачного провайдера для обеспечения работоспособности виртуальных машин в случае непредвиденных событий? Предоставляют ли они также дополнительные возможности резервного копирования и резервирования для вашей виртуализированной среды? К непрерывной работе следует отнестись серьезно.
- Легкость масштабирования — Насколько быстро и легко вы сможете развернуть, замедлить, зарезервировать, приостановить и обновить виртуальную машину? Когда речь заходит о масштабируемости виртуальных машин, вам больше всего хочется слышать слово «по запросу».
- Различные конфигурации ЦП — Чем больше конфигураций, тем лучше. Не каждая конфигурация виртуальной машины подходит для любой рабочей нагрузки в любой сезон использования. Обязательно найдите поставщика виртуальных машин, который предоставит различные пакеты конфигурации как для одиночных, так и для многопользовательских требований.
- Уровни безопасности — Спросите о них своего провайдера, а затем спросите о них еще раз. Ваши бизнес-данные — это валюта в высшей форме, особенно при работе с конфиденциальной информацией о клиентах. Линии частных сетей, варианты для федеральных центров обработки данных, встроенные функции шифрования и соблюдение нормативных требований имеют важное значение для защиты вашего самого ценного актива.
- Полная поддержка миграции — Ваши ИТ-приоритеты всегда будут меняться. Все мы это знаем.Любой поставщик виртуальных машин должен быть в состоянии помочь вам перейти от гибридной, локальной и удаленной среды. Ищите варианты полного приема данных, миграции по сети и приложений.
Виртуальные машины и IBM Cloud
IBM Cloud предлагает возможность настраивать и запускать собственные виртуальные машины на основе различных технических и ценовых вариантов. Вы можете выбрать технические профили для виртуальных машин на основе необходимой вычислительной мощности, памяти, локального хранилища и возможностей графического процессора, адаптируя систему к вашей конкретной рабочей нагрузке.Вы также можете управлять виртуальными машинами VMware с помощью IBM Cloud for VMware Solutions.
Вы можете выбрать общедоступные или частные узлы в соответствии с вашими требованиями к безопасности и соответствию. Частный однопользовательский сервис может располагаться на выделенном хосте по вашему выбору из более чем 60 центров обработки данных IBM в 19 странах по всему миру.
Выберите из множества вариантов развертывания в соответствии с вашими ценовыми потребностями. Публичный экземпляр виртуальной машины, который вы зарезервировали на заранее установленное время, дешевле, чем незарезервированная система.В качестве альтернативы вы можете выбрать виртуальную машину на основе цен на спотовом рынке для обработки временных рабочих нагрузок.
IBM Cloud также позволяет сочетать ресурсы виртуального сервера и «голого железа» в соответствии с требованиями вашей рабочей нагрузки.
Чтобы узнать больше, посетите страницу IBM Cloud и зарегистрируйтесь для получения идентификатора IBM ID.
.
Что такое виртуальная машина?
Что такое виртуальная машина?
A V Виртуальная машина (ВМ) — это вычислительный ресурс, который использует программное обеспечение вместо физического компьютера для запуска программ и развертывания приложений. Одна или несколько виртуальных «гостевых» машин работают на физической «хост-машине». Каждая виртуальная машина запускает свою собственную операционную систему и функционирует отдельно от других виртуальных машин, даже если все они работают на одном хосте. Это означает, что, например, виртуальная виртуальная машина MacOS может работать на физическом ПК.
Получите последнюю версию виртуализации нового поколения для чайников
Загрузить сейчас
Технология виртуальных машин используется для многих случаев использования в локальной и облачной средах. В последнее время общедоступные облачные службы используют виртуальные машины для одновременного предоставления ресурсов виртуальных приложений нескольким пользователям, что обеспечивает еще более экономичные и гибкие вычисления.
Для чего используются виртуальные машины?
Виртуальные машины (ВМ) позволяют бизнесу запускать операционную систему, которая ведет себя как полностью отдельный компьютер в окне приложения на рабочем столе.Виртуальные машины могут быть развернуты для удовлетворения различных уровней потребностей в вычислительной мощности, для запуска программного обеспечения, для которого требуется другая операционная система, или для тестирования приложений в безопасной изолированной среде.
Виртуальные машины исторически использовались для виртуализации серверов, что позволяет ИТ-командам консолидировать свои вычислительные ресурсы и повышать эффективность. Кроме того, виртуальные машины могут выполнять определенные задачи, которые считаются слишком рискованными для выполнения в среде хоста, такие как доступ к зараженным вирусами данным или тестирование операционных систем.Поскольку виртуальная машина отделена от остальной системы, программное обеспечение внутри виртуальной машины не может вмешиваться в работу главного компьютера.
Как работают виртуальные машины?
Виртуальная машина запускается как процесс в окне приложения, как и любое другое приложение, в операционной системе физической машины. Ключевые файлы, из которых состоит виртуальная машина, включают файл журнала, файл настроек NVRAM, файл виртуального диска и файл конфигурации.
Преимущества виртуальных машин
Виртуальные машины просты в управлении и обслуживании, и они обладают рядом преимуществ по сравнению с физическими машинами:
Виртуальные машины могут запускать несколько операционных сред на одном физическом компьютере, экономя физическое пространство, время и управление расходы.
Виртуальные машины поддерживают устаревшие приложения, что снижает затраты на переход на новую операционную систему. Например, виртуальная машина Linux, на которой запущен дистрибутив Linux, поскольку гостевая операционная система может существовать на хост-сервере, на котором работает операционная система, отличная от Linux, например Windows.
Виртуальные машины также могут обеспечивать интегрированные параметры аварийного восстановления и подготовки приложений.
Недостатки виртуальных машин
Несмотря на то, что виртуальные машины имеют несколько преимуществ по сравнению с физическими машинами, есть и некоторые потенциальные недостатки:
Запуск нескольких виртуальных машин на одной физической машине может привести к нестабильной производительности, если требования инфраструктуры не выполняются. .
Виртуальные машины менее эффективны и работают медленнее, чем полноценный физический компьютер. Большинство предприятий используют сочетание физической и виртуальной инфраструктуры, чтобы сбалансировать соответствующие преимущества и недостатки.
Два типа виртуальных машин
Пользователи могут выбирать из двух разных типов виртуальных машин — виртуальные машины процессов и виртуальные машины системы:
A p Виртуальная машина процесса позволяет одному процессу работать как приложение на хост-машине, предоставляя платформо-независимую среду программирования, маскируя информацию о базовом оборудовании или операционной системе.Примером виртуальной машины процесса является виртуальная машина Java, которая позволяет любой операционной системе запускать приложения Java, как если бы они были родными для этой системы.
A s Системная виртуальная машина полностью виртуализирована и заменяет собой физическую машину. Системная платформа поддерживает совместное использование физических ресурсов главного компьютера между несколькими виртуальными машинами, на каждой из которых работает собственная копия операционной системы. Этот процесс виртуализации основан на гипервизоре, который может работать на голом оборудовании, таком как VMware ESXi, или поверх операционной системы.
Какие 5 типов виртуализации?
Все компоненты традиционного центра обработки данных или ИТ-инфраструктуры могут быть виртуализированы сегодня с помощью различных конкретных типов виртуализации:
Виртуализация оборудования : При виртуализации оборудования виртуальные версии компьютеров и операционных систем ( ВМ) создаются и консолидируются в один основной физический сервер. Гипервизор напрямую взаимодействует с дисковым пространством и процессором физического сервера для управления виртуальными машинами.Виртуализация оборудования, также известная как виртуализация серверов, позволяет более эффективно использовать аппаратные ресурсы и на одной машине одновременно запускать разные операционные системы.
Программное обеспечение виртуализация : Программная виртуализация создает компьютерную систему с оборудованием, которое позволяет одной или нескольким гостевым операционным системам работать на физическом хост-компьютере. Например, ОС Android может работать на хост-машине, которая изначально использует ОС Microsoft Windows, используя то же оборудование, что и хост-машина.Кроме того, приложения можно виртуализировать и доставлять с сервера на устройство конечного пользователя, такое как ноутбук или смартфон. Это позволяет сотрудникам получать доступ к централизованно размещенным приложениям при удаленной работе.
Виртуализация хранилища: Хранилище можно виртуализировать путем консолидации нескольких физических устройств хранения, чтобы они отображались как одно устройство хранения. К преимуществам относятся повышение производительности и скорости, балансировка нагрузки и снижение затрат. Виртуализация хранилища также помогает при планировании аварийного восстановления, поскольку данные виртуального хранилища можно дублировать и быстро переносить в другое место, сокращая время простоя.
Network vir t ualization: Несколько подсетей могут быть созданы в одной физической сети путем объединения оборудования в единый программный виртуальный сетевой ресурс. Виртуализация сети также разделяет доступную полосу пропускания на несколько независимых каналов, каждый из которых может быть назначен серверам и устройствам в режиме реального времени. Преимущества включают повышенную надежность, скорость сети, безопасность и лучший мониторинг использования данных.Сетевая виртуализация может быть хорошим выбором для компаний с большим количеством пользователей, которым необходим постоянный доступ.
Виртуализация рабочего стола: Этот общий тип виртуализации отделяет среду рабочего стола от физического устройства и сохраняет рабочий стол на удаленном сервере, позволяя пользователям получать доступ к своим рабочим столам из любого места на любом устройстве. Помимо легкости доступа, преимущества виртуальных рабочих столов включают лучшую безопасность данных, экономию на лицензиях и обновлениях программного обеспечения и простоту управления.
Контейнер против виртуальной машины
Как и виртуальные машины, контейнерная технология, такая как Kubernetes, похожа в смысле запуска изолированных приложений на единой платформе. В то время как виртуальные машины виртуализируют аппаратный уровень для создания «компьютера», контейнеры упаковывают только одно приложение вместе с его зависимостями. Виртуальные машины часто управляются гипервизором, тогда как контейнерные системы предоставляют общие службы операционной системы от базового хоста и изолируют приложения с помощью оборудования виртуальной памяти.
Ключевым преимуществом контейнеров является меньшая нагрузка по сравнению с виртуальными машинами. Контейнеры включают только двоичные файлы, библиотеки и другие необходимые зависимости, а также приложение. Контейнеры, находящиеся на одном хосте, используют одно и то же ядро операционной системы, что делает контейнеры намного меньше виртуальных машин. В результате контейнеры загружаются быстрее, максимизируют ресурсы сервера и упрощают доставку приложений. Контейнеры стали популярными в таких случаях использования, как веб-приложения, тестирование DevOps, микросервисы и максимальное количество приложений, которые можно развернуть на сервере.
Виртуальные машины больше и загружаются медленнее, чем контейнеры. Они логически изолированы друг от друга, с их собственным ядром операционной системы и предлагают преимущества полностью отдельной операционной системы. Виртуальные машины лучше всего подходят для совместной работы нескольких приложений, монолитных приложений, изоляции между приложениями и для устаревших приложений, работающих в более старых операционных системах. Контейнеры и виртуальные машины также могут использоваться вместе.
Настройка виртуальной машины
Виртуальные машины можно легко настроить, и в Интернете есть множество руководств, которые проводят пользователей через этот процесс.VMware предлагает одно такое полезное руководство по настройке виртуальной машины.
Продукты, решения и ресурсы, связанные с виртуальными машинами VMware
.
Что такое виртуальная машина? Все, что вам нужно знать
Виртуальные машины (ВМ) позволяют запускать другие операционные системы в вашей текущей ОС. Виртуальная ОС будет работать, как если бы это была еще одна программа на вашем компьютере.
Это идеально подходит для тестирования других операционных систем, таких как Windows 10 или альтернативные операционные системы Linux.Вы также можете использовать виртуальные машины для запуска программного обеспечения в операционных системах, для которых оно не предназначено. Например, вы можете запускать программы Windows на Mac или запускать несколько копий приложения на Mac с виртуальной машиной.
Вы хотите начать работу с виртуальными машинами? Вам не нужно ничего платить — есть несколько отличных бесплатных программ для виртуальных машин.
Что такое виртуальная машина?
Виртуальная машина — это программа, которая действует как виртуальный компьютер.Он работает в вашей текущей операционной системе (основной операционной системе) и предоставляет виртуальное оборудование для гостевых операционных систем. Гостевая ОС запускается в окне на вашей основной ОС, как и любая другая программа на вашем компьютере.
С точки зрения гостевой операционной системы виртуальная машина — это реальный физический компьютер.
Механизм эмуляции виртуальной машины, называемый гипервизором, обрабатывает виртуальное оборудование, включая ЦП, память, жесткий диск, сетевой интерфейс и другие устройства.Виртуальные аппаратные устройства, предоставляемые гипервизором, сопоставляются с реальным оборудованием на вашей физической машине. Например, виртуальный жесткий диск виртуальной машины хранится в файле, расположенном на вашем жестком диске.
В вашей системе может быть установлено несколько виртуальных машин.Вы ограничены только объемом доступного для них хранилища. После того, как вы установили несколько операционных систем, вы можете открыть программу виртуальной машины и выбрать, какую виртуальную машину вы хотите загрузить. Гостевая операционная система запускается и работает в окне операционной системы вашего хоста, хотя вы также можете запустить ее в полноэкранном режиме.
Практическое использование виртуальных машин
Виртуальные машины имеют ряд популярных применений:
Протестируйте новые версии операционных систем : вы можете попробовать Windows 10 на своем компьютере с Windows 7, если вы еще не хотите обновляться.
Экспериментируйте с другими операционными системами : Установка различных дистрибутивов Linux на виртуальную машину позволяет вам экспериментировать с ними и узнавать, как они работают.А запуск macOS в Windows 10 на виртуальной машине позволяет вам привыкнуть к другой операционной системе, которую вы планируете использовать на постоянной основе.
Используйте программное обеспечение, требующее устаревшей операционной системы. : Если у вас есть важное приложение, которое работает только в Windows XP, вы можете установить XP на виртуальную машину и запустить там приложение.Это позволяет вам использовать приложение, которое работает только с Windows XP, не устанавливая его на свой компьютер. Это важно, поскольку Windows XP больше не получает поддержки от Microsoft.
Запуск программного обеспечения, разработанного для другой операционной системы. s: Пользователи Mac и Linux могут запускать Windows на виртуальной машине, чтобы использовать программное обеспечение Windows на своих компьютерах без проблем совместимости.К сожалению, игры — это проблема. Программы виртуальных машин приводят к накладным расходам, и 3D-игры не будут работать на виртуальной машине плавно.
Тестовое программное обеспечение на нескольких платформах : Если вам нужно проверить, работает ли приложение в нескольких операционных системах, вы можете установить каждую из них на виртуальной машине.
Объедините серверы : предприятия, использующие несколько серверов, могут разместить некоторые из них в виртуальных машинах и запустить их на одном компьютере.Каждая виртуальная машина представляет собой изолированный контейнер, поэтому это не создает проблем с безопасностью, связанных с запуском разных серверов в одной операционной системе. Виртуальные машины также можно перемещать между физическими серверами.
Рекомендуемое программное обеспечение виртуальной машины
VirtualBox — отличное приложение с открытым исходным кодом, работающее в Windows, macOS и Linux.Одно из преимуществ VirtualBox — отсутствие коммерческой версии. Это означает, что вы получаете все функции бесплатно, включая расширенные функции, такие как моментальные снимки. Это позволяет сохранить состояние виртуальной машины и вернуться к нему в будущем, что отлично подходит для тестирования.
Мы написали полное руководство по VirtualBox, которое поможет вам начать работу.
VMware Player — еще одна известная программа для виртуальных машин для Windows и Linux.VMware Player является бесплатным аналогом коммерческого приложения VMware Workstation, поэтому вы не получаете всех расширенных функций, которые были бы в VirtualBox.
Однако и VirtualBox, и VMware Player — надежные программы, которые предлагают базовые функции бесплатно.Если один из них вам не подходит, попробуйте другой.
Загрузка ОС в вашу виртуальную машину
Чтобы установить операционную систему на виртуальную машину, вам понадобится установочный диск с операционной системой.Для этого пригодится создание установочного носителя Windows 10. Вы также можете использовать файл образа ISO, который часто присутствует в дистрибутивах Linux. Программы виртуальных машин предлагают простые в использовании мастера, которые проведут вас через процесс создания виртуальной машины и установки гостевой операционной системы.
Вы также можете узнать, как создать виртуальную машину с помощью Windows 10 Hyper-V и сравнить Hyper-V с VirtualBox и VMWare.Вам также следует ознакомиться с нашими советами о том, как повысить производительность виртуальной машины или передать файлы виртуальной машины между гостем и хостом.
Виртуальные машины не ограничиваются только настольными операционными системами — вы даже можете эмулировать Android в Windows 10.
Как отслеживать местоположение мобильного телефона, используя только номер телефона
Потеряли телефон? Пытаетесь найти ребенка или присмотреть за ним? Это приложение может помочь.
Об авторе
Бен Штегнер
(Опубликовано 1554 статей)
Бен — заместитель редактора и менеджер по адаптации в MakeUseOf. Он оставил свою работу в сфере ИТ, чтобы писать полный рабочий день в 2016 году, и никогда не оглядывался назад.В качестве профессионального писателя он освещал технические руководства, рекомендации по видеоиграм и многое другое уже более шести лет.
Ещё от Ben Stegner
Подпишитесь на нашу рассылку новостей
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.
.
Лучшее ПО виртуальных машин 2020 года: виртуализация для разных ОС
Лучшее программное обеспечение для виртуальных машин упрощает виртуализацию для различных операционных систем, позволяя запускать несколько установок ОС на одном компьютере или рабочей станции.
Лучшее программное обеспечение для виртуализации
Виртуальные машины стали важной частью вычислений, не в последнюю очередь для бизнеса и особенно для облачных вычислений. Однако виртуализация доступна и домашним пользователям.
Для личного использования виртуализация позволяет пользователям запускать различные операционные системы на своих домашних компьютерах, например Windows на Mac или Linux на ПК с Windows — и наоборот.
Ключевым преимуществом запуска виртуальной машины является то, что она позволяет запускать приложения, которые в противном случае были бы недоступны из-за очень разных системных требований, что является одной из причин, почему виртуализация стала такой важной в бизнесе.
Другой, что удивительно, является проблема безопасности, поскольку вредоносное ПО не может работать должным образом в виртуализированной среде и часто отключается, если обнаруживает, что оно находится в одной.
В целом виртуализация стала мощным инструментом в вычислительной технике и ИТ, и здесь мы представим лучшее из программного обеспечения для виртуальных машин.
- Хотите, чтобы ваша компания или услуги были рассмотрены в этом руководстве покупателя? Отправьте свой запрос по адресу [email protected], указав URL-адрес руководства по покупке в строке темы.
(Изображение предоставлено VMware)
1. VMware Workstation Player
Благодаря 20 годам разработки
Бесплатно для личного использования
Поддерживает виртуализацию GPU
Windows, Mac и Linux
VMware предлагает очень обширный выбор продуктов для виртуализации, включая Fusion для Apple Mac и Workstation Player для ПК.
Несмотря на различие названий, эти два продукта предлагают фактически одно и то же решение, хотя и адаптированное для каждой ОС.
Для Mac, который включает аккуратный «Режим Unity», который позволяет Mac OS запускать приложения Windows из Dock и заставлять их выглядеть так, как будто они являются частью основной ОС.
Workstation, как следует из нумерации версий, является более зрелым продуктом и обеспечивает одну из самых сложных реализаций виртуальных машин, которые когда-либо существовали.
Являясь одним из немногих хостов, поддерживающих DirectX 10 и OpenGL 3.3, он позволяет CAD и другим приложениям с ускорением на GPU работать в условиях виртуализации.
Workstation Player для Windows или Linux бесплатен для личного использования, хотя Pro требуется для бизнес-пользователей и тех, кто хочет запускать ограниченные виртуальные машины, созданные с помощью Pro или Fusion Pro.
(Изображение предоставлено VirtualBox)
2. VirtualBox
Не все хорошее стоит денег
Бесплатно
Windows, Mac и Linux
100000 зарегистрированных пользователей
Не уверен, какие операционные системы вы, вероятно, будете использовать ? Тогда VirtualBox — хороший выбор, потому что он поддерживает удивительно широкий выбор комбинаций хоста и клиента.
Windows, начиная с XP, любой Linux уровня 2.4 или выше, Windows NT, Server 2003, Solaris, OpenSolaris и даже OpenBSD Unix. Есть даже люди, которые с ностальгией запускают Windows 3.x или даже IBM OS / 2 на своих современных системах.
Он также работает на Apple Mac, а для пользователей Apple он может выполнять сеанс клиентской виртуальной машины Mac.
Oracle любезно поддержала VirtualBox и предоставила широкий выбор готовых виртуальных машин для разработчиков, которые можно бесплатно загрузить и использовать.
И все это бесплатно; даже выпуск Enterprise.
(Изображение предоставлено Parallels)
3. Parallels Desktop
Лучшая виртуальность Apple Mac
Интеграция с macOS
Доступно
Намного лучше, чем Boot Camp
Только хост Mac
Boot Camp предоставляется Apple бесплатно инструмент для запуска виртуального сеанса под macOS, но те, кому это нужно делать на регулярной основе, используют Parallels, теперь принадлежащий программному гиганту Corel.
Это позволяет им без проблем запускать Windows вместе со своей родной ОС в те неловкие моменты, когда им нужно программное обеспечение, которое работает только на этой платформе.
Некоторые из элегантных вещей, которые может сделать Parallels, — это отображать оповещения Windows в центре уведомлений Mac и управлять единым буфером обмена.
Большинство пользователей Mac думают о Parallels как об инструменте, предназначенном исключительно для работы с Windows, но его можно использовать для размещения широкого спектра дистрибутивов Linux, Chrome OS (на которой работают лучшие Chromebook) и даже других (и более старых) версий Mac OS. .
Самая низкая ступень — 79,99 долларов США (69,99 фунтов стерлингов) для базовой версии. Выше представлена версия Pro, которая может использовать больше памяти и поддерживает такие среды разработки, как Microsoft Visual Studio.И Business Edition, которая включает инструменты централизованного управления лицензиями для ИТ-специалистов.
(Изображение предоставлено QEMU)
4. QEMU
Виртуальный аппаратный эмулятор
Бесплатно
Простое в использовании
Только Linux
Веб-сайт QEMU не очень сложен, но не пусть это вас оттолкнет.
Этот продукт немного отличается от других решений для виртуальных машин тем, что он является одновременно хостом виртуальной машины и эмулятором машины.Наряду с ПК x86, QEMU может эмулировать PowerPC, MIPS64, ARM, SPARC (32 и 64), MicroBlaze, ETRAX CRIS, Sh5 и RISC-V и другие.
Ему удается сделать это без прав администратора, а производительность виртуальных машин, работающих на нем, близка к производительности собственных установок.
QEMU не хватает каких-либо сложных интерфейсных инструментов, вместо этого полагаясь на входные данные CLI для установки и настройки клиентов виртуальных машин.
В настоящее время он также может размещаться только в Linux, даже если он может работать с широким спектром операционных систем под этим.
(Изображение предоставлено Citrix)
5. Citrix Hypervisor
Решение с высокой степенью масштабируемости от Citrix
Бесплатное (если вам нравится базовый уровень)
Установка без установки
Ограниченная поддержка ОС сторонних производителей
Как ни странно Citrix Hypervisor начал свою жизнь как проект с открытым исходным кодом, и по сей день его можно бесплатно загрузить и установить. Точнее, базовая версия бесплатна, но расширенные функции ограничены выпусками платного уровня.
Платные клиенты получают сложные инструменты управления, возможность автоматизировать и распределять живые среды по своему желанию.Он также имеет сквозные и виртуализированные возможности графического процессора, что позволяет, например, предлагать виртуализированные САПР.
Другая направленность XenServer — создание виртуальных центров обработки данных, которые могут одинаково легко справляться с плановыми и внеплановыми отключениями и поддерживать высокий уровень доступности, которого ожидает бизнес.
(Изображение предоставлено: Xen Project)
6. Xen Project
Бесплатно с открытым исходным кодом
Расширенная виртуализация
Работает с гипермасштабируемыми облаками
Xen Project — это бесплатный монитор виртуальных машин с открытым исходным кодом (VMM), предназначен для использования в качестве гипервизора типа 1 для нескольких операционных систем, использующих одно и то же оборудование.Первоначально разработанный Кембриджским университетом, сотрудники, создавшие его, превратили его в компанию, которая позже была приобретена Citrix. Проект Xen теперь сотрудничает с Linux Foundation в продвижении приложений с открытым исходным кодом.
Он особенно используется для расширенной виртуализации, не в последнюю очередь для серверов, как в коммерческих средах, так и в средах с открытым исходным кодом. Это включает, помимо прочего, приложения «Инфраструктура как услуга» (IaaS), виртуализацию рабочих столов и виртуализированную безопасность. Программное обеспечение Xen Project используется даже в автомобильных и авиационных системах.
Услуга особенно применима для гипермасштабируемых облаков и может легко использоваться с AWS, Azure, Rackspace, IBM Softlayer и Oracle. Ключевой акцент делается на безопасности за счет использования как можно меньшей базы кода, что делает его не только безопасным, но и особенно гибким.
(Изображение предоставлено Microsoft Hyper-V)
7. Microsoft Hyper-V
Базовый гипервизор Microsoft
В Windows 10 и Windows Server
Бесплатная
Поддержка Linux ограничена
Первоначально под кодовым названием Viridian, и затем Windows Server Virtualization, он был переименован в Hyper-V Server, когда впервые был выпущен в конце 2008 года.
В настоящее время он входит в состав Windows 10 Pro и Windows Server (2012 и 2016) без каких-либо дополнительных затрат для пользователя.
Однако вы получите очень простой гипервизор, который не может делать те умные вещи, которые предлагает VMware.
Поддержка гостевых ОС включает Windows Server, Windows XP SP3 или новее, Linux с ядром 3.4 или новее и FreeBSD. Хотя поддержка драйверов для Linux невелика, и нет поддержки виртуального графического процессора.
Hyper-V позволяет относительно неопытным пользователям создавать виртуальную серверную среду, но не ждите чудес.
Обзор лучших предложений на сегодня
.