11 декабря 2009

Паравиртуализационные драйвера для Windows

Относительно недавно в RHN появились подписанные паравиртуализационные драйвера для поддержки ОС Microsoft в среде виртуализации RHEL. Соответствующий пакет называется virtio-win и доступен в каналах RHEL Desktop Supplementary и RHEL Supplementary.


После установки пакета необходимо смонтировать полученный iso-образ /usr/share/virtio-win/virtio-win-1.0.0.iso в виртуальную машину Windows и проинсталлировать два msi-пакета с дисковыми и сетевыми драйверами. Внутри iso-образа содержаться как 32-р, так и 64-р драйвера.


Поддерживаются Windows XP (только 32-р и только драйвер сети), Windows Server 2003 и Windows Server 2008. Лицензия - GPLv2 и проприоритарная Microsoft.

VDI-решение от Red Hat теперь open source


Компания Red Hat опубликовала исходные коды основы своего VDI-решения Red Hat Enterprise Virtualization for Desktops. Исходные коды клиента и сервера SPICE, а также инструкции по сборки и другая документация доступны на сайте www.spice-space.org "Бинарники" для Windows обещаны ближайшем будущем, сборка для Fedora 12 уже выложена в соответствующем yum-репозитории. Данные наработки изначально принадлежали компании Qumranet, поглощенной Red Hat в 2008 году.

05 ноября 2009

Ресурсы по RHEV for Servers


По ссылке представлена библиотека ресурсов, посвященных Red Hat Enterprise Virtualization for Servers. Описания возможностей решения (HA, Live Migration, Image Management и других), cравнения с конкурентами по функционалу и цене, калькулятор TCO Whitepaper по SAP Server, Oracle Database, Microsoft Exchange и другим продуктам.

Вторая ссылка ведет на техническую документацию по RHEV: руководства по внедрению, администрированию.

04 ноября 2009

Red Hat Enterprise Virtualization for Servers доступен

Вчера компания Red Hat анонсировала доступность платформы Red Hat Enterprise Virtualization (RHEV), состоящей на данный момент из следующих компонентов: решение для централизованного управления виртуальными машинами Red Hat Enterprise Virtualization Manager (RHEV Manager) и Red Hat Enterprise Virtualization Hypervisor (RHEV Hypervisor) — фактически специализированного мини-дистрибутива Linux, включающего в себя гипервизор KVM. Данные продукты созданы на основе технологий компании Qumranet, приобретенной около года назад, и работы проекта oVirt.


Red Hat Enterprise Virtualization Manager позволяет при помощи графического интерфейса управлять виртуальными машинами, пулами логических и физических ресурсов, образами ВМ, обеспечивает высокую доступность ВМ, кластеризацию и возможность "живой миграции" ВМ. Сам сервер работает на платформе Windows 2003, в том числе и в кластере. В качестве базы данных используется MS SQL Server 2005 или SQL Server 2005 Express. Опционально Red Hat Enterprise Virtualization Manager может управлять RHEL 5.4. Управляющая консоль работает на Windows XP SP2 и старше.

RHEV Hypervisor создан на основе управляемого узла (oVirt Node) проекта oVirt.org. О проекте oVirt.org я уже писал подробнее в этом посте. RHEV Hypervisor включает в себя часть пакетов RHEL и некоторые специфичные только для самого гипервизора пакеты. Для работы гипервизора, поскольку он основан на KVM, требуется аппаратная поддержка виртуализации AMD-V или Intel VT. Минимальный поддерживаемый объем ОЗУ — 512 Мб, кроме того необходимо минимум 750 Мб для swap. Ограничения гипервизора следующие:
  • Максимальное число физических ЦП - 64
  • Максимальное число виртуальных ЦП на одну ВМ — 16
  • Максимальный объем ОЗУ — 1Тб
  • Максимальный объем ОЗУ внутри ВМ — 80 Гб
В качестве виртуальных машин на данный момент официально поддерживаются RHEL 3,4 и 5, а также Windows Server 2003 R2, Windows Server 2008 и Windows XP SP 3.

RHEV Hypervisor можно установить с USB, CD/DVD или по сети при помощи PXE. В дальнейшем гипервизор может поставляться предустановленным OEM, как это сейчас делают с ESXi. По умолчанию на хосте RHEV Hypervisor уже настроен брандмауер и SELinux.

Цена подписки Red Hat Enterprise Virtualization for Servers на сокет в год составляет $499 при поддержке 12x5 и $749 при поддержке 24x7.

Соответствующее решение для рабочих мест компания обещает выпустить к началу 2010 года.

Одновременно с выпуском RHEV, компания Red Hat представила новую сертификацию Red Hat Certified Virtualization Administrator (RHCVA) и четырехдневный курс для подготовки к экзамену. Экзамен, как и все остальные у Red Hat, практический, длиться три часа и может быть засчитан в качестве одного из пяти при получении статуса архитектора.

14 октября 2009

Работа с образами дисков виртуальных машин через libguestfs

В Fedora 11 включен ряд инструментов, значительно упрощающих работу с образами дисков виртуальных машин из операционной системы хоста. Утилиты, разработанные в рамках libguestfs, используют код ядра Linux и qemu и, соответственно, позволяют получить доступ к файловым системам, с которыми умеют работать Linux и qemu, включая ext2/3/4, btrfs, FAT, NTFS, тома LVM и различные варианты схем хранения разделов Virtual Machine DisK format (vmdk) и qcow1/2. Также библиотека корректно работает с метками SELinux.

Для установки в Fedora 11, Rawhide или RHEL, использующем репозиторий EPEL, необходимо набрать команду:

yum install '*guestfs*' guestfish

Библиотека и утилиты распространяются по лицензии GNU GPL. Есть сборки и для других дистрибутивов, включая Debian.

guestfish - интерактивный командный интерпретатор, работающий с гостевой файловой системой. Включает в себя более двух сотен команд для работы с файлами, каталогами и файловой системой. Полностью задействует всю функциональность guestfs API.

virt-cat - Просмотр файла внутри ФС гостя

virt-edit - Редактирование файла внутри ФС гостя

virt-rescue - Аналог rescue mode при загрузке с установочного диска Fedora/RHEL. Во время использования гостевая ВМ должна быть выключена.

virt-inspector - Отображает версию ОС, ядра, драйвера, точки монтирования, приложения и другую информацию о виртуальной машине. Для доступа к информации ВМ Windows используется reged.

virt-df - Отображает объем свободного места на ФС ВМ

В разработке находятся и другие утилиты, например, v2v-snapshot - создает snapshot дисков ВМ или virt-v2v для конвертации ВМ из других гипервизоров в KVM c libvirt.

На страничке приведен ряд примеров скриптов, использующих libguestfs, например: клонирования виртуальных машин, экспорта домашнего каталога пользователя ВМ в архив tar, список RPM-пакетов внутри ВМ, список устройств, разделов и слоев абстракции LVM, и другие.

06 октября 2009

Нужен ли Red Hat Password Sync?

Проверял синхронизацию пользователей, паролей и групп между тестовым доменом AD и RHDS 8 при помощи службы Red Hat Password Sync. На обоих серверах необходимо получить сертификаты и включить LDAPS. На контроллере домена AD устанавливается служба Password Sync, а со стороны RHDS - Windows Sync Agreement, примерно так же, как настраивается репликация между двумя серверами каталогов RHDS. Настройка и отладка достаточно трудоемка. Для пользователя синхронизируется порядка четырех десятков атрибутов, из которых большая часть одинакова в схемах обоих серверов каталогов. Для гетерогенной среды, где сохраняется AD, и необходимо осуществлять аутентификацию как Linux, так и Windows систем, особых преимуществ Password Sync по сравнению с единственным каталогом AD + Services for Unix мне в голову не приходит. Если же отказываться от AD совсем, то проще использовать IPA, который изначально "заточен" под аутентификацию. В случае использования Kerberos, смысла в Password Sync еще меньше.

