![](https://habrastorage.org/webt/da/an/ot/daanotzb6fii1-xz2ovdgbmqrws.jpeg)
На первый взгляд chiark.greenend.org.uk кажется обычным веб-сервером. Простой хостинг для кучки личных страниц (~200 аккаунтов), нескольких почтовых рассылок, групп Usenet и тому подобного. Пользователи из-за пределов Кембриджского университета могли попасть на этот сайт разве что в том случае, если им понадобилось скачать SSH-клиент PuTTY под Windows с сайта автора.
Но этот сервер особенный. Дело в том, что Чиарк (имя сервера из фантастики Бэнкса, на КДПВ) работает с 1993 года. Скорее всего, это самый древний в интернете хост под Linux. Если кто забыл, в том году Intel выпустила свой первый Pentium. Изначально Чиарк крутился под Debian Linux 0.93R5, последний апгрейд был сделан в 2016 году на jessie (Debian 8).
Администратор сервера — бывший технический директор и основной разработчик Debian, кандидат наук Иан diziet Джексон (он известен как автор пакетного менеджера
dpkg
, SAUCE, userv, debbugs и др.). В июле 2022 года Джексон решил, что можно перескочить сразу через две версии Debian, вопреки официально рекомендованному методу апгрейда (мануалы ведь пишут для пользователей, а не для создателя системы, правильно?).В блогозаписи по итогу операции diziet назвал процедуру обновления
skip-skip-cross апгрейд
. Двойной скип, потому что он пропустил Debian 9 и Debian 10, а также «кросс», что означает миграцию с 32- на 64-битную систему. Старая флэшка
Понятно, что операция предстояла непростая. Хотя у автора было несколько лет, чтобы всё продумать, не обошлось без неприятных неожиданностей.
Например, сразу показала недееспособность старая флэшка 2 ГБ, которая выполняла роль резервного загрузчика на случай, если сервер не загрузится с основного накопителя. Оказалось, что эта система слишком старая, чтобы понять организацию хранения данных на Чиарке.
Пришлось сделать из Чиарка ещё один резервный образ для флэшки, а саму флэшку загружать пусть не с 64-битной Debian, но хотя бы с чего-то не такого древнего. Но флэшка оказалась слишком маленькая и ужасно медленная по современным меркам. Джексон не ожидал столкнуться со всеми этими сложностями и не планировал путей обхода, поэтому сборка загрузочного образа на флэшке заняла пять часов.
Более удивителен тот факт, что ни на одном этапе апгрейда Джексону не пришлось трогать Чиарка, который стоит на колокейшне в Лондоне. Вся процедура была проведена полностью удалённо. Но он говорит, что вообще проще было съездить в Лондон с новой флэшкой, если бы он знал, сколько времени займёт сборка.
К счастью, обновление ядра прошло по плану. Все скрипты по установке критических пакетов сработали безупречно — и через час у него уже была работающая система bullseye amd64, хотя многие важные пакеты все еще отсутствовали или не были настроены. Но в итоге не понадобился ни загрузочный образ, ни поездка в центр данных.
Комментаторы отмечают также нетривиальную дисковую конфигурацию
LVM-on-RAID-on-LVM
, которая показала себя довольно неплохо.Самым проблематичным стал апгрейд самого древнего софта — веб-сервера Apache 2, программы для ведения списков рассылки Mailman и ньюс-сервера Exim MTA, а также переход всех систем с инфраструктуры Python 2 на Python 3 (в блоге всё подробно описано, мы опустим эти детали).
Обновление через пропуск
Джексон говорит, что прыжок через две версии позволяет избежать столкновения с ошибками пакетирования, которые присутствовали в промежуточном релизах: «Debian обычно исправляет ошибки, но у Debian много осторожных пользователей, поэтому нередки случаи, когда ошибки обнаруживаются после выпуска и не исправляются до следующего. Обновление через пропуск избавляет от необходимости обновляться до уже устаревших релизов (и возни с несколькими снимками snapshot.ddebian.org). Оно также значительно быстрее и проще, что важно не только потому, что сокращает время простоя, но и потому, что устраняет возможности (и сокращает время) возможных сбоев».
Набор программ и накопившихся настроек Чиарка, представляет максимальный уровень сложности установки и настройки: «Полная переустановка потребовала бы огромного объёма работы. И она уникальна, — пишет Иан. — Последним крупным обновлением была Debian 8 в 2016 году. С тех пор мы полагались на отличную поддержку безопасности Debian, а также на проекты Debian LTS и, в последнее время, Freexian — Debian ELTS и некоторые локальные обновления. Особенно неудобно было мириться с ELTS, которая поддерживает только часть пакетов».
Конечно, апгрейд сервера можно было провести и раньше. Но как иногда бывает — чем дольше консервируешь систему, тем тяжелее её менять. Проблема не только техническая, но и отчасти культурная. Древний хост постепенно превращается в некий технологический артефакт, представляющий ценность сам по себе.
Столь трепетное сохранение древнего цифрового наследия на относительно современном железе (сам физический сервер за эти годы несколько раз апгрейдили) — полная противоположность современному стилю DevOps, когда софт рассматривается просто как инструментарий, а не как нечто самоценное и уникальное. Для увлечённых сисадминов 20 века не всегда было приятно такое отношение к своему детищу, в которое вкладывали душу.