Хостовая машина это что

Что такое хост-машина

Хост (от англ. host — «хозяин, принимающий гостей») — любое устройство, предоставляющее сервисы формата «клиент-сервер» в режиме сервера по каким-либо интерфейсам и уникально определённое на этих интерфейсах. В более частном случае под хостом могут понимать любой компьютер, сервер, подключённый к локальной или глобальной сети.

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

Например, в реализации протокола USB управлением и координацией каждой группы клиентских устройств занимается отдельный USB Host Controller. В данном случае он выступает в качестве хоста протокола USB. С другой стороны, при выполнении, например, команды ping по произвольному IP-адресу хостом может называться компьютер, обладающий этим адресом, и предоставляющий сервис ответа на ICMP-пакеты. В этом случае такой компьютер выступит как хост сервисов ICMP.

Чаще всего, однако, под «хостом» без дополнительных комментариев подразумевается хост протокола TCP/IP, то есть сетевой интерфейс устройства, подключённого к IP-сети. Как и всякий другой хост, этот имеет уникальное определение в среде сервисов TCP/IP (IP-адрес). С хостом протокола TCP/IP может быть также связана необязательная текстовая характеристика — доменное имя.

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

Источник

Что такое виртуальная машина и как её создать

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

Виртуальные машины с каждым годом все больше набирают популярность. Такой рост объясняется двумя основными причинами:

Что такое виртуальная машина

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

Операционная система, на базе которой создаётся новая среда, называется хост-системой (host), а дополнительная операционная система — гостевой.

Виртуализация создается при помощи двух элементов: виртуальной машины и гипервизора.

Виртуальная машина (ВМ или VM) — программа, с помощью которой можно создать гостевую операционную систему на компьютере.

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

Есть три вида гипервизоров:

Аппаратный. Такие гипервизоры используют Hyper-V, KVM, ESXi. Xen. Аппаратный гипервизор устанавливается прямо на «железо» и выполняет функции эмуляции физического аппаратного обеспечения. То есть такой гипервизор является минимальной операционной системой.

Хостовый гипервизор запускается на обычной ОС, как и другие приложения в системе. В этом случае гостевая ОС выполняется как процесс на хосте, а гипервизор разделяет гостевую ОС и ОС хоста. Примеры гипервизоров этого типа: VMware, VirtualBox и Parallels Desktop для macOS.

Гибридный. Смесь аппаратного и хостового гипервизора. Аппаратными средствами управляет первый тип гипервизора. Хостовый работает с остальными аппаратными компонентами. Такой вид управления имеет Hybrid, Type-1+.

Зачем нужна виртуальная машина и виртуализация

Для чего используют виртуализацию:

Преимущества и недостатки использования виртуальной машины

Сохранение текущего состояния машины. Если нужно выключить ПК или перейти к другой задаче, то машина сохранит все настройки. При следующей загрузке ВМ откроется в том состоянии, в котором находилась в момент выключения.

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

Машину можно сохранять или дублировать как изолированную среду. Её можно будет запустить позднее или скопировать на другой ПК со всеми заданными конфигурациями.

Для переподключения на другую ОС не нужно перезагружать компьютер.

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

ОС в виртуальных машинах работают медленнее. Несмотря на постоянное развитие ВМ, работа виртуальных ОС ниже традиционных.

Виртуальная платформа поддерживает не весь функционал устройства. Например, VMware поддерживает USB 3.0, контроллеры портов COM и LPT и приводы CD-ROM, но виртуализация видеоадаптеров и поддержка функций ускорения трехмерной графики пока малодоступны.

Популярные виртуальные машины

Самыми популярным виртуальным машинам являются:

VMware

VMware — одна из самых популярных виртуальных машин для крупных задач. VMware имеет 2 вида: Player (бесплатная версия) и Workstation (платная версия). Для macOS есть специальная версия VMware Fusion и VMware Fusion Pro.

VirtualBox

VirtualBox — простой и бесплатный инструмент для виртуализации от компании ORACLE. Можно установить самые популярные операционные системы (Windows, Linux-подобные ОС, FreeBSD, macOS). Также VirtualBox может работать с VM, которые были созданы в платной версии VMware Workstation.

