Программная виртуализация что это

Как упростить разработку с помощью виртуализации

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

Человек, работая за компьютером, постоянно запускает разные программы. У программистов количество приложений, необходимых для работы, может исчисляться десятками. Более того, иногда приходится запускать программы, которые работают только в другой операционной системе, отличной от той, в которой работает программист.

В качестве примера можно привести проекты на Хекслете, где в рамках задания студенту нужно записать, что происходит в терминале. Эта задача становится трудновыполнимой, если ваша основная система — Windows. Программа, которая записывает терминал — asciinema, работает только в Linux. Как можно решить эту проблему? И почему нельзя просто взять и запустить программу из одной ОС в другой операционной системе?

Начнём с того, что программы, которые мы пишем, не взаимодействуют напрямую с железом. Например, когда мы вводим символы на клавиатуре, их сначала обрабатывает специальный драйвер, встроенный в операционную систему, и только потом они попадают в поле ввода и отображаются. В данном случае обработка настолько быстрая, что мы даже не задумываемся о ней. То же самое в отображении: мы запускаем множество разных процессов, просто двигая курсор мыши. Одна из главных задач операционных систем — предоставить возможность программам взаимодействовать с железом компьютера, и в разных операционных системах для этого используются разные функции.

Операционные системы — одни из самых сложных программ, если не самые сложные. Они разрабатывались разными людьми и в разное время. Логично, что подходы к работе с устройствами в них кардинально отличаются. Это одна из основных причин, почему нельзя просто скопировать программу в другую операционную систему и запустить её там. В качестве примера, не связанного с железом, можно сказать, что графические оболочки разных ОС тоже полностью отличаются. Например, в Linux нет понятий «Кнопка пуск» или «трей». В некоторых реализациях отсутствуют даже привычные нам всем окна.

Но всё же у разработчиков часто возникает потребность запуска программ, работающих только в одной ОС, и эта проблема имеет решение.

Самый очевидный способ — купить второй компьютер, но это дорогое удовольствие. Второй вариант — поставить Linux рядом со своей основной операционной системой. Такая установка может завершиться неудачей, так как операционные системы, как правило, не ожидают, что рядом с ними будет работать другая похожая программа. Но если всё получилось, во время старта компьютера вы сможете выбрать ОС для загрузки. Существует также и третий путь — виртуализация, о ней и поговорим.

Узнайте больше об операционных системах У нас есть курс по операционным системам. Зарегистрированные пользователи могут пройти его бесплатно. Другие бесплатные курсы можно найти по ссылке.

Что такое виртуализация

Виртуализация позволяет запускать в текущей операционной системе программы, созданные для другой операционной системы. Это возможно благодаря виртуальной машине, которая работает внутри текущей операционной системы. На виртуальную машину устанавливается любая нужная в данный момент ОС. Стоит сказать, что виртуальных машин может быть много, каждая из них при этом выглядит как отдельный компьютер со своими характеристиками.

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

Виртуализация имеет очень богатую историю, а первая операционная система с её поддержкой появилась еще в 1968 году. Тогда же программисты поняли, что если можно запустить одну виртуальную машину, значит можно запустить и вторую, и третью. Возникла потребность управлять множеством таких машин, и появился первый гипервизор. По сути, это операционная система для управления виртуальными машинами.

Например, у нас есть две виртуальные машины, которые мы хотим использовать одновременно. Каждая из них должна иметь свой виртуальный жесткий диск и оперативную память. Логично, что кто-то должен следить за тем, чтобы одна из операционных систем случайно не начала записывать данные в области памяти, которые использует другая виртуальная машина. Этим как раз и занимается гипервизор: он изолирует и разделяет ресурсы виртуальных машин.

Операционная система (или компьютер), внутри которой запускается виртуальная машина, называется хост-системой (host), а ОС, работающую в виртуальном окружении, называют гостевой (guest).

Гипервизоры, по большому счёту, делятся на два типа: которые работают внутри операционной системы хоста, и для запуска которых хостовая ОС не нужна. Последние умеют работать прямо на голом железе. На настольных компьютерах наибольшее распространение получил первый тип.

В качестве примеров гипервизоров первого типа можно привести: VMware Workstation, QEMU и VirtualBox. А ко второму типу относится, например, автономный гипервизор VMware ESX.

Какие существуют виды виртуализации