Намного больше пользы от Password Sync будет, когда IPA "научится" применять политики Sudo, SELinux и т.д. Однако, пока это - дело будущего.

Про настройку можно почитать тут. Более подробно - в документации RHDS.


28 сентября 2009

Упрощенная настройка iSCSI target при помощи targets.conf

Около года назад я писал в блоге про настройку iSCSI target и initiator в RHEL5. Начиная с версии 5.3 настройка target значительно упростилась. Теперь не нужно прописывать несколько команд tgtadm в /etc/rc.local, а достаточно создать файл /etc/tgt/targets.conf вида:

<target iqn.2003-12.net.markelov:disk1>
backing-store /dev/xvda5
</target>

и запустить tgtd. Подробнее — в man tgt-admin.

03 сентября 2009

Вышли RHEL 5.4 и RHN Satellite 5.3

Вчера одновременно вышли очередные релизы операционной системы Red Hat Enterprise Linux 5.4 и платформы управления Linux-инфраструктурой Red Hat Network Satellite 5.3. Про основные новшества RHEL 5.4 я уже писал. Повторюсь лишь, что помимо Xen, в дистрибутив добавлена поддержка гипервизора KVM. Что касается Satellite, то там "море" нового. Основное: поддержка сервера автоматизированной установки cobbler, синхронизация каналов с мастер-сервером, модуль политики SELinux для Satellite, поддержка клиентов Solaris на архитектурах UltraSPARC T1 (sun4v) и X86_64. Про все остальные новшества и изменения как всегда можно прочесть в release notes.

01 сентября 2009

Развитие проекта sVirt в Fedora 11/RHEL

Я уже рассказывал в своем блоге о проекте sVirt, позволяющем изолировать при помощи мандатного контроля доступа гипервизор и отдельные виртуальные машины друг от друга. Если вы еще не знакомы с концепцией MAC, MLS и MSC, то вы можете почитать соответствующие записи в моем блоге с меткой SELinux. Не буду повторяться, а просто скажу, что уникальные преимущества в плане защищенности, доступные в операционных системах общего назначения с открытым исходным кодом уже можно живьем "пощупать" и в системах виртуализации (Fedora 11), а с выходом RHEL 5.4 и внедрить на предприятии.

В изначально реализованной политике для RHEL5, xend_t - домен в котором работает процесс Xen, не мог обойтись без права писать/читать не только в файлы xen_image_t, но и в физические устройства fixed_disk_device_t, поскольку в промышленной среде использование образов дисков вместо отдельных разделов, например на LVM, имеет ряд недостатков. Таким образом, злоумышленник из процесса xend_t в случае компрометации одной из виртуальных машин в принципе мог бы получить доступ как к самому хосту, так и к другим виртуальным машинам.

Данная проблема в целом распространяется и на другие системы виртуализации - от Microsoft, VMware и других вендоров. От "zero-day" уязвимости в ОС виртуальной машины и гипервизора одновременно не застрахован никто. Однако в случае Fedora (и в будующем RHEL) решениеп такой проблемы теперь есть. Одной частью решения в Fedora 11 стал появившийся в libvirt механизм подключаемых модулей. Теперь специальный plug-in динамически присваивает метки файлам\устройствам "на лету" и стартует виртуальные машины в соответствующем домене SELinux. По умолчанию в Fedora процессы виртуальных машин работают в доменах svirt_t, а фалы/устройства имеют тип svirt_image_t.

Описанное выше позволит защитить только операционную систему хоста (гипервизор) от атаки осуществляемой изнутри скомпрометированной виртуальной машины. Для изоляции же виртуальных машин друг от друга разработчики используют поддержку мультикатигорийной безопасности (подмножество реализации многоуровневой безопасности с одним и тем-же уровнем безопасности s0). За подробностями опять-же отправляю к предыдущим постам в блоге. Соответствующие друг-другу контексты и домены виртуальных машин с совпадающими категориями (как я уже сказал уровень безопасности при этом используется один и тот же) присваиваются libvirt случайным образом. Однако, при необходимости, администратор может задать их и статически. Подробнее почитать про sVirt можно в блоге Дэна Уолша, отвечающего в Red Hat за разработку SELinux.

20 августа 2009

MCT... "I live again..." :)

Наверное первый раз за последние полтора-два года "достал с полки" свой подзаржавевший MCT :) На этой неделе дочитываю в Инвенте 2282 Designing a Microsoft Windows Server 2003 Network and Active Directory Infrastructure. По уровню сложности - 100 level. И правда, по сравнению с тем-же 400-очковым 423 Red Hat Enterprise Directory Services and Authentication просто курорт, хотя мне всегда курсы Microsoft давались тяжелее :)

-- Post From My iPhone

09 августа 2009

Spacewalk 0.6



В эту пятницу была анонсирована версия 0.6 платформы управления жизненным циклом Linux-инфраструктуры Spacewalk. Spacewalk под именем Red Hat Network Satellite Server имеет давнюю, с 2001 года, историю разработки. В настоящее время - это open source продукт, открытый по лицензии GPL2. Начиная с версии 0.6 Spacewalk поддерживает актуальную версию Fedora 11 и работу с виртуальными машинами KVM в дополнение к Xen. В текущей версии сделан еще один шаг в сторону поддержки помимо Oracle открытой СУБД PostgreSQL. Соответствующий код для поддержки инфраструктуры PostgreSQL уже присутствует, а окончательная интеграция ожидается в начале 2010 года. Другие новшества и исправления в Spacewalk 0.6:
  • Поддержка SHA256 в rpm-пакетах
  • Поддержка rpm-пакетов более 2Гб (требуется rpm 4.6)
  • Возможность импортировать в канал ПО yum-репозиторий (как через GUI так spacewalk-repo-sync)
  • Новая утилита spacewalk-report, позволяющая получать отчеты в виде CSV вывода для использования в скриптах
  • Починили jabberd
  • Ряд новых функций API
  • Исправлено примерно сотня ошибок предыдущей версии

02 июля 2009

Red Hat представила Red Hat Enterprise Linux 5.4 Beta с поддержкой KVM

С первого числа в RHN доступна бета-версия Red Hat Enterprise Linux 5.4. Период бета-тестирования определен до 13 августа.

Основные особенности RHEL 5.4:

Гипервизор KVM. В дополнение к гипервизору Xen в RHEL 5.4 появился KVM. В KVM поддерживается широкий спектр ОС, включая Microsoft Windows XP, Windows Server 2003 и Windows Server 2008. Без модификации могут запускаться как 32-р так и 64-р ОС. Для запуска паравиртуализированных гостевых ОС доступны драйвера, обеспечивающие улучшенную производительность сети и I/O. Естественно, все libvirt-овские утилиты в 5.4 поддерживают KVM. Кластер на KVM пока TP.

Обновление Cluster Suite. Агент для виртуальных машин теперь работает через libvirt. Добавлены новые агенты фенсинга, в том числе для MDS. Кроме того, в статусе technology preview Cluster Suite + GFS работает на кластерах собранных из LPAR на Power-машинах.

Улучшения для десктопов. Тут в основном обновления драйверов видеокарт и ALSA.

Система. Полная поддержка FUSE. В статусе technology preview поддержка FcoE. Новые контрольные точки в такой классной штуке как SystemTap, в том числе для vm. Ext4 в technology preview.

Ядро. Много-много-много всего :) Читайте в rhelv5-beta-list. Там же можно взять и installation numbers.

07 июня 2009

Руководства Red Hat Reference Architecture Series

Если я не ошибаюсь, данные руководства раньше лежали только на партнерской части сайта Red Hat. В любом случае ссылка будет небесполезной. Среди Reference Architectures есть руководства по созданию решений высокой доступности, виртуализации, в том числе SAP, IBM DB2 и Oracle 10g в виртуализированной среде RHEL. Для доступа к документации необходимо заполнить небольшую форму. Список руководств тут.

08 мая 2009

Новое имя проекта Fedora Directory Server - "389"