Microsoft Hyper-V

Microsoft Hyper-V — VM для Windows 10. Не работает на других ОС.

Parallels Desktop

Несмотря на развитость всех программ для виртуализации, самым часто используемым инструментом является VirtualBox. Он нашел свое применение частными лицами и организациями. Далее мы рассмотрим, как создать VM и установить операционную систему в программе VirtualBox.

Как создать виртуальную машину VirtualBox

Скачайте и установите VirtualBox на компьютер.

Откройте панель управления Oracle и нажмите Создать:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

3. Введите название виртуальной машины (имя может быть любое). Кликните Далее:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

4. Укажите объём памяти для машины. Для этого сдвиньте ползунок вправо. Нажмите Далее:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

5. Выберите пункт «Создать новый виртуальный жёсткий диск» и кликните Создать:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

6. Укажите тип файла «VDI (VirtualBox Disk Image)» и нажмите Далее:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

7. Выберите формат хранения «Динамический виртуальный жёсткий диск». Нажмите Далее:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

8. Укажите объём жёсткого диска 20 ГБ. Кликните Создать:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

Готово, вы создали ВМ на VirtualBox. Теперь переходите к установке операционной системы:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

Как установить операционную систему в VirtualBox

Рассмотрим, как установить операционную систему на примере Ubuntu 20.04.

Скачайте дистрибутив Ubuntu на компьютер.

Откройте панель управления Oracle и нажмите Настроить:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

3. Перейдите в раздел Система. На вкладке «Материнская плата» поставьте галочку напротив пункта «Гибкий диск»:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

4. На вкладке «Процессор» выберите 2 ядра:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

5. Перейдите в раздел Дисплей. Поставьте галочку напротив пункта «Включить 3D-ускорение» и передвиньте ползунок вправо, чтобы выделить максимально возможный объём видеопамяти:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

6. Перейдите в раздел Носители и выберите «Пусто». Затем нажмите на иконку ДискВыбрать образ оптического диска. Загрузите дистрибутив Ubuntu, который вы скачали на первом шаге.

7. После загрузки кликните Ок:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

8. На главной странице нажмите Запустить:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

9. Подождите, пока загрузится машина:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

10. В приветственном окне выберите язык:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

11. Нажмите установить Ubuntu:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

12. Выберите раскладку клавиатуры «Russian». Нажмите Продолжить:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

13. Выберите пункты «Обычная установка» и «Загрузить обновления во время установки Ubuntu». Затем кликните Продолжить:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

14. Выберите тип установки «Стереть диск и установить Ubuntu» и нажмите Установить:
Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

Затем кликните Продолжить:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

15. Назначьте нужный регион и нажмите Продолжить:

16. Зарегистрируйтесь. Задайте имя и пароль, остальные поля будут заполнены автоматически. Нажмите Продолжить:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

17. Дождитесь окончания установки и кликните Перезагрузить:

18. Дождитесь перезагрузки и нажмите Enter:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

19. Выберите учётную запись, которую вы создали на шаге 15:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

20. Введите пароль, который вы задали при создании учётной записи:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

21. Примите предлагаемые настройки или нажмите Далее в правом верхнем углу экрана:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

Готово, вы установили ОС Ubuntu 20.04 и можете приступать к работе:

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

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

Источник

Архитектура Hyper-V: Глубокое погружение

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что

Что же такое – Hyper-V?

Hyper-V – это одна из технологий виртуализации серверов, позволяющая запускать на одном физическом сервере множество виртуальных ОС. Эти ОС именуются «гостевыми», а ОС, установленная на физическом сервере – «хостовой». Каждая гостевая операционная система запускается в своем изолированном окружении, и «думает», что работает на отдельном компьютере. О существовании других гостевых ОС и хостовой ОС они «не знают».
Эти изолированные окружения именуются «виртуальными машинами» (или сокращенно — ВМ). Виртуальные машины реализуются программно, и предоставляют гостевой ОС и приложениям доступ к аппаратным ресурсам сервера посредством гипервизора и виртуальных устройств. Как уже было сказано, гостевая ОС ведет себя так, как будто полностью контролирует физический сервер, и не имеет представления о существовании других виртуальных машин. Так же эти виртуальные окружения могут именоваться «партициями» (не путать с разделами на жестких дисках).
Впервые появившись в составе Windows Server 2008, ныне Hyper-V существует в виде самостоятельного продукта Hyper-V Server (де-факто являющегося сильно урезанной Windows Server 2008), и в новой версии – R2 – вышедшего на рынок систем виртуализации Enterprise-класса. Версия R2 поддерживает некоторые новые функции, и речь в статье пойдет именно об этой версии.

