Разделы портала

Онлайн-тренинги

.
Бесплатные образы виртуальных машин
13.01.2011 17:11

Автор: Николай Мирошниченко
Предисловие: Алексей Баранцев

На онлайн-тренингах с домашними заданиями самым первым заданием для учеников является подготовка тестового стенда. А поскольку тренируемся мы главным образом на веб-приложениях, первым делом нужно установить AMP-стек (то есть связку Apache+MySQL+PHP), на который уже устанавливается тестируемое приложение.

Поскольку большая часть учеников использует Windows, я обычно выдаю инструкцию по развёртыванию стенда локально, на своей машине, используя WAMP Server.

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

К счастью, один из учеников, Николай Мирошниченко, рассказал, где можно раздобыть готовую виртуальную машину с уже установленным стеком LAMP (Linux+Apache+MySQL+PHP). И пусть заядлых Windows-пользователей не пугает слово Linux – все необходимые задачи по администрированию и настройке тестируемого приложения можно выполнить удалённо через специальную панель управления с веб-интерфейсом.

Итак, ниже рассказ Николая про эту замечательную штуку под названием virtual appliances.

Организация тестового стенда с использованием бесплатных образов виртуальных машин

Сначала нужно установить приложение VirtualBox для работы с виртуальными машинами.

Далее нужно скачать образ виртуальной машины с установленным LAMP или образ диска для запуска/установки LAMP. Я скачивал отсюда: www.turnkeylinux.org/lamp (вот описание этого проекта в википедии: http://en.wikipedia.org/wiki/TurnKey_Linux_Virtual_Appliance_Library).

Доступен как образ диска в файле iso, так и zip-архив с уже настроеной виртуальной машиной в формате OVF.

Для справки. http://en.wikipedia.org/wiki/Virtual_appliance

Образ виртуальной машины – это, как правило, файлы следующих форматов: OVF - универсальный открытый формат (маленькая страничка о нем: http://en.wikipedia.org/wiki/Open_Virtualization_Format). Для скачивания обычно предлагается один запакованный файл, в котором: файл .ovf с описанием настроек вирт. машины и файлы .vmdk - по числу вирт. дисков (в нашем случае обычно 2 диска - один с системой, другой с разделом подкачки (swap)). Также распространяются образы в "родных" форматах для тех или иных приложений виртуализации, например: .vdi - файл вирт. диска от VirtualBox, .vmdk - вирт. диск от VMWare и т.д.

Вариант с готовым образом виртуальной машины более быстрый - после распаковки архива нужно импортировать файл ovf в VirtualBox (File -> Import Appliance...), - будет создана новая виртуальная машина, после чего нужно всего лишь проверить/изменить ее настройки. Память можно оставить на уровне 256мб, этого хватает для небольшой нагрузки на сервер (после запуска свободно 150МБ). А вот тип сетевой карты нужно продумать: либо оставить как есть - "Bridged Adapter" (соединение типа "мост", при этом виртуальная сетевая карта будет видна для внешней физической сети как отдельная физическая сетевая карта, ей должен быть присвоен отдельный ip-адрес и т.д., если дело происходит не дома, а в корпоративной сети, то возможно с этим возникнут проблемы, которые без вмешательства администратора сети не разрешить) либо выбрать "Host-Only Adapter" (при этом виртуальная сеть будет состоять только из двух машин - хоста и данной виртуальной машины, и физическая сеть хостовой не будет задействована). Вариант "NAT" не подходит, т.к. при этом вирт. машина становится недоступной извне, с другой стороны виртуальная машина получает доступ в Интернет (если у хостовой он есть), который можно использовать для обновлений и установки дополнительных пакетов. Впрочем, можно настроить несколько виртуальных сетевых карт.

Вариант с образом ISO более гибкий - можно настроить виртуальную машину полностью с нуля, можно даже записать этот образ на CD или DVD и запустить на физической машине, причем этот образ диска - "live", как и все диски Ubuntu (равно как и многих других linux), то есть с него можно просто загрузиться и работать, не устанавливая на жесткий диск (физический или виртуальный). В этом варианте нужно сначала "вручную" создать новую виртуальную машину, настроить (выбрать) размер ОЗУ (256МБ хватит), размер виртуального жесткого диска (после установки будет занято около 600МБ, поэтому достаточно 1-2ГБ, если не планируется установка дополнительных пакетов, создание больших БД и т.д.) и тип виртуальной сетевой карты (см. описание в предыдущем варианте). Перед запуском виртуальной машины нужно настроить порядок загрузки - выбрать образ диска (.iso файл) в качестве первого загрузочного устройства. Теперь можно запустить виртуальную машину - должна начаться загрузка с образа диска, можно выбрать пункт по умолчанию - запуск ОС в "живом" режиме, то есть без установки на жесткий диск, или сразу выбрать установку (длится несколько минут). При установке на этапе разбиения диска на разделы можно либо согласиться с автоматическим выбором, либо выбрать тип и размеры разделов. Я разворачивал виртуальную машину на нетбуке с SSD, поэтому не стал создавать swap диск, чтобы продлить срок службы SSD накопителя, тем более, что swap используется системой, когда физическая память уже используется под завязку и использование раздела подкачки уже мало чем поможет. Перезагрузка сервера (виртуальной машины) решит проблемы, которые могут возникнуть при значительной нагрузке клиентскими запросами. Кроме того, удобно использовать снимки состояния: перед началом очередного запуска теста восстанавливать исходное состояние виртуальной машины с запущенным серверным ПО (в нашем случае это занимает считанные секунды из-за малого размера ОЗУ - всего 256МБ). После установки ОС лучше выключить виртуальную машину, изменить порядок проверки загрузочных устройств - выставить первым виртуальный жесткий диск. Теперь можно запустить виртуальную машину с уже установленной на нее ОС.

Запуск виртуальной машины занимает секунды, в результате на экране появляется окно со списком адресов, по которым отвечают запущенные сервисы. Достаточно использовать первый - доступ через веб-интерфейс. Этот адрес (по умолчанию http://192.168.56.101) вводим в адресную строку браузера на хостовой физической машине и видим страницу сервера с кнопками "Web Shell" (консольный интерфейс в окне браузера на AJAX c автодополнением!), "Webmin" (веб-интерфейс к серверу, с текстовым редактором, файловым менеджером и различными инструментами, включая интерфейс к управлению MySQL), "phpMyAdmin" (традиционный веб-интерфейс для управления MySQL).

Если использовался вариант с импортом предустановленной виртуальной машины, то там у пользователя root (суперпользователя ОС и MySQL) пароль пустой. Если виртуальная машина создавалась с нуля, то при установке запрашивался ввод пароля суперпользователя ОС и MySQL, если был установлен непустой пароль, то потребуется поправить конфигурацию phpMyAdmin (не разбирался как, через Webmin все сделалось без проблем).

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

Как развернуть тестовое приложение - аналогично описанному исходному варианту с небольшими поправками.

1. Сначала нужно скопировать каталог приложения на сервер. Удобнее всего воспользоваться популярным FTP-клиентом Filezilla (он кроссплатформенный, альтернативные варианты - команды scp или ssh для Linux и программа WinSCP для Windows). В Filezilla настроить подключение к серверу - указать тип соединения SSH, авторизацию - обычную, с помощью логина-пароля, ввести логин root, пароль - пустой или какой был установлен. При первом подключении принять сертификат. Когда на панели появятся каталоги сервера, мышью перетащить каталог приложения с хостовой машины на сервер, лучше в домашний каталог (для пользователя root это каталог /root, для остальных - подкаталог в каталоге /home, соответствующий имени пользователя).

2. Затем распаковать каталог с приложением. Это можно сделать через файловый менеджер в Webmin - с помощью кнопок на панели инструментов, либо через веб-консоль: unzip addressbookv4.1.4.zip

3. Затем переместить распакованную папку с приложением в каталог /var/www/ (можно и в любое место, но тогда придется создавать на веб-сервере новый виртуальный хост). Переместить можно опять же либо через файловый менеджер в Webmin либо через веб-консоль командой mv -R /root/addressbookv4.1.4 /var/www/addressbookv4.1.4

Приложение будет доступно по адресу: http://192.168.56.101/addressbookv4.1.4

Обсудить в форуме