31.03.2007

Виртуализация с Xen. Живая миграция

После конференции 26 марта 2007 мы получили достаточно много вопросов касательно живых демонстраций. Поэтому мы решили рассказать о том, на каких технологиях он были основаны, как организованы, и как их можно повторить.

Для демонстрации использовались 2 сервера и 2 клиента. Виртуальная машина, с которой велась трансляция, мигрировала между серверами. Один клиент использовался в качестве управляющей станции, со второго собственно демонстрировалась трансляция. Клиентов, в принципе, можно объединить в одного. Соединены все машины были через обычный 100 Mbit Ethernet.

Далее используются следующие имена машин:

xen_host_1 - первый физический сервер
xen_host_2 - второй физический сервер
virt_server - виртуальный сервер

Подготовка демонстрации

  1. Установите на xen_host_1 и xen_host_2 Red Hat Enterprise Linux 5 с поддержкой виртуализации.
  2. Установите на xen_host_1 в виртуальную машину virt_server паравиртуализованный Red Hat Enterprise Linux 5.
  3. После установки отредактируйте /etc/xen/virt_server, приведите его к следующему вид:
    #vnc=1
    #vncunused=1
    sdl=1
    Это необходимо, чтобы можно было осуществить живую миграцию данной виртуальной машины.
  4. Теперь необходимо настроить xen на xen_host_1 и xen_host_2 таким образом, чтобы он позволял осуществить миграцию между двумя физическими серверами. Для этого внесите следующие изменения в /etc/xen/xend-config.sxp на обоих машинах:
    #(xend-unix-server yes)
    (xend-relocation-server yes)
    (xend-relocation-port 8002)
    (xend-relocation-address '')
    (xend-relocation-hosts-allow '')
    #(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
    После этого перезапустите xen
    service xend restart
  5. Теперь нам необходимо, чтобы оба физические сервера видели общее хранилище, на котором находятся данные виртуальной машины. Кроме того, необходимо, чтобы оно было смонтировано по одинаковому пути. Это требуется потому, что при миграции виртуальной машины ее файловая система не копируется, так как это требовало бы слишком много времени даже в случае быстрой сети.
    В нашем распоряжении не было внешнего накопителя, но это не стало препятствием. Мы использовали NFS.
    На xen_host_1 (на котором установлен virt_server) в /etc/exports добавьте строку:
    /xen *(rw,sync,no_root_squash)
    После этого перезапустите NFS и убедитесь, что сервис стартует автоматически:
    service nfs restart
    chkconfig nfs on
  6. Смонтируйте созданную папку на xen_host_2:
    mount xen_host_1:/xen /xen
  7. Запустите виртуальный сервер на xen_host_1
    xm create -c virt_server
  8. Установите сервер потокового видео на virt_server. Мы использовали gnump3d. Для установки скачайте с http://www.gnump3d.org/ архив gnump3d-2.9.9.9.tar.bz2 (620k), распакуйте и скомпилируйте его.
    tar xjvf gnump3d-2.9.9.9.tar.bz2
    cd gnump3d-2.9.9.9/
    make install
  9. Включите трансляцию. По умолчанию сервер настроен на трансляцию содержимого директории /home/mp3/.
    mkdir /home/mp3
    cd /home/mp3
    wget -c http://www.redhat.com/v/ogg/TruthHappens.ogg
    gnump3d &

Теперь все готово к демонстрации. На клиентской машине нам потребуется любой видеоплеер, поддерживающий http. Мы использовали totem.

Демонстрация

  1. Запустите просмотр трансляции на клиенте. В случае totem для этого нажмите 'Movie', затем 'Open Location' и введите http://virt_server:8888/TruthHappens.ogg
  2. Остановите виртуальный сервер. Для этого на xen_host_1 выполните
    xm pause virt_server
    В течение некоторого времени после остановки виртуальной машины (как правило, нескольких секунд) клиент будет продолжать показывать ролик из буфера плеера. После того, как буфер закончится, трансляция прервется. Теперь Вы знаете размер буфера в секундах. :)
  3. Снимите виртуальный сервер с паузы. Для этого на xen_host_1 выполните
    xm unpause virt_server
  4. Вновь запустите трансляцию на клиенте.
  5. Выполните живую миграцию сервера без остановки трансляции. Для этого на xen_host_1 выполните
    xm migrate -l virt_server xen_host_2
    Процесс занимает несколько десятков секунд. Следить за миграцией можно с помощью команды xm list на обоих физических серверах. Трансляция при миграции не рвется. Клиент никак не замечает, что виртуальная машина переносится на другой физический сервер. Так как Вы только что измерили размер буфера плеера, можете быть уверены, что все честно. :)

