Secure virtual machine mode нужно ли включать. Как в биосе включить виртуализацию простейшим способом

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

Замечено, что почти каждый человек подсознательно понимает значение слова "виртуальность", а вот дать определение может далеко не всегда. Но, в большинстве случаев, это понятие связывается именно с компьютерной отраслью: одни вспоминают популярную передачу 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 приводим список процессоров, на момент написания статьи поддерживающих данную технологию. Обратите внимание, в некоторых, даже относительно новых линейках присутствуют экземпляры без I ntel 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 V irtualization (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%. Происходит это за счет возможности запускать несколько виртуальных серверов на одном физическом оборудовании.
  • Системные администраторы, полагаю, найдут полезным возможность быстрого распределения ресурсов между виртуальными машинами (в большинстве случаев для этого достаточно пару кликов мыши). К тому же миграция виртуальных операционных систем происходит заметно быстрее и безопаснее, нежели обычных.
  • Обычные же пользователи то же должны найти виртуализацию весьма привлекательной. В домашних условиях, например, можно протестировать какое-либо ПО или новую версию операционной системы, причем как мы выяснили в самом начале сам процесс инсталляции будет заметно проще.

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

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

Основные преимущества виртуализации:

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

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

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

Поддержка виртуализации

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

Включение виртуализации в БИОСе

Итак, как включить виртуализацию в БИОСе? Для включения или выключения виртуализации в BIOS существует специальная опция Virtualization Technology. Обычно данную опцию вы можете найти в разделах BIOS Chipset или Processor.

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

Заключение

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

Другие идентичные названия опции: Vanderpool Technology, VT Technology.

Опция Virtualization Technology (технология виртуализации) предназначена для включения режима поддержки процессором технологии аппаратной виртуализации. Данная опция может принимать всего два значения – Enabled (Включено) и Disabled (Выключено).

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

Для создания виртуальных компьютеров требуется специальное программное обеспечение. Наиболее известно такое ПО для виртуализации, как VMWare и Microsoft Virtual PC.

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

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

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

Вариант технологии виртуализации от Intel носит название VT-x. Он появился в 2005 г. Эта технология внедрила в серверные и клиентские платформы ряд улучшений, обеспечивающих поддержку программных средств виртуализации. Технология VT-x позволяет различным операционным системам и приложениям работать в независимых разделах и способна превратить компьютер в набор виртуальных операционных систем.

Технология виртуализации AMD носит название AMD-V. Впервые она появилась в процессорах Athlon 64 в 2006 г. Эта технология позволяет взять на себя некоторые задачи, выполняемые гипервизором программным способом и упростить их благодаря встроенному в процессоры AMD улучшенному набору инструкций.

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

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

В традиционной архитектуре Intel x86 ядро операционной системы может осуществлять прямой доступ к процессору на уровне 0. Однако в среде программной виртуализации гостевая операционная система не может осуществлять работу на нулевом уровне, поскольку он занят гипервизором. Таким образом, гостевая операционная система может выполняться лишь на уровне 1.

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

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

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

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

Стоит ли включать?

Опция Virtualization Technology (иногда называемая просто Virtualization) позволяет пользователю компьютера на уровне центрального процессора. Выбор значения Enabled включает эту поддержку, а значения Disabled – выключает.

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

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

Покопавшись как-то ночью в интернете, я обнаружил некий параметр Virtualization Technology, который включает технологию виртуализации. Она активируется в BIOS. Таким образом, если ее активировать, то вы сможете без проблем использовать гостевые системы на таких виртуальных машинах, как, например, и другие. В основном, данная функция на работу системы не влияет, по умолчанию, она отключена (Disabled).

В разных системах BIOS она может иметь разные названия, например, Virtualization, Vanderpool Technology, VT Technology.

Итак, аппаратная виртуализация, мы поняли, что она дает поддержку со спец. Процессорной архитектурой. Существует две технологии виртуализации: AMD-V и Intel-VT.

AMD-V – данная технология еще имеет аббревиатуру SVM (Secure Virtual Machines). Технология ввода/вывода IOMMU. Оказывается, она даже по эффективнее, чем Intel-VT.

Intel-VT (Intel Virtualization Technology) – в данной технологии реализована виртуализация реальной адресации. Может обозначаться аббревиатурой VMX (Virtual Machine eXtension).

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

Как включить Virtualization Technology?

Ну собственно тут все очень просто. Для начала вам нужно , а потом найти пункт Virtualization Technology , он может называться и немного по-другому, как я писал выше, например.

В разных видах BIOS пункт может находится в разных местах, например, в BIOS фирмы AWARD и системных платах Gigabyte вы увидите ее, как только попадете в BIOS, чтобы включить, нужно всего лишь перевести параметр в положение «Enabled» .


В BIOS фирмы American Megatrends Inc данная технология включена по умолчанию и находится во вкладке «Advanced» . Там вы сможете ее включить или отключить.


В BIOS некоторых ноутбуков HP (Hewlett-Packard Company) и BIOS InsydeH20 Setup Utility функция виртуализации отключена. Чтобы ее активировать нужно перейти во вкладку «System Configuration» .


В версиях данный параметр можно обнаружить на вкладке «Advanced» .



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

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

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

Развитие аппаратных техник виртуализации

Идея аппаратной виртуализации не нова: впервые она была воплощена в 386-х процессорах и носила название V86 mode. Этот режим работы 8086-го процессора позволял запускать параллельно несколько DOS-приложений. Теперь аппаратная виртуализация позволяет запускать несколько независимых виртуальных машин в соответствующих разделах аппаратного пространства компьютера. Аппаратная виртуализация является логическим продолжением эволюции уровней абстрагирования программных платформ - от многозадачности до уровня виртуализации:

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

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

  • Упрощение разработки платформ виртуализации за счет предоставления аппаратных интерфейсов управления и поддержки виртуальных гостевых систем. Это способствует появлению и развитию новых платформ виртуализации и средств управления, в связи с уменьшением трудоемкости и времени их разработки.
  • Возможность увеличения быстродействия платформ виртуализации. Поскольку управление виртуальными гостевыми системами производится с помощью небольшого промежуточного слоя программного обеспечения (гипервизора) напрямую, в перспективе ожидается увеличение быстродействия платформ виртуализации на основе аппаратных техник.
  • Возможность независимого запуска нескольких виртуальных платформ с возможностью переключения между ними на аппаратном уровне. Несколько виртуальных машин могут работать независимо, каждая в своем пространстве аппаратных ресурсов, что позволит устранить потери быстродействия на поддержание хостовой платформы, а также увеличить защищенность виртуальных машин за счет их полной изоляции.
  • Отвязывание гостевой системы от архитектуры хостовой платформы и реализации платформы виртуализации. С помощью технологий аппаратной виртуализации возможен запуск 64-битных гостевых систем из 32-битных хостовых системах, с запущенными в них 32-битными средами виртуализации.

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

Необходимость поддержки аппаратной виртуализации заставила производителей процессоров несколько изменить их архитектуру за счет введения дополнительных инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем. Этот набор дополнительных инструкций носит название Virtual Machine Extensions (VMX). VMX предоставляет следующие инструкции: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXON и VMXOFF.

Процессор с поддержкой виртуализации может работать в двух режимах root operation и non-root operation. В режиме root operation работает специальное программное обеспечение, являющееся «легковесной» прослойкой между гостевыми операционными системами и оборудованием - монитор виртуальных машин (Virtual Machine Monitor, VMM), носящий также название гипервизор (hypervisor). Слово «гипервизор» появилось интересным образом: когда-то очень давно, операционная система носила название «supervisor», а программное обеспечение, находящееся «под супервизором», получило название «гипервизор».

Чтобы перевести процессор в режим виртуализации, платформа виртуализации должна вызвать инструкцию VMXON и передать управление гипервизору, который запускает виртуальную гостевую систему инструкцией VMLAUNCH и VMRESUME (точки входа в виртуальную машину). Virtual Machine Monitor может выйти из режима виртуализации процессора, вызвав инструкцию VMXOFF.

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

Отличие аппаратной виртуализации от программной

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

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

Недостатки аппаратной виртуализации

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

В начале 2006 года в лабораториях Microsoft Research был создан руткит под кодовым названием SubVirt, поражающий хостовые системы Windows и Linux и делающий свое присутствие практически не обнаруживаемым. Принцип действия этого руткита заключался в следующем:

  1. Через одну из уязвимостей в операционной системе компьютера вредоносное программное обеспечение получает административный доступ.
  2. После этого, руткит начинает процедуру миграции физической платформы на виртуальную, по окончании которой происходит запуск виртуализованной платформы посредством гипервизора. При этом для пользователя ничего не меняется, все продолжает работать, как и раньше, а все средства и службы, необходимые для доступа к гипервизору извне (например, терминального доступа), находятся за пределами виртуализованной системы.
  3. Антивирусное программное обеспечение после осуществления процедуры миграции не может обнаружить вредоносный код, поскольку он находится за пределами виртуализованной системы.

Наглядно эта процедура выглядит так:

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

Технологии виртуализации компаний Intel и AMD

Компании Intel и AMD, являясь ведущими производителями процессоров для серверных и настольных платформ, разработали техники аппаратной виртуализации для их использования в платформах виртуализации. Эти техники не обладают прямой совместимостью, но выполняют в основном схожие функции. Обе они предполагают наличие гипервизора, управляющего не модифицированными гостевыми системами, и имеют возможности для разработки платформ виртуализации без необходимости эмуляции аппаратуры. В процессорах обеих компаний, поддерживающих виртуализацию, введены дополнительные инструкции для их вызова гипервизором в целях управления виртуальными системами. В данный момент группа, занимающаяся исследованием возможностей аппаратных техник виртуализации, включает в себя компании AMD, Intel, Dell, Fujitsu Siemens, Hewlett-Packard, IBM, Sun Microsystems и VMware.

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

Компания Intel официально объявила о запуске технологии виртуализации в начале 2005 года на конференции Intel Developer Forum Spring 2005. Новая технология получила кодовое название Vanderpool и официальное Intel Virtualization Technology (сокращенно Intel VT). Технология Intel VT содержит в себе некоторое множество техник различного класса, имеющих номера версий VT-x, где x - литер, указывающий на подвид аппаратной техники. Была заявлена поддержка новой технологии в процессорах Pentium 4, Pentium D, Xeon, Core Duo и Core 2 Duo. Intel также опубликовала спецификации на Intel VT для Itanium-based процессоров, где технология виртуализации фигурировала под кодовым именем «Silvervale» и версией VT-i. Однако, начиная с 2005 года, новые модели процессоров Itanium не поддерживают x86 инструкции аппаратно, и x86-виртуализация может быть использована на архитектуре IA-64 только с помощью эмуляции.

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

  • Intel® 2 Core™ Duo Extreme processor X6800
  • Intel® 2 Core™ Duo processor E6700
  • Intel® 2 Core™ Duo processor E6600
  • Intel® 2 Core™ Duo processor E6400 (E6420)
  • Intel® 2 Core™ Duo processor E6300 (E6320)
  • Intel® Core™ Duo processor T2600
  • Intel® Core™ Duo processor T2500
  • Intel® Core™ Duo processor T2400
  • Intel® Core™ Duo processor L2300
  • Intel® Pentium® processor Extreme Edition 965
  • Intel® Pentium® processor Extreme Edition 955
  • Intel® Pentium® D processor 960
  • Intel® Pentium® D processor 950
  • Intel® Pentium® D processor 940
  • Intel® Pentium® D processor 930
  • Intel® Pentium® D processor 920
  • Intel® Pentium® 4 processor 672
  • Intel® Pentium® 4 processor 662

Процессоры для ноутбуков:

  • Intel® 2 Core™ Duo processor T7600
  • Intel® 2 Core™ Duo processor T7400
  • Intel® 2 Core™ Duo processor T7200
  • Intel® 2 Core™ Duo processor T5600
  • Intel® 2 Core™ Duo processor L7400
  • Intel® 2 Core™ Duo processor L7200
  • Intel® 2 Core™ Duo processor L7600
  • Intel® 2 Core™ Duo processor L7500

Процессоры для серверных платформ:

  • Intel® Xeon® processor 7041
  • Intel® Xeon® processor 7040
  • Intel® Xeon® processor 7030
  • Intel® Xeon® processor 7020
  • Intel® Xeon® processor 5080
  • Intel® Xeon® processor 5063
  • Intel® Xeon® processor 5060
  • Intel® Xeon® processor 5050
  • Intel® Xeon® processor 5030
  • Intel® Xeon® processor 5110
  • Intel® Xeon® processor 5120
  • Intel® Xeon® processor 5130
  • Intel® Xeon® processor 5140
  • Intel® Xeon® processor 5148
  • Intel® Xeon® processor 5150
  • Intel® Xeon® processor 5160
  • Intel® Xeon® processor E5310
  • Intel® Xeon® processor E5320
  • Intel® Xeon® processor E5335
  • Intel® Xeon® processor E5345
  • Intel® Xeon® processor X5355
  • Intel® Xeon® processor L5310
  • Intel® Xeon® processor L5320
  • Intel® Xeon® processor 7140M
  • Intel® Xeon® processor 7140N
  • Intel® Xeon® processor 7130M
  • Intel® Xeon® processor 7130N
  • Intel® Xeon® processor 7120M
  • Intel® Xeon® processor 7120N
  • Intel® Xeon® processor 7110M
  • Intel® Xeon® processor 7110N
  • Intel® Xeon® processor X3220
  • Intel® Xeon® processor X3210

Необходимо отметить, что следующие четыре процессора не поддерживают технологию Intel VT:

  • Intel® 2 Core™ Duo processor E4300
  • Intel® 2 Core™ Duo processor E4400
  • Intel® 2 Core™ Duo processor T5500
  • Intel® Pentium® D processor 9x5 (D945)

Компания Intel планирует также развивать технологию под названием Virtualization for Directed I/O к Intel VT, имеющую версию VT-d. На данный момент известно, что это существенные изменения в архитектуре ввода-вывода, которые позволят улучшить защищенность, робастность и производительность виртуальных платформ, использующих аппаратные техники виртуализации.

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

Компания AMD, так же, как и компания Intel, не так давно взялась за доработку архитектуры процессоров с целью поддержки виртуализации. В мае 2005 года компания AMD объявила о начале внедрения поддержки виртуализации в процессоры. Официальное название, которое получила новая технология - AMD Virtualization (сокращенно AMD-V), а ее внутреннее кодовое имя - AMD Pacifica. Технология AMD-V является логическим продолжением технологии Direct Connect для процессоров AMD64, направленной на повышение производительности компьютерных систем за счет тесной прямой интеграции процессора с другими компонентами аппаратного обеспечения.

В списке далее приведены процессоры, поддерживающие функции аппаратной виртуализации AMD-V. Поддержка этих функций должна работать во всех процессорах серии AMD-V для настольных компьютеров под Socket AM2, начиная со степпинга F. Необходимо также отметить, что процессоры Sempron не поддерживают аппаратную виртуализацию.

Процессоры для настольных платформ:

  • Athlon™ 64 3800+
  • Athlon™ 64 3500+
  • Athlon™ 64 3200+
  • Athlon™ 64 3000+
  • Athlon™ 64 FX FX-62
  • Athlon™ 64 FX FX-72
  • Athlon™ 64 FX FX-74
  • Athlon™ 64 X2 Dual-Core 6000+
  • Athlon™ 64 X2 Dual-Core 5600+
  • Athlon™ 64 X2 Dual-Core 5400+
  • Athlon™ 64 X2 Dual-Core 5200+
  • Athlon™ 64 X2 Dual-Core 5000+
  • Athlon™ 64 X2 Dual-Core 4800+
  • Athlon™ 64 X2 Dual-Core 4600+
  • Athlon™ 64 X2 Dual-Core 4400+
  • Athlon™ 64 X2 Dual-Core 4200+
  • Athlon™ 64 X2 Dual-Core 4000+
  • Athlon™ 64 X2 Dual-Core 3800+

Для ноутбуков поддерживаются процессоры с брендом Turion 64 X2:

  • Turion™ 64 X2 TL-60
  • Turion™ 64 X2 TL-56
  • Turion™ 64 X2 TL-52
  • Turion™ 64 X2 TL-50

Для серверных платформ поддерживаются следующие процессоры Opteron:

  • Opteron 1000 Series
  • Opteron 2000 Series
  • Opteron 8000 Series

Программное обеспечение, поддерживающее аппаратную виртуализацию

На данный момент, абсолютное большинство вендоров программных платформ виртуализации заявило о поддержке технологий аппаратной виртуализации Intel и AMD. Виртуальные машины на этих платформах могут быть запущены при поддержке аппаратной виртуализации. Кроме того, во многих операционных системах, в дистрибутив которых включены программные платформы паравиртуализации, такие как Xen или Virtual Iron, аппаратная виртуализация позволит запускать неизмененные гостевые операционные системы. Так как паравиртуализация является одним из видов виртуализации, требующих модификации гостевой операционной системы, реализация в платформах паравиртуализации поддержки аппаратной виртуализации является для этих платформ весьма приемлемым решением, с точки зрения возможности запуска не модифицированных версий гостевых систем. В приведенной далее таблице перечислены основные популярные платформы виртуализации и программное обеспечение, поддерживающие технологии аппаратной виртуализации:

Платформа виртуализации или ПО Какие технологии поддерживает Примечание
Kernel-based Virtual Machine (KVM) Intel VT, AMD-V Виртуализация уровня экземпляров операционных систем под Linux.
Microsoft Virtual PC Intel VT, AMD-V Настольная платформа виртуализации для хостовых Windows-платформ.
Microsoft Virtual Server Intel VT, AMD-V Серверная платформа виртуализации для Windows. Версия с поддержкой аппаратной виртуализации, Microsoft Virtual Server 2005 R2 SP1, находится в состоянии беты. Ожидается во втором квартале 2007 г.
Parallels Workstation Intel VT, AMD-V Платформа виртуализации для Windows и Linux хостов.
VirtualBox Intel VT, AMD-V Настольная платформа виртуализации с открытым исходным кодом для Windows, Linux и Mac OS. По умолчанию поддержка аппаратной виртуализации выключена, поскольку по исследованиям экспертов, на данный момент аппаратная виртуализация медленнее программной
Virtual Iron Intel VT, AMD-V Virtual Iron 3.5 является первой платформой виртуализации, использующей аппаратные техники, которая позволяет запускать 32-битные и 64-битные неизмененные гостевые системы практически без потери производительности.
VMware Workstation и VMware Server Intel VT, AMD-V Для запуска 64-х битных гостевых систем требуется поддержка Intel VT (так же как и для VMware ESX Server), для 32-битных же гостевых ОС по умолчанию поддержка IntelVT отключена по тем же причинам, что и у VirtualBox.
Xen Intel VT, AMD-V Платформа виртуализации Xen с открытым исходным кодом позволяет запускать неизмененные гостевые системы, используя аппаратные техники виртуализации.

Аппаратная виртуализация сегодня

Компания VMware, входящая в исследовательскую группу аппаратных техник виртуализации, в конце 2006 года провела исследование в отношении собственной программной виртуализации в сравнении с аппаратными технологиями виртуализации компании Intel. В документе «A Comparison of Software and Hardware Techniques for x86 Virtualization» были зафиксированы результаты этого исследования (на процессоре 3.8 GHz Intel Pentium 4 672 с отключенной технологией Hyper-Threading). Один из экспериментов проводился с помощью систем тестов SPECint2000 и SPECjbb2005, являющихся стандартом де-факто для оценки производительности компьютерных систем. В качестве гостевой системы использовалась ОС Red Hat Enterprise Linux 3, управляемая программным и аппаратным гипервизором. Ожидалось, что аппаратная виртуализация даст коэффициент производительности около ста процентов в отношении нативного запуска операционной системы. Однако результаты оказались весьма неожиданными: в то время как программный гипервизор без использования аппаратных техник виртуализации давал 4 процента потерь производительности в отношении нативного запуска, аппаратный гипервизор, в целом, терял 5 процентов производительности. Результаты этого теста приведены на рисунке далее:

Выводы

Поддержка технологий аппаратной виртуализации в процессорах открывает широкие перспективы по использованию виртуальных машин в качестве надежных, защищенных и гибких инструментов для повышения эффективности виртуальных инфраструктур. Наличие поддержки аппаратных техник виртуализации в процессорах не только серверных, но и настольных систем, говорит о серьезности намерений производителей процессоров в отношении всех сегментов рынка пользователей компьютерных систем. Использование аппаратной виртуализации в перспективе должно уменьшить потери производительности при запуске нескольких виртуальных машин на одном физическом сервере. Безусловно, аппаратная виртуализация повысит защищенность виртуальных систем в корпоративных средах. Сейчас простота разработки платформ виртуализации с использованием аппаратных техник привела к появлению новых игроков на рынке средств виртуализации. Вендоры систем паравиртуализации широко применяют аппаратную виртуализацию для запуска не модифицированных гостевых систем. Дополнительным преимуществом аппаратных техник виртуализации является возможность запуска 64-битных гостевых систем на 32-битных версиях платформ виртуализации (например, VMware ESX Server).

Не стоит воспринимать результаты производительности, как единственно верные. Объективная оценка производительности различных аппаратных и программных платформ для виртуализации является нетривиальной задачей, упомянутая рабочая группа в составе SPEC работает над созданием набора стандартных методов для оценки таких систем. На сегодня можно отметить, что средства виртуализации от AMD являются технически более совершенными, нежели реализованные Intel. Многое зависит и от используемого ПО, к примеру, в отличие от VMWare, есть значительно более «отзывчивые» к аппаратной поддержке среды, например, Xen 3.0.

trify.ru - Советы. Программы. Операционные системы. Живые обои