Cellar Door

01 января 2007

Moving to LiveJournal

Считайте это второй попыткой: http://callcc.livejournal.com/
О причинах:
1) Появилось желание поддержать контакты с людьми из других стран. Соответственно писать буду большей частью на английском. Насколько большей - пока не знаю сам. И я слишком ленивый, чтобы прикручивать тэги к blogger ;)
2) Давно не хватало возможности полноценно участвовать в разных ЖЖ-коммьюнити.
3) Обновлять блог раз в 4-5 месяцев в любом случае никуда не годится. Я посчитал, что лучше начать все заново...

12 августа 2006

Устанавливаем Xen

Позволю себе проспустить теорию, на которой основываются техники виртуализации, и после краткого описания терминов перейду к делу. Итак, Xen - технология паравиртуализации (называемая также supervisor), предполагающая либо модификацию ядер гостевых ОС, либо аппаратную поддержку виртуализации со стороны CPU (Vanderpool, Pacifica). Без специальной аппаратной поддержки в качестве гостевых ОС могут выступать Free/NetBSD, GNU/Linux, Solaris, а с нею - также и Windows. В архитектуре Xen управление ресурами аппаратуры осуществляется на самом нижнем уровне, в административном домене Domain 0 (или Dom0), где запущен xend, а гостевые ОС работают в Domain U, DomU.

Нижеследующие инструкции ориентированы на Debian Etch, но, может с некоторыми правками, применимы к любой Debian/Ubuntu системе.

Устанавливаем пакеты собственно Xen и ядро:
# apt-get install xen-hypervisor-3.0-i386 xen-utils-3.0 xen-docs-3.0 linux-image-2.6-xen-k7 libc6-xen
Здесь и далее k7 следует заменить на название семейства Вашего CPU. Доступны также PAE-версии ядра.

Убедитесь, что установлены и следующие программы:
# apt-get install bridge-utils iproute sysfsutils,
а hotplug, наоборот, удалён.

Следующий шаг необходим:
# mv /lib/tls/ /lib/tls.disabled

Создаём initrd
# cd /boot
# mkinitramfs -o /boot/initrd.img-2.6.16-2-xen-k7 2.6.16-2-xen-k7

В файле /etc/xen/xend-config.sxp должны быть раскомментированы строки (network-script network-bridge) (номер строки 73) и (vif-script vif-bridge) (строка 104).

Наконец, добавляем секцию Xen в конфиг grub:
title Xen 3.0 / Debian GNU/Linux
kernel (hd1,4)/boot/xen-3.0-i386.gz console=vga
module (hd1,4)/boot/vmlinuz-2.6.16-2-xen-k7 root=/dev/hdb5 ro console=tty0 vga=791
module (hd1,4)/boot/initrd.img-2.6.16-2-xen-k7
boot

После прочтения официальной документации некоторая неясность возникает вследствие того, что в Debian ядро, которе мы установили, подходит для Dom0 и DomU одновременно. Можно построить разные ядра для Xen0 и XenU, взяв исходники на http://www.xensource.com/downloads/, но вряд ли выигрыш в быстродействии оправдает расход времени. При использовании же единого ядра главное не забывать указывать наш initrd в параметре ramdisk в конфиге каждой гостевой ОС. Всё общение между "хозяином" и гостевой ОС происходит по сети через ethernet-bridge. А чтобы "поделить" одну видеокарту между несколькими доменами (и соответственно запускать в них свои экземпляры X-сервера), надо настроить VNC или FreeNX.

Итак, после успешной перезагрузки (нам надо, чтобы работал демон xend и присутствовали мосты в выводе команды brctl show) приступаем к запуску гостевой ОС. Для начала проще воспользоваться одним из готовых образов с сайта jailtime.org.
# mkdir -p /xen/slackware
# mv slackware.10-2.20060210.img.tgz /xen/slackware
# cd /xen/slackware
# tar -xvzf slackware.10-2.20060210.img.tgz

Смотрим, чтобы в файле slackware.10-2.xen.cfg опции kernel и ramdisk указывали на текующие ядро и initrd, а в строке disk был правильно указан путь к образу корневого раздела гостевой ОС и свопа.

Запускаем гостевую ОС:
xm create slackware.10-2.xen.cfg -c
Список работающих систем можно посмотреть командой xm list или xentop. Отсоединиться от консоли можно нажав "Ctrl+]", зайти обратно - подсмотрев ID в выводе xm list и скомандовав xm console ID. Остановитьгостевую ОС можно командой xm shutdown Name, где Name - её имя в выводе xm list.

Для нормального функционирования гостевой ОС остаётся скопировать в её ФС каталог /lib/modules/2.6.16-2-xen-k7 мастера:
# mkdir /mnt/slackware<
# mount -o loop slackware.10-2.img /mnt/slackware
# cp -R /lib/modules/2.6.16-2-xen-k7 /mnt/slackware/lib/modules

Чтобы избежать сообщений типа
INIT: Entering runlevel: 5
INIT: Id "1" respawning too fast: disabled for 5 minutes
выполняем следующие действия:
# cd /mnt/slackware/dev
# ./MAKEDEV tty1 tty2 tty3 tty4 tty5 tty6
... и размонтируем ФС.

За кадром остались такие интересные возможности, как распределение аппаратных ресурсов между гостевыми ОС, "живая миграция" виртуальных машин с сервера на сервер, sHype/Xen Access Control, но может я ещё вернусь к этой теме :)