Виртуализацию делят на три вида в зависимости от подхода к её реализации.

Программная виртуализация

Этот вид также подразделяется на несколько подвидов. В статье мы не будем подробно рассматривать каждый из них, так как в настоящее время программная виртуализация используется не так широко. Виртуальные машины на её основе значительно менее производительные по сравнению с другими видами виртуализации. Если интересно с чем это связано, подробнее можно почитать в Википедии.

Аппаратная виртуализация

Для её работы требуется поддержка со стороны процессора. Наибольшее распространение получили технологии Intel-VT и AMD-V, в настоящее время большинство процессоров для домашних компьютеров поддерживают одну из них. Аппаратная виртуализация не получила бы такого широкого распространения, если бы не преимущества, которые обеспечивает данный подход. Эти преимущества описаны ниже.

Первое преимущество: при аппаратной виртуализации виртуальные машины управляются гипервизором напрямую, в отличие от программной виртуализации, где, например, решение о выделении памяти для виртуальной машины сначала принимает операционная система хоста, и только после подтверждения гипервизор может предоставить ей ресурсы. Благодаря этому производительность гостевых ОС значительно повышается и достигает эффективности, сравнимой с реальным компьютером с такой же конфигурацией.

Второе преимущество: так как конфигурация виртуальной машины полностью эмулируется гипервизором, установщик операционной системы не нужно модифицировать. Выбираем нужные устройства в настройках, подключаем любой стандартный установочный образ нужной операционной системы и запускаем виртуальную машину. Более того, если у вас ещё сохранился процессор с 32-битной архитектурой, с помощью аппаратной виртуализации можно настроить виртуальную машину с 64-битным процессором и установить соответствующую ОС. Независимость от платформы хоста открывает поистине бесконечные возможности для экспериментов.

Контейнеризация или контейнерная виртуализация

Это виртуализация на уровне операционной системы. Если аппаратная виртуализация полностью эмулирует оборудование и позволяет запускать любые ОС, внутри контейнера можно запустить только аналогичную хосту операционную систему. Преимуществом этого подхода является скорость, с которой создаётся контейнер — секунды, тогда как для запуска виртуальной машины счёт времени идёт на минуты. Так происходит потому, что полноценной виртуальной машине нужно сначала инициализировать всё оборудование, запустить эмуляцию и только после этого начать загружать операционную систему. При контейнеризации ОС по факту уже работает. Остаётся только создать замкнутую среду — тот самый контейнер, в котором будет запущен ещё один экземпляр операционной системы.

Контейнер представляет собой всего лишь один процесс, внутри которого выполняется операционная система. Она существует в своём собственном мире, со своей сетью, своим диском, своей файловой системой и так далее. Эту виртуализацию применяют на уровне сервисов, составляющих части программного продукта. Наиболее известные проекты: OpenVZ, Docker, LXC.Так как Docker очень широко применятся в разработке, у нас есть подробный гайд о том, что это такое, как с ним работать и какие он даёт преимущества — Как и для чего использовать Docker.

Дополнительные возможности виртуализации

В начале 2000-x компания VMWare быстро захватила корпоративный рынок, выпустив гипервизор ESX Server и создав тем самым конкурентную среду. Начиная с этого момента технологии виртуализации стали стремительно развиваться. Огромное количество предприятий начали использовать виртуализацию для решения разных задач.

Резервное копирование

Виртуальная машина по сути представляет из себя набор файлов конфигурации и жесткого диска, а оперативную память тоже можно сохранить в виде файла. Учитывая эти особенности и возможность «заморозить» работу виртуальной машины, стало возможным делать бэкапы виртуальных серверов целиком. Потом, в случае поломки сервера, можно восстановить его из резервной копии. При этом не важно, будет он работать физически на этом же железе или новом, главное, чтобы был установлен нужный гипервизор. Помните, что аппаратная виртуализация даёт независимость от хост-платформы?

Возможность «заморозить» (поставить на паузу) работу виртуальной машины можно использовать для быстрого переключения между окружениями. Допустим, вы разрабатываете приложение для Windows. У вас открыто окно соответствующего редактора, запущены вспомогательные процессы и так далее. Но в тоже время вам нужно работать над другим проектом с совершенно другим окружением и в другой операционной системе.

