Виртуализация virtualbox

Содержание

Открытая платформа виртуализации VirtualBox

Виртуализация virtualbox
Виртуализация virtualbox

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

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

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

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

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

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

  • Создание «переносных» изолированных пользовательских сред с установленным в них программным обеспечением, направленных на решение определенного круга задач. Например, незачем перегружать операционную систему домашнего компьютера установкой различных специфических программ, которые не используются другими пользователями. Можно создать виртуальную машину с установленным в ней необходимым ПО (например, дизайнерским) и запускать ее только по мере надобности. При этом ее можно легко перенести на другую рабочую станцию и быть уверенным, что реестр, системные файлы и настройки хостовой системы останутся нетронутыми.
  • Создание защищенных сред для выхода в Интернет. Если троянская программа или вирус причинят вред внутри виртуальной машины, то можно удалить эту виртуальную машину и создать новую, при этом все данные хостовой системы будут надежно защищены.
  • Эксперименты с различным программным обеспечением и операционными системами. Возможность одновременного запуска нескольких операционных систем в виртуальных машинах позволяет использовать различные программы в необходимых вам ОС и обеспечивать передачу данных между ними. Безусловно, виртуальные машины открывают широкие просторы для обучения, как новым операционным системам, так и настройке различных сетевых служб и протоколов взаимодействия между различными ОС.

Конечно, на этом варианты использования виртуальных машин дома не заканчиваются.

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

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

Обзор существующих настольных платформ виртуализации

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

Однако лидер в области производства ПО для виртуализации, компания VMware, ориентируется в основном на коммерческое использование своих платформ, и хотя ее мощная платформа виртуализации VMware Workstation 6 является по множеству параметров лучшей на данный момент, у нее есть один неоспоримый минус — она не бесплатна. Пользователи могут также загрузить с сайта бесплатный продукт VMware Player, предназначенный для «проигрывания» виртуальных машин, однако создавать их в нем нельзя. Продукт VMware Server направлен на использование в корпоративной среде для виртуализации серверов малых предприятий и тоже не подходит для домашних пользователей.

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

Компания Parallels также предлагает настольные платформы виртуализации Parallels Workstation для Windows и Linux хостов, а также Parallels Desktop для Mac OS X, которые тоже не являются бесплатными.

К тому же, в связи с успешными продажами продукта Parallels Desktop, компания Parallels, кстати, принадлежащая российской компании SWsoft, несколько приостановила развитие продукта Parallels Workstation и довольно давно не выпускала его новых версий.

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

  • кроссплатформенность
  • поддержка большинства хостовых и гостевых операционных систем
  • возможность использования удобных средств управления виртуальными машинами

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

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

В связи с этим, некоторым компаниям пришлось предоставить бесплатные системы виртуализации (например, VMware Server и Microsoft Virtual Server), которые в основном покрывали потребности корпоративных пользователей. Но вопрос об использовании виртуальных машин дома, по-прежнему, оставался открытым.

[attention type=red][attention type=green][attention type=yellow]
В 2006 году на рынке настольных платформ виртуализации появился новый игрок.
[/attention][/attention][/attention]

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

О платформе VirtualBox

VirtualBox

Платформа VirtualBox представляет собой настольную систему виртуализации для Windows, Linux и Mac OS хостов, поддерживающую операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в качестве гостевых.

После нескольких лет разработки, компанией InnoTek была выпущена ограниченная версия продукта с открытым исходным кодом под лицензией GNU General Public License (GPL) в январе 2007 года. Полная версия продукта с закрытым исходным кодом также доступна для бесплатного персонального использования.

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

Кстати говоря, в данный момент компания InnoTek, помимо платформы VirtualBox, занимается разработкой новой платформы виртуализации на основе гипервизора, тесно связанной с операционной системой Windows, в сотрудничестве с компанией Microsoft.

На данный момент VirtualBox включает в себя следующие возможности:

  • нативная x86-виртуализация, не требующая наличия поддержки аппаратных техник Intel VT или AMD-V (которая, однако, может быть включена в настройках)
  • дружественный пользовательский интерфейс (построенный с помощью Qt3)
  • поддержка Windows, Linux и Mac OS хостовых систем (версия для Mac OS в данный момент находится в стадии беты)
  • наличие Guest VM Additions для упрощения взаимодействия с хостовыми ОС и оптимизации их быстродействия
  • поддержка многопроцессорных и многоядерных систем (только в качестве гостевых, поддержка виртуального SMP для представления многопроцессорности в гостевых системах отсутствует)
  • стабильность (в сравнении с другими Open Source решениями)
  • поддержка виртуализации аудиоустройств
  • высокая производительность (по отзывам множества экспертов выше, чем у продуктов VMware)
  • поддержка различных видов сетевого взаимодействия (NAT, Host Networking via Bridged, Internal)
  • поддержка дерева сохраненных состояний виртуальной машины (snapshots), к которым может быть произведен откат из любого состояния гостевой системы
  • описание настроек виртуальной машины в XML-формате
  • поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами

Эмулируемое аппаратное окружение

Продукт VirtualBox эмулирует следующие компоненты аппаратного обеспечения в виртуальной машине:

  • жесткие диски эмулируются в специальном формате контейнеров VDI (Virtual Disk Images), который в данный момент не совместим с форматами виртуальных дисков других производителей
  • видеоадаптер эмулируется как стандартный VESA с 8 Мб видеопамяти, при этом установка Guest VM Additions (только для Windows и Linux хостов) позволяет увеличить производительность виртуального видеоадаптера и динамически менять размер окна виртуальной машины
  • аудиоконтроллер на базе Intel ICH AC'97
  • сетевой адаптер эмулируется как интерфейс AMD PCNet
  • в издании с закрытым исходным кодом эмулируются также контроллеры USB, при этом USB-устройства, вставленные в разъемы хоста, автоматически подхватываются в гостевой системе. Также если виртуальная машина действует как RDP (Remote Desktop Protocol) сервер, то в клиенте также будут видны USB-устройства

Платформа VirtualBox исполняет код гостевой системы нативно (прямой передачей инструкций процессору хоста).

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

Для этой цели VirtualBox использует оригинальный подход: код, исполняющийся в нулевом кольце гостевой системы, исполняется в первом кольце хостовой системы, которое не используется в архитектуре Intel.

Уникальные функции VirtualBox

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

  • Ярко выраженная модульность системы Платформа VirtualBox имеет модульную архитектуру с хорошо описанными компонентами и предоставляет удобные интерфейсы доступа к виртуальным машинам, которые позволяют контролировать гостевые системы как через GUI, так и через командную строку и удаленно. К тому же, компания InnoTek предоставляет отличный Software Development Kit, и поскольку код платформы открыт, не требуется дополнительных усилий, чтобы написать расширение к системе. В данный момент ведется большая работа по портированию продукта на различные хостовые платформы и разработчикам предоставляются все необходимые инструменты и интерфейсы для доработки VirtualBox.
  • Виртуальная машина может действовать как RDP-сервер В отличие от других платформ виртуализации, VirtualBox может действовать как RDP-сервер и управляться любым клиентом, поддерживающим протокол RDP. Также поддерживается функция USB over RDP. Стоит отметить, что компания VMware в вышедшей недавно платформе VMware Workstation 6 также предоставляет функцию Act as RDP Server, поэтому эту функцию VirtualBox на данный момент нельзя назвать такой уникальной.
  • iSCSI initiator Компонент iSCSI initiator является одной из закрытых частей платформы VirtualBox. Он позволяет использовать внешние устройства по протоколу iSCSI в качестве виртуальных дисков в гостевой системе без дополнительной поддержки со стороны гостевой ОС.

Поддерживаемые гостевые и хостовые системы

Компания InnoTek и независимые разработчики, принимающие участие в доработке платформы VirtualBox, постоянно расширяют список поддерживаемых гостевых и хостовых систем. На данный момент продуктом поддерживаются следующие хостовые ОС:

  • Операционные системы семейства Windows (2000/XP/2003/Vista)
  • Linux-платформы, включая:
    • Ubuntu 7.04 («Feisty Fawn»)
    • Ubuntu 6.10 («Edgy Eft»)
    • Ubuntu 6.06 LTS («Dapper Drake»)
    • Debian 3.1 («Sarge»)
    • Debian 4.0 («Etch»)
    • openSUSE 10.2
    • Mandriva Linux 2007.1
    • Red Hat Enterprise Linux 4
    • Univention Corporate Server 1.3-2
  • Mac OS X (в данный момент в стадии бета-тестирования)
  • OS/2 Warp (экспериментально)

Нужно отметить, что в данный момент портирование VirtualBox на платформу OS/2 еще не закончено, и на сайте разработчика присутствуют лишь общие инструкции по сборке системы. При использовании VirtualBox на этой платформе возникают многочисленные проблемы, которые предстоит решить разработчикам.

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

На данный момент поддерживаются следующие гостевые ОС:

Гостевая ОССтатус в данный моментПримечание
Семейство ОС Windows
Windows VistaРаботает, Guest VM Additions доступныНеобходимо установить драйвер сетевой карты вручную (описано в пользовательской документации)
Windows 2000Работает, Guest VM Additions доступны
Windows XPРаботает, Guest VM Additions доступны
Windows Server 2003Работает, Guest VM Additions доступны
Windows NTРаботает, Guest VM Additions доступныНекоторые проблемы на старых пакетах обновления, рекомендуется наличие пакета обновления версии не менее 6а
Windows 98Работает, но не доступны Guest VM Additions
Семйство ОС Linux
Ubuntu 5.10/6.06 Desktop/7.04 herd 5Работает, Guest VM Additions доступны
Ubuntu 6.06 Server/6.10Работает, Guest VM Additions доступныМогут быть проблемы с загрузкой ОС
Debian 3.1Работает, Guest VM Additions доступны

