Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #105, СЕНТЯБРЬ 2007 г.

Не VMware единой

Степан «Step» Ильин

Игорь Васюнкин

Хакер, номер #105, стр. 028

(step@gameland.ru)

 

Tip’n’tricks по виртуальным машинам

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

Trick #1. Реальная система под виртуалкой

Поставить гостевую ОС под виртуальной машиной в принципе не проблема. Но настраивать все заново, инсталлировать софт, обустраивать все под себя — это кропотливая работа и трата времени. Во многих случаях можно поступить проще и перенести свою реальную систему на виртуальную платформу. Для этого существуют так называемые средства миграции с физических серверов на виртуальные (P2V – Physical to Virtual). Компания VMware предлагает использовать для этих целей продукт VMware Converter (www.vmware.com), однако ты можешь воспользоваться и решениями других производителей. На сайте доступна триальная версия, которой, впрочем, реально пользоваться и без лицензии в режиме Starter Mode, по крайней мере на первый порах.

Процесс миграции осуществляется с помощью специального мастера, который задаст тебе ряд вопросов об установленной системе и параметрах ее виртуальной версии. Описывать в деталях эту процедуры не имеет смысла, потому как здесь все предельно понятно. Единственный нюанс — это расположение файлов виртуальной машины. Можно использовать локальный каталог, но VMware Converter начнет ругаться, если путь назначения будет принадлежать конвертируемой системе. Хорошая идея — указать здесь какой-нибудь сетевой диск, хотя подойдет и просто дополнительный винчестер. В любом случае на выходе ты получишь несколько файлов виртуальной машины, которую можешь запустить на VMware Workstation, Server и других продуктах этой компании.

P2V-решение от VMware — это, безусловно, очень хороший, удобный и простой в использовании продукт, но, возможно, тебе захочется попробовать и другие подобные утилиты: Leostream (www.leostream.com), PlateSpin (www.platespin.com), Virtuozzo (www.swsoft.com/en/products/virtuozzo).

Trick #2. VMX-файлы

Мы все привыкли, что новую виртуальной машину мы всегда создаем с помощью удобного мастера-конфигуратора, а все ее параметры в ходе работы можем поменять через GUI’вые окошки. Это наиболее простой и удобный, но сильно ограниченный вариант управления виртуальной машиной. На самом деле все параметры хранятся в текстовом конфиг-файле, а мастер лишь помогает его заполнять. И если через конфигуратор мы можем изменить лишь несколько основных опций, то, поправив конфиг вручную, мы можем изменить все что угодно! Конфиг-файлы имеют расширение vmx и выглядят примерно следующим образом.

config.version = "8"

virtualHW.version = "6"

guestOS = "winxppro"

Это самый простой конфиг. Первые две строчки указываются на то, что работа будет осуществляться под управлением VMware 6.x, последняя строчка обозначает гостевую операционную систему (Windows XP Professional). Поскольку мы не задавали никаких параметров по аппаратной части виртуальной машины, они будут выбраны по умолчанию: это будет однопроцессорная система с 32 Мб оперативной памяти. Предлагаю добавить в виртуальный компьютер сетевую карту и связать ее с реальным адаптером в компьютере.

ethernet0.present= "true"

ethernet0.startConnected = "true"

ethernet0.virtualDev = "e1000"

ethernet0.connectionType = "bridged"

Первая и вторая строка указывают, что сетевой адаптер включен и запускается вместе с системой автоматически. Как видишь, параметры задаются для сетевого адаптера ethernet0, в системе их может быть несколько. С помощью параметра virtualDev мы выбрали чипсет Intel E1000, а посредством connectionType указали на то, что сетевая карта должна работать в режиме bridge (работа через физическую сетевушку в системе).