Работая в виртуальной среде, можно поставить виртуальную машину на паузу и поработать над другим проектом. А когда нужно будет вернуться к первому, достаточно просто оживить виртуальную машину и продолжить работу с того места, на котором вы остановились. Так сохраняется контекст и экономится время, так как всё нужное, вплоть до интерфейса окон, уже настроено и правильно расположено на экране.

Быстрое создание среды для разработки

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

Виртуализация серверов

Так как на одном физическом сервере может располагаться множество виртуальных машин, на которых запущены другие серверы, расходы на их содержание значительно упали. В данный момент можно очень дешево арендовать ресурсы такого виртуального сервера VPS. На таких серверах, например, часто хостятся сайты.

Источник

Виртуализация – теория и практика

Содержание

Замечено, что почти каждый человек подсознательно понимает значение слова «виртуальность», а вот дать определение может далеко не всегда. Но, в большинстве случаев, это понятие связывается именно с компьютерной отраслью: одни вспоминают популярную передачу 90-х годов «Виртуальная реальность», повествовавшую об играх для 8-битных консолей, другие думают об уже современных средствах, позволяющих погрузиться в «виртуальный мир» (шлемы, перчатки и другие хитрые приспособления).

Такое длинное и, на первый взгляд отвлеченное вступление сделано лишь с одной целью – чтобы Вы, уважаемый читатель, тоже поразмыслили над термином «виртуальность». Я долго думал, как проиллюстрировать значение этого слова в естественных науках и применительно к компьютерным технологиям в частности. Не давать же определение из словаря, который, безусловно, правильно истолкует слово, но, к сожалению не совсем полно и не совсем применительно к нашей сегодняшней теме. В конце концов, пример был найден, в довольно таки необычной области.

В теоретической механике существует «принцип виртуальных перемещений», который используется для решения некоторых задач. Основная мысль, если быть кратким, заключается в том, что рассматриваемая система, находящаяся в равновесии, приводится в движение, путем теоретического освобождения от удерживающих ее связей (то есть рассматриваются перемещения, которые могли бы произойти, если бы не связи). Этот принцип, в свое время, был переименован у нас на родине (тогда еще СССР) в «принцип возможных перемещений». Таким образом, мы видим, что термин «виртуальный» является эквивалентом «возможного«!

Как мне кажется, это пример чрезвычайно удачно иллюстрирует понятие виртуализации в том числе и в сфере IT: с помощью данной технологии можно программно создавать возможную конфигурацию компьютера, а именно создать возможный (или же виртуальный) процессор, память, жесткие диски и другие комплектующие.

А теперь дадим более четкое определение:

Это определение довольно жёстко и, в какой-то мере, трудно для восприятия. Поэтому, мы для примера рассмотрим самую распространенную на сегодняшний день ситуацию, когда на компьютере некоего пользователя установлена MS Windows XP. Если ему потребуется работать, например, в ОС Linux, для этого необходимо будет установить эту систему либо на другой жесткий диск, либо на один из логических дисков уже имеющегося.

Оба эти варианта, несомненно, стеснят пользователя, к тому же работать в каждой из этих систем придется по очереди. Чтобы избежать всех этих неудобств, можно воспользоваться виртуализацией. С её помощью можно инсталлировать Linux на созданный виртуальный диск, расположенный на винчестере и без всяких проблем запускать систему из под Windows. Таким образом, мы получим возможность работать с двумя принципиально различными ОС одновременно, и при этом, в некоторых случаях, даже обмениваться между ними информацией. Подробнее об этом случае мы поговорим далее, рассматривая конкретные примеры программ виртуализации.

Для реализации самой виртуализации существует два подхода аппаратный и программный.

Аппаратная виртуализация #

Реализуется за счёт так называемого гипервизора (Hypervisor) – специализированного программного обеспечения, которое само является в некотором роде операционной системой. В литературе также часто используется термин монитор или же менеджер виртуальных машин (Virtual Machine Monitor/Manager, сокращенно VMM). Это своего рода «программная прослойка» или «программный слой», поскольку именно гипервизор обеспечивает взаимодействие операционных систем и аппаратного обеспечения (в частности, процессора). Таким образом, гостевые системы используют не ресурсы хост системы, а напрямую аппаратные ресурсы компьютера. Гипервизор управляет виртуальными машинами, распределяет ресурсы, обеспечивает их независимость и, в некоторых случаях, взаимодействие.