Источник: https://www.ixbt.com/cm/virtualization-virtualbox.shtml

Опыт использования виртуализации на VirtualBox

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

Причины, по которым я тогда выбрал VirtualBox

Причины представлены ниже:

  • Простота использования
  • Отличное руководство, подробно описывающее все аспекты работы VirtualBox
  • Наличие отличных графического, консольного и web-интерфейса
  • Возможность предоставления доступа к консоли гостевой ОС про протоколу RDP
  • Удобство использования

Полное руководство пользователя VirtualBox доступно на сайте производителя.

Причины, по которым я не выбрал бы его сейчас

  • Отсутствие хороших web-морд. Имеющийся web-интерфейс, несмотря на то, что он позволяет совершать с виртуальными машинами большинство требуемых действий (создание, снимки, удаление, создание виртуальных сетей), и реализован очень качественно, обладает следующими ограничениями:
    • Не позволяет назначать права на виртуальные машины (предоставления доступа разработчиками по списку только к своим машинам)
    • Не позволяет управлять несколькими физическими серверами из одной панели управления
    • Не отображает статистику по загрузке сервера
    • Пишется сторонними разработчиками, не имеющими отношения к VirtualBox, в их свободное время, из-за чего вызывает опасение возможность прекращения его развития
  • Более медленная работа при большом количестве запущенных виртуальных машин по сравнению с KVM.
  • Оговорка в лицензии

Подготовка ОС для работы с виртуальными машинами

VirtualBox можно установить практически на любую ОС, однако стабильная работа и все его возможности (например, RDP-подключение к консоли гостевой системы) доступны только на Линуксе, поэтому был выбран Debian Linux.

Для самого VirtualBox специальной настройки ОС не требуется, достаточно выделить отдельный раздел для хранения образов дисков гостевых систем и образов установочных дисков для чистой установки гостевых систем. Однако для управления VirtualBox через Веб-интерфейс (phpvirtualbox) требуется веб-сервер (выбран Apache 2) и PHP 5.

В Debian конфигурация по умолчанию PHP 5 и Apache 2 удовлетворяет требованиям phpvirtualbox, специальным образом настраивать ничего не нужно. Описание конфигурации сервера для виртуалок:

  • cервер имеет имя virtbox.site и адрес 10.0.0.7 (кстати, поищите почему не нужно использовать .local)
  • Раздел для хранения образов гостевых ос создан на отдельном жестком диске и примонтирован в /srv/vdi
  • Установлены пакеты Apache 2 и PHP 5: virtbox# apt-get install apache2 php5

Установка phpvirtualbox

Для Virtualbox существует бесплатный web-интерфейс, реализованный на PHP и использующий встроенную в virtualbox службу удаленного управления virtualbox web service. Устанавливаем phpvirtualbox:

1. На сайте разработчика смотрим последнюю версию и скачиваем ее на сервер:

virtbox# cd /var/www && wget phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip 2. Распаковываем:

virtbox# unzip phpvirtualbox-4.1-7.zip

3. Конфигурируем:

virtbox# cd phpvirtualbox-4.1-7.zip && cp config.php-example config.php && vim config.php

4. Прописываем адрес сервера, на котором работает VirtualBox, для удаленных подключений с помощью встроенного в VirtualBox RDP-plugin:

var $consoleHost = '10.0.0.7';

Внимание! Для успешных подключений на сервере должны быть открыты входящие порты, по умолчанию начиная с 3389 (TCP), по одному порту на гостевую систему. 5. Настраиваем virtualbox web service, для чего создаем файл /etc/vbox/vbox.cfg со следующим содержанием:

VBOXWEB_USER='vbox' VBOXWEB_HOST=127.0.0.1

VBOXWEB_LOGFILE=/srv/log/vboxwebservice

6. Запускаем virtualbox web service, перед этим нужно убедиться в том, что файл /srv/log/vboxwebservice доступен для чтения и записи пользователю vbox:

/etc/init.d/vboxweb-service start.

phpvirtualbox теперь доступен по адресу virtbox.site/phpvirtualbox.

Создание виртуальных машин

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

  1. System
    1. Base Memory: 512 MB
    2. Processor(s): 1
    3. Enable PAE/NX: NO — эмуляция поддержки работы с более чем 4 ГБ памяти для 32-битных систем как правило не нужна
    4. Chipset: PIIX3 — в руководстве ничего не сказано про зависимость быстродействия от типа эмулируемого чипсета, поэтому выбираем по умолчанию
    5. Extended features
      1. Enable IO APIC — без включенной эмуляции APIC некоторые клонированные сервера работать не будут
      2. Hardware clock in UTC time — как правило гостевые системы ожидают системное время в формате UTC, и эта опция отвечает за передачу гостевой ОС времени в UTC, а не в Local time сервера.
      3. Display: 2 MB — минимально возможное значение, при установке этого значения в 1 MB rdp-подключения работать не будут. При создании новых машин можно оставить значение по умолчанию, предлагаемое phpvirtualbox.
      4. Storage: где нужно создать образ диска
  2. Network
    1. Debian: Virtio — Debian с помощью гостевых расширений умеет понимать, что она работает в виртуальной машине, и использовать виртуальную сетевую карту, что дает очень большой выигрыш в производительности
    2. FreeBSD: Intep PRO/1000 MT Server network card — для FreeBSD гостевого драйвера сетевой карты нет, поэтому выбираем эмуляцию самой быстрой карты из доступных. Во FreeBSD устройство называется em0.
  3. Serial ports: Disabled
  4. USB: Disabled
  5. Shared Folders: None — возможность VirtualBox предоставлять доступ гостевой системе к файлам хост-системы как правило не нужна, проще воспользоваться scp или sftp

Для создания виртуальных машин через консоль следуют воспользоваться руководством, раздел 8.6.

Управление через веб-интерфейс

Управление виртуальными машинами через web-интерфейс тривиально, достаточно выделить нужную машину в phpvirtualbox и выбрать в интерфейсе требуемое действие, например Start, Stop (безусловное выключение, отправка сигнала о нажатии кнопки выключения питания, перезагрузка, сохранение состояние гостевой системы с возможностью впоследствии откатить ее состояние и приостановка работы гостевой системы с сохранением ее памяти на диск и возможностью впоследствии загрузки памяти с диска и продолжения работы). По щелчку на гостевой системе правой кнопкой машины доступны операции ее настроек, удаления, просмотра логов и т.д. Также стоит отметить возможность подключения к консоли гостевой системы, что аналогично подключению к реальной машине мыши и клавиатуры. Для этого нужно выделить нужную гостевую систему, выбрать вкладку Console в phpvirtualbox, задать размер экрана (для текстовых режимов работы гостевых ОС достаточно 800х600), нажать Connect и щелкнуть мышью по клиенту удаленного подключения (в котором выводится содержимое консоли гостевой системы). Управлять гостевой системой можно с момента включения.

Управление через консоль

Для управления гостевыми система в VirtualBox используются утилиты VBoxManage и VBoxHeadless, подробное описание которых доступно в руководстве.

Запускать команды нужно от пользователя vbox, под которым работает сам VrtualBox, в случае запуска от другого пользователя или root VirtualBox не сможет найти файлы конфигурации виртуальных машин, которые хранятся в домашней директории пользователя Vbox, и выдаст ошибку. Для перехода под пользователя vbox нужно сказать:

su -s /bin/bash vbox

Оболочку нужно указывать явно, потому что по умолчанию у пользователя vbox стоит оболочка /bin/false. Ниже для примера приведены команды для включения, выключения и работы с образами дисков. 1. Запуск группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage startvm $M –type=headless ; sleep 30 ; done

Если не указывать sleep 30 некоторые машины могут не запуститься из-за очень интенсивного чтения с жесткого диска сервера при запуске и некоторые гостевые системы решат, что у них ошибка чтения с жесткого диска. 2. Выключение группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage controlvm $M acpipowerbutton ; sleep 30 ; done

Практически все машины понимают нажатие на кнопку выключения питания и смогут корректно завершиться. 3. Создание диска фиксированного размера для гостевой системы:

VBoxManage createhd –variant Fixed –size 20000 –format vdi –filename test

4. Преобразование образа диска из формата VirtualBox в формат, понятный другим виртуальным машинам:

VBoxManage internalcommands converttoraw test1.vdi test1.raw

Подключение через RDP

К консоли виртуальных машин можно подключиться через RDP. В Windows нужно открыть Пуск->Все программы->Стандартные->Подключение к удаленному рабочему столу и указать адрес virtbox.test и порт, сопоставленный конкретной гостевой системе, который можно посмотреть в phpvirtualbox.

Для удобства использования в параметрах подключения можно указать разрешение экрана 1024х768, тогда окно с подключением не будет занимать весь экран и перехватывать системные сочетания клавиш, такие как Alt+Tab.

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

Для включения этой настройки нужно в настройках виртуальной машины в phpvirtualbox в разделе Display на вкладке Remote Display установить галочку Allow Multiple Connections.

Создание снимков гостевых систем

Снимки дают возможность сохранения состояния гостевых систем и возврата к этому состоянию по требованию.

Что это означает на практике?

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

При создании снимка гостевой системы занимаемое ею место на диске фактически не увеличивается, дополнительный объем будут занимать только измененные по сравнению с уже существовавшим образом диска гостевой машины данные. Например, если будет изменен файл /etc/rc.conf, измененная копия будет записана отдельно.

Для создания снимка через phpvirtualbox нужно:

  • Выделить гостевую систему, с которой нужно сделать снимок
  • Перейти на вкладку «Snapshots»
  • Нажать кнопку «Take Snapshot» (с изображением фотоаппарата)

Источник: https://habr.com/ru/post/142963/

Открытая платформа виртуализации VirtualBox

