CentOS 7: ждём бесплатный клон RHEL 7 и тестируем бета-сборки
Red Hat анонсировал RHEL 7 на начало 2014. Тестируем бета-сборки в лабе: systemd вместо SysVinit, XFS по умолчанию - серьёзные изменения для привычного парка.
Red Hat анонсирует RHEL 7 на начало 2014 года; сообщество ждёт CentOS 7 как бесплатного клона для продакшн-серверов
Red Hat объявил, что RHEL 7 выйдет в первой половине 2014 года. Для тех, кто держит парк на CentOS 6, это сигнал к действию: разворачиваем бета-сборки RHEL 7 в лабе и смотрим, что изменится. Спойлер - изменилось немало.
Почему это важно именно сейчас
CentOS для многих наших клиентов - это основа серверного парка. Стабильная, предсказуемая, бесплатная. После прошлогодней истории с задержками в релизах CentOS команда объявила о реструктуризации: теперь Red Hat напрямую поддерживает проект, что должно сократить лаг между выходом RHEL и появлением CentOS. Насколько это сработает - увидим, но пока настрой у сообщества позитивный.
RHEL 7 Beta уже доступна для подписчиков, а бета-ISO без коммерческой подписки лежат в публичном доступе. Мы подняли несколько виртуалок в тестовой среде и начали смотреть.
systemd: первый и главный сюрприз
Если раньше любой администратор CentOS/RHEL мог с закрытыми глазами написать /etc/init.d/сервис start или chkconfig сервис on, то в RHEL 7 этого уже нет. Точнее, совместимые обёртки есть, они пробрасывают вызов в systemd, но работать с системой по-старому больше не выйдет.
Основные изменения, с которыми мы уже столкнулись:
- Управление сервисами -
service httpd startтеперь транслируется вsystemctl start httpd.service. Прямые вызовы через/etc/init.d/работают через слой совместимости, но пишут предупреждения. - Автозагрузка -
chkconfigуступает местоsystemctl enable. Концепция runlevel-ов заменяется на targets:multi-user.targetвместо runlevel 3,graphical.targetвместо runlevel 5. - Логи -
journaldсобирает логи в бинарный формат, смотреть черезjournalctl. rsyslog никуда не делся, он работает параллельно и пишет в/var/logкак обычно, но теперь у него есть конкурент. - Init-скрипты - кастомные скрипты в
/etc/init.d/работают, но это режим совместимости, не первый класс.
Для Ansible-плейбуков, которые мы активно используем для провизионинга, это означает ревизию всех тасков, которые управляют сервисами. В Ansible уже есть поддержка systemd через модуль service, и она работает прозрачно, но нужно проверить каждый плейбук - особенно те, которые лезут в /etc/init.d/ напрямую или трогают chkconfig.
XFS по умолчанию
Вторая неожиданность - файловая система. В RHEL 6 по умолчанию ext4, в RHEL 7 - XFS. Для большинства рабочих сценариев это вопрос почти незаметный: XFS давно в ядре, стабильна, хорошо работает с большими файлами. Но детали важны.
Главный из них - уменьшить XFS-раздел нельзя. Ext4 можно (в оффлайне), XFS - нет совсем. Это меняет подход к планированию разметки диска: нужно либо сразу делать разделы с запасом, либо думать в сторону LVM с возможностью расширения. На виртуалках это, как правило, не проблема - добавил диск, расширил VG, растянул LV, и XFS подхватит изменения на лету командой xfs_growfs. На физических серверах с фиксированным железом надо думать заранее.
Для бэкапов через dump тоже изменение: dump с XFS не работает, нужен xfsdump или переход на rsync/tar-подход. У тех, кто полагался на dump-скрипты, их придётся менять.
Что ещё бросилось в глаза
Помимо двух больших изменений - несколько мелких, но заметных:
- firewalld вместо iptables - новый инструмент управления файрволом с концепцией зон. iptables под капотом никуда не делся, firewalld просто генерирует правила поверх него. Но синтаксис и логика другие, скрипты с прямым управлением iptables работают, firewalld их не ломает, если его не запускать одновременно.
- Grub 2 - загрузчик обновился, конфиги в другом месте и другого формата. Кто правил
/boot/grub/grub.confвручную - переучиваться. - NetworkManager по умолчанию для всего - в RHEL 6 его часто отключали на серверах и работали напрямую с ifcfg-скриптами. В RHEL 7 NetworkManager ведёт себя адекватнее для серверных сценариев, но привычка его отключать никуда не делась.
Когда CentOS 7
Конкретных дат нет. RHEL 7 ожидается в первом полугодии 2014-го, CentOS по новому соглашению с Red Hat должен выйти значительно быстрее, чем раньше. Сообщество рассчитывает, что лаг будет недели, а не месяцы - но это пока ожидания, не факт.
Пока мы тестируем на бета-сборках RHEL 7 и готовим список того, что нужно обновить в плейбуках и скриптах до момента, когда придёт время мигрировать. Парк серверов на CentOS 6 никуда не денется в один день - у шестёрки поддержка до 2020 года - но к новым установкам лучше быть готовыми заранее.
О самом болезненном из тестирования - переносе кастомных init-скриптов на systemd unit files - расскажем отдельно, когда допилим лабораторную миграцию.