Самое удивительное, когда я просматривал при подготовке этой статьи публикации в печатных и электронных изданиях, в большинстве из них при упоминании аппаратной техники виртуализации напрочь отсутствовала информация о хост-системе. В нескольких даже явно указывалось, что абсолютно все действия совершает гипервизор. Естественно, что это не так. Гостевые системы по-прежнему должны устанавливаться в хост системе, но через специализированное программное обеспечение, поддерживающее техники аппаратной виртуализации. К наиболее известным продуктам этого класса относится качественный, функциональный, и при этом совершенно бесплатный Xen, в след за которым поддержку данной технологии получили продукты и других компаний.

На сегодняшний день на рынке существуют две технологии аппаратной виртуализации, представленные двумя крупнейшими производителями процессоров Intel и Advanced Micro Devices (AMD).

Технология Intel Virtualization Technology (Intel VT) требует поддержки не только со стороны процессора, но также чипсета и BIOS материнской платы. Принцип работы следующий: пользователь запускает программу виртуализации, которая в свою очередь активирует специальный режим работы процессора. Далее всю работу по корректному обслуживанию виртуальной машины берет на себя VMM.

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

По данным официального сайта Intel приводим список процессоров, на момент написания статьи поддерживающих данную технологию. Обратите внимание, в некоторых, даже относительно новых линейках присутствуют экземпляры без Intel VT.

AMD предложила своим пользователям собственную технологию AMD Virtualization (AMD-V), базирующуюся на другой фирменной технологии Direct Connect. Сама виртуализация построена таким образом, что VMM полагает все запущенные на компьютере операционные системы виртуальными:

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

При создании виртуальной машины процессор переходит в так называемый гостевой режим, после чего VMM, в отличии от технологии Intel, уже практически не принимает участие в работе системы.

Со списком процессоров поддерживающих технологию дела обстоят немного хуже. По совершенно непонятным причинам, AMD не опубликовала список процессоров с поддержкой виртуализации. И, что самое удивительное, это даже не всегда упоминается в спецификации. Однако на официальном форуме удалось выяснить, что AMD-V поддерживают все процессоры на сокетах AM2, S1, F, кроме линейки Sempron. Следует отметить, что, не смотря на всю внешнюю схожесть, эти технологии не совместимы между собой. Таким образом, использовать аппаратную виртуализацию IVT за счет программ поддерживающих исключительно технологию AMDV, и наоборот, не получится.

Сразу оговоримся, что делать какие-либо выводы и отдавать предпочтения той или иной технологии на данном этапе просто бессмысленно. Всякие заключения будут большей частью основываться на предположениях, что, по определению не может быть объективным сравнением. Для того, что бы сопоставить эти технологии, необходимо провести многочисленные довольно сложные тесты, которые совершенно не являются темой данной статьи.

Программная виртуализация #

В этом случае не требуется никакого специализированного аппаратного обеспечения, как в случае с виртуализацией аппаратной. Пользователь просто устанавливает одну из программ виртуализации, создаёт в ней виртуальные машины и запускает на них гостевые операционные системы. При этом, разумеется, используются лишь ресурсы потребляемые хост-системой.

Среди наиболее aизвестных продуктов данного класса можно выделить линейку программ VMware (Workstation, Server, Player), VirtualBox, Parallels Workstation, Microsoft Virtual PC, Qemu и Bochs. Функциональность всех этих продуктов будет рассмотрена нами чуть-чуть попозже. Также для каждой из них будет дана достаточно подробная инструкция по установке гостевой операционной системы (на примере дистрибутива Ubuntu, в последнее время пользующегося большой популярностью у многих пользователей Linux).

Итак, в данных обзорах Вы можете ознакомиться с различными программами виртуализации:

Упомянутый ранее Xen, было решено не рассматривать, поскольку он предназначен для использования в первую очередь на платформах поддерживающих аппаратный метод, и при отсутствии оного требуется весьма трудоемкая модификация ядра устанавливаемой системы, к тому же устанавливается он исключительно под ОС Linux. Также отмечу, что большинство упомянутых выодуктов поддерживают техники аппаратной виртуализации.

Виртуальная машина и внешний мир #