Виртуализация virtualbox
Виртуализация virtualbox

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

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

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

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

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

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

  • Создание «переносных» изолированных пользовательских сред с установленным в них программным обеспечением, направленных на решение определенного круга задач. Например, незачем перегружать операционную систему домашнего компьютера установкой различных специфических программ, которые не используются другими пользователями. Можно создать виртуальную машину с установленным в ней необходимым ПО (например, дизайнерским) и запускать ее только по мере надобности. При этом ее можно легко перенести на другую рабочую станцию и быть уверенным, что реестр, системные файлы и настройки хостовой системы останутся нетронутыми.
  • Создание защищенных сред для выхода в Интернет. Если троянская программа или вирус причинят вред внутри виртуальной машины, то можно удалить эту виртуальную машину и создать новую, при этом все данные хостовой системы будут надежно защищены.
  • Эксперименты с различным программным обеспечением и операционными системами. Возможность одновременного запуска нескольких операционных систем в виртуальных машинах позволяет использовать различные программы в необходимых вам ОС и обеспечивать передачу данных между ними. Безусловно, виртуальные машины открывают широкие просторы для обучения, как новым операционным системам, так и настройке различных сетевых служб и протоколов взаимодействия между различными ОС.

Конечно, на этом варианты использования виртуальных машин дома не заканчиваются.

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

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

Обзор существующих настольных платформ виртуализации

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

Однако лидер в области производства ПО для виртуализации, компания VMware, ориентируется в основном на коммерческое использование своих платформ, и хотя ее мощная платформа виртуализации VMware Workstation 6 является по множеству параметров лучшей на данный момент, у нее есть один неоспоримый минус — она не бесплатна. Пользователи могут также загрузить с сайта бесплатный продукт VMware Player, предназначенный для «проигрывания» виртуальных машин, однако создавать их в нем нельзя. Продукт VMware Server направлен на использование в корпоративной среде для виртуализации серверов малых предприятий и тоже не подходит для домашних пользователей.

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

Компания Parallels также предлагает настольные платформы виртуализации Parallels Workstation для Windows и Linux хостов, а также Parallels Desktop для Mac OS X, которые тоже не являются бесплатными.

К тому же, в связи с успешными продажами продукта Parallels Desktop, компания Parallels, кстати, принадлежащая российской компании SWsoft, несколько приостановила развитие продукта Parallels Workstation и довольно давно не выпускала его новых версий.

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

  • кроссплатформенность
  • поддержка большинства хостовых и гостевых операционных систем
  • возможность использования удобных средств управления виртуальными машинами

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

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

В связи с этим, некоторым компаниям пришлось предоставить бесплатные системы виртуализации (например, VMware Server и Microsoft Virtual Server), которые в основном покрывали потребности корпоративных пользователей. Но вопрос об использовании виртуальных машин дома, по-прежнему, оставался открытым.

[attention type=red][attention type=green][attention type=yellow]
В 2006 году на рынке настольных платформ виртуализации появился новый игрок.
[/attention][/attention][/attention]

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

О платформе VirtualBox

VirtualBox

Платформа VirtualBox представляет собой настольную систему виртуализации для Windows, Linux и Mac OS хостов, поддерживающую операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в качестве гостевых.

После нескольких лет разработки, компанией InnoTek была выпущена ограниченная версия продукта с открытым исходным кодом под лицензией GNU General Public License (GPL) в январе 2007 года. Полная версия продукта с закрытым исходным кодом также доступна для бесплатного персонального использования.

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

Кстати говоря, в данный момент компания InnoTek, помимо платформы VirtualBox, занимается разработкой новой платформы виртуализации на основе гипервизора, тесно связанной с операционной системой Windows, в сотрудничестве с компанией Microsoft.

На данный момент VirtualBox включает в себя следующие возможности:

  • нативная x86-виртуализация, не требующая наличия поддержки аппаратных техник Intel VT или AMD-V (которая, однако, может быть включена в настройках)
  • дружественный пользовательский интерфейс (построенный с помощью Qt3)
  • поддержка Windows, Linux и Mac OS хостовых систем (версия для Mac OS в данный момент находится в стадии беты)
  • наличие Guest VM Additions для упрощения взаимодействия с хостовыми ОС и оптимизации их быстродействия
  • поддержка многопроцессорных и многоядерных систем (только в качестве гостевых, поддержка виртуального SMP для представления многопроцессорности в гостевых системах отсутствует)
  • стабильность (в сравнении с другими Open Source решениями)
  • поддержка виртуализации аудиоустройств
  • высокая производительность (по отзывам множества экспертов выше, чем у продуктов VMware)
  • поддержка различных видов сетевого взаимодействия (NAT, Host Networking via Bridged, Internal)
  • поддержка дерева сохраненных состояний виртуальной машины (snapshots), к которым может быть произведен откат из любого состояния гостевой системы
  • описание настроек виртуальной машины в XML-формате
  • поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами

Эмулируемое аппаратное окружение

Продукт VirtualBox эмулирует следующие компоненты аппаратного обеспечения в виртуальной машине:

  • жесткие диски эмулируются в специальном формате контейнеров VDI (Virtual Disk Images), который в данный момент не совместим с форматами виртуальных дисков других производителей
  • видеоадаптер эмулируется как стандартный VESA с 8 Мб видеопамяти, при этом установка Guest VM Additions (только для Windows и Linux хостов) позволяет увеличить производительность виртуального видеоадаптера и динамически менять размер окна виртуальной машины
  • аудиоконтроллер на базе Intel ICH AC'97
  • сетевой адаптер эмулируется как интерфейс AMD PCNet
  • в издании с закрытым исходным кодом эмулируются также контроллеры USB, при этом USB-устройства, вставленные в разъемы хоста, автоматически подхватываются в гостевой системе. Также если виртуальная машина действует как RDP (Remote Desktop Protocol) сервер, то в клиенте также будут видны USB-устройства

Платформа VirtualBox исполняет код гостевой системы нативно (прямой передачей инструкций процессору хоста).

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

Для этой цели VirtualBox использует оригинальный подход: код, исполняющийся в нулевом кольце гостевой системы, исполняется в первом кольце хостовой системы, которое не используется в архитектуре Intel.

Уникальные функции VirtualBox

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

  • Ярко выраженная модульность системы Платформа VirtualBox имеет модульную архитектуру с хорошо описанными компонентами и предоставляет удобные интерфейсы доступа к виртуальным машинам, которые позволяют контролировать гостевые системы как через GUI, так и через командную строку и удаленно. К тому же, компания InnoTek предоставляет отличный Software Development Kit, и поскольку код платформы открыт, не требуется дополнительных усилий, чтобы написать расширение к системе. В данный момент ведется большая работа по портированию продукта на различные хостовые платформы и разработчикам предоставляются все необходимые инструменты и интерфейсы для доработки VirtualBox.
  • Виртуальная машина может действовать как RDP-сервер В отличие от других платформ виртуализации, VirtualBox может действовать как RDP-сервер и управляться любым клиентом, поддерживающим протокол RDP. Также поддерживается функция USB over RDP. Стоит отметить, что компания VMware в вышедшей недавно платформе VMware Workstation 6 также предоставляет функцию Act as RDP Server, поэтому эту функцию VirtualBox на данный момент нельзя назвать такой уникальной.
  • iSCSI initiator Компонент iSCSI initiator является одной из закрытых частей платформы VirtualBox. Он позволяет использовать внешние устройства по протоколу iSCSI в качестве виртуальных дисков в гостевой системе без дополнительной поддержки со стороны гостевой ОС.

Поддерживаемые гостевые и хостовые системы

Компания InnoTek и независимые разработчики, принимающие участие в доработке платформы VirtualBox, постоянно расширяют список поддерживаемых гостевых и хостовых систем. На данный момент продуктом поддерживаются следующие хостовые ОС:

  • Операционные системы семейства Windows (2000/XP/2003/Vista)
  • Linux-платформы, включая:
    • Ubuntu 7.04 («Feisty Fawn»)
    • Ubuntu 6.10 («Edgy Eft»)
    • Ubuntu 6.06 LTS («Dapper Drake»)
    • Debian 3.1 («Sarge»)
    • Debian 4.0 («Etch»)
    • openSUSE 10.2
    • Mandriva Linux 2007.1
    • Red Hat Enterprise Linux 4
    • Univention Corporate Server 1.3-2
  • Mac OS X (в данный момент в стадии бета-тестирования)
  • OS/2 Warp (экспериментально)

Нужно отметить, что в данный момент портирование VirtualBox на платформу OS/2 еще не закончено, и на сайте разработчика присутствуют лишь общие инструкции по сборке системы. При использовании VirtualBox на этой платформе возникают многочисленные проблемы, которые предстоит решить разработчикам.

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

На данный момент поддерживаются следующие гостевые ОС:

Гостевая ОССтатус в данный моментПримечание
Семейство ОС Windows
Windows VistaРаботает, Guest VM Additions доступныНеобходимо установить драйвер сетевой карты вручную (описано в пользовательской документации)
Windows 2000Работает, Guest VM Additions доступны
Windows XPРаботает, Guest VM Additions доступны
Windows Server 2003Работает, Guest VM Additions доступны
Windows NTРаботает, Guest VM Additions доступныНекоторые проблемы на старых пакетах обновления, рекомендуется наличие пакета обновления версии не менее 6а
Windows 98Работает, но не доступны Guest VM Additions
Семйство ОС Linux
Ubuntu 5.10/6.06 Desktop/7.04 herd 5Работает, Guest VM Additions доступны
Ubuntu 6.06 Server/6.10Работает, Guest VM Additions доступныМогут быть проблемы с загрузкой ОС
Debian 3.1Работает, Guest VM Additions доступны

Источник: https://www.ixbt.com/cm/virtualization-virtualbox.shtml