Анонсирована смена имени проекта Fedora Directory Server на "Проект 389". В первую очередь смысл ребрендинга в том, чтобы подчеркнуть, что FDS - это не "Сервер каталогов для дистрибутива Fedora". FDS работает на множестве различных дистрибутивов Linux, например, debian, gentoo, ubuntu и других, а также под управлением различных операционных систем, например, Solaris или HP/UX 11.

После ряда иттераций, разработчики остановились на самом лаконичном имени - числе 389. Почему именно число 389? Думаю, это станет очевидным, если набрать команду grep ldap /etc/services :)

FAQ, посвященный смене имени проекта.
Новый домен проекта.

07 мая 2009

Изменения в порядке сдачи экзаменов Red Hat

С первого мая в порядке приема экзаменов Red Hat произошли некоторые изменения. В первую очередь нужно отметить, что экзамены как были performance-based, так и остались. Никаких шагов в сторону "поставь галочку" или "выбери правильный ответ" не планируется. Было сокращено время экзамена RHCE с пяти с половиной часов до трех с половиной, а время экзамена RHCT - до 2 часов с трех. Изменения ни в один из пяти экзаменов, обязательных для RHCA, пока внесены не были, и они по-прежнему длятся от двух до восьми часов.

Хотя экзамены RHCE/RHCT стали короче и интенсивнее, на сложность экзамена эти изменения никак не повлияли. То есть, те кандидаты, которые смогли бы сдать экзамен 30 апреля, сдали бы экзамен и 1 мая. И, соответственно, кто не смог бы сдать 30-го, не сдал бы и первого. В среднем, по статистике экзамены сдает 45% кандидатов.

Сокращение времени стало возможным благодаря оптимизации самого экзамена. Так, например, ранее кандидат должен был установить систему "с нуля", а теперь, садясь за рабочее место, кандидат получает уже установленную систему с базовыми настройками. Благодаря только этому экономится порядка 20-25 минут. Опыт приема сотен тысяч экзаменов показал, что все кандидаты в состоянии установить операционную систему, и соответственно, смысла в тестировании данного навыка нет.

Также теперь все задания на экзамене представлены в электронном виде, а не на бумаге. Ранее, поскольку у кандидата не было никакой доступной уже настроенной системы, без заданий на "твердой копии" было не обойтись. Плюсом заданий в электронном виде является то, что кандидат может выбрать задание сформулированное на том языке, которым владеет лучше. Всего доступно 12 языков, в том числе и Русский. Также, по отзывам, отслеживать, какие задания уже сделаны, а какие еще нет, кандидату проще при новой организации экзамена.

Кроме того, в прошлом месяце по инициативе Red Hat прошла первая он-лайн встреча RHCA. Подробностей я рассказать не могу, но могу отметить, что Red Hat делает шаги в сторону улучшения обратной связи с сообществом при разработке экзаменов, и вовлекает RHCA в процесс подготовки экзаменов.

Сообщение в неофициальном блоге по сертификации Red Hat.
Официальный FAQ.

07 апреля 2009

Новая версия FDS 1.2.0

Вчера вышла новая версия Fedora Directory Server 1.2.0. Из нового:
  • Улучшения в механизме репликации серверов (startTLS, SASL, Kerberos)
  • 64-битные счетчики
  • возможность отключить анонимные подключения к каталогу
  • новые скрипты: remove-ds.pl для удаления экземпляра каталога и remove-ds-admin.pl - некий "hard reset", для того чтобы привести систему в состояние сразу после "yum install fedora-ds"
  • Новая консоль и Windows Password Sync для синхронизации с Microsoft AD
  • Расширение ACI (новые динамические фильтры)
  • Исправлено более 200 ошибок, найденных с прошлого релиза
  • Новая схема, которая изначально включает расширения для autofs, samba и множества других приложений

Подробнее см http://directory.fedoraproject.org/wiki/Release_Notes

Впечатления от «Дня открытых технологий»

В конце прошлой недели летали с Андреем Мегановым на конференцию «День открытых технологий» в столицу Республики Коми – Сыктывкар. Мероприятие посетило около 70 человек, хотя рассчитывали на несколько меньшее число слушателей. При этом пятеро участников приехало из других городов Республики. В основном аудиторию составляли ИТ-специалисты различного профиля. Зал был заполнен полностью, и практически не пустел до самого вечера - до последних докладов, и, судя по отзывам в форуме сообщества UNIX Коми, слушателям конференция понравилось не меньше, чем докладчикам :) Слайды презентаций появятся в ближайшее время на http://unixkomi.ru .
Хотелось бы поблагодарить организаторов и коллег из Сыктывкара за теплый прием и традиционный подарок в дорогу – оригинальную местную настойку “Олым Вын”, что в переводе означает “Сила жизни”.

P.S. К сожалению, привезенных нами дисков с дистрибутивом Russian Fedora всем желающим не хватило. Но есть возможность скачать этот дистрибутив размером 4Гб или же можно бесплатно заказать диск на сайте проекта.

Фото:











"Get The Facts" про виртуализацию

Еще один пример подтасовки фактов - "Top 10 VMWare myths video". В данном случае сравнивают продукт которого нет с продуктом который давным-давно в production. Не буду повторяться, уже до меня написали и перевели. Читаем.

31 марта 2009

Доклад по виртуализации RedHat

В середине апреля планирую рассказать на RootConf-2009 про текущее состояние и перспективы развития виртуализации с использованием технологий Fedora/Red Hat. Преимущества по сравнению с проприетарными решениями, обзор средств создания отказоустойчивых решений, а также управления и развертывания виртуальных машин. Краткий обзор мандатного контроля доступа (SELinux), применяемого для защиты и разграничения доступа виртуальных машин. Доклад подтвержден, так что через пару недель можно будет пообщаться вживую. :) Кроме того, организаторы обещают после конференции выложить видеозаписи всех докладов в свободный доступ. А в конце этой недели лечу в Сыктывкар на «День свободных технологий».

17 марта 2009

Конференция "День свободных технологий"

3 апреля 2009 года в г.Сыктывкаре мы проводим конференцию «День свободных технологий» .

Конференция ориентирована на ИТ-специалистов, студентов и всех, интересующихся новейшими технологиями из мира свободного программного обеспечения (СПО, программного обеспечения с открытым исходным кодом, open source software).

Основные темы конференции:
  • Как устроен мир СПО
  • Кто и почему платит за СПО, как превратить хобби в карьеру
  • Как создается СПО и как присоединиться к этому процессу
Технологии из мира СПО:
  • Виртуализация
  • Сервера каталогов и централизованное управление пользователями
Применимость СПО в различных областях:
  • Опыт использования СПО в России
  • Примеры успешного использования
  • Примеры неудачных внедрений
  • Опыт миграции на СПО

Забавный ролик, представленный на конкурс Linux Foundation

Посмотрел некоторые из роликов, представленных на конкурс "Мы Linux", который проводил Linux Foundation. Больше всего понравился этот:



:)

RHEL на Cisco Unified Computing System


Про то, что Cisco вышла на серверный рынок с Unified Computing System все уже наверно наслышаны. Выглядит красиво и интересно. Безусловно данное решение для ЦОД не было бы представлено заказчикам без уже сформированной экосистемы партнеров. В разрезе Red Hat это выглядит так. В двух словах:

  • Cisco - OEM-партнер Red Hat; ждем обновления Cisco GPL :)
  • Red Hat Enterprise Linux 5.3 (как сам по себе, так и внутри VMware VI) сертифицирован на оборудовании Cisco, а компоненты решения Red Hat Enterprise Virtualization, включая средства управления и гипервизор на основе KVM, будут сертифицированы по мере выхода;
  • Поддержку первого и второго уровня для RHEL на своем оборудовании будет оказывать непосредственно Cisco;

12 марта 2009

Off topic - award :)

Спустя несколько месяцев с момента присвоения RHCDS, пришла посылка из Red Hat (см. фото) :) В коробке размерами с советский стандартный почтовый ящик в куче поролона обнаружился этот небольшой стеклянный предмет :)