Гипервизор

Термин «гипервизор» уходит корнями в 1972 год, когда компания IBM реализовала виртуализацию в своих мэйнфреймах System/370. Это стало прорывом в ИТ, поскольку позволило обойти архитектурные ограничения и высокую цену использования мэйнфреймов.
Гипервизор – это платформа виртуализации, позволяющая запускать на одном физическом компьютере несколько операционных систем. Именно гипервизор предоставляет изолированное окружение для каждой виртуальной машины, и именно он предоставляет гостевым ОС доступ к аппаратному обеспечению компьютера.
Гипервизоры можно разделить на два типа по способу запуска (на «голом железе» или внутри ОС) и на два типа по архитектуре (монолитная и микроядерная).

Гипервизор 1 рода

Гипервизор 1 типа запускается непосредственно на физическом «железе» и управляет им самостоятельно. Гостевые ОС, запущенные внутри виртуальных машин, располагаются уровнем выше, как показано на рис.1.

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что
Рис.1 Гипервизор 1 рода запускается на «голом железе».

Гипервизор 2 рода

В отличие от 1 рода, гипервизор 2 рода запускается внутри хостовой ОС (см. рис.2).

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что
Рис.2 Гипервизор 2 рода запускается внутри гостевых ОС

Виртуальные машины при этом запускаются в пользовательском пространстве хостовой ОС, что не самым лучшим образом сказывается на производительности.
Примерами гипервизоров 2 рода служат MS Virtual Server и VMware Server, а так же продукты десктопной виртуализации – MS VirtualPC и VMware Workstation.

Монолитный гипервизор

Гипервизоры монолитной архитектуры включают драйверы аппаратных устройств в свой код (см. рис. 3).

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что
Рис. 3. Монолитная архитектура

Микроядерная архитектура

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

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что
Рис. 4. Микроядерная архитектура

Архитектура Hyper-V

На рис.5 показаны основные элементы архитектуры Hyper-V.

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что
Рис.5 Архитектура Hyper-V

Как видно из рисунка, гипервизор работает на следующем уровне после железа – что характерно для гипервизоров 1 рода. Уровнем выше гипервизора работают родительская и дочерние партиции. Партиции в данном случае – это области изоляции, внутри которых работают операционные системы. Не нужно путать их, к примеру, с разделами на жестком диске. В родительской партиции запускается хостовая ОС (Windows Server 2008 R2) и стек виртуализации. Так же именно из родительской партиции происходит управление внешними устройствами, а так же дочерними партициями. Дочерние же партиции, как легко догадаться – создаются из родительской партиции и предназначены для запуска гостевых ОС. Все партиции связаны с гипервизором через интерфейс гипервызовов, предоставляющий операционным системам специальный API. Если кого-то из разработчиков интересуют подробности API гипервызовов — информация имеется в MSDN.

Родительская партиция

Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что
Рис.6 Компоненты родительской партиции Hyper-V

Стек виртуализации
Рабочий процесс виртуальной машины (VMWP)

Для управления виртуальной машиной из родительской партиции запускается особый процесс – рабочий процесс виртуальной машины (VMWP). Процесс этот работает на уровне пользователя. Для каждой запущенной виртуальной машины служба VMMS запускает отдельный рабочий процесс. Это позволяет изолировать виртуальные машины друг от друга. Для повышения безопасности, рабочие процессы запускаются под встроенным пользовательским аккаунтом Network Service.
Процесс VMWP используется для управления соответствующей виртуальной машиной. В его задачи входит:
Создание, конфигурация и запуск виртуальной машины
Пауза и продолжение работы (Pause/Resume)
Сохранение и восстановление состояния (Save/Restore State)
Создание моментальных снимков (снапшотов)
Кроме того, именно рабочий процесс эмулирует виртуальную материнскую плату (VMB), которая используется для предоставления памяти гостевой ОС, управления прерываниями и виртуальными устройствами.

