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

21 октября 2008, Сабадаш Даниил 2
Виртуализация – явление, о котором говорят многие компьютерные "светила", термин которым часто оперируют производители процессоров и софта, но, что же это такое на самом деле? А на самом деле в применении виртуализации нет ничего сложного, но при этом получить практическую пользу от использования различных программных и аппаратных средств виртуализации может любой, в том числе и домашний, пользователь. Об этом, собственно, и пойдёт речь в этом материале.

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

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

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

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

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

Виртуализация – это процесс запуска специализированного программного обеспечения под операционной системой, называемой хостом (Host OS), дающего возможность создавать виртуальные машины (Virtual Machine), обладающие заданными характеристиками реальных компьютеров, и запускать на них независимо друг от друга различные гостевые операционные системы (Guest OS).

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

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

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

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

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

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

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

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

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

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

  • Intel Pentium 4 processor: 672, 662
  • Intel Pentium D processor: 960, 950, 940, 930, 920
  • Intel Pentium processor Extreme Edition: 965, 955, 840(?). Относительно последнего указываются разные данные.
  • Intel Core Solo processor:
    • Intel Core Solo processor Ultra Low Voltage: U1500, U1400, U1300
  • Intel Core2 Solo processor: U2200, U2100
  • Intel Core Duo processor: T2700, T2600, T2500, T2400, T2300
    • Intel Core Duo processor Low Voltage: L2500, L2400, L2300
    • Intel Core Duo processor Ultra Low Voltage: U2500, U2400
  • Intel Core2 Duo processor: E6850, E6750, E6700, E6600, E6550, E6540, E6420, E6400, E6320, E6300; T7800, T7700, T7600, T7500, T7400, T7300, T7250, T7200, T7100, T5600
    • Intel Core2 Duo Low Voltage: L7500, L7400, L7300, L7200
    • Intel Core2 Duo Ultra Low Voltage: U7600, U7500
  • Intel Core2 Quad processor: Q6700, Q6600
  • Intel Core2 Extreme processor: QX6850, QX6800, QX6700, X7900, X7800, X6800
  • Intel Itanium 2 processor: 9050, 9040, 9030, 9020, 9015
  • Intel Xeon processor: вся линейка полностью

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Программисты и тестеры программного обеспечения могут использовать её для отслеживания ошибок выпускаемых продуктов.
  • Владельцы серверов должны по достоинству оценить экономию на аппаратном обеспечении, которая, по некоторым оценкам, доходит до 50%. Происходит это за счет возможности запускать несколько виртуальных серверов на одном физическом оборудовании.
  • Системные администраторы, полагаю, найдут полезным возможность быстрого распределения ресурсов между виртуальными машинами (в большинстве случаев для этого достаточно пару кликов мыши). К тому же миграция виртуальных операционных систем происходит заметно быстрее и безопаснее, нежели обычных.
  • Обычные же пользователи то же должны найти виртуализацию весьма привлекательной. В домашних условиях, например, можно протестировать какое-либо ПО или новую версию операционной системы, причем как мы выяснили в самом начале сам процесс инсталляции будет заметно проще.
Данная статья впервые была опубликована в
F1CD №15 (стр. 20) – 26 мая 2008 года

Рекомендуем также почитать

  1. Программа Bochs 2.3.7
  2. Программа Qemu 0.9.1
  3. Программа Virtual PC 2007
  4. Программа VirtualBox 2.0.2
  5. Программа VMware Server 1.0.4
  6. Программа VMware Workstation 6.5.0

Отзывы

2 Оставить отзыв
  • Сергей 30.03.2021 в 19:03

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

    • Владимир 10.08.2017 в 12:10

      К сожалению, 99% компьютерщиков похожи на собак ( в хорошем понимании). И те, и другие всё понимают, вот только сказать ничего не могут. Прошу не обижаться, но тот 1%, который не вошёл в мою субъективную, конечно же, оценку является, по Вашей терминологии, виртуальным. Если конкретней: Вы берётесь объясянять неизвестное читателю понятие, используя при этом массу других неизвестных понятий. Для кого Вы пишите?

      Добавить отзыв

      загрузить другую
      Ваш отзыв

      Видео

      BenQ PU9730: обзор инсталляционного двухлампового проектора

      23 января 20159890 2

      Обзор инсталляционного двухлампового проектора BenQ PU9730. Модель имеет моторизованный большой зум с широким диапазоном масштабирования и поддерживает вертикальный/горизонтальный сдвиг линз. Проектор можно разворачивать на 360 градусов и управлять им дистанционно [..]

      Видеосвидетель 5410 FHD 2CH: обзор видеорегистратора с двумя камерами

      31 декабря 201413321 0

      Обзор видеорегистратора Видеосвидетель 5410 FHD 2CH. В комплекте с устройством поставляется дополнительная камера для крепления на заднее стекло автомобиля. Обе камеры записывают видео со звуком в разрешении 1920x1080 при 30 кадрах в секунду. Посмотреть отснятое можно на экране [..]

      Видеосвидетель 4410 FHD G: обзор видеорегистратора

      31 декабря 201412751 0

      Обзор видеорегистратора Видеосвидетель 4410 FHD G. Устройство снимает видео со звуком в разрешении вплоть до 2304x1296 на частоте 30 кадров в секунду и умеет делать фотографии. Угол обзора камеры составляет 170 градусов по горизонтали. В числе особенностей модели – система [..]

      Cвежие новости

      Все новости