Опыт использования виртуализации на VirtualBox

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

Причины, по которым я тогда выбрал VirtualBox

Причины представлены ниже:

  • Простота использования
  • Отличное руководство, подробно описывающее все аспекты работы VirtualBox
  • Наличие отличных графического, консольного и web-интерфейса
  • Возможность предоставления доступа к консоли гостевой ОС про протоколу RDP
  • Удобство использования

Полное руководство пользователя VirtualBox доступно на сайте производителя.

Причины, по которым я не выбрал бы его сейчас

  • Отсутствие хороших web-морд. Имеющийся web-интерфейс, несмотря на то, что он позволяет совершать с виртуальными машинами большинство требуемых действий (создание, снимки, удаление, создание виртуальных сетей), и реализован очень качественно, обладает следующими ограничениями:
    • Не позволяет назначать права на виртуальные машины (предоставления доступа разработчиками по списку только к своим машинам)
    • Не позволяет управлять несколькими физическими серверами из одной панели управления
    • Не отображает статистику по загрузке сервера
    • Пишется сторонними разработчиками, не имеющими отношения к VirtualBox, в их свободное время, из-за чего вызывает опасение возможность прекращения его развития
  • Более медленная работа при большом количестве запущенных виртуальных машин по сравнению с KVM.
  • Оговорка в лицензии

Подготовка ОС для работы с виртуальными машинами

VirtualBox можно установить практически на любую ОС, однако стабильная работа и все его возможности (например, RDP-подключение к консоли гостевой системы) доступны только на Линуксе, поэтому был выбран Debian Linux.

Для самого VirtualBox специальной настройки ОС не требуется, достаточно выделить отдельный раздел для хранения образов дисков гостевых систем и образов установочных дисков для чистой установки гостевых систем. Однако для управления VirtualBox через Веб-интерфейс (phpvirtualbox) требуется веб-сервер (выбран Apache 2) и PHP 5.

В Debian конфигурация по умолчанию PHP 5 и Apache 2 удовлетворяет требованиям phpvirtualbox, специальным образом настраивать ничего не нужно. Описание конфигурации сервера для виртуалок:

  • cервер имеет имя virtbox.site и адрес 10.0.0.7 (кстати, поищите почему не нужно использовать .local)
  • Раздел для хранения образов гостевых ос создан на отдельном жестком диске и примонтирован в /srv/vdi
  • Установлены пакеты Apache 2 и PHP 5: virtbox# apt-get install apache2 php5

Установка phpvirtualbox

Для Virtualbox существует бесплатный web-интерфейс, реализованный на PHP и использующий встроенную в virtualbox службу удаленного управления virtualbox web service. Устанавливаем phpvirtualbox:

1. На сайте разработчика смотрим последнюю версию и скачиваем ее на сервер:

virtbox# cd /var/www && wget phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip 2. Распаковываем:

virtbox# unzip phpvirtualbox-4.1-7.zip

3. Конфигурируем:

virtbox# cd phpvirtualbox-4.1-7.zip && cp config.php-example config.php && vim config.php

4. Прописываем адрес сервера, на котором работает VirtualBox, для удаленных подключений с помощью встроенного в VirtualBox RDP-plugin:

var $consoleHost = '10.0.0.7';

Внимание! Для успешных подключений на сервере должны быть открыты входящие порты, по умолчанию начиная с 3389 (TCP), по одному порту на гостевую систему. 5. Настраиваем virtualbox web service, для чего создаем файл /etc/vbox/vbox.cfg со следующим содержанием:

VBOXWEB_USER='vbox' VBOXWEB_HOST=127.0.0.1

VBOXWEB_LOGFILE=/srv/log/vboxwebservice

6. Запускаем virtualbox web service, перед этим нужно убедиться в том, что файл /srv/log/vboxwebservice доступен для чтения и записи пользователю vbox:

/etc/init.d/vboxweb-service start.

phpvirtualbox теперь доступен по адресу virtbox.site/phpvirtualbox.

Создание виртуальных машин

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

  1. System
    1. Base Memory: 512 MB
    2. Processor(s): 1
    3. Enable PAE/NX: NO — эмуляция поддержки работы с более чем 4 ГБ памяти для 32-битных систем как правило не нужна
    4. Chipset: PIIX3 — в руководстве ничего не сказано про зависимость быстродействия от типа эмулируемого чипсета, поэтому выбираем по умолчанию
    5. Extended features
      1. Enable IO APIC — без включенной эмуляции APIC некоторые клонированные сервера работать не будут
      2. Hardware clock in UTC time — как правило гостевые системы ожидают системное время в формате UTC, и эта опция отвечает за передачу гостевой ОС времени в UTC, а не в Local time сервера.
      3. Display: 2 MB — минимально возможное значение, при установке этого значения в 1 MB rdp-подключения работать не будут. При создании новых машин можно оставить значение по умолчанию, предлагаемое phpvirtualbox.
      4. Storage: где нужно создать образ диска
  2. Network
    1. Debian: Virtio — Debian с помощью гостевых расширений умеет понимать, что она работает в виртуальной машине, и использовать виртуальную сетевую карту, что дает очень большой выигрыш в производительности
    2. FreeBSD: Intep PRO/1000 MT Server network card — для FreeBSD гостевого драйвера сетевой карты нет, поэтому выбираем эмуляцию самой быстрой карты из доступных. Во FreeBSD устройство называется em0.
  3. Serial ports: Disabled
  4. USB: Disabled
  5. Shared Folders: None — возможность VirtualBox предоставлять доступ гостевой системе к файлам хост-системы как правило не нужна, проще воспользоваться scp или sftp

Для создания виртуальных машин через консоль следуют воспользоваться руководством, раздел 8.6.

Управление через веб-интерфейс

Управление виртуальными машинами через web-интерфейс тривиально, достаточно выделить нужную машину в phpvirtualbox и выбрать в интерфейсе требуемое действие, например Start, Stop (безусловное выключение, отправка сигнала о нажатии кнопки выключения питания, перезагрузка, сохранение состояние гостевой системы с возможностью впоследствии откатить ее состояние и приостановка работы гостевой системы с сохранением ее памяти на диск и возможностью впоследствии загрузки памяти с диска и продолжения работы). По щелчку на гостевой системе правой кнопкой машины доступны операции ее настроек, удаления, просмотра логов и т.д. Также стоит отметить возможность подключения к консоли гостевой системы, что аналогично подключению к реальной машине мыши и клавиатуры. Для этого нужно выделить нужную гостевую систему, выбрать вкладку Console в phpvirtualbox, задать размер экрана (для текстовых режимов работы гостевых ОС достаточно 800х600), нажать Connect и щелкнуть мышью по клиенту удаленного подключения (в котором выводится содержимое консоли гостевой системы). Управлять гостевой системой можно с момента включения.

Управление через консоль

Для управления гостевыми система в VirtualBox используются утилиты VBoxManage и VBoxHeadless, подробное описание которых доступно в руководстве.

Запускать команды нужно от пользователя vbox, под которым работает сам VrtualBox, в случае запуска от другого пользователя или root VirtualBox не сможет найти файлы конфигурации виртуальных машин, которые хранятся в домашней директории пользователя Vbox, и выдаст ошибку. Для перехода под пользователя vbox нужно сказать:

su -s /bin/bash vbox

Оболочку нужно указывать явно, потому что по умолчанию у пользователя vbox стоит оболочка /bin/false. Ниже для примера приведены команды для включения, выключения и работы с образами дисков. 1. Запуск группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage startvm $M –type=headless ; sleep 30 ; done

Если не указывать sleep 30 некоторые машины могут не запуститься из-за очень интенсивного чтения с жесткого диска сервера при запуске и некоторые гостевые системы решат, что у них ошибка чтения с жесткого диска. 2. Выключение группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage controlvm $M acpipowerbutton ; sleep 30 ; done

Практически все машины понимают нажатие на кнопку выключения питания и смогут корректно завершиться. 3. Создание диска фиксированного размера для гостевой системы:

VBoxManage createhd –variant Fixed –size 20000 –format vdi –filename test

4. Преобразование образа диска из формата VirtualBox в формат, понятный другим виртуальным машинам:

VBoxManage internalcommands converttoraw test1.vdi test1.raw

Подключение через RDP

К консоли виртуальных машин можно подключиться через RDP. В Windows нужно открыть Пуск->Все программы->Стандартные->Подключение к удаленному рабочему столу и указать адрес virtbox.test и порт, сопоставленный конкретной гостевой системе, который можно посмотреть в phpvirtualbox.

Для удобства использования в параметрах подключения можно указать разрешение экрана 1024х768, тогда окно с подключением не будет занимать весь экран и перехватывать системные сочетания клавиш, такие как Alt+Tab.

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

Для включения этой настройки нужно в настройках виртуальной машины в phpvirtualbox в разделе Display на вкладке Remote Display установить галочку Allow Multiple Connections.

Создание снимков гостевых систем

Снимки дают возможность сохранения состояния гостевых систем и возврата к этому состоянию по требованию.

Что это означает на практике?

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

При создании снимка гостевой системы занимаемое ею место на диске фактически не увеличивается, дополнительный объем будут занимать только измененные по сравнению с уже существовавшим образом диска гостевой машины данные. Например, если будет изменен файл /etc/rc.conf, измененная копия будет записана отдельно.

Для создания снимка через phpvirtualbox нужно:

  • Выделить гостевую систему, с которой нужно сделать снимок
  • Перейти на вкладку «Snapshots»
  • Нажать кнопку «Take Snapshot» (с изображением фотоаппарата)

Источник: https://habr.com/ru/post/142963/

Открытая платформа виртуализации VirtualBox