Зато в RHCA-посылке обещают комплектацию побогаче, даже какой-то jacket – заставили указать свой размер :) Вот только осталось дождаться, когда вместе со мной таких ожидающих наберется двадцать штук, т.к. эти «регалии» именные, и на завод отправляют заказ при наборе минимальной партии. Похоже, мы с товарищем из VDEL получим сей award одновременно, хотя он «отстрелялся» на год раньше :)

08 марта 2009

Курс по корпоративным сервисам каталогов и аутентификации

Через две недели буду читать в Инвенте курс RH423 Red Hat Enterprise Directory Services and Authentication. Сколько раз он проводился в России можно пересчитать по пальцам на одной руке :) Что касается меня, то это будет первый опыт чтения курсов из линейки RHCA, хотя инженерные курсы я начал читать в 2005 году. По сравнению с предыдущей версией курса, которая основывалась на RHDS 7.x, материал новой обновлен до RHDS 8.0. Кроме того, добавлен принципиально новый модуль по продукту Red Hat Enterprise IPA - решению с открытым исходным кодом для управления доступом и учетными данными. Обновленная программа курса доступна на данной страничке.

24 февраля 2009

Виртуализация: планы Red Hat

Компания Red Hat озвучила свои планы относительно будущего развития своих технологий виртуализации с открытым исходным кодом. Под брендом "Red Hat Enterprise Virtualization" будет доступен ряд продуктов для серверной виртуализации, виртуализации настольных ОС и отдельный гипервизор. Кроме того, технологии виртуализации все также будут поставляться как составная часть операционной системы Red Hat Enterprise Linux.

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

В рамках Red Hat Enterprise Linux планируется миграция с гипервизора Xen на KVM. За счет унификации работы через libvirt для конечного заказчика данный процесс должен пройти безболезненно. Поддержка Xen будет осуществляться минимум до 2014 года. Нужно заметить. что KVM уже был доступен в Fedora 7, а в RHEL5 появится, начиная с версии 5.4, позже в этом году. RHEL6 будет изначально поставляться с KVM.

Red Hat Enterprise Virtualization Manager for Servers - решение для управления серверной виртуализацией. Данный продукт будет первым open source решением, позволяющим управлять как виртуальными серверами, так и рабочими станциями. Заявлен следующий функционал: "живая миграция" ВМ, высокая доступность (HA), системный планировщик для создания политик динамической балансировки ВМ, управление питанием (автоматическая консолидация и отключение не используемых серверных ресурсов), управление образами ВМ (быстрое развертывание на основе шаблонов), "мгновенные снимки" ВМ, инструменты развертывания, мониторинга и отчетов.


Red Hat Enterprise Virtualization Manager for Desktops - решение для управления виртуализацией рабочих мест (VDI), работающих как под управлением Linux, так и Windows. Можно смело сказать, что с покупкой Qumranet Red Hat серьезно настроена вернуться в бизнес десктопов. Решение базируется на продукте Qumranet SolidICE и использует технологию SPICE. SPICE - это высокопроизводительный сетевой протокол, предназначенный для работы в VDI-решениях, и призванный заменить медленные проприетарные протоколы, такие как ICA и RDP.

Red Hat Enterprise Virtualization Hypervisor (RHEV-H) - отдельно поcтавляемый гипервизор на основе ядра Linux и KVM. Гипервизор помещается в 128МБ ОЗУ и спроектирован как узел "без сохранения конфигурации" с централизованным удаленным управлением через API libvirt. Все настройки хранятся в БД на управляющем сервере. Поддерживается до 96 ядер и 1Тб ОЗУ. Виртуальные машины могут работать с 16 виртуальными ЦП и 64Гб ОЗУ. За основу взят проект oVirt, о котором я не раз писал в блоге ранее. Гипервизор, как и другие продукты Red Hat Enterprise Virtualization, обеспечивает уникальную, по сравнению с конкурентами, безопасность за счет использования SELinux, о чем, применительно к виртуализации (sVirt), я также уже писал. Хочу добавить, что буквально сегодня James Morris у себя в блоге привел ссылки на слайды и видео в формате ogg, Google Video записи выступления на LCA 2009, посвященной sVirt.

В заключение поста скажу, что Red Hat планирует сделать доступным все компоненты своего портфолио в срок от трех до восемнадцати месяцев. Конкретные даты должны появиться к середине года.

Citrix XenServer теперь бесплатно

Борьба за заказчика на рынке средств виртуализации идет весьма плотная, и обстановка на «полях сражений» меняется день ото дня. Вчера компания Citrix объявила, что новая версия платформы виртуализации Citrix® XenServer™ будет распространятся бесплатно. Скачать бесплатную версию ПО можно будет с сайта Citrix к концу следующего месяца. Также нужно отметить, что Citrix, традиционно работая в тесном партнерстве с Microsoft, предлагает решение для управления объединенными виртуальными ЦОД, построенными на технологиях Microsoft и Citrix - Citrix Essentials for XenServer and Hyper-V. Продукт Citrix Essentials, который в том числе поможет и Microsoft в продвижении своих технологий виртуализации, безусловно, не бесплатен.

Вероятно, следует ожидать ответного хода со стороны VMware. Тем более, что анонс сделан за один день до открытия конференции VMworld.

Ну, и в двух словах, про технологии XenServer: есть «живая миграция» (есть у Red Hat и VMware, пока нет у Microsoft); есть динамическая балансировка нагрузки (есть у VMWare, у Red Hat и Microsoft – вручную); как и у всех есть HA и централизованное управление, нет распределенной файловой системы (есть у Red Hat и VMware, пока нет у Microsoft), отсутствует ПО управления жизненным циклом (Software lifecycle management tools), которое есть у Microsoft, VMWare и Red Hat; нет динамического добавления ЦП и ОЗУ (есть у Red Hat).

Ссылки:
Персс-релиз.
Citrix Blog.

VMware vCenter Server 2.5 для Linux

Уже доступен, правда, пока что в статусе Technical Preview. В настоящий момент можно скачать в виде виртуальной машины, и для работы требуется платформа виртуализации от VMware, в которой эту виртуальную машину необходимо запускать. В качестве платформы может выступать ESX Server, VMware Player, VMware Server или VMware Workstation. В качестве СУБД используется Oracle (в традиционной версии для Windows у вас есть выбор между Oracle и MS SQL).

Для управления все также требуется VMware Infrastructure Client, установленный на клиентскую машину под управлением Windows.

В текущей версии Technical Preview не поддерживаются следующие компоненты: встроенная СУБД, поддержка LDAP (пока есть опциональная поддержка NIS), настройка виртуальной машины, поддержка Plug-in, VI Web Access. Также в настоящий момент не поддерживаются возможности VirtualCenter: мониторинг, события (Alarms), планировщик заданий, менеджер обновлений, карты топологии, SRM, конвертор.

В целом, Technical Preview - это и есть Technical Preview :) Когда VMware приблизит функционал Linux-версии к существующей версии под Windows, это, как минимум, позволит снизить стоимость решения за счет лицензии Windows Server и соответствующего числа CAL.

Инструкция по установке и ссылка для загрузки VMware vCenter Server 2.5 для Linux тут.

17 февраля 2009

Red Hat и Microsoft расширяют сотрудничество в области виртуализации

Microsoft и Red Hat подписали соглашения, в рамках которых компании будут обеспечивать тестирование, сертификацию и совместную техническую поддержку общих заказчиков, использующих технологии серверной виртуализации. Были подписаны два соглашения. По одному из них Red Hat присоединяется к программе Microsoft Server Virtualization Validation Program (SVVP), которая обеспечивает официальную поддержку Microsoft виртуальных машин, работающих в среде виртуализации Red Hat Enterprise, и второе соглашение, направленное на сертификацию гостевых машин Red Hat Enterprise Linux, работающих в Windows Server Hyper-V.
Важно отметить, что данные соглашения не касаются лицензирования, патентов или иных вопросов, связанных с интеллектуальной собственностью. Также речь не идет о каких-либо финансовых отчислениях, за исключением обычных расходов на сертификацию и тестирование ПО.
Ссылки:
Пресс релиз Red Hat.
FAQ и технические детали.
Анонс в блоге Mike Neil (General manager of virtualization at Microsoft)

