Установка и настройка CentOS Linux 5.5 под Hyper-V
Давайте продолжим серию статей о запуске Unix и Linux систем под Hyper-V R2. Сегодня посмотрим, как устанавливать и настраивать CentOS 5.5 под управлением нашей системы виртуализации. Почему именно CentOS? Все очень просто он является самым популярным среди любителей RedHat подобных дистрибутивов.
Для тех, кому лень читать могу сказать что CentOS работает под Hyper-V очень хорошо и готов к применению в производственной среде. Кстати, все, что я напишу ниже можно с таким же успехом применять и для RHEL.
Ну что приступим?
Создаем виртуальную машину. И добавляем в нее сетевой адаптер Legacy. Он пригодится нам для обновления CentOS и для установки компонентов интеграции Hyper-V.
Запускаем установку ОС. Для того чтобы сценарий тестирования был наиболее реалистичным будем использовать динамические жесткие диски VHD. Обратите внимание, что гостевая система вполне нормально работает с дисками размера до 2 ТБ. Использование динамических дисков автоматически расширяющихся при необходимости поможет нам реалистичнее посчитать среднюю производительность дисковых операции.
Так же в процессе установки можно настроить сетевой интерфейс Legacy.
После этого установка ОС выполняется, так же как и на обычном физическом оборудовании. После завершения установки и первой перезагрузки, входим в гостевую систему и проверяем работу сети.
Сейчас нам доступен сетевой адаптер со скоростью 100 МБит/c. Для многих задач этого достаточно, но ведь хочется более высоких скоростей? Скоро мы и до этого дойдем.
Обратите внимание, что даже без сервисов интеграции с Hyper-V система способна работать с несколькими виртуальными процессорами. Максимальное количество виртуальных процессоров 4.
Как видите базовый функционал работает вполне нормально. Теперь давайте приступим к установке сервисов интеграции Hyper-V. Что это даст нам?
- Синтетические драйвера для жестких дисков и сетевых контроллеров оптимизированные специально для Hyper-V R2.
- Fastpath Boot позволяет жестким дискам с которых загружается гостевая ОС работать быстрее.
- Синхронизация времени гостевой ОС с часами Hyper-V.
- Правильно завершение работы гостевой ОС Linux по команде Shutdown из Hyper-V, System Center Virtual Machine Manager или Powershell.
- Heartbeat – периодическая проверка сердцебиения гостевой ОС.
Перед установкой сервисов интеграции Hyper-V обновляем гостевую ОС через графический интерфейс или с помощью команд:
# yum update
# reboot
После перезагрузки неплохо было бы сделать мгновенный снимок (``snapshot`` ) средствами ``Hyper``-``V``, если что-то пойдет не так, всегда сможем откатиться назад.
Теперь устанавливаем заголовки ядра и инструменты разработчика
# yum ``installkernel-devel
# yum groupinstall ``"development tools"
Скачиваем интеграционные сервисы для Hyper-V распаковываем их и подключаем ISO к гостевой CentOS.
Собираем и устанавливаем модули ядра для синтетических устройств
# mkdir /opt/linux_is
# cp -R /media/CDROM/* /opt/linux_is
# cd /opt/linux_is
# make
# make install
Проверяем что модули загрузились с помощью команды
# lsmod | grep vsc
Выключаем гостевую ОС с помощью poweroff. Удаляем из нее сетевой адаптер Legacy и добавляем синтетический адаптер. Запускаем ОС и настраиваем новый сетевой адаптер seth0.
Теперь можно провести тестирование скорости работы синтетического сетевого адаптера с помощью iperf.
Как видите скорость на сетевом интерфейсе seth0 в среднем составляет 492,5 Мбит/c. Довольно неплохой результат для виртуальной машины.
К сожалению, выполнять загрузку гостевой ОС Hyper-V умеет только с IDE дисков поэтому рекомендуется на них располагать только раздел /boot. Для всех остальных разделов рекомендуется в качестве жестких дисков использовать SCSI диски. В этом случае мы сможем добиться гораздо более высокого быстродействия.
Если вам нужно сделать так чтобы, подключаясь через RDP к консоли Hyper-V вы могли управлять CentOS с помощью мыши в графическом режиме ставим драйвера синтетического устройства мыши.
Скачиваем их со страницы проекта Citrix Satori, присоединяем ISO файл к виртуальной машине, копируем исходники и устанавливаем скомпилированный драйвер.
# mkdir /opt/mouse_is
# cp -R /media/CDROM/* /opt/mouse_is
# cd /opt/mouse_is
# ./setup.pl inputdriver
На этом установку всех компонентов интеграции можно считать законченной.
Давайте посмотрим, как CentOS чувствует себя в настоящих больших производственных средах. Для этого я дал ему те ресурсы, что были в наличии на тестовом сервере - 44 Гб ОЗУ и 4 процессора. К сожалению больше ресурсов у меня не было. Интересно было бы глянуть, как CentOS чувствует себя, если дать ему 2ТБ ОЗУ.
Затем в течении нескольких дней с помощью скриптов запущенных в несколько потоков создавал командой dd файлы размером до 2ТБ и перекачивал их по ftp и scp на другой сервер. Каких либо проблем и сбоев не обнаружилось.
Поэтому я делаю вывод, что CentOS может использоваться как виртуальная система под Hyper-V для проектов с довольно большой нагрузкой.
Comments
Anonymous
January 01, 2003
А что Citrix выпустивший Satori по этому поводу говорит?Anonymous
January 01, 2003
По скорости passthru будет не сильно быстрее чем VHD. Вот почитайте исследование скорости работы разных типов хранилища для Hyper-V download.microsoft.com/.../WS08_R2_VHD_Performance_WhitePaper.docx При использовании passthrough возникнут неудобства с Live migration. К сожалению протестировать passthrough диски размером более 2 ТБ сейчас не могу т.к нет под рукой оборудования. Если вам необходимо создать том больше чем 2040 гб есть предложение сделать несколько SCSI VHD дисков и объединить их в один вирт. том внтури гостевой машины средствами LVM.Anonymous
January 01, 2003
Там ведь нет ничего сложного! Могу посоветовать сделать по подобию вот этой инструкции, blog.allanglesit.com/.../Hyper-V-Guests-Compile-Linux-2-6-32-on-Debian.aspxAnonymous
January 01, 2003
Вот уже полгода CentOS прекрасно себя чувствует на сервере под Hyper-V. В принципе, ничего нового из данной статьи не почерпнул -- просто подтверждаю работоспособность и устойчивость данной ОС на Hyper-V. Где-то с месяц назад вручную поставил ядро 2.6.32 с компонентами H-V -- теперь нет проблем с постоянным "слётом" модулей после обновления ядра.Anonymous
January 01, 2003
Скоро необходимость в установке интеграционных компонент отпадет полностью. В ядро Linux будут по умолчанию включены драйвера Hyper-V. Например вчера я подключил синтетические драйвера Hyper-V в виртуальную машину под Debian просто скомпилировав ядро 2.6.36 А позавчера обнаружил что в SUSE Linux 11 SP1 в ядре с которым система ставится уже по умолчанию есть все нужные драйвера и они включены. Так что скоро эта проблема совсем отпадет.Anonymous
January 01, 2003
Вот кстати еще один обходной путь установки сервисов интеграции Hyper-V на ядро которое сейчас не запущено www.devplace.nl/.../updating-hyper-v-drivers-after-kernel-upgrade-on-centosAnonymous
January 01, 2003
Вот тут описано про ограничения системы хранения. blogs.technet.com/.../storage-options-for-windows-server-2008-s-hyper-v.aspx Попробуйте диск размером 2040 МБ. Должно сработать. Кстати Passthru не самый лучший режим с точки зрения миграции системы. Лучше уж использовать VHD.Anonymous
January 01, 2003
Ingvar, воспользуйтесь данным советом для решения проблемы "слётов" support.microsoft.com/.../en-usAnonymous
January 01, 2003
Проверил - устанавливается. Есть несколько вопросов. 1 - в процессе установки интеграционных сервисов получил сообщение что эта версия ОС не поддерживает получение настроек времени. Чем это грозит и как с этим бороться? 2 - а где взять утилиту iperf (в дистрибутиве её нет и yum тоже ничего не знает о ней). 3 - было бы здорово написать статью об установке интеграционных сервисов на Fedora (например 14 версии). Понимаю, что это "страшное колдунство", но всё же..Anonymous
January 01, 2003
Только что проверил. Citrix почему то убрал с сайта Satori. Надеюсь скоро выйдет официальное разъяснение.Anonymous
January 01, 2003
А в ядре Centos 6 компоненты будут встроены?Anonymous
January 01, 2003
А вы до них донесли мысль что Linux Integration Components уже установлены? Можно кстати еще посмотреть в исходниках где оно выдает эту ошибку и понять почему не срабатывает скрипт.Anonymous
January 01, 2003
Действительно, с 23 февраля ссылка перестала работать. Недоступна и прямая ссылка на iso... Выложил сохранившийся образ narod.ru/.../inputvsc.iso.html Сохраните его где-нибудь, хотя бы для истории ;)Anonymous
January 01, 2003
А какой именно дистрибутив Linux вы хотите использовать под Hyper-V? Кстати подумалось еще вот о чем. А тот Linux что вы собираетесь использовать поддерживается производителем в той конфигурации которую вы хотите использовать? Спрашиваю потому что в случае проблем служба поддержки Microsoft должна будет общаться с теми кто осуществляет поддержку со стороны Linux.Anonymous
January 01, 2003
Ivan Bogatchev Я пробовал запускать с 4 процессорами только Debian 6. Не уверен что 5-я версия будет работать в таких условиях. Думаю что вам надо обновиться.Anonymous
January 01, 2003
Добрый день! Интересует, как можно обойти проблему при обновлении ядра, когда слетают компоненты интеграции и при загрузке система падает в kernel panic. Можно, конечно, вручную каждый раз переустанавливать компоненты интеграции под новое ядро, но это плохой вариант.Anonymous
January 01, 2003
Если CentOS 6 выйдет с ядром новее 2.6.32 то думаю что будут.Anonymous
January 01, 2003
Подтверждаю безпроблемную работу CentOS под Hyper-V. Использую для Asterisk, который в свою очередь подключает Lync Server к SIP провайдеру. Еще бы динамическую память к нему прикрутить ;)Anonymous
January 01, 2003
gdsorama получение времени из основной ОС пока что не поддерхивается для x64 версий некоторых Linux. Можно организовать синхронизацию времени с помощь пакета adjtimex. rpm пакет iperf можно взять тут www.google.ru В Fedora с новым ядром должны легко ставится компаноенты интеграции. Надо будет написать про это на досуге.Anonymous
January 01, 2003
А может вы опубликуете инструкцию о том как переходили на Centos с ядром 2.6.32 и включали нужные модули? Думаю многим будет полезно если ссылку тут разместить.Anonymous
February 17, 2011
Привет, Андрей! Хочу добавить, что в 10.х версии Ubuntu, так как она собрана на последних версиях ядра Linux, тоже изначально присутствуют драйвера для полноценной работы под Hyper-V.Anonymous
February 22, 2011
И где же взять этот Citrix Satori? По ссылке не открывает, 3 дня поисков в гугле отправляют на эту же не работающую ссылку. Где-нибудь лежит файл inputvsc.iso еще?Anonymous
February 25, 2011
Андрей, Debian 5.0.8 видит только 1 ядро, хотя в параметрах Hyper-V выделил ему 4. Как быть?Anonymous
April 04, 2011
Подскажите пожалуйста, что Вы слышали о ограничении размера диска для данной ОС (на Hyper-V). Столкнулись с проблемой: презентуем lun 3,6 Тб с СХД (Pass through to physical host drive) и сталкиваемся с ошибкой: sda : very big device. try to use READ CAPACITY(16). sda : READ CAPACITY(16) failed. sda : status=0, message=00, host=5, driver=00 sda : use 0xffffffff as device size SCSI device sda: 4294967296 512-byte hdwr sectors (2199023 MB) sda: Write Protect is off sda: Mode Sense: 0f 00 10 00 SCSI device sda: drive cache: write back w/ FUA То есть, это синтетическое устройство и IS 2.1 конечно установлен. Сталкивались ли Вы с подобным? Есть ли возможность проверить совместимость Hyper-v + ОС с ядром 2.6.18 + IS 2.1+lun более 2 Тб.Anonymous
April 04, 2011
Вот именно, ограничение 2040МБ только для VHD, нам надо использовать размер больший - потому и принято решение выбрать passthrough (кстати это еще и быстрее чем VHD). Но в отличии от Windows ОС, где нет проблем с подобным типом дисков на Linux-е мы столкнулись с ограничением в 2 ТБ... Есть подозрение что это проблемы IS 2.1, но как проверить? Более свежей версии нет, а найти что-то подобное как продакшн использование Linux под Hyper-v не могу. Потому и спрашиваю у Вас, есть ли возможность проверить и каков будет результат теста.Anonymous
April 27, 2011
Обновил ядро Centos до 2.6.28.3. В настройках компиляции указал драйвера для HYPERV. Пытаюсь поставить драйвер с Сатори для мыши:[root@mita2 mouse]# ./setup.pl inputdriver Vmbus driver not installed! Please install it and rerun. Проверяю драйвера:
/sbin/lsmod | grep vsc
hv_netvsc 24702 0 hv_vmbus 39974 2 hv_utils,hv_netvsc Как можно решить эту поблему?
Anonymous
April 28, 2011
The InputVSC driver requires the Linux Integration Components to be installed, and supports the same guest distro versions. Я вроде установил эти компоненты при компиляции ядра 2.6.38Anonymous
April 29, 2011
[root@mita4 INTEGR]# make Building all modules... make -C /lib/modules/2.6.18-194.el5/build SUBDIRS=/tmp/INTEGR/src modules make[1]: Entering directory/lib/modules/2.6.18-194.el5/build' make[1]: *** No rule to make target
modules'. Stop. make[1]: Leaving directory `/lib/modules/2.6.18-194.el5/build' make: *** [all] Error 2 На новой уже только что установленной виртуалке попробовал установить компоненты интеграции-выдаёт такую ошибку