Виртуализация virtualbox
Виртуализация virtualbox

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

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

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

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

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

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

  • Создание «переносных» изолированных пользовательских сред с установленным в них программным обеспечением, направленных на решение определенного круга задач. Например, незачем перегружать операционную систему домашнего компьютера установкой различных специфических программ, которые не используются другими пользователями. Можно создать виртуальную машину с установленным в ней необходимым ПО (например, дизайнерским) и запускать ее только по мере надобности. При этом ее можно легко перенести на другую рабочую станцию и быть уверенным, что реестр, системные файлы и настройки хостовой системы останутся нетронутыми.
  • Создание защищенных сред для выхода в Интернет. Если троянская программа или вирус причинят вред внутри виртуальной машины, то можно удалить эту виртуальную машину и создать новую, при этом все данные хостовой системы будут надежно защищены.
  • Эксперименты с различным программным обеспечением и операционными системами. Возможность одновременного запуска нескольких операционных систем в виртуальных машинах позволяет использовать различные программы в необходимых вам ОС и обеспечивать передачу данных между ними. Безусловно, виртуальные машины открывают широкие просторы для обучения, как новым операционным системам, так и настройке различных сетевых служб и протоколов взаимодействия между различными ОС.

Конечно, на этом варианты использования виртуальных машин дома не заканчиваются.

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

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

Обзор существующих настольных платформ виртуализации

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

Однако лидер в области производства ПО для виртуализации, компания VMware, ориентируется в основном на коммерческое использование своих платформ, и хотя ее мощная платформа виртуализации VMware Workstation 6 является по множеству параметров лучшей на данный момент, у нее есть один неоспоримый минус — она не бесплатна. Пользователи могут также загрузить с сайта бесплатный продукт VMware Player, предназначенный для «проигрывания» виртуальных машин, однако создавать их в нем нельзя. Продукт VMware Server направлен на использование в корпоративной среде для виртуализации серверов малых предприятий и тоже не подходит для домашних пользователей.

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

Компания Parallels также предлагает настольные платформы виртуализации Parallels Workstation для Windows и Linux хостов, а также Parallels Desktop для Mac OS X, которые тоже не являются бесплатными.

К тому же, в связи с успешными продажами продукта Parallels Desktop, компания Parallels, кстати, принадлежащая российской компании SWsoft, несколько приостановила развитие продукта Parallels Workstation и довольно давно не выпускала его новых версий.

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

  • кроссплатформенность
  • поддержка большинства хостовых и гостевых операционных систем
  • возможность использования удобных средств управления виртуальными машинами

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

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

В связи с этим, некоторым компаниям пришлось предоставить бесплатные системы виртуализации (например, VMware Server и Microsoft Virtual Server), которые в основном покрывали потребности корпоративных пользователей. Но вопрос об использовании виртуальных машин дома, по-прежнему, оставался открытым.

[attention type=red][attention type=green][attention type=yellow]
В 2006 году на рынке настольных платформ виртуализации появился новый игрок.
[/attention][/attention][/attention]

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

О платформе VirtualBox

VirtualBox

Платформа VirtualBox представляет собой настольную систему виртуализации для Windows, Linux и Mac OS хостов, поддерживающую операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в качестве гостевых.

После нескольких лет разработки, компанией InnoTek была выпущена ограниченная версия продукта с открытым исходным кодом под лицензией GNU General Public License (GPL) в январе 2007 года. Полная версия продукта с закрытым исходным кодом также доступна для бесплатного персонального использования.

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

Кстати говоря, в данный момент компания InnoTek, помимо платформы VirtualBox, занимается разработкой новой платформы виртуализации на основе гипервизора, тесно связанной с операционной системой Windows, в сотрудничестве с компанией Microsoft.

На данный момент VirtualBox включает в себя следующие возможности:

  • нативная x86-виртуализация, не требующая наличия поддержки аппаратных техник Intel VT или AMD-V (которая, однако, может быть включена в настройках)
  • дружественный пользовательский интерфейс (построенный с помощью Qt3)
  • поддержка Windows, Linux и Mac OS хостовых систем (версия для Mac OS в данный момент находится в стадии беты)
  • наличие Guest VM Additions для упрощения взаимодействия с хостовыми ОС и оптимизации их быстродействия
  • поддержка многопроцессорных и многоядерных систем (только в качестве гостевых, поддержка виртуального SMP для представления многопроцессорности в гостевых системах отсутствует)
  • стабильность (в сравнении с другими Open Source решениями)
  • поддержка виртуализации аудиоустройств
  • высокая производительность (по отзывам множества экспертов выше, чем у продуктов VMware)
  • поддержка различных видов сетевого взаимодействия (NAT, Host Networking via Bridged, Internal)
  • поддержка дерева сохраненных состояний виртуальной машины (snapshots), к которым может быть произведен откат из любого состояния гостевой системы
  • описание настроек виртуальной машины в XML-формате
  • поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами

Эмулируемое аппаратное окружение

Продукт VirtualBox эмулирует следующие компоненты аппаратного обеспечения в виртуальной машине:

  • жесткие диски эмулируются в специальном формате контейнеров VDI (Virtual Disk Images), который в данный момент не совместим с форматами виртуальных дисков других производителей
  • видеоадаптер эмулируется как стандартный VESA с 8 Мб видеопамяти, при этом установка Guest VM Additions (только для Windows и Linux хостов) позволяет увеличить производительность виртуального видеоадаптера и динамически менять размер окна виртуальной машины
  • аудиоконтроллер на базе Intel ICH AC'97
  • сетевой адаптер эмулируется как интерфейс AMD PCNet
  • в издании с закрытым исходным кодом эмулируются также контроллеры USB, при этом USB-устройства, вставленные в разъемы хоста, автоматически подхватываются в гостевой системе. Также если виртуальная машина действует как RDP (Remote Desktop Protocol) сервер, то в клиенте также будут видны USB-устройства

Платформа VirtualBox исполняет код гостевой системы нативно (прямой передачей инструкций процессору хоста).

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

Для этой цели VirtualBox использует оригинальный подход: код, исполняющийся в нулевом кольце гостевой системы, исполняется в первом кольце хостовой системы, которое не используется в архитектуре Intel.

Уникальные функции VirtualBox

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

  • Ярко выраженная модульность системы Платформа VirtualBox имеет модульную архитектуру с хорошо описанными компонентами и предоставляет удобные интерфейсы доступа к виртуальным машинам, которые позволяют контролировать гостевые системы как через GUI, так и через командную строку и удаленно. К тому же, компания InnoTek предоставляет отличный Software Development Kit, и поскольку код платформы открыт, не требуется дополнительных усилий, чтобы написать расширение к системе. В данный момент ведется большая работа по портированию продукта на различные хостовые платформы и разработчикам предоставляются все необходимые инструменты и интерфейсы для доработки VirtualBox.
  • Виртуальная машина может действовать как RDP-сервер В отличие от других платформ виртуализации, VirtualBox может действовать как RDP-сервер и управляться любым клиентом, поддерживающим протокол RDP. Также поддерживается функция USB over RDP. Стоит отметить, что компания VMware в вышедшей недавно платформе VMware Workstation 6 также предоставляет функцию Act as RDP Server, поэтому эту функцию VirtualBox на данный момент нельзя назвать такой уникальной.
  • iSCSI initiator Компонент iSCSI initiator является одной из закрытых частей платформы VirtualBox. Он позволяет использовать внешние устройства по протоколу iSCSI в качестве виртуальных дисков в гостевой системе без дополнительной поддержки со стороны гостевой ОС.

Поддерживаемые гостевые и хостовые системы

Компания InnoTek и независимые разработчики, принимающие участие в доработке платформы VirtualBox, постоянно расширяют список поддерживаемых гостевых и хостовых систем. На данный момент продуктом поддерживаются следующие хостовые ОС:

  • Операционные системы семейства Windows (2000/XP/2003/Vista)
  • Linux-платформы, включая:
    • Ubuntu 7.04 («Feisty Fawn»)
    • Ubuntu 6.10 («Edgy Eft»)
    • Ubuntu 6.06 LTS («Dapper Drake»)
    • Debian 3.1 («Sarge»)
    • Debian 4.0 («Etch»)
    • openSUSE 10.2
    • Mandriva Linux 2007.1
    • Red Hat Enterprise Linux 4
    • Univention Corporate Server 1.3-2
  • Mac OS X (в данный момент в стадии бета-тестирования)
  • OS/2 Warp (экспериментально)

Нужно отметить, что в данный момент портирование VirtualBox на платформу OS/2 еще не закончено, и на сайте разработчика присутствуют лишь общие инструкции по сборке системы. При использовании VirtualBox на этой платформе возникают многочисленные проблемы, которые предстоит решить разработчикам.

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

На данный момент поддерживаются следующие гостевые ОС:

Гостевая ОССтатус в данный моментПримечание
Семейство ОС Windows
Windows VistaРаботает, Guest VM Additions доступныНеобходимо установить драйвер сетевой карты вручную (описано в пользовательской документации)
Windows 2000Работает, Guest VM Additions доступны
Windows XPРаботает, Guest VM Additions доступны
Windows Server 2003Работает, Guest VM Additions доступны
Windows NTРаботает, Guest VM Additions доступныНекоторые проблемы на старых пакетах обновления, рекомендуется наличие пакета обновления версии не менее 6а
Windows 98Работает, но не доступны Guest VM Additions
Семйство ОС Linux
Ubuntu 5.10/6.06 Desktop/7.04 herd 5Работает, Guest VM Additions доступны
Ubuntu 6.06 Server/6.10Работает, Guest VM Additions доступныМогут быть проблемы с загрузкой ОС
Debian 3.1Работает, Guest VM Additions доступны

Источник: https://www.ixbt.com/cm/virtualization-virtualbox.shtml

Опыт использования виртуализации на VirtualBox

Виртуализация virtualbox

Уровень: начинающим

Введение

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