15 февраля 2009

Скринкаст: oVirt - демонстрация интерфейса

Выложил свой «первый блин» в области «скринкастостроения», посвященный Open Source-реализации системы виртуализации oVirt. Видео записал еще неделю назад, но склеить два куска в один и наложить звук, руки дошли только сегодня. Для записи использовался Istanbul, а сам конечный продукт сознательно делался «быстро и грязно» с первого прогона. Целью данной работы я ставил, в первую очередь, оценку трудозатрат. Перед просмотром рекомендуется прочитать краткий рассказ о том, что же представляет собой данная система виртуализации.

Видео в формате flash и ogg доступно по этой ссылке: http://www.russianfedora.ru/ScreenCast_oVirt

Пара впечатлений о создании скринкаста. Говорить в пустой экран для меня оказалось несколько сложнее, чем перед живой аудиторией. Кроме того, думаю, что для начала нужно записывать звук, а потом уже его проигрывать и писать видео. Наоборот несколько сложнее. Плюс, возможно, стоит делать пару «прогонов» и выбирать окончательный вариант.

Спасибо Алексею Васюкову за помощь в размещении видео.

10 февраля 2009

Востребованность специалистов по различным платформам

В качестве эксперимента задал поиск по ключевым словам в вакансиях на hh.ru за месяц. В OO.o Calc это выглядит примерно так:Windows - Найдено 720 вакансий
Linux - Найдено 410 вакансий
Solaris - Найдено 60 вакансий
VMware - Найдено 33 вакансии
Регион: Россия
Профессиональная область: Информационные технологии/Интернет/Телеком
выводить: за месяц

Получается примерный расклад "известности" работодателям различных названий платформ, который должен коррелировать с востребованностью специалистов по соответствующим платформам.

09 февраля 2009

sVirt = Виртуализация + Мандатный контроль доступа

Продолжу рассказ про перспективные разработки в области виртуализации. Давайте рассмотрим отдельно стоящий сервер, к которому в силу тех или иных причин злоумышленник получил доступ с привилегиями администратора. Плохо? Безусловно. Теперь у злоумышленника "ключи" от всех выполняющихся на сервере служб. А теперь представьте, что в роли сервера у нас машина с гипервизором, в котором работает какое-то количество виртуальных машин. Ситуация хуже во много раз: "плохие парни" получают доступ сразу ко всем виртуальным машинам. Тем более, что опасность увеличивается, благодаря использованию в случае гостевых операционных систем локальных механизмов атаки. Оставим в стороне конкретные технологии и конкретных вендоров. Не важно, чья модель безопаснее - Microsoft, VMWare, Citrix, Sun, etc. Никто не будет спорить, что от потенциальных уязвимостей не застрахован никто, вне зависимости от размеров возможной площади атаки.

Теперь снова вернемся к более простому и традиционному случаю - получению привилегий на отдельно стоящем сервере/ОС. Данная проблема более традиционна, и для ее решения уже существуют технологии. Благодаря таким решениям, ряд операционных систем общего назначения, например, уже получило высокий уровень сертификации Common Сriteria EAL4+ (c расширениями LSPP, RBACPP и CAPP).

Такие "заклинания", как мандатный контроль доступа (MAC), многоуровневая система безопасности (MLS), мульти-категорийная безопасность (MCS) уже не раз встречались в моем блоге в контексте операционной системы. Я не буду повторяться, и просто дам ссылку на посты с тегом "SELinux", где я и писал про практическую реализацию ограничений привилегий системного администратора :) Итак, идея состоит в том, чтобы защитить гипервизор при помощи существующих решений мандатного контроля доступа.

Теперь вернемся к конкретике :) Проект sVirt, направленный на решение этой задачи, был анонсирован Джеймсом Моррисом в рассылке libvirt в августе прошлого года. Цель проекта - интеграция SELinux и виртуализации на основе Linux-ориентированных технологий. Недостаточность традиционного дискреционного контроля доступа в системах, требующих особой защищенности, обуславливается тем, что субъект может менять собственную политику безопасности. С другой стороны, если гостевые операционные системы будут изолированы при помощи политик мандатного контроля доступа, то это резко снижает возможный ущерб от успешной атаки, а то и вовсе ее предотвращает. В идеале в каждом процессе виртуальная машина должна работать в собственном контексте безопасности. Снова в качестве иллюстрации посмотрим на отдельную - не виртуализированную - операционную систему. Вы без труда найдете примеры, когда реальные уязвимости, затрагивающие ОС, в том или ином компоненте операционной системы с отключенным SELinux успешно блокировались политикой безопасности при включенном мандатном контроле.

К своей первой версии sVirt должен обеспечивать реализацию MAC на уровне ядра гипервизора, и обеспечивать простую изоляцию виртуальных машин, не требуя никакой настройки, т.е. все должно работать "из коробки". Ресурсы каждой гостевой операционной системы должны иметь свой уникальный контекст virtd_isolated_t:. Взаимодействие между доменами при этом исключается. В будущем планируется выделить разные типы гостевых машин, требующих разную политику, например, virtd_isolated_webserver_t, реализовать политику SELinux на уровне сетевого взаимодействия, многоуровневую систему безопасности (MLS).

В каком состоянии находится проект сейчас? Сделана низкоуровневая интеграция с libvirt, базовая поддержка в virsh, и виртуальные машины могут запускаться в своих контекстах безопасности. Как и в случае с oVirt, в первую очередь работа идет над KVM.

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

06 февраля 2009

Впечатления от oVirt

На пару дней взял в лабе четыре сервера, на которых развернул oVirt - Open Source-реализацию системы виртуализации, находящуюся в стадии разработки, но имеющую весьма высокий потенциал. Объясню почему. Когда говорят о бесплатных продуктах, подобных ESXi и Hyper-V, нужно понимать, что, хотя они и бесплатны, но масштабируемое решение на них никоим образом не построить. Если вы возьмете десять физических серверов и установите на них гипервизор, то у вас и будет десять отдельно стоящих серверов без функций централизованного управления, горячей миграции, отказоустойчивости и т.д. За все, без чего виртуализация превращается в "красивую игрушку", нужно платить.

С другой стороны есть свободные решения на базе Linux - стабильные и готовые к промышленному внедрению. Но! Даже если оставить в стороне тот вопрос, что открытые разработки в плане некоторых возможностей "не дотягивают" до уровня VMware (с Microsoft сравнивать не будем - ее роль "догоняющего" тут очевидна), то у существующих решений на базе Linux есть следующие недостатки:
  • сложность создания комплексного решения: дело не в том, что это нельзя сделать, а в том, что требуется достаточно высокая квалификация исполнителей и глубокое знание технологий;
  • отсутствие простых в использовании и масштабируемых инструментов управления.
На решение этих проблем и направлен проект oVirt.


В основе лежит API виртуализации и набор утилит - libvirt . libvirt поддерживает работу с различными гипервизорами и технологиями , в том числе Xen, KVM, QEMU, OpenVZ. Следующая составная часть проекта - небольшой образ на основе гипервизора KVM (в ближайшем будущем в проекте появится и поддержка Xen), например, загружаемый по сети. Управляемые хосты, где должны запускаться виртуальные машины, "поднимаются" за считанные минуты и работают без локального сохранения состояния. И, наконец, оставшаяся часть - это управляющие сервера. Если взять VMWare, то, при грубом приближении, эти сервера - аналог VirtualCenter. Управляющий сервер собран из нескольких тесно интегрированных друг с другом компонентов:
  • Единый инструмент управления - веб-консоль;
  • FreeIPA - обеспечивает безопасный канал аутентификации (GSSAPI/SASL2) и LDAP-сервер (Fedora Directory Server). Про IPA я уже писал в блоге пол-года назад;
  • Cobbler - обеспечивает централизованное развертывание виртуальных машин и самих образов с гипервизором;
  • База данных. Пока поддерживается работа только с PostgreSQL. Думаю, к моменту "выпуска в свет" там будет и поддержка Oracle;
  • Другие компоненты, написанные в рамках проекта (броузер хостов, механизм планирования задач, агенты мониторинга).
