Московский Государственный Институт
Электроники и Математики
(технический университет)
курсовая работа по дисциплине
«Сети»
На тему:
Применение виртуализации на серверах.
Выполнил:
Овчинников Денис
группа С-64
Проверил:
Орлов Петр
Москва 2009
Оглавление
1. Зачем нужна виртуализация на серверах?. 3
Где применяется виртуализация. 3
Как работает виртуализация сегодня. 5
2. Виды виртуализации. 8
Виртуализация платформ.. 8
Виртуализация ресурсов. 10
Аппаратная виртуализация. 11
Как работает аппаратная виртуализация. 12
Отличие аппаратной виртуализации от программной. 13
Недостатки аппаратной виртуализации. 13
Технологии виртуализации компаний Intel и AMD.. 14
Программное обеспечение, поддерживающее аппаратную виртуализацию.. 15
Выводы.. 15
3. Обзор основных средств виртуализации. 16
VMware. 16
Citrix Xen. 17
Microsoft 18
4. Пример сервера с использованием виртуализации, с описание его настройки и.т.д. и.т.п. 20
Нету =(( 20
1. Зачем нужна виртуализация на серверах?
Информационные технологии принесли в жизнь современного общества множество полезных и интересных вещей. Каждый день изобретательные и талантливые люди придумывают все новые и новые применения компьютерам как эффективным инструментам производства, развлечения и сотрудничества. Множество различных программных и аппаратных средств, технологий и сервисов позволяют нам ежедневно повышать удобство и скорость работы с информацией. Все сложнее и сложнее выделить из обрушивающегося на нас потока технологий действительно полезные и научиться применять их с максимальной пользой. В этой статье пойдет речь о еще одной невероятно перспективной и по-настоящему эффективной технологии, стремительно врывающейся в мир компьютеров – технологии виртуализации.
В широком смысле, понятие виртуализации представляет собой сокрытие настоящей реализации какого-либо процесса или объекта от истинного его представления для того, кто им пользуется. Продуктом виртуализации является нечто удобное для использования, на самом деле, имеющее более сложную или совсем иную структуру, отличную от той, которая воспринимается при работе с объектом. Иными словами, происходит отделение представления от реализации чего-либо. В компьютерных технологиях под термином «виртуализация» обычно понимается абстракция вычислительных ресурсов и предоставление пользователю системы, которая «инкапсулирует» (скрывает в себе) собственную реализацию. Проще говоря, пользователь работает с удобным для себя представлением объекта, и для него не имеет значения, как объект устроен в действительности.
Сам термин «виртуализация» в компьютерных технологиях появился в шестидесятых годах прошлого века вместе с термином «виртуальная машина», означающим продукт виртуализации программно-аппаратной платформы. В то время виртуализация была, скорее, интересной технической находкой, чем перспективной технологией. Разработки в сфере виртуализации в шестидесятых-семидесятых годах проводились только компанией IBM. С появлением в компьютере IBM M44/44X экспериментальной системы пэйджинга, впервые был употреблен термин «виртуальная машина» (virtual machine), который заменил более ранний термин «псевдо машина» (pseudo machine). Затем в мэйнфреймах IBM серии System 360/370, можно было использовать виртуальные машины для сохранения предыдущих версий операционных систем. До конца девяностых годов никто кроме IBM так и не решался использовать эту оригинальную технологию всерьез. Однако в девяностых годах стали очевидны перспективы подхода виртуализации: с ростом аппаратных мощностей, как персональных компьютеров, так и серверных решений, вскоре представится возможность использовать несколько виртуальных машин на одной физической платформе.
В 1997 году компания Connectix выпускает первую версию Virtual PC для платформы Macintosh, а в 1998 году VMware патентует свои техники виртуализации. Компания Connectix впоследствии была куплена корпорацией Microsoft, а VMware корпорацией EMC, и на данный момент обе эти компании являются двумя основными потенциальными конкурентами на рынке технологий виртуализации в будущем. Потенциальными - потому что сейчас VMware безоговорочный лидер на этом рынке, однако у Microsoft, как всегда, есть козырь в рукаве.
Со времени своего появления термины «виртуализация» и «виртуальная машина» приобрели множество различных значений и употреблялись в разных контекстах. Давайте попробуем разобраться с тем, что такое виртуализация на самом деле.
Где применяется виртуализация
Виртуализация операционных систем за последние три-четыре года очень хорошо продвинулась вперед, как в технологическом, так и в маркетинговом смысле. С одной стороны, пользоваться продуктами виртуализации стало намного проще, они стали более надежными и функциональными, а с другой – нашлось немало новых интересных применений виртуальным машинам. Сферу применения виртуализации можно определить, как «место, где есть компьютеры», однако на данный момент можно обозначить следующие варианты использования продуктов виртуализации:
1. Консолидация серверов
.
В данный момент приложения, работающие на серверах в IT-инфраструктуре компаний, создают небольшую нагрузку на аппаратные ресурсы серверов (в среднем 5-15 процентов). Виртуализация позволяет мигрировать с этих физических серверов на виртуальные и разместить их все на одном физическом сервере, увеличив его загрузку до 60-80 процентов и, повысив тем самым коэффициент использования аппаратуры, что позволяет существенно сэкономить на аппаратуре, обслуживании и электроэнергии.
2. Разработка и тестирование приложений
.
Множество продуктов виртуализации позволяют запускать несколько различных операционных систем одновременно, позволяя тем самым разработчикам и тестерам программного обеспечения тестировать их приложения на различных платформах и конфигурациях. Также удобные средства по созданию «снимков» текущего состояния системы одним кликом мыши и такого же простого восстановления из этого состояния, позволяют создавать тестовые окружения для различных конфигураций, что существенно повышает скорость и качество разработки.
3. Использование в бизнесе
.
Этот вариант использования виртуальных машин является наиболее обширным и творческим. К нему относится все, что может понадобиться при повседневном обращении с IT-ресурсами в бизнесе. Например, на основе виртуальных машин можно легко создавать резервные копии рабочих станций и серверов (просто скопировав папку), строить системы, обеспечивающие минимальное время восстановления после сбоев, и т.п. К данной группе вариантов использования относятся все те бизнес-решения, которые используют основные преимущества виртуальных машин.
4. Использование виртуальных рабочих станций
.
С приходом эры виртуальных машин будет бессмысленно делать себе рабочую станцию с ее привязкой к аппаратуре. Теперь создав однажды виртуальную машину со своей рабочей или домашней средой, можно будет использовать её на любом другом компьютере. Также можно использовать готовые шаблоны виртуальных машин (Virtual Appliances), которые решают определенную задачу (например, сервер приложений). Концепция такого использования виртуальных рабочих станций может быть реализована на основе хост-серверов для запуска на них перемещаемых десктопов пользователей (нечто подобное мэйнфреймам). В дальнейшем эти десктопы пользователь может забрать с собой, не синхронизируя данные с ноутбуком. Этот вариант использования также предоставляет возможность создания защищенных пользовательских рабочих станций, которые могут быть использованы, например, для демонстрации возможностей программы заказчику. Можно ограничить время использования виртуальной машины – и по прошествии этого времени виртуальная машина перестанет запускаться. В этом варианте использования заложены большие возможности.
Все перечисленные варианты использования виртуальных машин фактически являются лишь сферами их применения в данный момент, со временем, несомненно, появятся новые способы заставить виртуальные машины работать в различных отраслях IT. Но давайте посмотрим, как сейчас обстоят дела с виртуализацией.
Как работает виртуализация сегодня
На сегодняшний день проекты по виртуализации IT-инфраструктуры активно внедряются многими ведущими компаниями, занимающимися системной интеграцией и являющимися авторизованными партнерами провайдеров систем виртуализации. В процессе виртуализации IT-инфраструктуры создается виртуальная инфраструктура – комплекс систем на основе виртуальных машин, обеспечивающих функционирование всей IT-инфраструктуры, обладающий многими новыми возможностями при сохранении существующей схемы деятельности IT-ресурсов. Вендоры различных платформ виртуализации готовы предоставить информацию об успешных проектах по внедрению виртуальной инфраструктуры в крупных банках, промышленных компаниях, больницах, образовательных учреждениях. Множество достоинств виртуализации операционных систем позволяют компаниям экономить на обслуживании, персонале, аппаратном обеспечении, обеспечении бесперебойной работы, репликации данных и восстановлении после сбоев. Также рынок виртуализации начинает наполняться мощными средствами управления, миграции и поддержки виртуальных инфраструктур, позволяющими использовать преимущества виртуализации наиболее полно. Давайте посмотрим, как именно виртуализация позволяет компаниям, внедряющим у себя виртуальную инфраструктуру, экономить деньги.
Плюсы использования виртуализации:
1. Экономия на аппаратном обеспечении при консолидации серверов.
Существенная экономия на приобретении аппаратного обеспечения происходит при размещении нескольких виртуальных продакшен-серверов на одном физическом сервере. В зависимости, от вендора платформы виртуализации, доступны возможности по балансировке рабочей нагрузки, контролю выделяемых ресурсов, миграции между физическими хостами и бэкапу. Все это влечет за собой реальную экономию денежных средств на обслуживании, управлении и администрировании инфраструктуры серверов.
2. Возможность поддержания старых операционных систем в целях обеспечения совместимости.
При выходе новой версии операционной системы, старую версию можно поддерживать на виртуальной машине, пока не будет полностью обкатана новая ОС. И наоборот, можно «поднять» новую ОС на виртуальной машине и опробовать ее без ущерба для основной системы.
3. Возможность изолировать потенциально опасные окружения.
Если какое-то приложение или компонент вызывает сомнения в его надежности и защищенности, можно использовать его на виртуальной машине без опасности повредить жизненно важные компоненты системы. Такую изолированную среду называют также «песочницей» (sandbox). Помимо этого, можно создавать виртуальные машины, ограниченные политиками безопасности (например, машина перестанет запускаться через две недели).
4. Возможность создания требуемых аппаратных конфигураций.
Иногда требуется использовать заданную аппаратную конфигурацию (процессорное время, количество выделяемой оперативной и дисковой памяти) при проверке работоспособности приложений в определенных условиях. Довольно сложно без виртуальной машины «загнать» физическую машину в такие условия. В виртуальных машинах – это пара кликов мыши.
5. Виртуальные машины могут создавать представления устройств, которых у вас нет.
Например, многие системы виртуализации позволяют создавать виртуальные SCSI диски, виртуальные многоядерные процессоры и т.п. Это может пригодиться для создания различного рода симуляций.
6. На одном хосте может быть запущено одновременно несколько виртуальных машин, объединенных в виртуальную сеть.
Такая особенность предоставляет безграничные возможности по созданию моделей виртуальной сети между несколькими системами на одном физическом компьютере. Особенно это необходимо, когда требуется смоделировать некую распределенную систему, состоящую из нескольких машин. Также можно создать несколько изолированных пользовательских окружений (для работы, развлечений, работы в Интернет), запустить их и переключаться между ними по мере необходимости выполнения тех или иных задач.
7. Виртуальные машины предоставляют великолепные возможности по обучению работе с операционными системами.
Можно создать репозиторий готовых к использованию виртуальных машин с различными гостевыми операционными системами и запускать их по мере необходимости в целях обучения. Их можно безнаказанно подвергать всяческим экспериментам, поскольку в случае порчи системы, её восстановление из сохраненного состояния займет пару минут.
8. Виртуальные машины повышают мобильность.
Папка с виртуальной машиной может быть перемещена на другой компьютер, и там виртуальная машина может быть сразу запущена. Не требуется создавать никаких образов для миграции, и, к тому же, виртуальная машина отвязана от конкретной аппаратуры.
9. Виртуальные машины могут быть организованы в «пакеты приложений».
Вы можете создавать виртуальной окружение для конкретного варианта использования (например, дизайнерскую машину, машину менеджера и т.п.), установив в ней все требуемое программное обеспечение, и разворачивать десктопы по мере необходимости.
10. Виртуальные машины более управляемы.
При использовании виртуальных машин существенно повышается управляемость в отношении создания резервных копий, создания снимков состояний виртуальных машин («снапшотов») и восстановлений после сбоев.
Минусы использования виртуализации:
1. Невозможность эмуляции всех устройств.
В данный момент все основные устройства аппаратных платформ поддерживаются вендорами систем виртуализации, однако если вы используете, например, какие-либо контроллеры или устройства, не поддерживаемые ими, придется отказаться от виртуализации такого окружения.
2. Виртуализация требует дополнительных аппаратных ресурсов.
В настоящее время использование различных техник виртуализации позволило приблизить показатели быстродействия виртуальных машин к реальным, однако, чтобы физический хост смог запускать хотя бы пару виртуальных машин, требуется достаточное для них количество аппаратных ресурсов.
3. Некоторые платформы виртуализации требовательны к конкретному аппаратному обеспечению.
В частности, замечательная платформа компании VMware, ESX Server, была бы и вовсе замечательной, если бы не предъявляла жестких требований к аппаратному обеспечению.
4. Хорошие платформы виртуализации стоят хороших денег.
Порой, стоимость развертывания одного виртуального сервера равна стоимости еще одного физического, в определенных условиях это может оказаться нецелесообразным. К счастью, есть множество бесплатных решений, но они, в основном, ориентированы на домашнего пользователя и малый бизнес.
2. Виды виртуализации
Понятие виртуализации условно можно разделить на две фундаментально различающиеся категории:
Виртуализация платформ
, продуктом этого вида виртуализации являются виртуальные машины - некие программные абстракции, запускаемые на платформе реальных аппаратно-программных систем.
Виртуализация ресурсов
, данный вид виртуализации преследует своей целью комбинирование или упрощение представления аппаратных ресурсов для пользователя и получение неких пользовательских абстракций оборудования, пространств имен, сетей и т.п.
Виртуализация платформ
Под виртуализацией платформ понимают создание программных систем на основе существующих аппаратно-программных комплексов, зависящих или независящих от них. Система, предоставляющая аппаратные ресурсы и программное обеспечение, называется хостовой (host), а симулируемые ей системы – гостевыми (guest). Чтобы гостевые системы могли стабильно функционировать на платформе хостовой системы, необходимо, чтобы программное и аппаратное обеспечение хоста было достаточно надежным и предоставляло необходимый набор интерфейсов для доступа к его ресурсам. Есть несколько видов виртуализации платформ, в каждом из которых осуществляется свой подход к понятию «виртуализация». Виды виртуализации платформ зависят от того, насколько полно осуществляется симуляция аппаратного обеспечения. До сих пор нет единого соглашения о терминах в сфере виртуализации, поэтому некоторые из приведенных далее видов виртуализации могут отличаться от тех, что предоставят другие источники.
Виды виртуализации платформ:
1. Полная эмуляция (симуляция)
.
При таком виде виртуализации виртуальная машина полностью виртуализует все аппаратное обеспечение при сохранении гостевой операционной системы в неизменном виде. Такой подход позволяет эмулировать различные аппаратные архитектуры. Например, можно запускать виртуальные машины с гостевыми системами для x86-процессоров на платформах с другой архитектурой (например, на RISC-серверах компании Sun). Долгое время такой вид виртуализации использовался, чтобы разрабатывать программное обеспечение для новых процессоров еще до того, как они были физически доступными. Такие эмуляторы также применяют для низкоуровневой отладки операционных систем. Основной минус данного подхода заключается в том, что эмулируемое аппаратное обеспечение весьма и весьма существенно замедляет быстродействие гостевой системы, что делает работу с ней очень неудобной, поэтому, кроме как для разработки системного программного обеспечения, а также образовательных целей, такой подход мало где используется.
Примеры продуктов для создания эмуляторов: Bochs, PearPC, QEMU (без ускорения), Hercules Emulator.
2. Частичная эмуляция (нативная виртуализация).
В этом случае виртуальная машина виртуализует лишь необходимое количество аппаратного обеспечения, чтобы она могла быть запущена изолированно. Такой подход позволяет запускать гостевые операционные системы, разработанные только для той же архитектуры, что и у хоста. Таким образом, несколько экземпляров гостевых систем могут быть запущены одновременно. Этот вид виртуализации позволяет существенно увеличить быстродействие гостевых систем по сравнению с полной эмуляцией и широко используется в настоящее время. Также, в целях повышения быстродействия, в платформах виртуализации, использующих данный подход, применяется специальная «прослойка» между гостевой операционной системой и оборудованием (гипервизор), позволяющая гостевой системе напрямую обращаться к ресурсам аппаратного обеспечения. Гипервизор, называемый также «Монитор виртуальных машин» (Virtual Machine Monitor) - одно из ключевых понятий в мире виртуализации. Применение гипервизора, являющегося связующим звеном между гостевыми системами и аппаратурой, существенно увеличивает быстродействие платформы, приближая его к быстродействию физической платформы.
К минусам данного вида виртуализации можно отнести зависимость виртуальных машин от архитектуры аппаратной платформы.
Примеры продуктов для нативной виртуализации: VMware Workstation, VMware Server, VMware ESX Server, Virtual Iron, Virtual PC, VirtualBox, Parallels Desktop и другие.
3. Частичная виртуализация, а также «виртуализация адресного пространства» («address space virtualization»).
При таком подходе, виртуальная машина симулирует несколько экземпляров аппаратного окружения (но не всего), в частности, пространства адресов. Такой вид виртуализации позволяет совместно использовать ресурсы и изолировать процессы, но не позволяет разделять экземпляры гостевых операционных систем. Строго говоря, при таком виде виртуализации пользователем не создаются виртуальные машины, а происходит изоляция каких-либо процессов на уровне операционной системы. В данный момент многие из известных операционных систем используют такой подход. Примером может послужить использование UML (User-mode Linux), в котором «гостевое» ядро запускается в пользовательском пространстве базового ядра (в его контексте).
4. Паравиртуализация.
При применении паравиртуализации нет необходимости симулировать аппаратное обеспечение, однако, вместо этого (или в дополнение к этому), используется специальный программный интерфейс (API) для взаимодействия с гостевой операционной системой. Такой подход требует модификации кода гостевой системы, что, с точки зрения сообщества, Open Source не так и критично. Системы для паравиртуализации также имеют свой гипервизор, а API-вызовы к гостевой системе, называются «hypercalls» (гипервызовы). Многие сомневаются в перспективах этого подхода виртуализации, поскольку в данный момент все решения производителей аппаратного обеспечения в отношении виртуализации направлены на системы с нативной виртуализацией, а поддержку паравиртуализации приходится искать у производителей операционных систем, которые слабо верят в возможности предлагаемого им средства. В настоящее время провайдерами паравиртуализации являются компании XenSource и Virtual Iron, утверждающие, что быстродействие паравиртуализации выше.
5. Виртуализация уровня операционной системы.
Сутью данного вида виртуализации является виртуализация физического сервера на уровне операционной системы в целях создания нескольких защищенных виртуализованных серверов на одном физическом. Гостевая система, в данном случае, разделяет использование одного ядра хостовой операционной системы с другими гостевыми системами. Виртуальная машина представляет собой окружение для приложений, запускаемых изолированно. Данный тип виртуализации применяется при организации систем хостинга, когда в рамках одного экземпляра ядра требуется поддерживать несколько виртуальных серверов клиентов.
Примеры виртуализации уровня ОС: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers и FreeBSD Jails.
6. Виртуализация уровня приложений.
Этот вид виртуализации не похож на все остальные: если в предыдущих случаях создаются виртуальные среды или виртуальные машины, использующиеся для изоляции приложений, то в данном случае само приложение помещается в контейнер с необходимыми элементами для своей работы: файлами реестра, конфигурационными файлами, пользовательскими и системными объектами. В результате получается приложение, не требующее установки на аналогичной платформе. При переносе такого приложения на другую машину и его запуске, виртуальное окружение, созданное для программы, разрешает конфликты между ней и операционной системой, а также другими приложениями. Такой способ виртуализации похож на поведение интерпретаторов различных языков программирования (недаром интерпретатор, Виртуальная Машина Java (JVM), тоже попадает в эту категорию).
Примером такого подхода служат: Thinstall, Altiris, Trigence, Softricity.
Виртуализация ресурсов
При описании виртуализации платформ мы рассматривали понятие виртуализации в узком смысле, преимущественно применяя его к процессу создания виртуальных машин. Однако если рассматривать виртуализацию в широком смысле, можно прийти к понятию виртуализации ресурсов, обобщающим в себе подходы к созданию виртуальных систем. Виртуализация ресурсов позволяет концентрировать, абстрагировать и упрощать управление группами ресурсов, таких как сети, хранилища данных и пространства имен.
Виды виртуализации ресурсов:
1. Объединение, агрегация и концентрация компонентов
.
Под таким видом виртуализации ресурсов понимается организация нескольких физических или логических объектов в пулы ресурсов (группы), представляющих удобные интерфейсы пользователю. Примеры такого вида виртуализации:
· многопроцессорные системы, представляющиеся нам как одна мощная система,
· RAID-массивы и средства управления томами, комбинирующие несколько физических дисков в один логический,
· виртуализация систем хранения, используемая при построении сетей хранения данных SAN (Storage Area Network),
· виртуальные частные сети (VPN) и трансляция сетевых адресов (NAT), позволяющие создавать виртуальные пространства сетевых адресов и имен.
2. Кластеризация компьютеров и распределенные вычисления (grid computing)
.
Этот вид виртуализации включает в себя техники, применяемые при объединении множества отдельных компьютеров в глобальные системы (метакомпьютеры), совместно решающие общую задачу.
3. Разделение ресурсов (partitioning)
.
При разделении ресурсов в процессе виртуализации происходит разделение какого-либо одного большого ресурса на несколько однотипных объектов, удобных для использования. В сетях хранения данных это называется зонированием ресурсов («zoning»).
4. Инкапсуляция
.
Многим это слово известно как сокрытие объектом внутри себя своей реализации. Применительно к виртуализации, можно сказать, что это процесс создания системы, предоставляющей пользователю удобный интерфейс для работы с ней и скрывающей подробности сложности своей реализации. Например, использование центральным процессором кэша для ускорения вычислений не отражается на его внешних интерфейсах.
Виртуализация ресурсов, в отличие от виртуализации платформ, имеет более широкий и расплывчатый смысл и представляет собой массу различных подходов, направленных на повышение удобства обращения пользователей с системами в целом. Поэтому, далее мы будем опираться в основном на поня
Аппаратная виртуализация
Идея аппаратной виртуализации не нова: впервые она была воплощена в 386-х процессорах и носила название V86 mode. Этот режим работы 8086-го процессора позволял запускать параллельно несколько DOS-приложений. Теперь аппаратная виртуализация позволяет запускать несколько независимых виртуальных машин в соответствующих разделах аппаратного пространства компьютера. Аппаратная виртуализация является логическим продолжением эволюции уровней абстрагирования программных платформ - от многозадачности до уровня виртуализации:
Многозадачность
Многозадачность является первым уровнем абстракции приложений. Каждое приложение разделяет ресурсы физического процессора в режиме разделения исполнения кода по времени.
HyperThreading
Технология HyperThreading в широком смысле также представляет собой аппаратную технологию виртуализации, поскольку при ее использовании в рамках одного физического процессора происходит симуляция двух виртуальных процессоров в рамках одного физического с помощью техники Symmetric Multi Processing (SMP).
Виртуализация
Виртуализация представляет собой эмуляцию нескольких виртуальных процессоров для каждой из гостевых операционных систем. При этом технология виртуального SMP позволяет представлять несколько виртуальных процессоров в гостевой ОС при наличии технологии HyperThreading или нескольких ядер в физическом процессоре. Преимущества аппаратной виртуализации над программной
Программная виртуализация в данный момент превалирует над аппаратной на рынке технологий виртуализации ввиду того, что долгое время производители процессоров не могли должным образом реализовать поддержку виртуализации. Процесс внедрения новой технологии в процессоры требовал серьезного изменения их архитектуры, введения дополнительных инструкций и режимов работы процессоров. Это рождало проблемы обеспечения совместимости и стабильности работы, которые были полностью решены в 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 и AMD. Виртуальные машины на этих платформах могут быть запущены при поддержке аппаратной виртуализации. Кроме того, во многих операционных системах, в дистрибутив которых включены программные платформы паравиртуализации, такие как Xen или Virtual Iron, аппаратная виртуализация позволит запускать неизмененные гостевые операционные системы. Так как паравиртуализация является одним из видов виртуализации, требующих модификации гостевой операционной системы, реализация в платформах паравиртуализации поддержки аппаратной виртуализации является для этих платформ весьма приемлемым решением, с точки зрения возможности запуска не модифицированных версий гостевых систем.
Выводы
Поддержка технологий аппаратной виртуализации в процессорах открывает широкие перспективы по использованию виртуальных машин в качестве надежных, защищенных и гибких инструментов для повышения эффективности виртуальных инфраструктур. Наличие поддержки аппаратных техник виртуализации в процессорах не только серверных, но и настольных систем, говорит о серьезности намерений производителей процессоров в отношении всех сегментов рынка пользователей компьютерных систем. Использование аппаратной виртуализации в перспективе должно уменьшить потери производительности при запуске нескольких виртуальных машин на одном физическом сервере. Безусловно, аппаратная виртуализация повысит защищенность виртуальных систем в корпоративных средах. Сейчас простота разработки платформ виртуализации с использованием аппаратных техник привела к появлению новых игроков на рынке средств виртуализации. Вендоры систем паравиртуализации широко применяют аппаратную виртуализацию для запуска не модифицированных гостевых систем. Дополнительным преимуществом аппаратных техник виртуализации является возможность запуска 64-битных гостевых систем на 32-битных версиях платформ виртуализации (например, VMware ESX Server).
Не стоит воспринимать результаты производительности, как единственно верные. Объективная оценка производительности различных аппаратных и программных платформ для виртуализации является нетривиальной задачей, упомянутая рабочая группа в составе SPEC работает над созданием набора стандартных методов для оценки таких систем. На сегодня можно отметить, что средства виртуализации от AMD являются технически более совершенными, нежели реализованные Intel. Многое зависит и от используемого ПО, к примеру, в отличие от VMWare, есть значительно более «отзывчивые» к аппаратной поддержке среды, например, Xen 3.0.
3. Обзор основных средств виртуализации.
VMware
Компания VMware – один из первых игроков на рынке платформ виртуализации. В 1998 году VMware запатентовала свои программные техники виртуализации и с тех пор выпустила немало эффективных и профессиональных продуктов для виртуализации различного уровня: от VMware Workstation, предназначенного для настольных ПК, до VMware ESX Server, позволяющего консолидировать физические серверы предприятия в виртуальной инфраструктуре. В весьма обширном списке продуктов VMware можно найти немало инструментов для повышения эффективности и оптимизации ИТ-инфраструктуры, управления виртуальными серверами, а также средства миграции с физических платформ на виртуальные. В России продукты компании VMware особенно популярны, поскольку виртуализация у нас еще только набирает обороты, а платформы других вендоров, не так известные нам, являются весьма «сырыми» и обладают гораздо меньшей функциональностью, чем аналоги у VMware. Кроме того, по результатам различных тестов производительности средства виртуализации VMware почти всегда по большинству параметров выигрывают у конкурентов. А если говорят о виртуализации операционных систем Windows – то это почти наверняка продукты VMware. VMware имеет более 100 000 клиентов по всему миру, в списке ее клиентов 100% организаций из Fortune 100. Сеть партнерств охватывает более 350 производителей оборудования и ПО и более 6000 реселлеров. На данный момент объем рынка, принадлежащий VMware, оценивается как 80%. Между тем, среди платформ виртуализации у VMware есть из чего выбирать:
VMware Workstation
– платформа, ориентированная на desktop-пользователей и предназначенная для использования разработчиками ПО, а также профессионалами в сфере ИТ.
VMware Player
– бесплатный «проигрыватель» виртуальных машин, предназначенный для запуска уже готовых шаблонов и конфигураций.
VMware Server
, носивший ранее название VMware GSX Server, ориентированный на использование в инфраструктуре малых предприятий для поддержания виртуальных серверов. Эта платформа работает “поверх” хостовой системы Windows или Linux.
VMware Ace
– продукт для создания защищенных политиками безопасности виртуальных машин, которые затем можно распространять по модели SaaS (Software-as-a-Service).
VMware ESX Server
– мощная платформа виртуализации для среднего и крупного бизнеса, ориентированная в первую очередь на поддержание целостной и масштабируемой IT инфраструктуры,
VMware ESXi
- “тонкая” платформа виртуализации, интегрируемая во флэш-память серверов и предназначенная для поставки серверов виртуализации с уже предустановленным ПО для поддержки виртуальных машин. Продукт ESXi является бесплатным и доступен для загрузки с сайта VMware.
VMware Virtual Center
– мощное средство для управления платформами виртуализации VMware ESX Server и VMware Server, обладающее широкими возможностями по консолидации серверов, их настройке и управлению. VMware VirtualCenter агрегирует в себе все аспекты управления виртуальной средой - от виртуальных машин, до сбора информации о физических серверах для последующей их миграции в виртуальную инфраструктуру.
VMware Fusion
– настольный продукт для виртуализации на платформе Mac от компании Apple.
VMware Site Recovery Manager
- ПО для создания территориально-удаленного резервного сегмента виртуальной инфраструктуры, который в случае отказа основного узла, берет на себя функции по запуску виртуальных машин в соответствии с планом восстановления после сбоев.
VMware Converter
- продукт для перевода в виртуальную среду физических серверов, интегрированный с VirtualCenter и позволяющий осуществлять “горячую” (без останова систем) и “холодную” миграцию.
VMware ThinApp
- бывший продукт Thinstall Virtualization Suite, ПО для виртуализации приложений, позволяющее распространять предустановленные приложения на клиентские рабочие станции, сокращая время на стандартные операции по установке и конфигурации.
VMware Lifecycle Manager
- ПО для управления жизненным циклом виртуальных машин, позволяющее существенно сэкономить на административных процедурах по развертыванию новых систем, их обслуживанию и “списанию”.
VMware Stage Manager
- продукт для создания тестовой площадки для виртуальных систем с последующим их переводом в производственную среду компании.
VMware Virtual Desktop Infrastructure
- комплекс продуктов, обеспечивающий централизацию пользовательских рабочих станций в виртуальных машинах на платформе ESX Server. Это позволяет сократить затраты на стандартные ИТ-операции, связанные с развертыванием и обслуживанием пользовательских десктопов.
VMware Capacity Planner
- средство централизованного сбора и анализа данных об аппаратном и программном обеспечении серверов, а также производительности оборудования. Эти данные используются авторизованными партнерами VMware для построения планов консолидации виртуальных машин на платформе VMware ESX Server.
VMware Lab Manager
- продукт для создания инфраструктуры хранения и доставки конфигураций виртуальных машин, позволяющий организовать эффективную схему тестирования в компаниях-разработчиках ПО.
VMware Consolidated Backup
- фреймворк для написания сценариев резервного копирования виртуальных машин, работающий непосредственно в сети хранения данных SAN и не загружающий хост-серверы ESX и виртуальные машины операциями архивирования.
VMware Update Manager
- средство централизованного обновления хостов ESX и гостевых систем в виртуальной инфраструктуре.
VMware VMmark
- продукт, доступный только производителям аппаратного обеспечения, предназначенный для тестирования производительности VMware ESX Server на серверных платформах.
Citrix Xen
Разработка некоммерческого гипервизора Xen начиналась как исследовательский проект компьютерной лаборатории Кембриджского университета. Основателем проекта и его лидером был Иан Пратт (Ian Pratt), сотрудник университета, который создал впоследствии компанию XenSource, занимающуюся разработкой коммерческих платформ виртуализации на основе гипервизора Xen, а также поддержкой Open Source сообщества некоммерческого продукта Xen. Изначально Xen представлял собой самую развитую платформу, поддерживающую технологию паравиртуализации. Эта технология позволяет гипервизору в хостовой системе управлять гостевой ОС посредством гипервызовов VMI (Virtual Machine Interface), что требует модификации ядра гостевой системы. На данный момент бесплатная версия Xen включена в дистрибутивы нескольких ОС, таких как Red Hat, Novell SUSE, Debian, Fedora Core, Sun Solaris. В середине августа 2007 года компания XenSource была поглощена компанией Citrix Systems. Сумма проведенной сделки – около 500 миллионов долларов (акциями и денежными средствами) говорит о серьезных намерениях Citrix в отношении виртуализации. Эксперты полагают, что не исключена и покупка Citrix компанией Microsoft, учитывая давнее ее сотрудничество с XenSource.
Бесплатный Xen.
В настоящее время Open Source версия платформы Xen применяется в основном в образовательных и исследовательских целях. Некоторые удачные идеи, реализованные многочисленными разработчиками со всего мира, находят свое отражение в коммерческих версиях продуктов виртуализации компании Citrix. Сейчас бесплатные версии Xen включаются в дистрибутивы многих Linux-систем, что позволяет их пользователям применять виртуальные машины для изоляции программного обеспечения в гостевых ОС с целью его тестирования и изучения проблем безопасности, без необходимости установки платформы виртуализации. К тому же, многие независимые разработчики ПО могут распространять его с помощью виртуальных шаблонов, в которых уже установлена и настроена гостевая система и предлагаемый продукт. Кроме того, Xen идеально подходит для поддержки старого программного обеспечения в виртуальной машине. Для более же серьезных целей, в производственной среде предприятия необходимо использовать коммерческие платформы компании Citrix.
Citrix XenApp
- бывший продукт Citrix Presentation Server, предназначенный для виртуализации и публикации приложений в целях оптимизации инфраструктуры доставки сервисов в крупных компаниях. XenApp имеет огромное количество пользователей по всему миру и во многих компаниях является ключевым компонентом ИТ-инфраструктуры.
Citrix XenServer
- платформа для консолидации серверов предприятий среднего масштаба, включающая основные возможности для поддержания виртуальной инфраструктуры.
Citrix XenServer Select Edition
- аналог ESXi от VMware, платформа интегрированная в серверы HP, Dell и других производителей и ориентированная на поддержку виртуальных машин с момента поставки сервера.
Citrix XenCenter
- ПО для управления серверами виртуализации XenServer.
Citrix XenDesktop
- решение по виртуализации десктопов предприятия, позволяющее централизованно хранить и доставлять рабочие окружения в виртуальных машинах пользователям.
Microsoft
Для Microsoft все началось, когда в 2003 году она приобрела компанию Connectix, одну из немногих компаний производящую программное обеспечение для виртуализации под Windows. Вместе с Connectix, компании Microsoft достался продукт Virtual PC, конкурировавший тогда с разработками компании VMware в отношении настольных систем виртуализации. По большому счету, Virtual PC предоставлял тогда такое количество функций, что и VMware Workstation, и при должном внимании мог бы быть в настоящее время полноценным конкурентом этой платформы. Однако с того времени, компания Microsoft выпускала по минорному релизу в год, не уделяя особого внимания продукту Virtual PC, в то время как VMware стремительно развивала свою систему виртуализации, превратив еѐ в по-настоящему профессиональный инструмент. Осознав свое технологическое отставание в сфере виртуализации серверных платформ, компания Microsoft выпустила продукт Virtual Server 2005, нацеленный на создание и консолидацию виртуальных серверов организаций. Однако было уже поздно – компания VMware уже захватила лидерство в этом сегменте рынка, предлагая в тот момент две серверные платформы виртуализации VMware GSX Server и VMware ESX Server, каждая из которых по многим параметрам превосходила платформу Microsoft. Окончательный удар был нанесен в 2006 году, когда VMware фактически объявила продукт VMware GSX Server бесплатным, взявшись за разработку продукта VMware Server на его основе и сконцентрировав все усилия на продажах мощной корпоративной платформы VMware ESX Server в составе виртуальной инфраструктуры Virtual Infrastructure 3. У компании Microsoft был только единственный выход в этой ситуации: в апреле 2006 года она также объявила о бесплатности продукта Microsoft Virtual Server 2005. Также существовавшие ранее два издания Standard Edition и Enterprise Edition были объединены в одно – Microsoft Virtual Server Enterprise Edition. С тех пор Microsoft существенно изменила стратегию в отношении виртуализации, и летом 2008 года был выпущен финальный релиз платформы виртуализации Microsoft Hyper-V, интегрированной в ОС Windows Server 2008. Теперь роль сервера виртуализации доступна всем пользователям новой серверной операционной системы Microsoft.
Microsoft Virtual Server
. Серверная платформа виртуализации Microsoft Virtual Server может использоваться на сервере под управлением операционной системы Windows Server 2003 и предназначена для одновременного запуска нескольких виртуальных машин на одном физическом хосте. Платформа бесплатна и предоставляет только базовые функции.
Microsoft Virtual PC
. Продукт Virtual PC был куплен корпорацией Microsoft вместе с компанией Connectix и впервые под маркой Microsoft был выпущен как Microsoft Virtual PC 2004. Приобретая Virtual PC и компанию Connectix, компания Microsoft строила далеко идущие планы по обеспечению пользователей инструментом для облегчения миграции на следующую версию операционной системы Windows. Теперь Virtual PC 2007 бесплатен и доступен для поддержки настольных ОС в виртуальных машинах.
Microsoft Hyper-V.
Продукт Microsoft позиционируется как основной конкурент VMware ESX Server в области корпоративных платформ виртуализации. На данный момент Hyper-V позволяет консолидировать несколько ОС на одном физическом сервере в виртуальных машинах, но значительно уступает по своим возможностям для оптимизации ИТ-инфраструктуры аналогичным решениям от VMware и Citrix. При построении виртуальной среды Hyper-V опирается на такие технологии, как Microsoft Clustering и Network Load Balancing и другие уже проверенные технологии Microsoft.
Microsoft System Center Virtual Machine Manager (SC VMM)
. Этот продукт представляет собой ПО для централизованного управления инфраструктурой виртуальных серверов на платформах Hyper-V и Virtual Server. Ключевое достоинство Virtual Machine Manager – тесная интеграция с другими решениями Microsoft для управления инфраструктурой Windows-серверов семейства System Center. SCVMM позволяет создать гибкую виртуальную инфраструктуру на основе платформы Virtual Server 2005 R2 и упростить развертывание виртуальных систем из центральной библиотеки шаблонов.
4. Пример сервера с использованием виртуализации, с описание его настройки и.т.д. и.т.п.
Нету =((