Причины, по которым я тогда выбрал VirtualBox

Причины представлены ниже:

  • Простота использования
  • Отличное руководство, подробно описывающее все аспекты работы VirtualBox
  • Наличие отличных графического, консольного и web-интерфейса
  • Возможность предоставления доступа к консоли гостевой ОС про протоколу RDP
  • Удобство использования

Полное руководство пользователя VirtualBox доступно на сайте производителя.

Причины, по которым я не выбрал бы его сейчас

  • Отсутствие хороших web-морд. Имеющийся web-интерфейс, несмотря на то, что он позволяет совершать с виртуальными машинами большинство требуемых действий (создание, снимки, удаление, создание виртуальных сетей), и реализован очень качественно, обладает следующими ограничениями:
    • Не позволяет назначать права на виртуальные машины (предоставления доступа разработчиками по списку только к своим машинам)
    • Не позволяет управлять несколькими физическими серверами из одной панели управления
    • Не отображает статистику по загрузке сервера
    • Пишется сторонними разработчиками, не имеющими отношения к VirtualBox, в их свободное время, из-за чего вызывает опасение возможность прекращения его развития
  • Более медленная работа при большом количестве запущенных виртуальных машин по сравнению с KVM.
  • Оговорка в лицензии

Подготовка ОС для работы с виртуальными машинами

VirtualBox можно установить практически на любую ОС, однако стабильная работа и все его возможности (например, RDP-подключение к консоли гостевой системы) доступны только на Линуксе, поэтому был выбран Debian Linux.

Для самого VirtualBox специальной настройки ОС не требуется, достаточно выделить отдельный раздел для хранения образов дисков гостевых систем и образов установочных дисков для чистой установки гостевых систем. Однако для управления VirtualBox через Веб-интерфейс (phpvirtualbox) требуется веб-сервер (выбран Apache 2) и PHP 5.

В Debian конфигурация по умолчанию PHP 5 и Apache 2 удовлетворяет требованиям phpvirtualbox, специальным образом настраивать ничего не нужно. Описание конфигурации сервера для виртуалок:

  • cервер имеет имя virtbox.site и адрес 10.0.0.7 (кстати, поищите почему не нужно использовать .local)
  • Раздел для хранения образов гостевых ос создан на отдельном жестком диске и примонтирован в /srv/vdi
  • Установлены пакеты Apache 2 и PHP 5: virtbox# apt-get install apache2 php5

Установка phpvirtualbox

Для Virtualbox существует бесплатный web-интерфейс, реализованный на PHP и использующий встроенную в virtualbox службу удаленного управления virtualbox web service. Устанавливаем phpvirtualbox:

1. На сайте разработчика смотрим последнюю версию и скачиваем ее на сервер:

virtbox# cd /var/www && wget phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip 2. Распаковываем:

virtbox# unzip phpvirtualbox-4.1-7.zip

3. Конфигурируем:

virtbox# cd phpvirtualbox-4.1-7.zip && cp config.php-example config.php && vim config.php

4. Прописываем адрес сервера, на котором работает VirtualBox, для удаленных подключений с помощью встроенного в VirtualBox RDP-plugin:

var $consoleHost = '10.0.0.7';

Внимание! Для успешных подключений на сервере должны быть открыты входящие порты, по умолчанию начиная с 3389 (TCP), по одному порту на гостевую систему. 5. Настраиваем virtualbox web service, для чего создаем файл /etc/vbox/vbox.cfg со следующим содержанием:

VBOXWEB_USER='vbox' VBOXWEB_HOST=127.0.0.1

VBOXWEB_LOGFILE=/srv/log/vboxwebservice

6. Запускаем virtualbox web service, перед этим нужно убедиться в том, что файл /srv/log/vboxwebservice доступен для чтения и записи пользователю vbox:

/etc/init.d/vboxweb-service start.

phpvirtualbox теперь доступен по адресу virtbox.site/phpvirtualbox.

Создание виртуальных машин

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

  1. System
    1. Base Memory: 512 MB
    2. Processor(s): 1
    3. Enable PAE/NX: NO — эмуляция поддержки работы с более чем 4 ГБ памяти для 32-битных систем как правило не нужна
    4. Chipset: PIIX3 — в руководстве ничего не сказано про зависимость быстродействия от типа эмулируемого чипсета, поэтому выбираем по умолчанию
    5. Extended features
      1. Enable IO APIC — без включенной эмуляции APIC некоторые клонированные сервера работать не будут
      2. Hardware clock in UTC time — как правило гостевые системы ожидают системное время в формате UTC, и эта опция отвечает за передачу гостевой ОС времени в UTC, а не в Local time сервера.
      3. Display: 2 MB — минимально возможное значение, при установке этого значения в 1 MB rdp-подключения работать не будут. При создании новых машин можно оставить значение по умолчанию, предлагаемое phpvirtualbox.
      4. Storage: где нужно создать образ диска
  2. Network
    1. Debian: Virtio — Debian с помощью гостевых расширений умеет понимать, что она работает в виртуальной машине, и использовать виртуальную сетевую карту, что дает очень большой выигрыш в производительности
    2. FreeBSD: Intep PRO/1000 MT Server network card — для FreeBSD гостевого драйвера сетевой карты нет, поэтому выбираем эмуляцию самой быстрой карты из доступных. Во FreeBSD устройство называется em0.
  3. Serial ports: Disabled
  4. USB: Disabled
  5. Shared Folders: None — возможность VirtualBox предоставлять доступ гостевой системе к файлам хост-системы как правило не нужна, проще воспользоваться scp или sftp

Для создания виртуальных машин через консоль следуют воспользоваться руководством, раздел 8.6.

Управление виртуальными машинами

Управление через веб-интерфейс

Управление виртуальными машинами через web-интерфейс тривиально, достаточно выделить нужную машину в phpvirtualbox и выбрать в интерфейсе требуемое действие, например Start, Stop (безусловное выключение, отправка сигнала о нажатии кнопки выключения питания, перезагрузка, сохранение состояние гостевой системы с возможностью впоследствии откатить ее состояние и приостановка работы гостевой системы с сохранением ее памяти на диск и возможностью впоследствии загрузки памяти с диска и продолжения работы). По щелчку на гостевой системе правой кнопкой машины доступны операции ее настроек, удаления, просмотра логов и т.д. Также стоит отметить возможность подключения к консоли гостевой системы, что аналогично подключению к реальной машине мыши и клавиатуры. Для этого нужно выделить нужную гостевую систему, выбрать вкладку Console в phpvirtualbox, задать размер экрана (для текстовых режимов работы гостевых ОС достаточно 800х600), нажать Connect и щелкнуть мышью по клиенту удаленного подключения (в котором выводится содержимое консоли гостевой системы). Управлять гостевой системой можно с момента включения.

Управление через консоль

Для управления гостевыми система в VirtualBox используются утилиты VBoxManage и VBoxHeadless, подробное описание которых доступно в руководстве.

Запускать команды нужно от пользователя vbox, под которым работает сам VrtualBox, в случае запуска от другого пользователя или root VirtualBox не сможет найти файлы конфигурации виртуальных машин, которые хранятся в домашней директории пользователя Vbox, и выдаст ошибку. Для перехода под пользователя vbox нужно сказать:

su -s /bin/bash vbox

Оболочку нужно указывать явно, потому что по умолчанию у пользователя vbox стоит оболочка /bin/false. Ниже для примера приведены команды для включения, выключения и работы с образами дисков. 1. Запуск группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage startvm $M –type=headless ; sleep 30 ; done

Если не указывать sleep 30 некоторые машины могут не запуститься из-за очень интенсивного чтения с жесткого диска сервера при запуске и некоторые гостевые системы решат, что у них ошибка чтения с жесткого диска. 2. Выключение группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage controlvm $M acpipowerbutton ; sleep 30 ; done

Практически все машины понимают нажатие на кнопку выключения питания и смогут корректно завершиться. 3. Создание диска фиксированного размера для гостевой системы:

VBoxManage createhd –variant Fixed –size 20000 –format vdi –filename test

4. Преобразование образа диска из формата VirtualBox в формат, понятный другим виртуальным машинам:

VBoxManage internalcommands converttoraw test1.vdi test1.raw

Подключение через RDP

К консоли виртуальных машин можно подключиться через RDP. В Windows нужно открыть Пуск->Все программы->Стандартные->Подключение к удаленному рабочему столу и указать адрес virtbox.test и порт, сопоставленный конкретной гостевой системе, который можно посмотреть в phpvirtualbox.

Для удобства использования в параметрах подключения можно указать разрешение экрана 1024х768, тогда окно с подключением не будет занимать весь экран и перехватывать системные сочетания клавиш, такие как Alt+Tab.

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

Для включения этой настройки нужно в настройках виртуальной машины в phpvirtualbox в разделе Display на вкладке Remote Display установить галочку Allow Multiple Connections.

Создание снимков гостевых систем

Снимки дают возможность сохранения состояния гостевых систем и возврата к этому состоянию по требованию.

Что это означает на практике?

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

При создании снимка гостевой системы занимаемое ею место на диске фактически не увеличивается, дополнительный объем будут занимать только измененные по сравнению с уже существовавшим образом диска гостевой машины данные. Например, если будет изменен файл /etc/rc.conf, измененная копия будет записана отдельно.

Для создания снимка через phpvirtualbox нужно:

  • Выделить гостевую систему, с которой нужно сделать снимок
  • Перейти на вкладку «Snapshots»
  • Нажать кнопку «Take Snapshot» (с изображением фотоаппарата)

Источник: https://habr.com/ru/post/142963/

Открытая платформа виртуализации VirtualBox