Виртуальные устройства
Драйвер виртуальной инфраструктуры (VID)

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

Библиотека интерфейса гипервизора

Библиотека интерфейса гипервизора (WinHv.sys) – это DLL уровня ядра, которая загружается как в хостовой, так и в гостевых ОС, при условии установки компонент интеграции. Эта библиотека предоставляет интерфейс гипервызовов, использующийся для взаимодействия ОС и гипервизора.

Провайдеры служб виртуализации (VSP)

Провайдеры служб виртуализации работают в родительской партиции и предоставляют гостевым ОС доступ к аппаратным устройствам через клиент служб виртуализации (VSC). Связь между VSP и VSC осуществляется через виртуальную шину VMBus.

Шина виртуальных машин (VMBus)

Назначение VMBus состоит в предоставлении высокоскоростного доступа между родительской и дочерними партициями, в то время как остальные способы доступа значительно медленнее из-за высоких накладных расходах при эмуляции устройств.
Если гостевая ОС не поддерживает работу интеграционных компонент – приходится использовать эмуляцию устройств. Это означает, что гипервизору приходится перехватывать вызовы гостевых ОС и перенаправлять их к эмулируемым устройствам, которые, напоминаю, эмулируются рабочим процессом виртуальной машины. Поскольку рабочий процесс запускается в пространстве пользователя, использование эмулируемых устройств приводит к значительному снижению производительности по сравнению с использованием VMBus. Именно поэтому рекомендуется устанавливать компоненты интеграции сразу же после установки гостевой ОС.
Как уже было сказано, при использовании VMBus взаимодействие между хостовой и гостевой ОС происходит по клиент-серверной модели. В родительской партиции запущены провайдеры служб виртуализации (VSP), которые являются серверной частью, а в дочерних партициях – клиентская часть – VSC. VSC перенаправляет запросы гостевой ОС через VMBus к VSP в родительской партиции, а сам VSP переадресовывает запрос драйверу устройства. Этот процесс взаимодействия абсолютно прозрачен для гостевой ОС.

Дочерние партиции

Вернемся к нашему рисунку с архитектурой Hyper-V, только немного сократим его, поскольку нас интересуют лишь дочерние партиции.
Хостовая машина это что. Смотреть фото Хостовая машина это что. Смотреть картинку Хостовая машина это что. Картинка про Хостовая машина это что. Фото Хостовая машина это что
Рис. 7 Дочерние партиции

ОС Windows с установленными компонентами интеграции
ОС не из семейства Windows, но поддерживающая компоненты интеграции

Существуют так же ОС, не относящиеся к семейству Windows, но поддерживающие компоненты интеграции.На данный момент – это только SUSE Linux Enterprise Server и Red Hat Enterprise Linux. Такие ОС при установке компонент интеграции используют VSC сторонних разработчиков для взаимодействия с VSC по VMBus и доступа к оборудованию. Компоненты интеграции для Linux разработаны компанией Microsoft совместно с Citrix и доступны для загрузки в Microsoft Download Center. Поскольку компоненты интеграции для Linux были выпущены под лицензией GPL v2, ведутся работы по интеграции их в ядро Linux через Linux Driver Project, что позволит значительно расширить список поддерживаемых гостевых ОС.

Вместо заключения

На этом я, пожалуй, закончу свою вторую статью, посвященную архитектуре Hyper-V. Предыдущая статья вызвала у некоторых читателей вопросы, и надеюсь, что теперь я на них ответил.
Надеюсь, что чтение не было слишком скучным. Я достаточно часто использовал «академический язык», но это было необходимо, поскольку тематика статьи предполагает очень большой объем теории и практически нуль целых нуль десятых практики.

Выражаю огромную благодарность Mitch Tulloch и Microsoft Virtualization Team. На основе их книги Understanding Microsoft Virtualization Solutions и была подготовлена статья.

Источник

Технологии виртуализации

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

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

