Виртуальные машины |
1. Виртуальные машины в целом1.1. Определение и понятиеЧтобы построить полный взгляд на виртуальные машины, разберем для начала, а что такое виртуальная машина? Виртуальная машина — программная или аппаратная среда, исполняющая некоторый код (например, байт-код, шитый код, p-код или машинный код реального процессора), или спецификация такой системы (например: «виртуальная машина языка программирования Си»). [Википедия] Для сравнения приведем несколько других определенней, а именно: Виртуальная машина - это полностью изолированный программный контейнер, способный выполнять собственную операционную систему и приложения, как физический компьютер. Виртуальная машина работает абсолютно так же, как физический компьютер, и содержит собственные виртуальные (т.е. программные) ЦП, ОЗУ, жесткий диск и сетевую интерфейсную карту (NIC). Проще говоря, виртуальная машина – это программа, которую вы запускаете из своей операционной системы. Программа эмулирует реальную машину. На виртуальные машины, как и на реальные, можно ставить операционные системы. У неё есть BIOS, отведенное место на вашем жестком диске, сетевые адаптеры для соединения с реальной машиной, сетевыми ресурсами или другими виртуальными машинами.
1.2. Преимущества и недостатки виртуальных машин1.2.1. Преимущества виртуальных машинПриведу вам несколько преимуществ использования виртуальных машин:
Это конечно далеко не все преимущества виртуальных машин. Каждый пользователь может сам придумать, для чего ему нужна виртуальная машина.
Перед возможностью установки нескольких хостовых операционных систем на один компьютер с их раздельной загрузкой, виртуальные машины имеют следующие неоспоримые преимущества:
1.2.2. Недостатки виртуальных машинТем не менее, несмотря на все преимущества, виртуальные машины также имеют и свои недостатки:
Все недостатки в принципе можно решить, да и преимущества виртуальных машин перевешивают их недостатки. Именно поэтому виртуализация сейчас продвигается семимильными шагами вперёд. А пользователи находят всё больше и больше причин их использовать.
1.3. Архитектура виртуальных машинВиртуализация один из важных инструментов разработки компьютерных систем, а сами виртуальные машины используются в самых разных областях.
Виртуальные машины разрабатываются большим количеством специалистов, преследующих самые разные цели, и в этой области существует не так уж много общепринятых концепций. Поэтому лучше всего будет рассмотреть понятие виртуализации и всё разнообразие архитектур виртуальных машин в единой перспективе.
1.3.1. Абстракция и виртуализацияКомпьютерные системы разрабатываются по определенной иерархии и имеют хорошо определенные интерфейсы, из-за чего они и продолжают развиваться. Использование таких интерфейсов облегчает независимую разработку аппаратных и программных подсистем силами разных групп специалистов. Абстракции скрывают детали реализации нижнего уровня, уменьшая сложность процесса проектирования.
На рис. 1 (а) приведен пример абстракции в применении к дисковой памяти. Операционная система абстрагируется от тонкостей адресации на жестком диске, от его секторов и дорожек, чтобы для прикладной программы диск выглядел как набор файлов переменного размера. Опираясь на эту абстракцию, «прикладные» программисты могут создавать файлы, записывать и читать данные, не зная устройства и физической организации жесткого диска.
Концепция архитектуры системы команд компьютера (instruction set architecture, ISA) наглядно иллюстрирует преимущества хорошо определенных интерфейсов. Они позволяют разрабатывать взаимодействующие компьютерные подсистемы не только в разных организациях, но и в разные периоды, иногда разделенные годами. Например, Intel и AMD создают микропроцессоры с системой команд IA-32 (x86), в то время как разработчики Microsoft пишут программное обеспечение, которое компилируется в эту систему команд. Поскольку обе стороны соблюдают спецификацию ISA, можно ожидать, что программное обеспечение будет правильно выполняться любым ПК на базе микропроцессора с архитектурой IA-32.
К сожалению, хорошо определенные интерфейсы имеют и недостатки. Подсистемы и компоненты, разработанные по спецификациям разных интерфейсов, не способны взаимодействовать друг с другом. Например, приложения, распространяемые в двоичных кодах, привязаны к определенной ISA и зависят от конкретного интерфейса к операционной системе. Несовместимость интерфейсов может стать сдерживающим фактором, особенно в мире компьютерных сетей, в котором свободное перемещение программ столь же необходимо, как и перемещение данных.
Виртуализация позволяет обойти эту несовместимость. Виртуализация системы или компонента (например, процессора, памяти или устройства ввода/вывода) на конкретном уровне абстракции отображает его интерфейс и видимые ресурсы на интерфейс и ресурсы реальной системы. Следовательно, реальная система выступает в роли другой, виртуальной системы или даже нескольких виртуальных систем.
В отличие от абстракции, виртуализация не всегда нацелена на упрощение или сокрытие деталей. В примере на рис. 1(б) виртуализация позволяет преобразовать один большой диск в два меньших виртуальных диска, каждый из которых имеет собственные секторы и дорожки. При отображении виртуальных дисков на реальный программные средства виртуализации используют абстракцию файла как промежуточный шаг. Операция записи на виртуальный диск преобразуется в операцию записи в файл (и, следовательно, в операцию записи на реальный диск). Отметим, что в данном случае никакого абстрагирования не происходит — уровень детализации интерфейса виртуального диска (адресация секторов и дорожек) ничем не отличается от уровня детализации реального диска.
1.3.2. Процессные и системные виртуальные машиныПонятия пошли от того, что система и процесс видят машину по-разному, поэтому и виртуальные машины бывают процессные и системные.
Процессная виртуальная машина — это виртуальная платформа для выполнения отдельного процесса. Она предназначена для поддержки процесса, создаётся при его активации и «умирает» после его окончания. Системная виртуальная машина – полнофункциональная, постоянно действующая системная среда, служащая для поддержки операционной системы вместе с большим количеством её пользовательских процессов; она обеспечивает «гостевой» операционной системе доступ к виртуальным аппаратным средствам, в том числе к процессору и памяти, устройствам ввода/вывода, а иногда — и к графическому интерфейсу.
Процесс или система, которые выполняются на виртуальной машине, называются гостем, платформа, поддерживающая виртуальную машину, - хостом. Программное обеспечение, реализующее процессную виртуальную машину, называют рабочей средой, а программное обеспечение виртуализации системной виртуальной машины – монитором виртуальной машины.
Процессные виртуальные машины создают среды ABI и API для пользовательских приложений, что позволяет в многозадачном режиме осуществлять репликацию операционной среды, эмулировать систему команд, оптимизировать код или выполнять программы на языках высокого уровня.
Системная виртуальная машина обеспечивает полнофункциональную среду, в которой могут сосуществовать операционная система и несколько процессов, относящихся к разным пользователям. С помощью них одна аппаратная платформа может поддерживать несколько гостевых операционных систем одновременно.
1.3.3. Классификация виртуальных машинВ классификации виртуальных машин их можно разделить на процессные и системные. Дальше систематизация происходит в зависимости от того, какие системы имеет виртуальная машина и её базовая платформа, а точнее совпадают ли они.
Среди процессных виртуальных без ISA можно выделить многозадачные системы, поддерживаемые большинством современных компьютеров.
В раздел процессные ВМ – разные ISA входят динамические трансляторы. У них интерфейс чаще всего определяется на уровне ABI.
В категории системных машин с одинаковыми ISA входят классические и вложенные системные виртуальные машины, служащие для репликации изолированной системной среды. Различие же между ними в реализации монитора виртуальных машин, но не в функциональных возможностях.
В интегральных системных виртуальных машинах производительность играет не первую роль, на первом месте точность воспроизведения функциональных возможностях.
2. Различные виртуальные машиныВиртуальных машин существует великое множество. И каждая из них имеет свои плюсы и свои минусы. В данном разделе мы рассмотрим несколько программ для работы с виртуальными машинами и их особенности.
2.1. VMware Workstation 6Это программа, с помощью которой можно создать или запускать одновременно несколько виртуальных машин, в которых работают свои гостевые операционные системы.
Программа имеется в виде как под Windows, так и под Linux.
Возможности и функции программы:
И многое другое.
Кампания VMware предоставляет инструмент, с помощью которого можно запускать более одной виртуальной машины на одном хосте. Конечно, VMware Player 2.0 не позволяет запускать полноценные машины, а только с помощью специальных шаблонов. Шаблоны виртуальных машин набирают популярность с каждый днём. Инструмент можно спокойно загрузить с сайта кампании, хотя он также прилагается в комплекте к VMware Workstation 6.0. Возможности продукта включают в себя:
2.1.1. Администрирование платформыVMware Workstation 6 является одной из самых удобных систем виртуализации, имеет разнообразие инструментов для администрирования платформы и виртуальных машин. К примеру, платформа позволяет настраивать любые параметры, как себя, так и виртуальных машин, через удобный, графический интерфейс. Но также настройки хранятся в файлах с расширением *.ini(самой VMware Workstation) и *.vmx(для каждой виртуальной машины)
Управление виртуально машиной может производиться двумя способами:
Кроме всего этого существует большое кол-во различных утилит. К примеру, vmware-vdiskmanager.exe, позволяющей проводить различные операции с виртуальными дисками. Или vmware-mount.exe, позволяющей монтировать виртуальные диски в хостовую систему в качестве логических дисков.
Чаще всего платформу VMware Workstation используют для повышения эффективности процесса разработки и тестирования, и поэтому в шестой части программы добавили немало функций и возможностей специально для этого.
2.1.2. Настройка параметров VMware Workstation 6.0Как уже было сказано, VMware Workstation позволяет гибко настраивать настройки, параметры платформы. Через графический пользовательский интерфейс или через файл preferences.ini.
В файле preferences.ini находится несколько секций для редактирования окружения. К примеру:
Для настройки этих параметров через графический интерфейс надо в меню Edit нажать кнопку Preferences. В VMware Workstation можно настроить окружение рабочей области:- Установить папку, где будут храниться виртуальные машины.
Все эти настройки находятся на вкладке Workspace.
На вкладке Input настраиваются параметры, связанные с фокусом мышки:
Выглядит это так:
На вкладке Hot Keys, как понятно из перевода, можно настроить горячие клавиши. Для сохранения и дальнейшего использования которых надо будет перезапустить виртуальную машину.
На вкладке Display настраиваются параметры отображения графических консолей. И именно, здесь можно выставить автоматическое выравнивание окна Workstation, разрешение гостевой системы и параметры полноэкранного режима.
На вкладке Tools можно включить автоматическое обновление утилит VMware Tools при следующем запуске гостевой системы. Во вкладке Memory находятся параметры выделения памяти виртуальным машинам, а также возможность использования файла подкачки(*.vmem).
На следующей вкладке, Priority, задается приоритет для виртуальных машин, находящихся и не находящихся в фокусе.
При настройке приоритета каждой из виртуальных машин в ее свойствах, эти настройки будут перекрыты. Здесь также можно отключить создание снимков гостевой системы в фоновом режиме.
На вкладке Devices можно включить/отключить автозапуск CD/DVD-дисков в хостовой системе. В рекомендациях говорится, что желательно отключать автозапуск CD/DVD-дисков. Иначе может возникнуть непредвиденное поведение виртуальных машин.
Ну и на последней вкладке Lockout вы можете задать административный пароль для создания виртуальных машин, изменения их настроек и управления сетевым взаимодействием:
Настройки каждой виртуально машины отдельно перебивают глобальные настройки. Будьте внимательны.
2.1.3. Работа с виртуальными дискамиВ VMware Workstation можно создать несколько типов виртуальных дисков, каждый из которых нужен для разных вариантов использования.
Если виртуальная машина использует приложения чувствительные к операциям ввода-вывода, то рекомендуется использовать первый тип виртуальных дисков, так как такие машины требуют высокого быстродействия дисковой системы. Второй тип позволяет экономить дисковое пространство хоста. При создание виртуальной машины можно разбить диск на блоки по 2ГБ, это очень важно, если вы используете файловую систему, не поддерживающую большие размеры файлов.
Диски, создаваемые Workstation, бывают зависимые (участвуют при создание мгновенных снимков системы) и независимые (сохраняют своё состояние независимо от снапшотов).
Постоянный тип удобен для хранения файлов, которые не будут изменяться при откате к снапшотам, временный тип удобен для экспериментирования, так как изменения временного типа дисков не сохраняются при выключение виртуальной машины.
Так же можно использовать и физические диски хостовой системы напрямую, но это не рекомендуется делать, так как могут возникнуть всяческие сложности, к примеру, потеря информации с дисков.
Желательно регулярно производить дефрагментацию дисков виртуальной машины в следующем порядке:
2.1.4. Настройка параметров сетевого взаимодействияПлатформа VMware Workstation обладает большими возможностями в сетевом взаимодействие между виртуальными машинами и хостовой системой. Существует четыре типа сетевого взаимодействия:
Кампания VMware предоставляет утилиту Virtual Network Editor (vmnetcfg.exe), которая позволяет привязывать физические и виртуальные сетевые адаптеры к виртуальным сетевым концентраторам. Проще говоря, платформа VMware Workstation позволяет гибко настраивать виртуальное сетевое взаимодействие в пределах хостовой системы. При настройки сетевого взаимодействия, следует уделять внимание типу Bridged, так как он смотрит во внешнюю сеть и нуждается в такой же защите, как и хостовая ОС.
2.1.5. Использование инструментов для разработки и тестированияРазработка и тестирование нового программного обеспечения является – одна из главных причин использования виртуальных машин. Поэтому VMware включила несколько инструментов, основанных именно на этом. С VMware Workstation могут быть использованы надстройки для интеграции со средами разработки Visual Studio (только для Windows) и Eclipse (Windows и Linux), позволяющие упростить процесс отладки программного обеспечения в виртуальных машинах (Workstation IDE). При настройке инструментов необходимо указать путь к виртуальной системе, какой установочный скрипт необходимо выполнить и расположение общих папок. После этого, интегрированный виртуальный отладчик запускает виртуальную машину, настраивает среду в соответствии с заданными параметрами и запускает приложение, либо «цепляется» к необходимой программе, начиная сессию отладки. После завершения приложения, отладчик останавливает, перезапускает виртуальную машину или сохраняет ее состояние в зависимости от настроек.
При установке VMware Workstation нам предложат выбрать дополнительные компоненты, там и можно будет выбрать пункт, который установит нам виртуальные отладчики. Утилита Remote Debug Monitor (msvsmon.exe) помогает отлаживать с помощью Visual Studio 2005. Утилита поддерживает функцию удаленной отладки. Как говорилось раньше, существуют зависимые и независимые диски, сейчас нас интересуют временные независимые диски. Именно они наиболее полезны для разработки и тестирования, так не сохраняют изменения после перезапуска виртуальной машины. Во время работы с такими дисками, все их изменения хранятся в redo-логе, который может быть либо удален по окончании работы виртуальной машины, либо применен к vmdk-диску, сохранив тем самым его состояние.
2.1.6. ЗаключениеПлатформа VMware Workstation является одним из самых лучших, если не самым лучшим, инструментом для виртуализации десктопов. Она имеет большое количество настраиваемых параметров и встроенных инструментов для самых разных пользовательских задач. Использование платформы VMware Workstation для разработки и тестирования программного обеспечения стало должным для разных кампаний. Платформу VMware Workstation так же используют и в домашней обстановке из-за большого количества простых и понятных утилит, к примеру, VMware Player.
2.2. VMware Workstation 72.2.1. Новые возможности и изменения.
2.3. Другие виртуальные машиныОдними из главных конкурентов VMWare WorkStation являются VirtualBox компании InnoTek (бесплатен для домашнего использования), и Virtual PC компании Microsoft (бесплатен). Конечно, они пока имеют меньшее количество возможностей по сравнению с VMWare WorkStation, тем не менее они также хорошо подойдут для домашнего использования, но для профессионального использования предпочтение отдаётся VMWare WorkStation.
2.3.1. Кратко о VirtualBoxВ первую очередь хочется сказать, что у данной платформы есть большое будущее. Она удобна, достаточно мощная, производительная и бесплатная платформа. Безусловным плюсом системы является ее кроссплатформенность и поддержка со стороны сообщества Open Source.
Я не зря подчеркнул слово бесплатная, так как из всех бесплатных платформ, VB является одной из самых лучших.
Наличие таких функций, как RDP сервер и iSCSI initiator, говорит, что в будущем платформа может серьезно использоваться в производственной среде.
Удобный интерфейс плюс высокая производительность VirtualBox собрали большое количество приверженцев во всём мире.
К недостаткам VirtualBox можно отнести следующие проблемы:
2.3.2. Кратко о Virtual PC 2007
3. Заключение.В заключение скажу, что среди описанных автором виртуальных машин, лидером среди эмуляторов, безусловно, является VMware Workstation. В отличие от того же Virtual PC VMware поддерживает не только Windows. Если сравнивать VMware с Sun Virtualbox, то стоит сказать, что они в скором времени могут стать одним из главных конкурентов VMware, у них ещё всё впереди. А пока советую вам использовать именно Sun Virtualbox для изучения и тестирования, она понятна и удобна, имеет достаточное количество функций, которые могут пригодиться вам в изучении. А так же, её главный плюс - бесплатность.
Во избежание недоразумений скажу вам, что виртуальная машина практически ничем не отличается от реальной машины. И то, что какая-либо программа, использованная на виртуальной машине, будет вести себя иначе, чем на реальной машине – ошибочное мнение.
4. Использованная литература.Литература:
|