Виртуализация virtualbox
Виртуализация virtualbox

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

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

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

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

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

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

  • Создание «переносных» изолированных пользовательских сред с установленным в них программным обеспечением, направленных на решение определенного круга задач. Например, незачем перегружать операционную систему домашнего компьютера установкой различных специфических программ, которые не используются другими пользователями. Можно создать виртуальную машину с установленным в ней необходимым ПО (например, дизайнерским) и запускать ее только по мере надобности. При этом ее можно легко перенести на другую рабочую станцию и быть уверенным, что реестр, системные файлы и настройки хостовой системы останутся нетронутыми.
  • Создание защищенных сред для выхода в Интернет. Если троянская программа или вирус причинят вред внутри виртуальной машины, то можно удалить эту виртуальную машину и создать новую, при этом все данные хостовой системы будут надежно защищены.
  • Эксперименты с различным программным обеспечением и операционными системами. Возможность одновременного запуска нескольких операционных систем в виртуальных машинах позволяет использовать различные программы в необходимых вам ОС и обеспечивать передачу данных между ними. Безусловно, виртуальные машины открывают широкие просторы для обучения, как новым операционным системам, так и настройке различных сетевых служб и протоколов взаимодействия между различными ОС.

Конечно, на этом варианты использования виртуальных машин дома не заканчиваются.

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

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

Обзор существующих настольных платформ виртуализации

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

Однако лидер в области производства ПО для виртуализации, компания VMware, ориентируется в основном на коммерческое использование своих платформ, и хотя ее мощная платформа виртуализации VMware Workstation 6 является по множеству параметров лучшей на данный момент, у нее есть один неоспоримый минус — она не бесплатна. Пользователи могут также загрузить с сайта бесплатный продукт VMware Player, предназначенный для «проигрывания» виртуальных машин, однако создавать их в нем нельзя. Продукт VMware Server направлен на использование в корпоративной среде для виртуализации серверов малых предприятий и тоже не подходит для домашних пользователей.

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

Компания Parallels также предлагает настольные платформы виртуализации Parallels Workstation для Windows и Linux хостов, а также Parallels Desktop для Mac OS X, которые тоже не являются бесплатными.

К тому же, в связи с успешными продажами продукта Parallels Desktop, компания Parallels, кстати, принадлежащая российской компании SWsoft, несколько приостановила развитие продукта Parallels Workstation и довольно давно не выпускала его новых версий.

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

  • кроссплатформенность
  • поддержка большинства хостовых и гостевых операционных систем
  • возможность использования удобных средств управления виртуальными машинами

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

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

В связи с этим, некоторым компаниям пришлось предоставить бесплатные системы виртуализации (например, VMware Server и Microsoft Virtual Server), которые в основном покрывали потребности корпоративных пользователей. Но вопрос об использовании виртуальных машин дома, по-прежнему, оставался открытым.

[attention type=red][attention type=green][attention type=yellow]
В 2006 году на рынке настольных платформ виртуализации появился новый игрок.
[/attention][/attention][/attention]

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

О платформе VirtualBox

VirtualBox

Платформа VirtualBox представляет собой настольную систему виртуализации для Windows, Linux и Mac OS хостов, поддерживающую операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в качестве гостевых.

После нескольких лет разработки, компанией InnoTek была выпущена ограниченная версия продукта с открытым исходным кодом под лицензией GNU General Public License (GPL) в январе 2007 года. Полная версия продукта с закрытым исходным кодом также доступна для бесплатного персонального использования.

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

Кстати говоря, в данный момент компания InnoTek, помимо платформы VirtualBox, занимается разработкой новой платформы виртуализации на основе гипервизора, тесно связанной с операционной системой Windows, в сотрудничестве с компанией Microsoft.

На данный момент VirtualBox включает в себя следующие возможности:

  • нативная x86-виртуализация, не требующая наличия поддержки аппаратных техник Intel VT или AMD-V (которая, однако, может быть включена в настройках)
  • дружественный пользовательский интерфейс (построенный с помощью Qt3)
  • поддержка Windows, Linux и Mac OS хостовых систем (версия для Mac OS в данный момент находится в стадии беты)
  • наличие Guest VM Additions для упрощения взаимодействия с хостовыми ОС и оптимизации их быстродействия
  • поддержка многопроцессорных и многоядерных систем (только в качестве гостевых, поддержка виртуального SMP для представления многопроцессорности в гостевых системах отсутствует)
  • стабильность (в сравнении с другими Open Source решениями)
  • поддержка виртуализации аудиоустройств
  • высокая производительность (по отзывам множества экспертов выше, чем у продуктов VMware)
  • поддержка различных видов сетевого взаимодействия (NAT, Host Networking via Bridged, Internal)
  • поддержка дерева сохраненных состояний виртуальной машины (snapshots), к которым может быть произведен откат из любого состояния гостевой системы
  • описание настроек виртуальной машины в XML-формате
  • поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами

Эмулируемое аппаратное окружение

Продукт VirtualBox эмулирует следующие компоненты аппаратного обеспечения в виртуальной машине:

  • жесткие диски эмулируются в специальном формате контейнеров VDI (Virtual Disk Images), который в данный момент не совместим с форматами виртуальных дисков других производителей
  • видеоадаптер эмулируется как стандартный VESA с 8 Мб видеопамяти, при этом установка Guest VM Additions (только для Windows и Linux хостов) позволяет увеличить производительность виртуального видеоадаптера и динамически менять размер окна виртуальной машины
  • аудиоконтроллер на базе Intel ICH AC'97
  • сетевой адаптер эмулируется как интерфейс AMD PCNet
  • в издании с закрытым исходным кодом эмулируются также контроллеры USB, при этом USB-устройства, вставленные в разъемы хоста, автоматически подхватываются в гостевой системе. Также если виртуальная машина действует как RDP (Remote Desktop Protocol) сервер, то в клиенте также будут видны USB-устройства

Платформа VirtualBox исполняет код гостевой системы нативно (прямой передачей инструкций процессору хоста).

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

Для этой цели VirtualBox использует оригинальный подход: код, исполняющийся в нулевом кольце гостевой системы, исполняется в первом кольце хостовой системы, которое не используется в архитектуре Intel.

Уникальные функции VirtualBox

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

  • Ярко выраженная модульность системы Платформа VirtualBox имеет модульную архитектуру с хорошо описанными компонентами и предоставляет удобные интерфейсы доступа к виртуальным машинам, которые позволяют контролировать гостевые системы как через GUI, так и через командную строку и удаленно. К тому же, компания InnoTek предоставляет отличный Software Development Kit, и поскольку код платформы открыт, не требуется дополнительных усилий, чтобы написать расширение к системе. В данный момент ведется большая работа по портированию продукта на различные хостовые платформы и разработчикам предоставляются все необходимые инструменты и интерфейсы для доработки VirtualBox.
  • Виртуальная машина может действовать как RDP-сервер В отличие от других платформ виртуализации, VirtualBox может действовать как RDP-сервер и управляться любым клиентом, поддерживающим протокол RDP. Также поддерживается функция USB over RDP. Стоит отметить, что компания VMware в вышедшей недавно платформе VMware Workstation 6 также предоставляет функцию Act as RDP Server, поэтому эту функцию VirtualBox на данный момент нельзя назвать такой уникальной.
  • iSCSI initiator Компонент iSCSI initiator является одной из закрытых частей платформы VirtualBox. Он позволяет использовать внешние устройства по протоколу iSCSI в качестве виртуальных дисков в гостевой системе без дополнительной поддержки со стороны гостевой ОС.

Поддерживаемые гостевые и хостовые системы

Компания InnoTek и независимые разработчики, принимающие участие в доработке платформы VirtualBox, постоянно расширяют список поддерживаемых гостевых и хостовых систем. На данный момент продуктом поддерживаются следующие хостовые ОС:

  • Операционные системы семейства Windows (2000/XP/2003/Vista)
  • Linux-платформы, включая:
    • Ubuntu 7.04 («Feisty Fawn»)
    • Ubuntu 6.10 («Edgy Eft»)
    • Ubuntu 6.06 LTS («Dapper Drake»)
    • Debian 3.1 («Sarge»)
    • Debian 4.0 («Etch»)
    • openSUSE 10.2
    • Mandriva Linux 2007.1
    • Red Hat Enterprise Linux 4
    • Univention Corporate Server 1.3-2
  • Mac OS X (в данный момент в стадии бета-тестирования)
  • OS/2 Warp (экспериментально)

Нужно отметить, что в данный момент портирование VirtualBox на платформу OS/2 еще не закончено, и на сайте разработчика присутствуют лишь общие инструкции по сборке системы. При использовании VirtualBox на этой платформе возникают многочисленные проблемы, которые предстоит решить разработчикам.

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

На данный момент поддерживаются следующие гостевые ОС:

Гостевая ОССтатус в данный моментПримечание
Семейство ОС Windows
Windows VistaРаботает, Guest VM Additions доступныНеобходимо установить драйвер сетевой карты вручную (описано в пользовательской документации)
Windows 2000Работает, Guest VM Additions доступны
Windows XPРаботает, Guest VM Additions доступны
Windows Server 2003Работает, Guest VM Additions доступны
Windows NTРаботает, Guest VM Additions доступныНекоторые проблемы на старых пакетах обновления, рекомендуется наличие пакета обновления версии не менее 6а
Windows 98Работает, но не доступны Guest VM Additions
Семйство ОС Linux
Ubuntu 5.10/6.06 Desktop/7.04 herd 5Работает, Guest VM Additions доступны
Ubuntu 6.06 Server/6.10Работает, Guest VM Additions доступныМогут быть проблемы с загрузкой ОС
Debian 3.1Работает, Guest VM Additions доступны

Источник: https://www.ixbt.com/cm/virtualization-virtualbox.shtml

Опыт использования виртуализации на VirtualBox

Виртуализация virtualbox

Уровень: начинающим

Введение

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