Подробнее обо всех остальных параметрах виртуальной системы можно прочитать в мануалах (ищи ссылки в боковых выносах). Однако можно пойти другим путем и воспользоваться альтернативными конфигураторами. Существуют как онлайновые (VMBuilder, http://dcgrendel.thewaffleiron.net/vmbuilder), так и оффлайновые утилиты (VMBuilder, http://petruska.stardock.net/Software/VMware.html; EasyVMX www.easyvmx.com).

Trick #3. Запускаем LiveCD на VMware

За примером бессилия стандартного конфигуратора виртуальных машин далеко ходить не надо. Если ты попытаешься запустить на виртуальной машине какой-нибудь LiveCD-дистрибутив (к счастью, на нашем прошлом диске их было сразу 4), то серьезно обломаешься, потому как задать опцию «Загрузиться с диска» через конфигуратор нельзя. Вот как раз в таком случае мы и воспользуемся следующим VMX-файлом:

config.version = "8"

virtualHW.version = "4"

scsi0.present = "TRUE"

memsize = "256"

ide1:0.present = "TRUE"

ide1:0.fileName = "livecd.iso"

ide1:0.deviceType = "cdrom-image"

floppy0.present = "FALSE"

ethernet0.present = "TRUE"

usb.present = "TRUE"

sound.present = "TRUE"

sound.virtualDev = "es1371"

displayName = "LiveCD"

guestOS = "otherlinux"

nvram = "otherlinux.nvram"

workingDir = "."

Нужно только поправить параметр ide1:0.fileName, где вместо livecd.iso указать имя ISO-файла с дистрибутивом. Само собой, ISO’шку необходимо положить в каталоге рядом с конфигом. Все, теперь можно запускать виртуальную машину, дважды кликнув по VMX-файлу, либо через меню «VMware Workstation/Player: File -> Open».

Для лучшей производительности и совместимости рекомендую поиграться с параметром guestOS, изменив его значение с otherlinux (обычный Linux-дистрибутив) в зависимости от платформы, на которой построен LiveCD:

  • Windows Server 2003 Standard Edition – «winnetstandard»
  • Windows XP Professional – «winxppro»
  • Red Hat Linux (generic) – «redhat»
  • SuSE Linux (generic) – «suse»
  • Netware 6 – «netware6»
  • Solaris 10 (experimental) – «solaris10»
  • FreeBSD (generic) – «freebsd»

Trick #4. Не VMware единой!

Одно дело — поднять под виртуалкой одну систему. Даже две гостевые ОС — это еще куда ни шло, хотя производительности уже явно не хватает. Но если речь идет о десятке виртуальных машин или, что скорее, серверов, объединенных в единую сеть со сложной инфраструктурой, то никакие VMware Workstation и другие привычные нам продукты не катят. Слишком сложная задача, для которой у них, честно говоря, кишка тонка, чего не скажешь о серьезном продукте VMware ESX Server.

Это тоже система виртуализации, но работает она совсем по-другому. Главное отличие от других систем — установка на компьютер вместо OC (используется специализированное ядро VMKernel и модифицированная версия Linux в качестве консольной OC), что позволяет значительно повысить быстродействие. Поэтому процесс установки у нее сильно отличается от такового у обычного приложения. Впрочем, ничего сложного в ней нет: она выполняется с помощью специального графического интерфейса, подобного тем, что поставляются с современными дистрибутивами пингвина (что неудивительно, поскольку ESX построен на базе RedHat). На хорошем оборудовании вся процедура едва ли займет больше часа.

Теперь можно создавать виртуальные машины, налаживать инфраструктуру… Стоп. Какую инфраструктуру? Сейчас объясню. Ключевыми понятиями виртуальной инфраструктуры являются: физический адаптер (NIC), виртуальный адаптер (vNIC), виртуальный коммутатор (vSwitch) и виртуальная сеть (vLAN). Из всего этого можно слепить сеть любой сложности. Далее ее работа тестируется в полевых условиях, проверяется состоятельность и оценивается отказоустойчивость. VMware ESX Server позволяет создавать для виртуальной машины до четырех виртуальных сетевых адаптеров, каждый из которых может быть привязан к виртуальной сети, создаваемой в свою очередь на виртуальных коммутаторах. Если виртуальный коммутатор подключен к физическому сетевому адаптеру, то виртуальные машины через него смогут видеть внешнюю по отношению к ESX сеть.

Для управления ESX-сервером и создания первых виртуальных машин используется VMware Infrastructure Client, который можно скачать по такому адресу: https://<имя вашего ESX>. Еще одно средство управления ESX-серверами, создания и настройки виртуальных машин и инфраструктуры называется Virtual Center. Подробно рассказывать об установке и настройке чего-либо мы сегодня не будем, для этого потребовалась бы отдельная статья. Тем более что попробовать ESX можно и без нашей помощи. Но хочу обратить твое внимание на то, что ESX — это продукт профессиональный, который сейчас быстрыми темпами набирает популярность. За счет виртуализации на одном физическом сервере можно поднять несколько виртуальных, у каждого из которых будет свое предназначение. Продуманные алгоритмы виртуализации и мощное многопроцессорное железо позволяют им не терять в производительности, и при этом, вместо кучи железа, которое нужно обслуживать, будет стоять всего один физический сервер. Чуешь выгоду?

Trick #5. Live VMware: любая ОС даже на чужом компьютере

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

Ты можешь записать VMware и файлы виртуальной машины на LiveCD или даже на флешку, брать ее собой и везде, где бы ты ни был, работать в привычном окружении. Здорово? Еще бы, но только здесь, как и везде, есть свои тонкости и нюансы. Многое, к счастью, уже продумано за нас, поэтому на просторах Сети зарыт один замечательный инструмент, который называется Moa (www.sanbarrow.com). Утилита совсем небольшая, слегка мудреная и, наверное, поэтому до сих пор не имеет широкого распространения, несмотря на то что предоставляет просто поразительные возможности. По сути, это всего лишь плагин к известной программе Barts Pebuilder (www.nu2.nu/pebuilder), позволяющей создавать LiveCD или загрузочную флешку с Windows на борту (напомню, что в материале «Дайте две» мы рассказывали тебе о том, как создать загрузочную флешку одновременно с Виндой и никсами).

Размесить VMware и заставить ее работать в LiveCD-окружении очень сложно, поэтому без Moa тут не обойтись. Нам потребуется дистрибутив Windows 2003 с интегрированным ServicePack 1 и VMware Workstation версии 5.5.*. Вот краткая инструкция:

  1. Скачай свежую версию PE Builder.
  2. Распакуй файлы дистрибутива на NTFS.
  3. Переименуй каталог с оригинальными плагинами в plugin-org.
  4. Сделай то же самое с каталогом драйверов, новое имя — drivers-org.
  5. Распакуй архив с Moa — moa21.zip — в директорию PE Builder.
  6. Скопируй файлы VMware в папку pluginws552 — они будут на нашем DVD.
  7. Запускай PE Builder. Когда появится окошко, предлагающее искать файлы с дистрибутивом Винды, отказывайся. А в следующем окне в поле Source укажи их вручную.
  8. Создай ISO и запиши ее на диск.

Trick #6. Доступ к виртуальному диску

Мало кто знает, что неиспользуемый виртуальный диск можно примонтировать к системе и легко обращаться к нему, без проблем копируя оттуда и туда нужные файлы. Для этого в состав продуктов VMware входит специальная утилита — DiskMount. Эта очень небольшая программа, которая запускается через консоль по команде vmware-mount и работает аналогично команде subst в Windows. Единственное условие в том, чтобы виртуальный диск в этот момент не использовался виртуальной машиной. Тогда подключить его возможно одной командой:

vmware-mount h: “C:My Virtual Machinesw2003std.vmdk”

Программу можно запускать с различными ключами, но чтобы каждый раз не залезать в консоль для того, чтобы примонтировать/размонтировать нужный диск, я рекомендую тебе специально написанную графическую оболочку — VMware DiskMount GUI (http://petruska.stardock.net/Software/VMware.html).

За что отвечают файлы виртуальной машины

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

  • *.vmx — главный конфигурационный файл;
  • *.vmdk — описание параметров виртуального диска;
  • *.nvram — постоянная память RAM: содержит текущие настройки виртуальной BIOS;
  • *.vmem — файл подкачки виртуальной машины;
  • *.vmsn — содержит текущие данные snapshot’а, nvram и копию VMX-файла;
  • *.vmsd — параметры текущего snapshot’а;
  • *.vmss — содержит RAM приостановленной (suspended) виртуальной машины.

Сеть под VMware

Во время создания виртуальной машины мастер запрашивает параметры для виртуального сетевого адаптера. Всего 4 варианта, вот они вместе с поясняющими описаниями:

  • Use bridged networking — виртуальная машина имеет полный доступ в локальную сеть, к которой подключен основной компьютер. При этом у нее есть собственный IP-адрес, поэтому она работает наравне со всеми остальными компьютерами в сети.
  • Use NAT — гостевая ось в этом случае спрятана за NAT-сервисом, который организован на основной машине. Она может обращаться к любому узлу локальной сети, однако удаленный узел не может инициировать подключение к ней (так как она не имеет собственного IP).
  • Use host-only networking — в этом случае будет использоваться виртуальная сеть с основным компьютером. Возможности доступа во внешнюю локальную сеть отсутствуют.
  • Do not use network — сеть использоваться не будет.

Интересно, что своим программистам компания VMware платит $130–150 тысяч в год плюс многочисленные бонусы. Столь высокие компенсации программистам есть еще только в Google.

WWW

DVD

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

Содержание
ttfb: 20.315170288086 ms