Установка и настройка 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 https://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
hv_storvsc
hv_blkvsc
hv_netvsc
Обновляем initramfs:
# update-initramfs –u –k 2.6.36-hyper-v
Выключаем виртуальную машину, удаляем сетевой адаптер Legacy, добавляем синтетический сетевой адаптер и загружаем машину с новым ядром.
После этого проверяем с помощью lsmod | grep hv что все нужные для работы Hyper-V модули загрузились.
Обратите внимание, в новых версиях ядер Linux сетевой синтетический интерфейс Hyper-V переименован из seth в eth. Это может вводить в заблуждение.
Как обычно я протестировал устойчивость виртуальной машины прокачав через нее в течении нескольких дней с помощью scp почти сотню гигабайт трафика. Виртуальные жесткие диски работают также достаточно быстро.
Виртуальная машина работает стабильно в 4-х процессорной конфигурации с 44 гигабайтами ОЗУ. В общем можно сделать вывод, что Debian и основанные на нем дистрибутивы способны отлично работать под Hyper-V и применяться для реализации инфраструктурных элементов работающих с большой нагрузкой.
Comments
Anonymous
January 01, 2003
Если самосборное ядро не удалось заставить работать попробуйте для начала взять уже готовое ядро www.yusufozturk.info/.../debian-2-6-36-kernel-upgrade-for-hyper-v-client-drivers-32-bit.html www.yusufozturk.info/.../debian-2-6-36-kernel-upgrade-for-hyper-v-client-drivers.html Попрактикуйтесь на нем. А затем уже переходите на более новое ядро.Anonymous
January 01, 2003
Alexandr если собственное ядро собрать не удалось можно воспользоваться например ядром которое сделал наш турецкий коллега. Взять его можно тут www.yusufozturk.info/.../debian-2-6-36-kernel-upgrade-for-hyper-v-client-drivers-32-bit.html www.yusufozturk.info/.../debian-2-6-36-kernel-upgrade-for-hyper-v-client-drivers.html К сожалению Ubuntu в кластере Hyper-V не запускал и наверно в ближайшее время не смогу. Нет под рукой оборудования для кластера. Есть такое ощущение что проблема в Ubuntu т.к остальные Linux системы в кластере живут нормально. Впрочем я могу и ошибаться. Упоминаний о проблеме в сети довольно мало www.google.ru Может быть стоит попробовать Debian вместо Ubuntu в кластере? Если это не поможет тогда остается мигрировать на что то официально поддерживаемое вроде SLES или RHEL. Если это не вариант то можно попробовать CentOS. По крайней мере этим системам уделяется больше внимания от Microsoft.Anonymous
January 01, 2003
Debian Wheezy (7.0) contain a backport Hyper-V drivers from Kernel 3.4 But the Hyper-V kernel modules ( as minimum, hv_vmbus hv_utils hv_storvsc hv_netvsc ) are missing in the installer image of Debian Wheezy created before 2012-11-13 Solution: You need use .iso created after 2012-11-14 ( or .iso by Arnaud Patard ) See details on vvm.blog.tut.by/.../debian-on-hyper-vAnonymous
January 01, 2003
У меня так и не получилось заставить рабоать модули ядра для HyperV, как только уже не делал, компилировал ядро с нуля, делал отдельные модули и копировал их в текущее ядро, ничего не получается. Что за магия? У Юсуфа на странице целая дискуссия, но что я делаю не так? :-DAnonymous
January 01, 2003
Снова решил попробовать удачу и скачал исходники ядра 2.6.39, указал что надо компилить модули интеграции HyperV, скомпилил, сделал deb-пакет, установил ядро через dpkg. перегружаюсь, и ... машина не грузится, ошибки инициализации этих модулей. Конфигурация Windows Server 2008R2 STD SP1, Debian 6.0.1, fail :)))))Anonymous
January 01, 2003
Андрей! Подскажите, а возможно ли сделать диск больше 136 ГБ?Anonymous
January 01, 2003
А с помощью чего вы делает бэкап? Зачем машину с Linux при этом отправлять в Save state?Anonymous
January 01, 2003
Вот японский коллега написал о том как ставить Debian с ядром 2.6.39.1 под Hyper-v www.microsofttranslator.com/bv.aspxAnonymous
January 01, 2003
Надо будет как нибудь сделать дайджест всего что про Linux/Unix и Hyper-V написано и запостить. Странно что они жалуются. Поисковики вроде еще не отменили. :)Anonymous
January 01, 2003
Если у вас стоят компоненты Hyper-v в Linux то там должен срабатывать VSS Writer. Это означает что во время резервного копирования нет нужды переводить виртуальную машину в save state. Она должна копироваться прозрачно.Anonymous
January 01, 2003
Василий. Нужно поставить Citrix Satori www.xen.org/.../satori.htmlAnonymous
January 01, 2003
Добрый день, Андрей! Сделал по Вашему мануалу, только ядро уже взял 2.6.38.3, Debian 6.0.1 Squeeze, всё компилирую, в меню загрузки появляется новое ядро с Hyper-V, выбираю его, но машина не грузится. Останавливается на Loading, please wait ... Снимок экрана можно посмотреть тут http://files.kipk.ru/error.gif Не подскажете, в чём может быть проблемка?Anonymous
January 01, 2003
Пробовал, у него Debian 5.0.6 и ядро скомпиливано под него, на 6.0.1 не взлетает, ладно, буду пробовать дальше :)Anonymous
January 01, 2003
А почему не перейти например на CentOS он явно лучше поддерживаться будет чем Debian и Ubuntu. Все таки у RedHat большая доля рынка и ресурсов явно больше.Anonymous
March 17, 2011
Вы бы это на ITBand запостили бы, а то там пользователи альтернативных ОС жалуются на отсутствие статей по их темам.Anonymous
March 18, 2011
Андрей, ставили мы тут Дебиан на виртуалку. С сборкой ядра возникли проблемы, но это мой косяк, скорее всего. Проблема у нас следующая. Сейчас на кластере Hyper-V крутится две машины на Убунте с синтетическими интерфейсами. Маки, естественно, статические. При переезде между узлами теряется пинг до этих машин. 3-5 минут нет пинга вообще. Причем, если из виртуалки пингануть чего-нибудь, сеть появляется. Есть какие-то идеи по этому поводу?Anonymous
March 20, 2011
Андрей, спасибо за ответ. Мы до Убунты пробовали Дебиан. История была та же самая. Сейчас у меня вырисовывается только костыльное решение: в крон поставить пинг каждые 3-4 минуты. Но крайне не хочется применять костыли.Anonymous
May 05, 2011
Поставил Debian 6 с ядром 2.6.38.3 под Hyper-V. Все отлично кроме одного неприятного момента: машина падает при выходе из состояния save, что затрудняет оперативный бэкап.Anonymous
May 06, 2011
Также save бывает полезным, когда хост идет на перезагрузку и виртуальные машины уходят в save, а при запуске хоста автоматом стартуют. Бэкап с помощью backup exec.Anonymous
May 20, 2011
Заработало на ядре 2.6.39 c нетронутым /etc/initramfs-tools/modulesAnonymous
July 14, 2011
подскажите как заставить работать мышь в удаленном сеансе под гипер ви. не могу найти нормальной инфы нигде.