Установка и настройка Debian Linux под Hyper-V

Давайте продолжим наши упражнения в виртуализации Linux систем под Hyper-V. Сегодня мы займемся установкой и настройкой Debian 6 под Hyper-V. Все что я буду писать ниже можно применять не только к Debian 6, но и к Debian 5 и к остальным дистрибутивам основанным на Debian таким как Ubuntu, Kubuntu, Xubuntu, Ebuntu.

Debian не входит в список официально поддерживаемых Microsoft систем Linux для запуска под Hyper-V. Не смотря на это он работает в виртуальном окружении очень даже хорошо. В связи с тем, что официального пакета компонентов интеграции Hyper-V для Debian нет, мы воспользуемся драйверами Hyper-V встроенными в новейшие ядра Linux.

Установка Debian 6 под Hyper-V довольно банальна. Единственное что нужно сделать на этапе создания виртуальной машины это добавить в систему эмулируемый сетевой интерфейс Legacy. Он нам понадобится для первоначального обновления системы и установки новейшего ядра Linux.

Debian_legacy_network_hyperv

После завершения установки Debian 6 у нас будет ядро 2.6.32 конечно оно не блещет новизной, но в тоже время вполне нормально с многопроцессорными виртуальными машинами.

Debian6_4

Для того чтобы виртуальная машина смогла работать быстрее и воспользоваться всеми преимуществами Hyper-V нужно обновить ядро как минимум до 2.6.36. Перед сборкой нового ядра обновляем систему, устанавливаем исходные тексты текущего ядра и все необходимые инструменты для компиляции нового.

# apt-get update

# aptitude update

# apt-get install build-essential ncurses-dev kernel-package fakeroot install linux-headers-2.6 linux-source-2.6.32

Теперь приступим к сборке нового ядра 2.6.36 взятого с kernel.org

# cd /usr/src

# wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2

# bzip2 -d linux-2.6.36.tar.bz2

# tar xf linux-2.6.36.tar

# cd linux-2.6.36

# cp /boot/config* ./.config

# make menuconfig

В меню выбираем Device Drivers -> Stagging Drivers –> Microsoft Hyper-V Client Drivers

Debian6_kernel_compile_cut

На этом этапе так же можно удалить лишние драйвера для устройств, которых никогда не будет в виртуальной машине, таких как wi-fi, звуковые карты, USB, PCI. Впрочем, это не обязательно, если не желаете, можете не делать.

После этого можем начать сборку deb пакетов ядра. Для того чтобы лучше отличать ядра добавляем в название символы hyper-v.

 # make-kpkg clean
# fakeroot make-kpkg --initrd --append-to-version=-hyper-v kernel_image kernel_headers

Компиляция ядра занимает довольно продолжительное время. После этого в /usr/src появятся два deb пакета которые можно установить в систему командой dpkg –i.

Так же эти пакеты можно будет перенести и установить в другие виртуальные машины с Debian дабы не повторять процесс компиляции.

Редактируем /etc/initramfs-tools/modules и добавляем следующие строки указывающие загружать нужные модули при старте системы:

 hv_vmbus
 hv_storvsc
 hv_blkvsc
 hv_netvsc
 Обновляем initramfs: 
 # update-initramfs –u –k 2.6.36-hyper-v

Выключаем виртуальную машину, удаляем сетевой адаптер Legacy, добавляем синтетический сетевой адаптер и загружаем машину с новым ядром.

Debian6_kernel_compile_7

 После этого проверяем с помощью lsmod | grep hv что все нужные для работы Hyper-V модули загрузились.

Debian6_big_scsi_hdd

Обратите внимание, в новых версиях ядер Linux сетевой синтетический интерфейс Hyper-V переименован из seth в eth. Это может вводить в заблуждение.

Debian_synthetic_network

Как обычно я протестировал устойчивость виртуальной машины прокачав через нее в течении нескольких дней с помощью scp почти сотню гигабайт трафика. Виртуальные жесткие диски работают также достаточно быстро.

Debian6_12

Виртуальная машина работает стабильно в 4-х процессорной конфигурации с 44 гигабайтами ОЗУ. В общем можно сделать вывод, что Debian и основанные на нем дистрибутивы способны отлично работать под Hyper-V и применяться для реализации инфраструктурных элементов работающих с большой нагрузкой.