Еще раз: все это - Open Source решение, внедряемое как единое целое. А, значит, просто и быстро. Действительно, при помощи "Виртуального модуля" (Virtual Appliance) я получил готовую систему менее, чем за час. Из единой консоли можно добавлять хосты, хранилища (пока что только NFS и iSCSI, но к выходу окончательной версии должно быть добавлено и FC. Документация уже содержит упоминание работы с Fibe Channel), разворачивать виртуальные машины, осуществлять "живую миграцию", просматривать графики производительности, задавать права, назначать квоты, выделять пулы ресурсов. В общем, все, к чему мы привыкли, работая c коммерческими решениями. Когда выйдет окончательная версия продукта, я уверен, oVirt составит достойную конкуренцию на рынке продуктов "промышленной" виртуализации, при этом имея неоспоримое преимущество - это полностью свободное решение.

"Поигравшись" с интерфейсом oVirt, я попробовал записать скринкаст в формате ogg theora video. Осталось склеить несколько кусков и наложить звук. Думаю, на следующей неделе я доделаю его и выложу в блог. Как говорится, лучше один раз увидеть, чем сто раз услышать. Надеюсь, необходимость устанавливать кодеки тем читателям блога, которые используют на десктопе ОС от Microsoft, не станет непреодолимым препятствием для просмотра скринкаста. :) Попытки переконвертировать во flash увеличивают размер файла практически в два раза, поэтому я решил отказаться от создания двух версий файла.

Напоследок несколько снимков с экрана:

Virtual Appliance загружено.


Общий вид "аппаратного" пула.



Вкладка управления хранилищем. Пусть вас не пугают размеры LUN-ов. Это экспортируемое самим Virtual Appliance хранилище для формального тестирования работы с iSCSI.


Вкладка c обзором физических хостов.


Консоль виртуальной машины.

04 февраля 2009

VMware открыла Virtual Desktop Client под лицензией LGPL

Good news. :) Компания VMware открыла исходный код Virtual Desktop Client. Собственно, наверное, это в первую очередь повлечет появление большого числа клиентских устройств, сертифицированных для VMware View (бывший VMware VDI). Больше устройств, больше конкуренция, ниже цены. Кроме того, видимо стоит ожидать появление клиента во всех основных дистрибутивах Linux.

28 января 2009

I am RHCA


Подготовка к более чем двадцати четырем часам лабораторных, разбитых на пять экзаменов, заняла чуть больше года. Сегодня пришли результаты последнего экзамена по настройке производительности, который иначе как "black magic" назвать нельзя :) Для интересующихся: интервью с первым Red Hat Certified Architect Флорианом Брендом, обзор сертификации и FAQ.

21 января 2009

20 января 2009

Управление динамическим распределением задач на уровне ОС

"Большие системы" для конечного пользователя означают значительные инвестиции в вычислительные ресурсы, и сразу же возникает вопрос эффективного управления этими мощностями. На этот раз оставим виртуализацию в стороне и рассмотрим динамическое управление ресурсами в пределах одной отдельно взятой операционной системы. Где это необходимо? Примеры:
  • Веб-сервер, поддерживающий несколько экземпляров одного и того же приложения;
  • Сервер, поддерживающий разные приложения (например СУБД и Apache) или HPC-приложения, каждое из которых должно работать с заданными параметрами быстродействия;
  • Сервер, поддерживающий приложения, нагружающие разные ресурсы (подсистемы) этого сервера, но требующие заданный уровень сервиса.
В замечаниях к выпуску Enterprise Linux 5 можно встретить такую фразу:

"...Cpuset обеспечивает механизм назначения узлов процессоров и памяти наборам задач, тем самым ограничивая распределение памяти и процессоров в пределах заданного cpuset. Механизм Cpuset является основным стандартом управления динамическим распределением задач в больших системах..."

Про Cpuset "в двух словах" я и хочу рассказать в этом посте. Данный механизм позволяет "на лету" распределять вычислительные ресурсы между различными задачами, ограничивая использование ОЗУ и ЦП "вычислительным доменом", которому присвоена задача. Впервые поддержка Cpuset появилась в ядре 2.6.12. Патч, включавший данный функционал, был предложен в 2005 году, привносил достаточно небольшой объем кода, дополнительно не нагружая планировщик процессов. Cpuset расширяет возможности уже существовавших в ядре Linux механизмов, позволявших задать с использованием какого ЦП (sched_setaffinity) и ОЗУ (mbind, set_mempolicy) может выполняться задача.

Поскольку управление Cpuset осуществляется при помощи виртуальной файловой системы, самый простой способ проверить, скомпилировано ли ядро вашей системы с поддержкой cpusets - это команда:

[root@server1 ~]# cat /proc/filesystems | grep cpuset
nodev cpuset
Начать работать с cpuset максимально просто:

1) Создадим и смонтируем специальную файловую систему cpuset

[root@server1 ~]# echo "cpuset /cs cpuset defaults 0 0" >> /etc/fstab
[root@server1 ~]# mkdir /cs
[root@server1 ~]# mount -a
В итоге все процессы "привязаны" к корневому и единственному существующему на данный момент "вычислительным домену". У каждого процесса есть файл /proc/PID/cpuset, просмотрев который можно увидеть, к какому cpuset он привязан. В настоящий момент для любого процесса мы увидим картину:

[root@server1 ~]# cat /proc/1/cpuset
/
Кроме того, если посмотреть на специальную файловую систему cpuset, то внутри нашей директории /cs мы обнаружим ряд файлов, среди которых:

- cpus: список ЦП в этом cpuset

[root@server1 ~]# cat /cs/cpus
0-7
- mems: список узлов ОЗУ в этом cpuset

[root@server1 ~]# cat /cs/mems
0
- tasks: список процессов, привязанных к этому cpuset

[root@server1 ~]# cat /cs/tasks | wc -l
151
2) Теперь создадим "дочерний" cpuset. Это делается при помощи создания поддиректории внутри файловой системы cpuset:

[root@server1 ~]# mkdir /cs/cs1
Внутри /cs/cs1 мы увидим те же файлы, что и внутри корня файловой системы cpuset. Далее необходимо привязать ресурсы нашему новому вычислительному домену:

[root@server1 ~]# echo 0,3,7 > /cs/cs1/cpus
[root@server1 ~]# echo 0 > /cs/cs1/mems
3) Присваиваем какую-либо задачу домену cs1:

[root@server1 ~]# echo $(pidof syslogd) > /cs/cs1/tasks
В итоге мы видим:

[root@server1 ~]# cat /proc/$(pidof syslogd)/cpuset
/cs1
и изменившуюся маску ЦП для процесса syslogd:

[root@server1 ~]# cat /proc/$(pidof syslogd)/status | grep Cpus
Cpus_allowed: 00000089
Должен заметить, что наиболее полный из доступных источников по теме - это описание /usr/share/doc/kernel-doc-*/Documentation/cpusets.txt, к которому я и отсылаю вас за дополнительной информацией.

19 января 2009

Новая версия Spacewalk 0.4


На днях вышла новая версия open source решения для обслуживания всего жизненного цикла Linux-инфраструктуры - Spacewalk 0.4. Spacewalk представляет собой открытый по лицензии GPL2 продукт Red Hat Network Satellite Server, имеющий давнюю, с 2001 года, историю разработки.