Ранее нами было упомянуто, что в некоторых случаях должно осуществляться взаимодействие виртуальной и реальных систем. Что это означает на практике? Всё просто – программы виртуализации должны по требованию пользователя предоставлять сервис по обмену данными между системами. Это может быть, например, обмен файлами и (причем как в направлениях хост ↔ гость, так и гость ↔ гость) и настройка локальной сети. Иными словами, виртуальная машина должна побыть столь же полноценна и функциональна, как и реальная.

На практике такое реализовать не представляется возможным, ведь если обеспечить поддержку аппаратных ресурсов вроде видео и звуковых карт, USB-устройств и прочей «железной» братии еще можно, то с программным обеспечением дела обстоят много хуже. В некоторых случаях нет полноценной поддержки даже самой хост-системы. Например, отсутствует возможность назначать общие папки (иными словами «расшаривать», от англ. «sharing»), доступные как хосту, так и гостевой ОС), что делает довольно запутанной схему обмена информацией между системами.

Аппаратная или программная виртуализации? #

А ведь действительно, давайте зададимся вопросом, о каковы же преимущества аппаратной виртуализации перед программной? Зачем тратить деньги на процессор, поддерживающий данную возможность? Дело в том, что за счет этого механизма можно в большой степени увеличить быстродействие системы в целом. Это будет происходить за счет того, что гипервизор, как мы выяснили ранее, при выполнении операций будет взаимодействовать напрямую с процессором.

Оценки быстродействия разнятся, доходя порой до полной противоположности. Так, в одних источниках сообщалось о достижении 90% и более использования производительности физического процессора, в других – об отсутствии таковой и, в некоторых случаях, даже об её потере.

Для чего нужна виртуализация? #

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

Источник

Анализ современных технологий виртуализации

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

В настоящее время все большую популярность набирают технологии виртуализации. И это не случайно – вычислительные мощности компьютеров растут. В результате развития технологий, появляются шести-, восьми-, шестнадцатиядерные процессоры (и это еще не предел). Растет пропускная способность интерфейсов компьютеров, а также емкость и отзывчивость систем хранения данных. В результате возникает такая ситуация, что имея такие мощности на одном физическом сервере, можно перенести в виртуальную среду все серверы, функционирующие в организации (на предприятии). Это возможно сделать с помощью современной технологии виртуализации.

Технологии виртуализации в настоящее время становятся одним из ключевых компонентов современной ИТ-инфраструктуры крупных предприятий (организаций). Сейчас уже сложно представить построение нового серверного узла компании без использования технологии виртуализации. Определяющими факторами такой популярности, несмотря на некоторые недостатки, можно назвать экономию денег и времени, а также высокий уровень безопасности и обеспечение непрерывности бизнес-процессов.

В данной статье приведен анализ современной технологии виртуализации, ее преимуществ и недостатков. Также рассмотрены современные системы виртуализации и подходы к созданию виртуальных сред.

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

Виртуализацией также называется ситуация, когда несколько компьютеров представляются как один отдельный компьютер. Обычно это называют серверным кластером или grid computing.

Виртуализация тема не новая, фактически ей уже более четырех десятилетий. IBM признала важность виртуализации еще в 1960-х вместе с развитием компьютеров класса «мэйнфрэйм». Например, System/360™ Model 67 виртуализировала все интерфейсы оборудования через программу Virtual Machine Monitor (VMM). На заре вычислительной эры операционную систему называли супервизор (supervisor). Когда стало возможным запускать одну операционную систему на другой операционной системе, появился термин гипервизор (hypervisor) (был введен в 1970-х).

VMM запускается непосредственно на основном оборудовании, позволяющем создавать множество виртуальных машин (VM). При этом каждая виртуальная машина может обладать своей собственной операционной системой.

Другое использование виртуализации заключается в симуляции процессора. Это, так называемая, P-code (или pseudo-code) машина. P-code – это машинный язык, который выполняется на виртуальной машине, а не на реальном оборудовании. P-code стал известен в начале 1970-х. С помощью него происходило компилирование программы на Pascal в P-code и потом выполнение ее на P-code виртуальной машине.

Новый аспект виртуализации был назван командной виртуализацией или бинарной виртуализацией. В этом случае виртуальные команды переводятся (транслируются) на физические команды основного оборудования. Обычно это происходит динамически. Поскольку код исполняемый, переводится в сегмент кода. Если происходит разветвление, то новый сегмент кода забирается и переводится.

