Недавно вышла вторая версия компонентов интеграции Hyper-V для Linux систем. Подробно о том, что улучшилось и изменилось можно прочитать в блоге http://blogs.technet.com/vm/archive/2009/07/22/hyper-v-linux.aspx
Я же хотел поговорить о том как их устанавливать и применять для повышения скорости работы SUSE Linux Enterprise Server 10 SP3 под Hyper-V. Для начала краткое введение в предмет нашего сегодняшнего разговора.
SLES как и openSUSE под Hyper-V можно было успешно запускать уже несколько лет назад. Говоря точнее, делать это можно было еще с момента ранних бета версий Hyper-V R1 встроенного в Windows Server 2008 и Microsoft Hyper-V Server 2008.
Но к сожалению из-за отсутствия компонентов интеграции (Integration components - аналог VMadditions) гостевые системы Linux были лишены поддержки синтетических виртуальных устройств. Им были доступны только эмулируемые устройства. Это ограничивало быстродействие таких гостевых систем и не позволяло им использовать всю мощь Hyper-V и физического оборудования. Эмулируемые устройства по умолчанию работают медленнее, чем синтетические. Это означает, что гостевым системам Linux был доступен лишь эмулируемый сетевой адаптер (Legacy Network Adapter). Такой адаптер не позволяет добиться скорости обмена данными виртуальной машины с сетью более чем 100 Мбит, даже если физический адаптер работает на скорости 1 Гбит. Это ограничение можно было обойти, подключив к виртуальной машине несколько адаптеров и объединив их в единый канал с помощью механизма bonding. Как это сделать описано тут http://en.opensuse.org/Bonding. Второе ограничение было связано с тем, что жесткие диски виртуальной машины тоже были реализованы через эмулируемое устройство. В целом такой уровень производительности был приемлем для многих. Большинство из клиентов выбравших Hyper-V как систему виртуализации для своих унаследованных Linux ОС вполне довольны тем как гостевые ОС работают даже без синтетических драйверов. Но мы хотели улучшить ситуацию, повысив утилизацию оборудования и улучшив быстродействие и добавив удобство при использовании Linux под Hyper-V.
Поэтому появилась первая версия интеграционных компонентов - Linux Integration Components for Windows Server 2008 Hyper-V. Она улучшила некоторые проблемные участки, но все еще была не совершенна. Для работы эта версия требовала наличие ядра с компонентами Xen. Гостевые Linux системы стали работать быстрее, но процесс установки компонентов был не так уж прост. Подробно останавливаться на этом этапе я не буду. Инструкций детально описывающих как устанавливать эту версию интеграционных компонентов в сети полно. Можете воспользоваться, например этой http://www.virtualizationteam.com/microsoft/hyper-v/install-suse-linux-enterprise-10-sp1-component-integration-for-linux-on-hyper-v.html. С выходом второй версии компонентов интеграции эти инструкции становятся все менее полезными. Всем, кто использует первую версию компонентов интеграции, рекомендуется обновиться до второй версии. Как обновляться написано в документе Linux Integration Components Read Me.pdf
Итак, мы добрались до момента, когда вторая версия компонентов интеграции уже вышла. Она принесла с собой следующие новые возможности:
Чтобы воспользоваться всеми этими дарами прогресса, нужно всего лишь установить вторую версию компонентов интеграции. Начнем с установки гостевой ОС.
Наша задача для начала установить SUSE Linux Enterprise Server 10 SP3 под Hyper-V R2 в Windows Server 2008 R2. А затем уже установить в гостевую ОС компоненты интеграции
Я буду описывать установку 32-х битного варианта SUSE Linux Enterprise Server 10 SP3. Для 64-х битного варианта действия, которые необходимо выполнить будут абсолютно такими же.
Процесс довольно прост. Создаем виртуальную машину и определяем её характеристики:
По умолчанию Hyper-V создает виртуальную машину с синтетическим сетевым адаптером. Как я уже писал, без компонентов интеграции он работать не будет, поэтому удаляем его и добавляем эмулируемый адаптер под названием Legacy Network.
Вот теперь можно приступать к установке SLES. Никаких хитрых режимов работы инсталлятора выбирать не нужно, все работает в конфигурации по умолчанию. Среди устанавливаемых компонентов и приложений рекомендуется выбрать компилятор gcc и исходные тексты ядра kernel-source, если собираетесь использовать компоненты интеграции. Впрочем, сделать это можно и после завершения установки системы.
Как только установка завершится настраиваем DNS имя, разрешение экрана. Я выставил разрешение 1024х768, иначе на моем 15-ти дюймовом мониторе окно виртуальной машины не будет помещаться в экран. Для смены разрешения нажимаем несколько раз CTRL-ALT-BREAK и продолжаем установку в удобном разрешении.
Если, вы производите установку на удаленном сервере Hyper-V, подключившись к нему через RDP, то без компонентов интеграции мышь в окне виртуальной машины у вас работать не будет. Поэтому все опции придется переключать с помощью клавиатуры. Исправить это можно двумя способами. Установить в гостевую ОС компоненты интеграции, и затем драйвер синтетического устройства мыши или работать локально на сервере Hyper-V. Я обычно выбираю второй вариант. Все новые ОС я устанавливаю на довольно дешевый ноутбук, работающий под управлением Windows Server 2008 R2 с Hyper-V. На нем я локально создаю виртуальную машину, устанавливаю все нужны компоненты интеграции и затем уже экспортирую виртуальную машину. Получившийся набор файлов виртуальной машины я переношу на основной сервер Hyper-V и запускаю там. В этот момент мышь внутри окна виртуальной уже работает даже через RDP.
После окончания установки загружаем SLES в первый раз, настраиваем и тестируем сетевой интерфейс eth0. У меня в сети используется DCHP, вы же можете использовать и статическую настройку IP адреса. Оба способа работают надежно. Если необходимо можете обновить гостевую ОС.
Базовые функции гостевой ОС работают нормально, и если вам больше не охота заниматься настройкой, то можно остановиться здесь. SLES будет работать вполне нормально в качестве гостевой системы.
Мы же пойдем дальше и установим в гостевую систему компоненты интеграции Hyper-V, дабы получить доступ к более производительным виртуальным устройствам.
Скачать компоненты можно здесь - Linux Integration Components for Windows Server 2008 Hyper-V R2. Обратите внимание что эта версия компонентов подходит для обоих версий Hyper-V и поддерживает следующие системы виртуализации:
Итак приступим.
Выключаем гостевую ОС и добавляем в виртуальную машину синтетическое сетевое подключение, а Legacy Adapter удаляем.
Скачиваем компоненты интеграции для Hyper-V если вы этого еще не сделали и запускаем их. В результате получаем файл образа виртуального DVD под названием LinuxIC v2.iso. Подключаем его к гостевой системе через свойства виртуальной машины либо через меню Media.
У меня в системе включено автоматическое монтирование DVD, поэтому диск с исходными текстами компонентов интеграции был подключен к /media/CDROM. Я надеюсь, как монтировать DVD в Linux вы знаете. Создаем директорию, где будем компилировать модули ядра. Копируем туда исходные коды и начинаем сборку и установку.
# mkdir /opt/Linux_ic
# cp /media/CDROM/* /opt/Linux_ic –R
# /opt/Linux_ic/setup.pl drivers
Если все прошло удачно, то увидим что модули netvsc, storvsc, blkvsc, vmbus, scsi_mod загрузились. Проверить это можно с помощью команды lsmod.
# /sbin/lsmod | grep vsc
Результат должен быть примерно такой:
Перезагружаем гостевую систему. И настраиваем сетевой интерфейс seth0.
Как видите, ничего сложного в этом нет. Теперь неплохо было бы установить драйвер синтетического устройства мыши, чтобы было удобнее управлять гостевой ОС через подключение vmconnect или RDP.
На данный момент драйвера мыши не включены в поставку компонентов интеграции и разрабатываются компанией Citrix в рамках отдельного проекта Satori. Скачиваем с сайта файл inputvsc.iso и подключаем его как виртуальный DVD к гостевой системе.
# mkdir /opt/inputvsc
# cp /media/CDROM/* /opt/inputvsc –R
# /opt/inputvsc/setup.pl inputdriver
Если все прошло удачно, то увидим что в системе появились модули inputvsc и hid. Проверяем как обычно с помощью lsmod
После этого виртуальное устройство синтетической мыши сразу же начнет работать и вам больше не потребуется нажимать CTRL+ALT+LEFT чтобы освободить мышь из окна гостевой ОС. Плюс к этому мышь будет нормально работать через RDP подключение. Теперь SLES полностью готов к работе под управлением Hyper-V. Дабы не проходить это процедуру каждый раз заново рекомендуется экспортировать полученную виртуальную машину и использовать ее при развертывании новых гостевых ОС на основе SLES. Сделать это можно вручную или с помощью SCVMM.
Надеюсь, данная статья поможет вам. В ближайшее время я опишу выполнение подобной процедуры для RHEL и его клонов. С радостью услышу ваши предложения по тем ОС которые вы бы хотели протестировать под Hyper-V.
Спасибо Андрей за такой познавательный блог
А Дебиан вы пробывали так устанавливать?
К сожалению у меня сейчас нет подходящего оборудования для развертывания Hyper-V но все таки читаю оч интересно
Рад что вам полезно и познавательно чтение этого блога, значит пишу не зря. :)
Пока что запустил под Hyper-V следующие ОС: openSUSE 11, Fedora 11, Centos 5.3, SLES 11, RHEL 5.3
Debian еще не ставил. Это входит в ближайшие планы.
Андрей, привет. В ветке виртуализации Технета задается довольно часто вопрос о тех опенсорсных системах, которых в компатибл-листе нет, но работать могут. Будут ли ставиться Вами эксперименты по их виртуализации? -)
Привет, Денис.
В дальнейшем планирую писать про запуск множество других Unix подобных ОС. Как видишь мне уже удалось запустить и нормально работать с большинством самых популярных Linux. В списке совместимых с Hyper-V ОС их пока нет, но надеюсь что скоро это изменится.
День добрый !
А вот на CentOS 5.3 такой фокус не удася :(
Все остановилось на
#############################################
Installing vmbus startup script...
Starting vmbus:
Не далее как вчера поставил компоненты интеграции на Centos 5.3 i386
Все работает отлично. В ближайшие дни опишу как это делать.
Здравствуйте !
Вопрос такой - зачем нужен Windows Server 2008 и Microsoft Hyper-V Server 2008 ?
С уважением, Юниксоид
> Вопрос такой - зачем нужен Windows Server 2008 и Microsoft Hyper-V Server 2008 ?
Для запуска Windows приложений. А в контексте данной статьи для запуска гостевых ОС в виртуализациии.
Спасибо за подробную и очень полезную статью.
Хотелось бы видеть как можно больше информации по совместимости ПО Майкрософт и Linux/Unix.
В контексте данной статьи было бы интереснее сравнить производительность XEN с Hyper-V, а также хочу заметить, что на серверы (Linux-серверы, естественно) иксы обычно не ставят, так что гламурные картинки ни к чему, имхо.
Кстати, на опеннете все комменты потёрли, к чему бы это ? :-)
Было бы очень полезно ))
Спасибо!!!
>В контексте данной статьи было бы интереснее сравнить производительность XEN с Hyper-V
Так кто же вам мешает сделать такое сравнение и опубликовать результаты? Я бы с удовольствием почитал. У меня врядли дойдут руки до такого сравнения т.к ближайшиен несколько недель сильно занят конференцией Платформа 2010.
С другой стороны я думаю, что любое сравнение быстродействия будет очередной пузомеркой т.к в реальных системах этот вопрос стоит не на первом плане. Тут мне кажется важнее то как продукт интегрируется с другими, как он управляется, мониторится, поддерживается и как развертывается. С точки зрения реального ИТ бизнеса это явно важнее, чем несколько процентов быстродействия в плюс или в минус.
> , а также хочу заметить, что на серверы (Linux-серверы, естественно) иксы обычно не ставят, так что гламурные картинки ни к чему, имхо.
Насчет серверов в производственной среде с вами согласен. В своих статьях картики оставляю потому, что обычно новички стараются первые несколько раз изучать новое в графической среде. Опять же с картинками проще доказать что все работает. Особенно это относится к таким вещам как синтетический адаптер мыши и графического дисплея. Согласитесь что без X сервера их наглядно продемонстрировать гораздо сложнее.
> Кстати, на опеннете все комменты потёрли, к чему бы это ? :-)
Кто ж его знает к чему. Я так полагаю этот вопрос нужно задавать администрации opennet. Возможно сбой, потому что у всех моих старых статей про Unix комментарии сохранились.
http://www.opennet.ru/search.shtml?exclude=index%7C%2Fman.shtml&words=%E2%C5%DB%CB%CF%D7
А когда можно ожидать описание настройки компоненты интеграции на Centos 5.3?
Да кстати, я пытался устанавливать на Centos 5.3 x64. Может в этом дело ??
> А когда можно ожидать описание настройки компоненты интеграции на Centos 5.3?
Надеюсь в ближайшие дни.
> Да кстати, я пытался устанавливать на Centos 5.3 x64. Может в этом дело ??
Я ставил только на Centos 5.3 i386. Вполне возможно что с x64 могут быть проблемы.
>С точки зрения реального ИТ бизнеса это явно важнее, чем несколько процентов быстродействия в плюс или в минус.
С точки зрения реального ИТ бизнеса всё важно, т.к. виртуализация это в том числе и способ сэкономить, тем более что речь вовсе не о нескольких процентах. К тому что есть дистрибутивы и кроме SUSE, а про них ни слова.
Что касается удобства - то Hyper-V тут нечем похвастаться, и это отмечается в обзоре: http://itmanagement.earthweb.com/entdev/article.php/11070_3815481_2/Virtualization-VMware-vs-Microsoft-vs-Xen-2009.htm
"Limited management tools"
Ну да ладно - Вы работаете на PR Microsoft, так что спорить смысла нет, тем более блог ваш, корпоративный. Интересно другое - что тут мои комменты висят, а на опеннете их потёрли.
Получается, что на блоге Microsoft больше свободы слова, чем не опеннете ??? O_o