Причины, по которым я тогда выбрал VirtualBox

Причины представлены ниже:

  • Простота использования
  • Отличное руководство, подробно описывающее все аспекты работы VirtualBox
  • Наличие отличных графического, консольного и web-интерфейса
  • Возможность предоставления доступа к консоли гостевой ОС про протоколу RDP
  • Удобство использования

Полное руководство пользователя VirtualBox доступно на сайте производителя.

Причины, по которым я не выбрал бы его сейчас

  • Отсутствие хороших web-морд. Имеющийся web-интерфейс, несмотря на то, что он позволяет совершать с виртуальными машинами большинство требуемых действий (создание, снимки, удаление, создание виртуальных сетей), и реализован очень качественно, обладает следующими ограничениями:
    • Не позволяет назначать права на виртуальные машины (предоставления доступа разработчиками по списку только к своим машинам)
    • Не позволяет управлять несколькими физическими серверами из одной панели управления
    • Не отображает статистику по загрузке сервера
    • Пишется сторонними разработчиками, не имеющими отношения к VirtualBox, в их свободное время, из-за чего вызывает опасение возможность прекращения его развития
  • Более медленная работа при большом количестве запущенных виртуальных машин по сравнению с KVM.
  • Оговорка в лицензии

Подготовка ОС для работы с виртуальными машинами

VirtualBox можно установить практически на любую ОС, однако стабильная работа и все его возможности (например, RDP-подключение к консоли гостевой системы) доступны только на Линуксе, поэтому был выбран Debian Linux.

Для самого VirtualBox специальной настройки ОС не требуется, достаточно выделить отдельный раздел для хранения образов дисков гостевых систем и образов установочных дисков для чистой установки гостевых систем. Однако для управления VirtualBox через Веб-интерфейс (phpvirtualbox) требуется веб-сервер (выбран Apache 2) и PHP 5.

В Debian конфигурация по умолчанию PHP 5 и Apache 2 удовлетворяет требованиям phpvirtualbox, специальным образом настраивать ничего не нужно. Описание конфигурации сервера для виртуалок:

  • cервер имеет имя virtbox.site и адрес 10.0.0.7 (кстати, поищите почему не нужно использовать .local)
  • Раздел для хранения образов гостевых ос создан на отдельном жестком диске и примонтирован в /srv/vdi
  • Установлены пакеты Apache 2 и PHP 5: virtbox# apt-get install apache2 php5

Установка phpvirtualbox

Для Virtualbox существует бесплатный web-интерфейс, реализованный на PHP и использующий встроенную в virtualbox службу удаленного управления virtualbox web service. Устанавливаем phpvirtualbox:

1. На сайте разработчика смотрим последнюю версию и скачиваем ее на сервер:

virtbox# cd /var/www && wget phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip 2. Распаковываем:

virtbox# unzip phpvirtualbox-4.1-7.zip

3. Конфигурируем:

virtbox# cd phpvirtualbox-4.1-7.zip && cp config.php-example config.php && vim config.php

4. Прописываем адрес сервера, на котором работает VirtualBox, для удаленных подключений с помощью встроенного в VirtualBox RDP-plugin:

var $consoleHost = '10.0.0.7';

Внимание! Для успешных подключений на сервере должны быть открыты входящие порты, по умолчанию начиная с 3389 (TCP), по одному порту на гостевую систему. 5. Настраиваем virtualbox web service, для чего создаем файл /etc/vbox/vbox.cfg со следующим содержанием:

VBOXWEB_USER='vbox' VBOXWEB_HOST=127.0.0.1

VBOXWEB_LOGFILE=/srv/log/vboxwebservice

6. Запускаем virtualbox web service, перед этим нужно убедиться в том, что файл /srv/log/vboxwebservice доступен для чтения и записи пользователю vbox:

/etc/init.d/vboxweb-service start.

phpvirtualbox теперь доступен по адресу virtbox.site/phpvirtualbox.

Создание виртуальных машин

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

  1. System
    1. Base Memory: 512 MB
    2. Processor(s): 1
    3. Enable PAE/NX: NO — эмуляция поддержки работы с более чем 4 ГБ памяти для 32-битных систем как правило не нужна
    4. Chipset: PIIX3 — в руководстве ничего не сказано про зависимость быстродействия от типа эмулируемого чипсета, поэтому выбираем по умолчанию
    5. Extended features
      1. Enable IO APIC — без включенной эмуляции APIC некоторые клонированные сервера работать не будут
      2. Hardware clock in UTC time — как правило гостевые системы ожидают системное время в формате UTC, и эта опция отвечает за передачу гостевой ОС времени в UTC, а не в Local time сервера.
      3. Display: 2 MB — минимально возможное значение, при установке этого значения в 1 MB rdp-подключения работать не будут. При создании новых машин можно оставить значение по умолчанию, предлагаемое phpvirtualbox.
      4. Storage: где нужно создать образ диска
  2. Network
    1. Debian: Virtio — Debian с помощью гостевых расширений умеет понимать, что она работает в виртуальной машине, и использовать виртуальную сетевую карту, что дает очень большой выигрыш в производительности
    2. FreeBSD: Intep PRO/1000 MT Server network card — для FreeBSD гостевого драйвера сетевой карты нет, поэтому выбираем эмуляцию самой быстрой карты из доступных. Во FreeBSD устройство называется em0.
  3. Serial ports: Disabled
  4. USB: Disabled
  5. Shared Folders: None — возможность VirtualBox предоставлять доступ гостевой системе к файлам хост-системы как правило не нужна, проще воспользоваться scp или sftp

Для создания виртуальных машин через консоль следуют воспользоваться руководством, раздел 8.6.

Управление виртуальными машинами

Управление через веб-интерфейс

Управление виртуальными машинами через web-интерфейс тривиально, достаточно выделить нужную машину в phpvirtualbox и выбрать в интерфейсе требуемое действие, например Start, Stop (безусловное выключение, отправка сигнала о нажатии кнопки выключения питания, перезагрузка, сохранение состояние гостевой системы с возможностью впоследствии откатить ее состояние и приостановка работы гостевой системы с сохранением ее памяти на диск и возможностью впоследствии загрузки памяти с диска и продолжения работы). По щелчку на гостевой системе правой кнопкой машины доступны операции ее настроек, удаления, просмотра логов и т.д. Также стоит отметить возможность подключения к консоли гостевой системы, что аналогично подключению к реальной машине мыши и клавиатуры. Для этого нужно выделить нужную гостевую систему, выбрать вкладку Console в phpvirtualbox, задать размер экрана (для текстовых режимов работы гостевых ОС достаточно 800х600), нажать Connect и щелкнуть мышью по клиенту удаленного подключения (в котором выводится содержимое консоли гостевой системы). Управлять гостевой системой можно с момента включения.

Управление через консоль

Для управления гостевыми система в VirtualBox используются утилиты VBoxManage и VBoxHeadless, подробное описание которых доступно в руководстве.

Запускать команды нужно от пользователя vbox, под которым работает сам VrtualBox, в случае запуска от другого пользователя или root VirtualBox не сможет найти файлы конфигурации виртуальных машин, которые хранятся в домашней директории пользователя Vbox, и выдаст ошибку. Для перехода под пользователя vbox нужно сказать:

su -s /bin/bash vbox

Оболочку нужно указывать явно, потому что по умолчанию у пользователя vbox стоит оболочка /bin/false. Ниже для примера приведены команды для включения, выключения и работы с образами дисков. 1. Запуск группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage startvm $M –type=headless ; sleep 30 ; done

Если не указывать sleep 30 некоторые машины могут не запуститься из-за очень интенсивного чтения с жесткого диска сервера при запуске и некоторые гостевые системы решат, что у них ошибка чтения с жесткого диска. 2. Выключение группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage controlvm $M acpipowerbutton ; sleep 30 ; done

Практически все машины понимают нажатие на кнопку выключения питания и смогут корректно завершиться. 3. Создание диска фиксированного размера для гостевой системы:

VBoxManage createhd –variant Fixed –size 20000 –format vdi –filename test

4. Преобразование образа диска из формата VirtualBox в формат, понятный другим виртуальным машинам:

VBoxManage internalcommands converttoraw test1.vdi test1.raw

Подключение через RDP

К консоли виртуальных машин можно подключиться через RDP. В Windows нужно открыть Пуск->Все программы->Стандартные->Подключение к удаленному рабочему столу и указать адрес virtbox.test и порт, сопоставленный конкретной гостевой системе, который можно посмотреть в phpvirtualbox.

Для удобства использования в параметрах подключения можно указать разрешение экрана 1024х768, тогда окно с подключением не будет занимать весь экран и перехватывать системные сочетания клавиш, такие как Alt+Tab.

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

Для включения этой настройки нужно в настройках виртуальной машины в phpvirtualbox в разделе Display на вкладке Remote Display установить галочку Allow Multiple Connections.

Создание снимков гостевых систем

Снимки дают возможность сохранения состояния гостевых систем и возврата к этому состоянию по требованию.

Что это означает на практике?

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

При создании снимка гостевой системы занимаемое ею место на диске фактически не увеличивается, дополнительный объем будут занимать только измененные по сравнению с уже существовавшим образом диска гостевой машины данные. Например, если будет изменен файл /etc/rc.conf, измененная копия будет записана отдельно.

Для создания снимка через phpvirtualbox нужно:

  • Выделить гостевую систему, с которой нужно сделать снимок
  • Перейти на вкладку «Snapshots»
  • Нажать кнопку «Take Snapshot» (с изображением фотоаппарата)

Источник: https://habr.com/ru/post/142963/

Сравнение

Источник: https://zen.yandex.ru/media/starusrecovery/sravnenie--virtualbox-vmware-i-hyperv-kakaia-platforma-luchshe-5f5f2fe9354535081e215315

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.