Виртуализация для облегчения жизни разработчика

В процессе "окучивания" нового ноутбука столкнулся с достаточно простой задачей. По-умолчанию на моем ноуте оказалась установлена 32-битная версия Windows 7, причем с 4Гб оперативки. Однако, тот же Sharepoint 2010 существует только в 64-битной версии (хотя, имх, давно пора переходить на 64-bit при нынешней доступности оперативки). Встала задача оптимального кофигурирования машины. По результатам обсуждения с коллегами (спасибо Дмитрию Мартынову и Андрею Бешкову), удалось найти крайне элегантную, на мой взгляд, конфигурацию, не требующую создания нового раздела диска и установки второй операционки (Windows Server) "в параллель" с первой (т.е. Windows 7). Суть состоит в следующем:

Есть vhd-образ (virtual hard drive) Windows Server 2008 R2 x64 с ролью Hyper-V. Этот сервер будет хостом, под которым в свою очередь будут крутиться другие - гостевые виртуальные машины с Windows Server 2008 R2 x64 с Sharepoint 2010 и т.п.

В BCD (boot configuration data) создана новая запись для native-загрузки Windows Server из vhd.

Как вы понимаете, гостевые виртуалки так же представлены в виде соответствующих vhd, в том числе лежащих на внешнем диске и подгружаемых по небходимости в Hyper-V.

image

Основной вопрос - как правильно прописать Host.vhd в BCD. Пусть его файл C:\VHD\Host.vhd.

1. Получаем GUID, используемые Windows Boot Manager для загрузки по умолчанию, для чего просто запускаем bcdedit, который отобразит содержание BCD.

2. Создаем новую запись (entry) в BCD, копируя уже существующую для Windows 7, но уже с новым именем:
bcdedit /copy {default} /d “здесь указываем новое имя, которое будет использоваться для Windows Server

3. Используем полученый ранее GUID для следующих команд, корреткирующих новую BCD entry для загрузки из образа Host.vhd:
bcdedit /set {GUID} device vhd=[C:]\VHD\Host.vhd
bcdedit /set {GUID} osdevice vhd=[C:]\VHD\Host.vhd

После ребута в загрузочном меню у нас появилась вторая запись - для Windows Server с Hyper-V, под которым уже будут работать другие виртуальные машины - в том числе с Sharepoint 2010.

Уверен, после этого вам обязательно захочется побольше узнать о виртуализации. Вот тут не могу не сослаться на Андрея Бешкова, который в своем блоге дал ссылку на только что опубликованное и доступное для скачивания второе издание книги Understanding Microsoft Virtualization Solutions - отличный источник базовых архитектурных знаний о виртуализации. Уделите ему внимание, помня, что деятельность разработчика (а тем более архитектора) предполагает и планирование логики, топологии и ребований к развертыванию (deployment) создаваемых решений и систем. В конце концов система создается не ради того, чтобы сдать заказчику и забыть, а для того, чтобы эксплуатировать. А виртуализация - фундаментальный инструмент повышения гибкости инфраструктуры эксплуатации, будь то "приватное облако" - private cloud в вашем ЦОДе или полномасштабное облако - Microsoft Windows Azure, включающее и платформу (как таковую Windows Azure) и сервисы управления реляционными данными (SQL Azure) и другие перспективные инструменты (например, AppFabric).