Установка и настройка 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 6 у нас будет ядро 2.6.32 конечно оно не блещет новизной, но в тоже время вполне нормально с многопроцессорными виртуальными машинами.

Для того чтобы виртуальная машина смогла работать быстрее и воспользоваться всеми преимуществами 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

На этом этапе так же можно удалить лишние драйвера для устройств, которых никогда не будет в виртуальной машине, таких как 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
FakePre-82e5936d87854f24805f55079d40390f-6d9dbbc262db494eb635fbe733af05b3FakePre-e51285e680fc4a20b503094944452a8c-e0bcfdb8fe5f4783aabe5e9552468b3fFakePre-9c9f6480daa94d6f987d8e08f8f9fbd4-3221f89f7c8c4c94925e6120e24c9d49FakePre-9f23cad36d454f0faa5e7a1d7b194fa3-56de1481285743818a7a3e09ff5cd3a1FakePre-feebe5ab8bdf4543a4bc23631404d6e8-e9dd179b0ba040d88615bef97004d465

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

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

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

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

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

Автор статьи: Andrey Beshkov