Полезные ссылки:
  1. Статья "The Perfect Xen 3.0 Setup for Debian" (в ней описано пострение ядер Dom0 и DomU из исходников и установка Debian также и в качестве гостевой ОС): http://www.howtoforge.com/book/print/1169

  2. HOWTO Xen and Gentoo - Gentoo Linux Wiki: http://gentoo-wiki.com/Xen

  3. Xen User's Guide с полным описанием возможностей Xen: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/readmes/user/user.html

  4. Описание некоторых конфигураций, в которых используют Xen, на Xen Wiki: http://wiki.xensource.com/xenwiki/CoolConfigurations

  5. В частности, David Muench порадовал конфигурацией со следующими DomU доменами: внешний и внутренний веб-сервера, сервер СУБД, сервер Asterisk, сервер MythTV с выделенными ему тремя платами кодирования MPEG-2 и карточкой HDTV. Всё это работат на Celeron D 2.4GHz с 1.5GB ОЗУ :D

11 августа 2006

Семинар по Xen

Продублирую-ка я информацию о бесплатном однодневном семинаре "ПОЛИГОН 2006. Система виртуализации Xen", который будет проходить 14-23 августа в Учебном центре "Сетевые Технологии" компании TechExpert:

Занятия проходят в Киеве с 9-30 до 17-30 с перерывами на кофе-брейк и обед, по адресу: г. Киев, пр. Победы, 53, 4 этаж. УЦ «Сетевые Технологии»

План проведения тренинга:

  1. Обзор технологий виртуализации и паравиртуализации
  2. Основные направления использования виртуализации в современных сетях
  3. Архитектура монитора виртуальных машин Xen
  4. Сравнение производительности Xen и других виртуальных машин
  5. Технологии аппаратной виртуализации Vanderpool от Intel и Pacifica от AMD
  6. Преимущества использования серверов Hewlett-Packard в качестве платформы для виртуализации
  7. Преимущества использования тонких клиентов Hewlett-Packard совместно с виртализированными серверами
  8. Инструменты Hewlett-Packard для управления серверами

Практические работы по темам:

  1. Инсталляция и конфигурирование монитора виртуальных машин Xen
  2. Распределение ресурсов между виртуальными машинами
  3. Мониторинг виртуальных машин
  4. Живая миграция виртуальных машин
  5. Использование тонких клиентов совместно с виртуальными серверами
  6. Использование инструментов Hewlett-Packard по управлению серверами. Выполнение основных операций, необходимых при администрировании серверов Hewlett-Packard

Методическое пособие с материалами лабораторных работ по всем разделам практической части семинара.

Документ об окончании курса: Сертификат Учебного центра "Сетевые Технологии".

Регистрация здесь.

P.S. Всё-таки есть свои плюсы в том, чтобы работать всё лето без отпуска ,))

ICFP Programming Contest '06 глазами очевидца

Не могу не пропиарить отчёт Дмитрия Остапова aka _adept_ о девятом ICFP Programming Contest, происходившем 21-24 июля. Автор входил в команду канала #haskell. Думаю, всем понятно, на каком языке они остановили свой выбор? ;)
Очень интересно, на самом деле...
Часть 1
Часть 2
Часть 3

17 июля 2006

News from beastie land

Список наиболее интересных проектов Perforce-репозитория FreeBSD, составленный Joel@: freebsd-development-projects-in-perforce-summary

11 июля 2006

Киев, утро, почтовая площадь

Совершенно спонтанно получился такой снимок :)

07 июля 2006

Nikon D50 Kit


Наконец-то он мой :)

25 июня 2006

Splunk

Splunk - централизованная система ведения и анализа логов, поданная в красивой обёртке AJAXифицированного веб-интерфейса. И речь идёт вовсе не о just another syslog-сервере, а системе, которая делает просмотр и анализ логов лёгким и приятным занятием. Группирование событий по их типам, тегам, хостам, источникам и типам источников, графическое представление времени регистрации событий, показ похожих и родственным событий, интеграция с онлайновой базой данных событий, работающий быстро благодаря механизму индексации расширенный поиск - вот далеко не полный перечень того, что Вы получите, потратив немного времени на скачивание и вопросы мастера установки.

Splunk независим от ОС, приложений или устройств, регистрацию событий с которых Вы осуществляете. Он с одинаковой лёгкостью работает с ФС (NFS, SMB/CIFS, ...), удалёнными файлами посредством (rsync, scp, ftp), клиентами, общающимися со Splunk по TCP или UDP, или же базами данных, поддерживающими ODBC. Сама серверная часть доступна для Linux, Solaris, FreeBSD или MacOS X. Что касается механизмов сбора данных, то их целых шесть:
  • Tailing Processor - берёт информацию о новых событиях из отдельного файла, например /var/log/messages (впрочем, логи Windows Events также поддерживаются)
  • Directory Monitor - сбор информации с указанного каталога
  • FIFO - применение IPC-метода даёт то очевидное преимущество, что журнальные файлы даже не нужно сохранять на диске
  • TCP-модуль, прослушивающий порт 514 подобно привычным syslog-серверам
  • ODBC-модуль, источником данных для которого выступает ODBC-совместимая БД
  • Splunk-2-Splunk модуль, позволяющий принимать/передавать данные другим Splunk-серверам. Возможен и вариант Splunk-2-Nagios, который легко мог бы называться и Nagios-2-Splunk, уж очень тесная там интеграция ;)
Бесплатная версия ограничена в том, что позволяет обрабатывать лишь до 500MB в сутки и не позволяет создавать множественные индексы. Веб-интерфейс наследует лучшие традиции AJAX и Google: так, строка поиска имеет автодополнение всех слов, проиндексированных в Ваших логах. Скриншотов не привожу, поскольку лучше посмотреть "вживую": demo.splunk.com

Официальный сайт: www.splunk.com