Основные усовершенствования:
  • интеграция с Cobbler/Koan (о Cobbler я писал в блоге пару недель назад). Требуется версия cobbler >=1.4, которая пока что присутствует в репозитории epel-testing. Предполагается, что Cobbler заменит соответствующую подсистему в Spacewalk, а в дальнейшем, видимо, и в Red Hat Network Satellite Server;
  • начата работа над реализацией доверительных отношений между Организациями и реализацией "общих каналов" программного обеспечения (Multi-Org II);
  • улучшения в поддержке разных архитектур в пределах одного сервера для 64-разрядных систем;
  • Набор новых API (channel.access.*, channel.org.*, package.*);
  • Модули SELinux для компонентов Spacewalk (Ура! Раньше первый пункт при установке звучал как "выключите SELinux" :) ;
  • Поиск по online-документации в Spacewalk. (Мелочь, а приятно);
  • Справочная документация обновлена с учетом последних изменений;
  • Продолжается миграция частей кода с perl на java;
  • Улучшенна интеграция с базовой системой. satellite-httpd удален, поскольку теперь используется стандартный httpd;
  • С момента выхода версии 0.3 исправлено более сотни различных ошибок.
В качестве платформы все еще необходимо использовать RHEL/CentOS/etc, но уже начата работа по созданию репозитория для Fedora 10.

13 января 2009

И снова о памяти в Linux - /proc/meminfo

В продолжение поста о команде free, посмотрим на более полный источник об использовании памяти - специальную виртуальную файловую систему /proc, являющуюся общей точкой доступа к структурам данных ядра, а именно - на информацию /proc/meminfo. Вывод команды cat:
[andrey@server1 ~]$  cat /proc/meminfo
MemTotal: 1945312 kB
MemFree: 48980 kB
Buffers: 2248 kB
Cached: 171092 kB
SwapCached: 256 kB
Active: 622380 kB
Inactive: 32504 kB
HighTotal: 1048256 kB
HighFree: 3176 kB
LowTotal: 897056 kB
LowFree: 45804 kB
SwapTotal: 2048276 kB
SwapFree: 2047868 kB
Dirty: 2696 kB
Writeback: 400 kB
AnonPages: 481592 kB
Mapped: 137244 kB
Slab: 34244 kB
PageTables: 7276 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 2433156 kB
Committed_AS: 1277084 kB
VmallocTotal: 114680 kB
VmallocUsed: 14232 kB
VmallocChunk: 99948 kB
Пройдемся сверху вниз с некоторыми комментариями по части из этих значений.

MemTotal - Доступный объем оперативной памяти. Часть физически доступной памяти резервируется во время запуска системы ядром и не входит в указанный здесь объем:
[root@server1 ~]# grep Memory: /var/log/dmesg
Memory: 1941740k/1965760k available
(2097k kernel code, 22716k reserved,
877k data, 228k init, 1048256k highmem)
MemFree - Какой объем памяти не используется и доступен для немедленного выделения процессам. Ядро Linux старается использовать доступную память максимально эффективно, и, по умолчанию, достаточно большой объем ОЗУ, потенциально доступный для приложений, может быть занят под кэш и буферы. Объем свободной памяти в несколько десятков мегабайт на машинах с гигабайтами оперативной памяти - вполне типичная картина для Linux. В 32-разрядной операционной системе MemFree=LowFree+HighFree.

Buffers - область ОЗУ, занятая хранением данных, ожидающих записи на диск. Буфер позволяет приложениям продолжать выполнение своей задачи не дожидаясь момента когда данные будут физически записаны на диск. Обычно размер около 20Мб.

Cached - Объем занятый в ОЗУ под кэш чтения страниц с диска (файлы, директории, файлы блочных устройств, данные, относящиеся к механизму IPC, данные процессов уровня пользователя, сброшенных в область подкачки). Не включает в себя SwapCached.

SwapCached - Объем памяти, который однажды был помещен в область подкачки, но потом перенесен обратно в ОЗУ. Однако данные все еще присутствуют в swap, и при необходимости этот объем памяти может быть вновь освобожден без необходимости тратить ресурсы на "дорогие" операции ввода/вывода.

Active - Объем памяти, занятый в ОЗУ наиболее часто используемыми страницами памяти. Иными словами, эти страницы памяти активно используются процессами и будут освобождаться только в случае крайней необходимости.

Inactive - Объем памяти, занятый в ОЗУ не используемыми в настоящий момент страницами. Эти страницы считаются наиболее подходящими для выгрузки в swap и освобождения в случае необходимости.

High{Total,Free}, Low{Total,Free} - MemTotal=HighTotal+LowTotal. Вывод команды cat /proc/meminfo получен на 32-разрядной операционной системе. Модель использования памяти в 32-разрядном и 64-разрядном ядрах отличается. Ниже я привел рисунок, показывающий эти отличия:


В 32-р архитектуре ядро Linux может напрямую адресовать только первый гигабайт физической памяти. На рисунке ZONE_NORMAL - это и есть область памяти объемом LowTotal:897056 kB. Число меньше гигабайта за счет зарезервированных ядром областей памяти. Из оставшегося объема нужно вычесть 1Мб, используемый BIOS и устройствами ввода/вывода, а также 16Mб ZONE_DMA для совместимости с ограничениями устройств на шине ISA. Память "выше" первого гигабайта - ZONE_HIGHMEM (HighTotal:1048256 kB). Доступ к ней осуществляется через отображение на первый гигабайт ОЗУ. Отображение "прозрачно" для приложений, но вызывает небольшую потерю производительности. ZONE_NORMAL используется для тех же нужд что и зона ZONE_HIGHMEM, плюс для собственных структур ядра. В 64-разрядных архитектурах зона ZONE_HIGHMEM всегда пуста.

Swap{Total, Free} - SwapTotal - это общий объем области подкачки (как в разделе подкачки, так и в swap-файлах, если они используются). Как и в случае с ОЗУ, ядро Linux старается использовать область подкачки максимально эффективно. Иногда факт использования части области подкачки еще не означает того, что память является "узким местом" производительности системы. Один из способов влиять на агрессивность использования swap - это парметр vm.swappiness. Чем больше процент swappiness, тем активнее будет выгрузка в swap. По умолчанию в RHEL5 это число 60%. Предпочтительно использовать более агрессивную политику выгрузки в область подкачки, когда вы, например, на рабочей станции большую часть времени работаете с одним большим пакетом ПО и редко переключаетесь на другие задачи. Пример из области серверов - машина с ограниченным ОЗУ, выполняющая какие-то пакетные задания (процессы, находящиеся долгое время в состоянии S). На серверах с большим объемом ОЗУ увеличения swappiness может свести все выгоды использования swap "на нет" из-за активного использования дисковой подсистемы и процессорного времени для поиска и сброса на диск неактивных страниц памяти.

Dirty - Измененные ("грязные") страницы, находящиеся в ОЗУ, но еще не сброшенные на диск. За процедуру записи на диск отвечает группа потоков ядра pdflush. В системе должно работать минимум два и максимум восемь потоков pdflush. Посмотреть текущее число потоков можно:
[root@server1 ~]# cat /proc/sys/vm/nr_pdflush_threads
2
Дополнительные потоки создаются в зависимости от текущей нагрузки ввода/вывода. Команда sync и "магическая" комбинация Alt-SysRq-S сбрасывает все "грязные" страницы и буферы. Число, хранящееся в vm.dirty_background_ratio (по умолчанию 10%), задает какой процент от ОЗУ потоки pdflush должны сбрасывать на диск. Чем больше процент, тем реже происходит обращение к диску. Второй из важных параметров, влияющих на pdflush, это процент от объема ОЗУ, при котором стартует сам процесс сброса на диск - vm.dirty_ratio.

Writeback - Страницы памяти, которые в настоящий момент сбрасываются на диск.

AnonPages - Анонимные страницы - это, как правило, данные, используемые программами и не ассоциированные с каким-либо файлом. Наряду со страницами, объем которых указан в Inactive, это первые кандидаты на попадание в область подкачки. Анонимные страницы нередко используются несколькими процессами. Самый распространенный пример - fork() при создании нового процесса. Число анонимных страниц для конкретного процесса можно вычислить как разницу между размером резидентной части (resident) и разделяемыми страницами (share) в выводе /proc/PID/statm (информация о состоянии памяти в страницах). Например:
[root@server1 vm]# cat /proc/$(pidof sshd)/statm
1763 258 161 93 0 130 0
Получается что число анонимных страниц для sshd = 258 - 161 = 97 или 388Кб. Подробнее - man proc.

