Debian Etch как новый стандарт: Xen из коробки, ядро из пакетов, образ вдвое легче
Обновили стандартный образ серверов с Debian Sarge на Etch 4.0: Xen и OpenVZ теперь в официальных репозиториях, ядро 2.6.18, сборка вручную больше не нужна.
Debian GNU/Linux 4.0 «Etch» выходит в апреле 2007 года с поддержкой AMD64, ядром 2.6.18 и обновлёнными пакетами
Debian Etch вышел в апреле, и мы несколько месяцев держали его в уме как «надо переехать». В июле наконец оформили: заменили базовый образ для новых серверных инсталляций. Старый образ на Sarge работал, но накопил достаточно ручных решений, чтобы оправдать перекладку с чистого листа.
Почему Sarge стал тормозить процесс
Sarge - это Debian 3.1, ядро 2.6.8. Выпущен в 2005-м, и за два года разрыв с реальностью вырос. Главная боль - виртуализация. Если нужен Xen, приходилось либо собирать ядро вручную под нужную версию гипервизора, либо тащить пакеты из backports, либо смириться с тем, что версии расходятся с тем, что стоит у соседнего клиента. OpenVZ вообще шёл только через посторонние репозитории - и каждый раз это был маленький квест с зависимостями.
Кроме этого, в Sarge накопились устаревшие версии всего подряд: OpenSSL, OpenSSH, glibc. Обновлять security-патчами можно, но почвы под ногами это не добавляет.
Что изменилось в Etch
Etch принёс ядро 2.6.18 и существенно обновил дерево пакетов. Для нас принципиально важны два момента.
Первый - Xen 3.0.3 и linux-image-xen в официальных репозиториях. Теперь apt-get install xen-linux-system-2.6.18-5-xen-amd64 - и у тебя рабочий dom0 без единой строчки сборки. Раньше мы держали самодельные ядра с патчами: собирали из исходников, документировали какие патчи применены, следили за версиями вручную. При каждом обновлении безопасности это был отдельный ритуал. Теперь ядро приходит через apt и обновляется вместе с остальными пакетами.
Второй - OpenVZ через официальный репозиторий ovz-rhel5 для Debian Etch. Нет, это не в mainline Debian, но команда OpenVZ поддерживает нормальные deb-пакеты под Etch, и зависимости разрешаются без боли. Для контейнерной виртуализации это огромный шаг по сравнению с тем, что было на Sarge.
Плюс AMD64 - полноправная архитектура в Etch. На Sarge amd64 существовала как unofficial port, пакетов было меньше, иногда что-то не собиралось. Сейчас мы постепенно уходим от 32-битных установок на новом железе, и Etch здесь не мешает.
Новый образ
Пересобрали образ по-честному: взяли debootstrap на Etch, прошлись по списку пакетов, выкинули всё лишнее из старого образа. В Sarge-образе постепенно накопились пакеты, которые «возможно пригодятся» - в итоге он весил около 4 ГБ. Новый образ для чистой инсталляции вышел примерно 1,2 ГБ. Это минимальная система плюс набор пакетов, которые нужны в первые полчаса после установки: openssh-server, vim, htop, lsof, tcpdump, rsync, sudo, ntp.
Виртуализационные пакеты - Xen или OpenVZ - не включены в базовый образ. Ставятся отдельным шагом через наш установочный скрипт в зависимости от роли сервера. Образ один, роли разные.
Ядро из пакетов: минусы тоже есть
Хочется сказать, что всё идеально - но нет. Пакетное ядро означает, что ты не контролируешь флаги компиляции. Если нужно что-то нестандартное - например, поддержка специфического оборудования или нетривиальный scheduling - ты либо принимаешь дефолт Debian, либо снова собираешь руками.
Пока что в нашем парке таких случаев нет. Стандартное ядро Debian с dom0-патчами Xen покрывает всё, что нужно. Но держим в уме.
Второй момент - при обновлении ядра через apt нужно не забыть обновить menu.lst в grub и проверить, что initrd пересобрался. Делается автоматически через hooks, но мы всё равно проверяем руками после каждого kernel upgrade - слишком много раз видели серверы, которые после обновления грузились старым ядром, потому что grub не обновился.
Итог
Все новые серверы клиентов теперь идут на Etch. Образ легче, чище, виртуализация через пакеты, зависимости решаются нормально. Ручная сборка ядер ушла из регулярной практики - по крайней мере для стандартных конфигураций.
Текущие серверы на Sarge не трогаем - in-place upgrade Debian обычно кончается плохо, а плановой миграцией займёмся по мере замены железа или при следующей реорганизации инфраструктуры клиента. Работает - не чини. Но новое уже не на Sarge.
Всё это - часть нормальной работы по сопровождению инфраструктуры: поддерживать стандарты в актуальном состоянии, чтобы не объяснять каждый раз, почему на новом сервере старое ядро.
- Xen 3.1: Windows через HVM и 15% прироста I/O у Linux-доменов · 19 апреля 2007
- LTO-3: вдвое больше на картридж и резервная копия БД за ночь · 24 мая 2007