Когда производится виртуализация, существует несколько способов ее осуществления, с помощью которых достигаются одинаковые результаты через разные уровни абстракции. У каждого способа есть свои достоинства и недостатки, но главное что каждый из них находит свое место в зависимости от области применения.

Можно считать, что самая сложная виртуализация обеспечивается эмуляцией аппаратных средств. В этом методе VM аппаратных средств создается на хост-системе, чтобы эмулировать интересующее оборудование.

Другое интересное использование эмуляции – это эмуляция оборудования, которая заключается в совместном развитии встроенного программного обеспечения и аппаратных средств. В этом методе VM аппаратных средств создается на хост-системе, чтобы эмулировать интересующее оборудование.

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

Эмуляция оборудования использует VM, чтобы моделировать необходимые аппаратные средства.

Вместо того чтобы дожидаться, когда реальные аппаратные средства будут в наличии, разработчики встроенного программного обеспечения могут использовать виртуальное оборудование для разработки и тестирования программного обеспечения.

Главная проблема при эмуляции аппаратных средств состоит существенном замедлении выполнения программ в такой среде. Поскольку каждая команда должна моделироваться на основных аппаратных средствах, при этом замедление в 100 раз при эмуляции является обычным делом. Однако эмуляция аппаратных средств имеет существенные преимущества. Например, используя эмуляцию аппаратных средств, можно управлять неизмененной операционной системой, предназначенной для PowerPC® на системе с ARM процессором. также можно управлять многочисленными виртуальными машинами, каждая из которых будет моделировать другой процессор.

Полная (аппаратная) виртуализация, или «родная» виртуализация, является другим способом виртуализации. Эта модель использует менеджер виртуальных машин (гипервизор), который осуществляет связь между гостевой операционной системой и аппаратными средствами системы.

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

Полная виртуализация использует гипервизор, чтобы разделять основные аппаратные средства.

Взаимодействие между гостевой операционной системой (ОС) и оборудованием осуществляется посредством гипервизора. Внутри гипервизора должна быть установлена и настроена определенная защита, потому, что основные аппаратные средства не принадлежат ОС, а разделяются гипервизором. При построении крупных корпоративных систем, как правило, используется именно аппаратная виртуализация. При этом крупные вендоры такие как VMware, IBM и Microsoft разрабатывают свои платформы виртуализации на базе технологий аппаратной виртуализации Intel VT (VT-x), AMD-V.

Паравиртуализация — это другой популярный способ, который имеет некоторые сходства с полной виртуализацией. Этот метод использует гипервизор для разделения доступа к основным аппаратным средствам, но объединяет код, касающийся виртуализации, в непосредственно операционную систему. Этот подход устраняет потребность в любой перекомпиляции или перехватывании, потому что сами операционные системы кооперируются в процессе виртуализации.

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

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

Паравиртуализация требует, чтобы гостевая ОС была изменена для гипервизора, и это является недостатком метода. Однако, паравиртуализация предлагает высокую производительность, почти как у реальной системы. При этом, как и при полной виртуализации, одновременно могут поддерживаться различные операционные системы. Но определенным недостатком паравиртуализации можно считать ограниченное количество поддерживаемых ОС. Поскольку есть необходимость вносить изменения в код ядра ОС, что не всегда представляется возможным в силу закрытости некоторых ОС.

Из известных гипервизоров паравиртуализацию наравне с аппаратной виртуализацией использует Xen и его ответвления (Citrix XenServer, XCP).

Виртуализация уровня операционной системы. Эта техника виртуализирует серверы непосредственно над операционной системой. Этот метод поддерживает единственную операционную систему и, в самом общем случае, просто изолирует независимые виртуальные серверы (контейнеры) друг от друга. Для разделения ресурсов одного сервера между контейнерами, данная виртуализация требует внесения изменений в ядро операционной системы (например, как в случае с OpenVZ), но при этом преимуществом является родная производительность, без «накладных расходов» на виртуализацию устройств.

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

Виртуализация уровня операционной системы изолирует виртуальные серверы.

Этот подход использован в Solaris Containers, FreeBSD jail и Virtuozzo/OpenVZ в ОС Linux и *BSD, а также в Linux Containers (LXC), про которые уже немало написано на Хабре.