Основные понятия технологии виртуализации

Виртуальная машина – изолированный программный контейнер, который работает с собственной ОС и приложениями, подобно физическому компьютеру. Виртуальная машина действует так же, как физический компьютер, и содержит собственные виртуальные ОЗУ, жесткий диск и сетевой адаптер.

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

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

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

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

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

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

Гостевая операционная система – это операционная система, устанавливаемая на созданную виртуальную машину. В качестве гостевых операционных систем можно использовать Window, Linux и др.

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

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

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

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

Гостевые операционные системы управляют работой своих приложений в рамках выделенных эмулятором ресурсов.

Рассматривая технологию виртуализации, необходимо изучить эмулятор виртуальных машин, а именно монитор виртуальных машин, являющийся базовой частью технологии виртуализации.

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

Доменная виртуализация основывается на логическом распределении ресурсов на отдельные части (домены). В основном она используется в мэйнфреймах. Этот тип виртуализации появился первым и использовался для распределения ресурсов больших ЭВМ между отдельными пользователями.

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

Существуют три типа программной эмуляции инструкций: полная эмуляция инструкций, выборочная эмуляция инструкций, эмуляция API.

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

Интерпретация каждой инструкции приводит к значительному расходу ресурсов реальной ЭВМ и снижает быстродействие приложений, работающих в гостевой операционной системе. Современные серверы и персональные ЭВМ обладают все большей производительностью. Поэтому виртуализация, с использованием интерпретации инструкций, приобретает популярность. Представителями данного класса виртуальных машин являются: Microsoft Virtual PC, Bochs, Simics и др.

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

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

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

К виртуальным машинам этого типа относятся, например: VMware Workstation, VMware Server, Serenity Virtual Station и др.

В третьем случае, эмулируются API гостевой операционной системы. API (Application Programming Interface) – это интерфейс прикладного программирования.

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

Результат выполнения запроса хостовой операционной системой преобразуется к виду, воспринимаемому гостевой операционной системой, и передается программе, выдавшей запрос.

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

Однако у такой системы виртуализации есть недостатки:

Однако использование эмуляции API позволяет избежать значительных потерь производительности.

В качестве примера виртуальных машин, использующих эмуляцию API, можно привести такие продукты, как:

Безопасность в виртуальных облаках

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

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

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

Для анализа этой опасности попытаемся для начала понять природу гипервизора. Консультант по безопасности и одного из основателей компании Nemertes Research Group Inc. Андреаса Антонопулоса (Andreas Antonopoulos) считает, что «Гипервизоры – узкоспециализированные устройства. Обычный гипервизор меньше и более специализирован, чем операционная система общего назначения, и меньше открыт для атак, так как у него меньше или вообще нет открытых во вне сетевых портов. Гипервизор нечасто меняется и не выполняет приложения сторонних разработчиков. У гостевой ОС, которая может стать жертвой атак, нет прямого доступа к гипервизору. Гипервизор прозрачен для сетевого трафика, если не считать входящий и исходящий трафик выделенного интерфейса управления гипервизором. На настоящий момент не задокументировано ни одной атаки на гипервизоры, что говорит о низкой вероятности таких атак. Поэтому хотя масштаб разрушений в случае компрометации гипервизора может быть огромным (компрометация всех гостевых систем), вероятность такого события низка, потому что уязвимость гипервизора и вероятность атаки очень низкие».

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

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

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

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

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

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

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

При таком подходе может использоваться одна из форм маркировки, подобно той, что применяется в многоуровневых ОС (Trusted Solaris или SE-Linux). Можно также использовать базу данных управления конфигурацией для отслеживания запросов арендаторов на изоляцию приложений.

Билл Майне (Bill Meine), архитектор ПО и специалист по облакам в компании Blackhawk Network отмечает, что во всех этих примерах проблемы возникают, когда арендатору также требуется максимальная защита компонентов приложения от отказов по стандартным причинам, например, из-за необходимости высокой доступности. Дело не в том, что такую схему нельзя заставить работать, а в стоимости всех несовместимых и недогруженных фрагментов сервера (которые нельзя продать), которую приходится учитывать в цене сервиса.

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

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

Источник

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

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