Установка и настройка Linux Ubuntu 10.04 LTS под Hyper-V в Windows Server 2008 R2

    Выдалось немного свободного времени, поэтому сегодня я решил написать, как обстоят дела с работой Ubuntu 10.04 под Hyper-V.

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

    Ну что, приступим?

    Берем Linux Ubuntu 10.04 LTS. Подойдет как 64-х битная, так и 32-x битная версия. Создаем стандартную виртуальную машину, подключаем DVD с ОС и начинаем установку. Обратите внимание, что мы оставляем синтетический сетевой интерфейс, созданный по умолчанию внутри виртуальной машины. Больше нет необходимости использовать устаревший и более медленный сетевой интерфейс Legacy. Рекомендуется использовать статический Mac адрес сетевого интерфейса, если эта виртуальная машина будет мигрировать между физическими узлами кластера с помощью механизма Live migration.

    ubunt network settings hyper-v syntethic adapter

    Выполнять установку можно в текстовом или в графическом режиме. Я рекомендую делать это с помощью графики т.к в текстовом режиме перерисовка каждого меню занимает секунд 20-30. Это довольно сильно раздражает, хотя и не мешает завершить установку удачно.

    Сразу же после старта установки в течение минуты, другой можно наблюдать ворох предупредительны сообщений о нестандартном BIOS. Смело игнорируем их и продолжаем установку до тех пор пока не увидим следующее лаконичное сообщение.

    ubuntu installation finished hyper- v

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

    ubuntu vmbus kernell modules hyper-v

    Этого недостаточно, поэтому редактируем файл /etc/initramfs-tools/modules и добавляем в него строки разрешающие загрузку остальных необходимых нам модулей.
    hv_vmbus
    hv_storvsc
    hv_blkvsc
    hv_netvsc
    hv_utils




    Сохраняем файл и выполняем команду:
    $ sudo update-initramfs -u

    Прописываем в /etc/network/interfaces ваш новый синтетический сетевой интерфейс seth0. Если бы у вас использовался устаревший сетевой интерфейс Legacy, то он назывался бы eth0.

    Для статической адресации:
    Auto seth0
    iface seth0 inet static
    address x.x.x.x
    netmask x.x.x.x
    Gateway x.x.x.x


    Для получения адреса по DHCP:
    Auto seth0
    iface
    seth0 inet dhcp

    Я проверял оба способа сетевой адресации, они работают.

    Перезагружаемся и в процессе видим вот такие сообщения о том что устройства связанные с vmbus найдены.

    ubuntu vmbus kernell modules hyper-v messages

    После загрузки с помощью lsmod проверяем загруженные модули и смотрим, какие сетевые интерфейсы у нас есть в системе. ubuntu network interface modules hyper-v

    Как видите, сетевой интерфейс seth0 работает вполне нормально.
    ubuntu network test hyper-vubuntu network test hyper-v

    Так же стоит отметить, что Ubuntu нормально работает как в однопроцессорной, так и в многопроцессорной конфигурации. Система без проблем масштабируется до 4-х процессоров.
    ubuntu smp cpu hyper-v

    ubuntu smp cpu hyper-v

    ubuntu smp cpu hyper-v

    К сожалению, ресурсы ОЗУ моего тестового сервера ограниченны, поэтому дать более 14 ГБ ОЗУ виртуальным машинам с Ubuntu я не смог. Впрочем, для большинства задач такого объема вполне достаточно.

    Стоит отметить, что поддержки синтетической мыши в Ubuntu нет, а проект Satori пока что не портирован под этот дистрибутив, поэтому для удаленного управления в графическом режиме я использовал VNC.

    На всякий случай внутри виртуальных машин с Ubuntu я настроил веб сервер и FTP сервер. В течение нескольких дней с помощью скриптов периодически скачивал с них довольно большие объемы данных. Деградации быстродействия, каких либо проблем и сбоев замечено не было.

    Вывод – несмотря на то, что официально о поддержке Ubuntu не заявлено этот дистрибутив работает под Hyper-V весьма надежно и, по моему мнению, может использоваться в производственной среде.
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 42
    • 0
      Давно уже держу Archlinux под Hyper-V. Никаких проблем или отличий от стандартной установки не замечено вовсе.
      • 0
        Тоже самое писал еще год назад, ставил freebsd и debian
        Проблемы были только с DHCP
        • +1
          Я не так давно победил проблемы с DHCP во FreeBSD под Hyper-V. Надо будет написать обновленную инструкцию.
      • 0
        А какое у вас там ядро. Компонеты интеграции и синтетические устройства задействовали?
        • 0
          если вы ошиблись веткой, то…

          [root@regulus ~]# uname -a
          Linux regulus 2.6.35-ARCH #1 SMP PREEMPT Tue Sep 21 11:00:23 UTC 2010 i686 Intel® Xeon® CPU E5520 @ 2.27GHz GenuineIntel GNU/Linux
          
          [root@regulus ~]# lsmod | grep hv
          hv_utils                2688  0
          hv_netvsc              25002  0
          hv_vmbus               38404  2 hv_utils,hv_netvsc

          • 0
            Мне как раз было интересно как Arch работает под Hyper-V.

            Спасибо за подробный ответ.

            Кстати, еще вопрос. Многопроцессорность не тестировали?
            • 0
              нет, я покупаю дешевый VDS, своего Hyper-V у меня нет и негде поставить.
        • 0
          Жаль, приходится допиливать руками список модулей. Если с сетевым интерфейсом все и так понятно, то в случае с модулями надо знать, что именно подключать.
          Впрочем, я допускаю, что гуру виртуализации помнят все модули и без документации.
          • 0
            Давайте разберемся с модулями.

            hv_vmbus — шина Hyper-V
            hv_storvsc — хранилище т.е жесткие диски
            hv_blkvsc — блочные устройства, нужна для хранилища
            hv_netvsc — сетевые устройства
            hv_utils — синхронизации веремени, выключение гостевой и прочие сервисы Hyper-V
            • 0
              Благодарю. Но я подозреваю, что это все же не все модули, предоставляемые Hyper-V и их конфигурация может отличаться в различных ситуациях, так?
              • +1
                Это все модули. Конфигурировать их не нужно они работают по умолчанию и настройке не подлежат.
                • 0
                  Это радует. Может, я слишком ленив, но я люблю, когда все просто настраивается.
                  • 0
                    Это наиболее правильный подход. Простота использования того или иного продукта показывает что его разработчик потратил немало времени на полировку и доведение до совершенства своего детища.

                    В жизни полно вещей которые гораздо интереснее делать чем разбираться в хитросплетениях очередного ПО.
                    • 0
                      Но в некоторых случаях это может быть полезно. В общем, сферическое ПО в вакууме должно адекватно работать из коробки и иметь возможность тонкой доводки при помощи напильника, конфигов, мануалов и такой-то матери.
                      Взять тот же sendmail. Поднимается с полпинка. Но, открыв sendmail.cf, только тот, кто очень хорошо знаком с регулярными выражениями, не начнет верить в магию вуду.
          • +2
            Зачем мучались? Просто бы дали ссылкой — blogs.technet.com/b/abeshkov/archive/2011/01/30/3383495.aspx.
            • 0
              Не знал что можно сюда ссылки постить вот и пришлось мучаться с форматированием.
              • 0
                Для этого нужна карма не меньше 20.
            • 0
              windows server 2008 r2 с sp1?
              если да, пробовали Dynamic Memory?
              • 0
                Тестировал под Windows Server 2008 R2 SP1. На данный момент Dynamic Memory работает только в гостевых Windows. Идет разработка необходимых механизмов для других ОС.
              • –1
                Обязательно опробуем!!! Спасибки.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Вы отстали от жизни и не в курсе ситуации. Обновленный код Hyper-V в ядре Vanila уже давно.
                    • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  Это тестовая машина или у вас на сервере графика?
                  • 0
                    Графика специально ставится, чтобы проверить как гостевые ОС будут реагировать на виртуальную видеокарту.
                  • +1
                    Производительность IDE-дисков у меня была просто чудовищно малой. Подключение дисков как scsi эту проблему решало, но при активном использовании ядро раз в дня два впадало в панику. Обычный LAMP-стек на ubuntu 10.04 server x86_64.
                    • 0
                      Синтетические устройства с новыми драйверами использовали?

                      И еще чем меряли быстродействие? Хочу провести такие же тесты.

                      • +1
                        hdparm, dd.

                        SCSI и есть синтетический.

                        Еще плохо что загрузочный диск может быть только IDE.
                    • 0
                      К сожалению, ресурсы ОЗУ моего тестового сервера ограниченны, поэтому дать более 14 ГБ ОЗУ виртуальным машинам с Ubuntu я не смог.

                      — тонко. :)
                      • 0
                        Hyper-V может дать каждой гостевой ОС до 64 ГБ. Хотелось это попроовать под Ubuntu и посмотреть как она будет работать. Впрочем надеюсь что мне это еще удастся сделать.
                        • 0
                          Но вы понимаете, что сегодня все-таки у многих хабралюдей возникает некоторый когнитивный диссонанс, когда они видят в одном предложении «14Гб ОЗУ» и «ресурсы ограничены»?
                          • 0
                            Надо стремиться к лучшей жизни. Надеюсь скоро такие у всех будут не сервера а ноутбуки. :)

                          • 0
                            P.S. Большое спасибо за статью. У нас на работе в скором времени планируется внедрение Hyper-V —, уду продвигать вопрос о переносе некоторых внутренних веб-проектов на Ubuntu Server, очень уж много всяких неприятных моментов с их работой под Windows…
                            • 0
                              А почему именно Ubuntu для серверов веб проектов?

                              Мне как то привычнее в качестве серверной платформы видеть RHEL, Fredora или Suse.
                              • 0
                                Ну вы сами ответили. Привычнее. :)
                                • 0
                                  + RedHat и Suse стоят приличных денег, а Fedora на «боевых» серверах вроде не сильно жалуют, не?
                          • 0
                            Вместо Fedora можно использовать CentOS
                            • 0
                              есть одно существенное замечание — недавно столкнулись при установке Ubuntu 10.04 LTS под Hyper-V.
                              Если после установки системы и включения всех модулей hv_vmbus, hv_storvsc, hv_blkvsc, hv_netvsc, hv_utils провести обновления системы, а именно:
                              #apt-get upgrade или(и)
                              #apt-get dist-upgrade, то система сваливается в ошибку при обновлении, а при перезагрузке полностью умирает! :)

                              Решение:
                              перед обновлением системы из модулей
                              hv_vmbus
                              hv_storvsc
                              hv_blkvsc
                              hv_netvsc
                              hv_utils
                              нужно оставить включенными модули
                              hv_vmbus
                              hv_netvsc
                              после этого можно спокойно обновить систему, а потом обратно включить выключенные модули
                              • 0
                                Не нашел в посте одного, зачем это делать? Использовать обе системы?

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