Mapped - Общий объем памяти, привнесенный в виртуальное адресное пространство процессов при помощи mmap (например, библиотеки).

Slab - объем памяти, занятый под различные структуры ядра небольшого объема, для которых не оптимально выделять по целой странице памяти. По умолчанию в 32-р системах размер страницы - 4Кб, и этот объем является квантом памяти при ее выделении. Подробнее информацию о slab-кэше можно посмотреть при помощи утилиты vmstat с ключем -m, утилиты slabtop или через /proc/slabinfo.

PageTables - Объем памяти, зарезервированный под Таблицу Страниц.

NFS_Unstable - Данный параметр относится к клиенту NFS v3+, реализованному в ядре Linux, и показывает, какой объем данных, отправленных клиентом серверу, еще не был записан на диск. Клиент должен кэшировать эти данные до поступления подтверждения от сервера.

CommitLimit - Объем памяти, который может быть выделен системой. Вычисляется на основе vm.overcommit_ratio (по умолчанию - 50%) и размера области подкачки. Формула имеет следующий вид CommitLimit = ( vm.overcommit_ratio * объем_ОЗУ) + область_подкачки. Этот лимит соблюдается только при "строгой" политике выделения памяти (vm.overcommit_memory=2). По умолчанию используется "эвристическая" политика (vm.overcommit_memory=0).

Committed_AS - Сколько памяти выделено всем процессам, даже если они эту память не используют в полном объеме. Иными словами, данный параметр показывает, сколько при текущей загрузке системы требуется ОЗУ, если процессы реально захотят использовать выделенную память для того, чтобы избежать core dump по причине отсутствия памяти (OOM). Дело в том что, когда процесс требует - ядро подтверждает выделение требуемого объема памяти (только если не используется "строгая" политика. В этом случае проверяем, не исчерпан ли CommitLimit) без выделения ОЗУ. Реально память выделяется постранично только лишь когда процесс пытается что-то записать в выделенную до этого память. Этот механизм называется overcommitment. Более подробно см. /usr/share/doc/kernel-doc-*/Documentation/vm/overcommit-accounting.

VmallocTotal - общее число виртуального пространства, доступного для vmalloc.

VmallocUsed - объем использованного пространства vmalloc.

VmallocChunk - наибольший свободный непрерывный блок внутри пространства vmalloc.

Литература:
  • Ядро Linux. 3-е издание, Даниель Бовет, Марко Чезати, БХВ-Петербург, 2007
  • Optimizing Linux® Performance: A Hands-On Guide to Linux® Performance Tools, Phillip G. Ezolt, Pearson PTR, 2005
  • Linux System Programming, Robert Love, O’Reilly, 2007
  • /usr/share/doc/kernel-doc-*/Documentation/

08 января 2009

Команда /bin/free "в картинках"

Команда free выводит информацию об общем числе свободной и использованной памяти, включая swap. Для того, чтобы было понятнее, как трактовать вывод команды, на приведенном ниже рисунке я показал результат исполнения команды free в Dom0 на моем рабочем ноутбуке:

Ключ -m говорит о том, что размер памяти нужно выводить в мегабайтах. Еще один ключ -l позволяет посмотреть сколько памяти использовано в каждой из зон:
[andrey@server1 ~]$ free -l
total used free shared buffers cached
Mem: 1819648 1807228 12420 0 56504 1257716
Low: 738260 728896 9364
High: 1081388 1078332 3056
-/+ buffers/cache: 493008 1326640
Swap: 2048276 8 2048268
Если бы я отдал эту же команду на установленной 64-разрядной ОС, то в строке, относящейся к ZONE_HIGMEM, я бы увидел 0. Обзор модели памяти Linux можно почитать в статье на IBM developerWorks Россия. Если же вы готовы к "глубокому погружению", то ничего лучше "Ядро Linux. 3-е издание" Бовет, Чезати на русском языке я не видел.

Cobbler: новое видео в Red Hat Magazine


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

Такой способ есть, и он заключается в использовании ПО Cobbler, которое упрощает сетевую установку операционных систем, что особенно необходимо при масштабных инсталляциях, например, в дата-центрах. Вчера в Red Hat Magazine появилось видео-интервью с разработчиком Cobbler - Michael DeHaan.

Добавлю, что в релизе 0.4 open source решения для управления Linux-инфраструктурой Spacewalk планируется сделать первые шаги для интеграции c Cobbler/Koan. Предполагается, что Cobbler заменит соответствующую подсистему в Spacewalk, а в дальнейшем, видимо, и в Red Hat Network Satellite Server.

Подробнее с Cobbler можно познакомиться на сайте проекта. А все тот же Michael DeHaan описал процесс настройки Cobbler в статье "How to set up a network boot server in 10 minutes".

06 января 2009

Приоритет ввода/вывода процесса и ionice

В планировщике ввода/вывода CFQ (подробнее о планировщиках ввода/вывода можно почитать тут), который используется по умолчанию, начиная с ядра версии 2.6.18 (кстати, в последнем издании Understanding the Linux Kernel описано ядро 2.6.11, и там в соответствующей главе пишут про упреждающий конвейер - Anticipatory) есть интересная возможность вручную присваивать приоритет ввода/вывода конкретному процессу. На практике эти манипуляции осуществляются при помощи утилиты ionice.

Можно задать три класса ввода/вывода:

3. Idle - получает доступ к диску только тогда, когда другие процессы не требуют ввода/вывода. При "нормальной" работе системы такой процесс не должен испытывать проблем с производительностью.

2. Best effort - класс "по умолчанию". Для вычисления приоритета ввода/вывода используется соответствующее значение nice планировщика ЦП для этого процесса. Таким образом, при помощи команд nice и renice вы, помимо косвенного изменения приоритета процесса в планировщике ЦП, косвенно же влияете на планировщик ввода/вывода.

1. Real time - процессы с этим классом имеют приоритетный доступ к жесткому диску вне зависимости от того, что происходит в системе. Вместе с классом 1 как и с классом 2 можно передать и параметр-приоритет (0-7).

Первое, что приходит в голову глядя на классы - запуск некоторых задач в cron с пониженным приоритетом ionice -c3. Приоритет наследуется от родительского процесса, таким образом, все, что вы напишете после

#!/bin/bash
ionice -c3 -p$$

будет работать с приоритетом ввода/вывода Idle. Видимо, наилучшего прироста производительности можно добиться экспериментируя с ionice, когда вы вынуждены запускать одновременно несколько процессов с разными требованиями к дисковой подсистеме.

Подробнее:
  • man-страница ionice(1)
  • /usr/share/doc/kernel-doc-*/Documentation/block/ioprio.txt
Хотя не существует однозначного ответа на вопрос "Какой планировщик лучше?", и каждый раз необходимо тестировать конкретное приложение/систему, в общем случае ionice и конвейер CFQ не стоит применять для работы с /dev/xvdX в виртуальных машинах, где рекомендуется использовать планировщик NOOP, предоставив заботиться о планировании операций ввода/вывода Dom0. Для этого нужно добавить elevator=noop в строку параметров ядра grub:

title Red Hat Enterprise Linux Server (2.6.18-53.el5xen)
root (hd0,0)
kernel /vmlinuz-2.6.18-53.el5xen ro root=/dev/vol0/root rhgb quiet elevator=noop
initrd /initrd-2.6.18-53.el5xen.img

В итоге:

[root@vm02 ~]# dmesg | grep schedule
io scheduler noop registered (default)
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered

Впрочем, если вы помимо виртуальных дисков работаете с внешним хранилищем, где оптимальнее использовать планировщик "по умолчанию", то можно обойтись и /etc/rc.d/rc.local, меняя планировщик на уровне устройства:

echo noop > /sys/block/xvdX/queue/scheduler