3D-рабочий стол, Compiz & Beryl.

Хотя все украшения рабочего стола описаны в Интернете уже многократно, после конференции 26 марта 2007 вопросов насчет того, как именно все было реализовано при демонстрации, мы получили немало. Поэтому мы решили дать очень краткий обзор использованных технологий.

X-сервер. Xgl и AIGLX

Xgl – это новая архитектура X-сервера, использующая OpenGL. AIGLX – это расширение стандартного X.org для использования в нем OpenGL. Функциональность их примерно одинакова. Принципиальное отличие в архитектуре – Xgl заменяет стандартный X.org, в то время как AIGLX расширяет его функциональность.

На наш взгляд, второй подход гораздо более разумен и перспективен, так как позволяет разрабатывать AIGLX и X.org параллельно и не дублировать при этом код.

Менеджер окон. Compiz и Beryl

Обновленные X-серверы являются только основой, а непосредственно эффектами рабочего стола (3D-рабочий стол, гибкие окна, прозрачность и т.д) занимается композитный менеджер окон. На сегодняшний день их существует два – Compiz и Beryl. Они очень похожи между собой, по сути, второй является производным от первого. Основная разница в том, что у Beryl больше возможностей, больше эффектов, но при этом он работает медленнее. Кроме того, на наш взгляд, он менее стабилен, но это лишь наше мнение.

На данный момент обсуждается возможность объединения Beryl и Compiz, но перспективы этого пока что не ясны.

Описание живых демонстраций

Для живых демонстраций мы использовали AIGLX и Compiz, входящие в стандартный комплект дистрибутива Red Hat Enterprise Desktop 5. Демонстрации показывали под Gnome, потому что в нем есть графическая утилита для управления эффектами. Под KDE запустить Compiz также не составляет труда, но делать это нужно из консоли. :)

Требования к оборудованию

Мы тестировали работу AIGLX и Compiz на видеокартах от NVIDIA, ATI и Intel.

На Intel (встроенное видео ноутбуков) никаких проблем замечено не было.

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

Хуже всего на сегодняшний дело обстоит с чипсетами ATI. В бинарном драйвере производителя (fglrx) есть ошибка, в результате чего он не поддерживает все необходимые расширения, и AIGLX с ним не работает. ATI признала наличие ошибки и пообещала ее устранить в следующей версии драйвера (9.x). На сегодняшний же день запустить AIGLX с видеокартой ATI можно используя open source драйвер (radeon). Этот драйвер входит в состав дистрибутива и устанавливается по умолчанию, если определена видеокарта ATI. Драйвер поддерживает все необходимые расширения, но так как ATI не раскрывает спецификацию своих карт, он работает не слишком быстро.

25.03.2007

Ян Мердок переходит в Sun

Ян Мердок, основатель проекта Debian, переходит в Sun на должность руководителя направления операционных платформ (систем). При этом он фактически уходит из Linux Foundation, хотя формально и сохраняет свой пост. Любые активные действия человека подобного масштаба не могут остаться незамеченными. Мы не будем обсуждать мотивы этого шага и его идейную сторону. На эту тему уже было множество дискуссий в сообществе open source, а истины в данном случае все равно не существует. Вместо этого мы кратко рассмотрим, какие последствия это событие может иметь.

Для самого Яна:

Судя по его блогу (http://ianmurdock.com/2007/03/19/joining-sun/), Ян искренне рад возможности присоединиться к команде Sun. У него есть ряд идей, как улучшить Solaris, и он горит желанием воплотить их в жизнь. На этом посту у него есть возможность реализовать свой потенциал.

Для Sun:

Solaris долгое время была одной из наиболее технологически совершенных и популярных операционных систем. С появлением Linux, с массовым переходом на стандартные системы на базе процессоров Intel и AMD Solaris заметно сдала свои позиции. На сегодняшний день Sun сделала многое, чтобы вернуть ему популярность – выпустила версию для x86, создала OpenSolaris. Но, тем не менее, требуется еще большой объем работы, чтобы Solaris вновь стала одной из ведущих платформ как среди пользователей, так и среди компаний-разработчиков. Авторитет и репутация Яна могут быть в этом очень и очень полезны.

Для Linux Foundation:

Именно Linux Foundation выглядит наиболее пострадавшей стороной, ведь именно из нее Ян ушел. Но так ли все плохо? Ян всегда был активным поборником принципов open source и стандартов LSB. Вряд ли он резко изменится после этого назначения. Наоборот, скорее всего, он будет пытаться изменить Sun, заменить лицензию OpenSolaris на GPL, привести Solaris к стандартам, и тем самым улучшить ее совместимость с Linux. Честно говоря, далеко не факт, что это ему удастся, но в любом случае подобные шаги способствуют укреплению стандартов. Так что, очень может быть, что Linux Foundation только выиграла, ведь ее активный участник теперь является одним из руководителей крупной корпорации.

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

16.03.2007

Сделка Novell – Microsoft. Первые заметные результаты.

Пресс-релиз от 13 марта (http://www.microsoft.com/presspass/press/2007/mar07/03-13HSBCPR.mspx) на сайте Microsoft сообщает, что HSBC, одна из крупнейших в мире финансовых организаций, собирается использовать продукты Novell, которые будет поставлять Microsoft.

HSBC очень крупная компания. Ее головной офис находится в Лондоне, компания имеет более 9500 офисов в 76 странах, в которых работают более 284000 сотрудников. Если такая крупная компания верит в перспективы союза Novell и Microsoft, то, видимо, у него большое будущее. Ведь так?

Давайте задумаемся над этим и посмотрим на пресс-релиз чуть внимательнее. Первое, что бросается в глаза, - многократные высказывания о том, что стоимость решений на базе Windows ниже, чем на базе Linux. Это выглядит несколько странно. Партнеры в заявлениях о совместных победах, как правило, не сравнивают, чей продукт лучше.

Происходящее несколько напоминает историю сотрудничества Microsoft и IBM и развития Windows и OS/2. Как известно, закончилась история тем, что пользователи воспринимают Windows как синоним слова «компьютер», а об OS/2 большинство даже не слышало. Возникает такое ощущение, что происходящее – попытка Microsoft приручить пингвина и удушить опасного конкурента (Linux) в дружеских объятиях.

Еще информация к размышлению: почему Novell согласилась на пресс-релиз в таком виде? Брюс Лоури, директор Novell по связям с общественностью, опубликовал краткое разъяснение в блоге (http://www.novell.com/prblogs/?p=303#comments). Лоури говорит о том, что для пресс-релиза неаккуратно были выбраны цитаты, и первоначальный смысл был искажен. Это вся реакция, которая последовала со стороны Novell, и выглядит она при этом скорее как оправдание. Похоже, Novell не может повлиять на происходящее.

Но если это так, то зачем Novell это неравное партнерство, портящее имидж компании в глазах Linux-сообщества? На этот вопрос уже ответил Брент Вильямс в своей презентации на EclipseCon (http://stephesblog.blogs.com/presentations/BrentWilliamsEclipseConV02.pd...).

  • Во-первых, Novell видит своим главным конкурентом Red Hat (слайд 14).
  • Во-вторых, Novell не верит в возможность переиграть Red Hat в одиночку (слайд 15).

Сможет ли Novell потеснить Red Hat, имея в союзниках Microsoft? Сложно сказать. Окончательный ответ даст только время. Но предположения сделать все же можно.

Novell ставит своей целью снижение стоимости решений. Red Hat основной задачей считает предоставление более качественного сервиса своим клиентам. Доля IT в полном бюджете компании составляет, как правило, не более 10%. Допустим, бюджет компании составляет $1.000.000. Тогда из них $100.000 – расходы на IT, $900.000 – расходы на бизнес – задачи. Novell стремится снизить расходы на IT. Если решения Novell будут на 10% дешевле, то выгода для клиента - $10.000. Red Hat стремится решать насущные проблемы клиентов. Если у него это получится на 10% лучше, то выгода для клиента - $90.000.

Кроме того, в чем заключается основная задача IT-отдела: в решении насущных задач бизнеса или в снижении своих затрат? Какой подход дает больший потенциал для роста? И каким образом оценивают эффективность работы сотрудников?

Решение, как всегда, остается за клиентом.