Теперь постараемся ответить на вопрос: «Зачем нужна виртуализация?». В настоящее время существует множество причин использования виртуализации. Возможно, что самой важной причиной является, так называемая, серверная консолидация. Проще говоря, возможность виртуализировать множество систем на отдельном сервере. Это дает возможность предприятию (организации) сэкономить на мощности, месте, охлаждении и администрировании из-за наличия меньшего количества серверов. При этом немаловажным фактором является абстрагирование от оборудования. Например, сервера иногда выходят из строя. При этом есть возможность перераспределить нагрузку на оборудование. Отсутствие привязки, к какому либо «железу» существенно облегчает жизнь IT-отделу и снижает риск простоя предприятия.

Другая возможность использования виртуализации заключается в том, что бывает изначально трудно определить нагрузку на сервер. При этом процедура виртуализации поддерживает так называемую живую миграцию (live migration). Живая миграция позволяет ОС, которая перемещается на новый сервер, и ее приложениям сбалансировать нагрузку на доступном оборудовании.

Используя возможности современных ПК можно легко развернуть любой виртуальный сервер даже на домашнем компьютере, а затем легко перенести его на другое оборудование. Виртуализация также важна для разработчиков. Например, виртуализация позволяет управлять несколькими операционными системами, и если одна из них терпит крах из-за ошибки, то гипервизор и другие операционные системы продолжают работать. Это позволяет сделать отладку ядра подобной отладке пользовательских приложений.

В целом можно выделить следующие преимущества использования виртуализации:

1. Сокращение затрат на приобретение и поддержку оборудования. В современных условиях практически в каждой компании всегда найдется один или два сервера имеющие несколько ролей, например, почтовый сервер, файловый сервер, сервер базы данных и т.д. Безусловно, на одной физической машине можно поднимать по несколько программных комплексов (серверов), выполняющих различные задачи. Но очень часто бывают ситуации, когда установка нового ПО требует независимой серверной единицы. В таком случае как раз и придет на выручку виртуальная машина с требуемой ОС. Сюда же можно отнести случаи, когда в сети необходимо иметь несколько независимых друг от друга виртуальных серверов со своим набором служб и своими характеристиками, которые должны существовать как независимые узлы сети. Типичный пример – это услуги VPS-хостинга.

2. Сокращение серверного парка. Преимущество виртуализации состоит в том, что можно значительно сократить количество физических ЭВМ. В результате меньше времени и денег тратится на поиск, закупку и замену оборудования. Наряду с этим сокращаются площади, выделяемые под содержание серверной базы.

3. Сокращение штата IT-сотрудников. На обслуживание меньшего количества физических ЭВМ требуется меньше людей. С точки зрения руководства компании, сокращение штата — это сокращение серьезной статьи расходов предприятия.

4. Простота в обслуживании. Добавить жесткий диск или расширить существующий, увеличить количество оперативной памяти, все это занимает определенное время в случае с физическим сервером. Отключение, отсоединение из стойки, подключение нового оборудования, включение – в случае использования виртуализации все эти действия опускаются, и операция сводится к нескольким щелчкам мыши или командам администратора.

5. Клонирование и резервирование. Еще одним плюсом виртуализации является простота клонирования виртуальных машин. Например, компания открывает новый офис. При этом серверная инфраструктура центрального офиса стандартизирована и представляет собой несколько серверов с одинаковыми настройками. Развертывание такой инфраструктуры сводится к простому копированию образов на сервер нового офиса, конфигурировании сетевого оборудования и изменению настроек в прикладном ПО.

Программная виртуализация что это. Смотреть фото Программная виртуализация что это. Смотреть картинку Программная виртуализация что это. Картинка про Программная виртуализация что это. Фото Программная виртуализация что это

Вы еще не используете виртуализацию?

Сейчас уже сложно представить себе ИТ-отрасль без виртуализации, развитие информационных систем организаций тесно связано с применением технологий виртуализации. Причем данные технологии позволяют значительно сократить расходы, связанные с приобретением и обслуживанием серверных систем, сократить время на восстановление информации или развертывания аналогичных систем в новом оборудовании. Если вы до сих пор еще не используете преимущества виртуализации, то стоит об этом задуматься уже сейчас.
Наша компания широко использует преимущества контейнерной виртуализации практически во всех проектах. И если того требует ситуация, используем также полную виртуализацию. Мы рекомендуем всем предприятиям и организациям, имеющим в своем парке несколько серверов перейти к внедрению описанных в данной статье технологий.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *