Skip to main content

Про Live Upgrade впрок.

Мысленный поток в пятницу – включен. Поговорим о старом добром.

Обновление с помощью LU при наличии загрузочного пула на ZFS – это просто песня. Создание новой загрузочной среды – никакого ожидания, пока отработает cpio, никаких проблем с откатом – мгновенные снимки очень и очень полезны, наличие этой сладкой парочки (Live Upgrade + ZFS) самых больших скептиков убедит перейти на свежий Solaris. Даже если не нужно “поднимать” версию (update) ОС – это отличная технология для установки патчей, даже в отсутствии ZFS, а в неких особо занимательных случаях – возможность создать среду для тестирования того или иного ядерного параметра или тестирования новой версии приложения.

Основа Live Upgrade – при изготовлении новой загрузочной среды происходит фиксация текущего состояния как операционной системы со всеми ее компонентами, так и потенциальная (в зависимости от настройки) фиксация состояния наших приложений. Один из таких примеров и приведу.

Есть ряд банальных и (иногда) неочевидных нюансов. Я, например, иногда делал новую среду загрузки “впрок”, не особо планируя перезагрузку – на сервере с довольно старым релизом ОС Solaris 10 11/06 с весьма старым KU, несколькими зонами на борту (с разнообразными интернет-сервисами навроде статических httpd серверов и любимых связок postfix+dovecot, ну и hg). Но работа на месте не стоит 😉 Потребовалось (настоятельно) перейти на новый релиз и KU (и на то были веские причины – пальцем бы не шевельнул – искренне считаю обновление хорошо работающего “продуктива” моветоном). Решил подойти к вопросу обстоятельно, сделал новую среду загрузки (lucreate), обновился до нового Solaris (9/10), “докатил” самые свежие патчи – и, закончив все манипуляции примерно за 3 часа, стал ждать “окошка” для запуска заветной команды init 6. Увы, не срослось, выяснилось, что сервер перезагрузке не подлежит ни при каких обстоятельствах (даже вот ни на 15 минут). Ну ладно – что нам – подождем. На следующий день в алиасы postfix была накидана пачка новых пользователей, еще через день – по ftp залили пачку новых страничек, прописали несколько виртуальных серверов. И так далее. К выходным система была перезагружена – и с точки зрения приложений вернулась в состояние недельной (на момент изготовления среды) давности. Крик, шум, “что случилось?!”, “нас сломали!!!”. Необходимые файлы конфигурации приложений были быстренько перенесены со старой среды, все “поехало”.

Мораль, если дочитали до этого места – “хороша ложка к обеду” или все надо делать своевременно, тщательно планирую свои действия, не забывая про расчет потенциально возможных сценариев. Если бы я заранее спланировал свое обновление – и перезагрузил систему сразу, без длительной паузы – заказчик бы остался в восторге от технологичности решения. Вышло несколько иначе.

Есть вещи, которые почему-то забывают делать, начиная продолжительное хождение по граблям и грабелькам (и это не имеет отношения к чтению документации!!! Не на прямую, понятно 😉 ). Если делается обновление с одного релиза на другой (я говорю про обновления между разными релизами Solaris 10, НЕ затрагивая предыдущие версии Solaris (7,8,9) – где LU поддерживается) – хорошая (и единственно верная) практика – это удаление пакетов SUNWlu*, на всякий случай – стирание /etc/lutab, /etc/lu/, и установка их со свежего релиза, причем языковые пакеты, которые иногда по умолчанию стоят – можно и не ставить вовсе. Если что-то не заладилось с LU кардинальным образом – есть однозначный смысл повторить с нуля, изничтожив пакеты и файлы из списка ранее по тексту. Одна из любимых “отмазок” – отсутствие cd-rom’a. В таком случае не грех напомнить про lofs и про то, что система обновляется просто шикарным образом и с NFS-шары.

Технически, Игорь, мой коллега, все великолпено изложил у себя в блоге, рекомендую:
Solaris Live Upgrade. Часть 1
Solaris Live Upgrade. Часть 2. Переходим на ZFS
Solaris Live Upgrade. Часть 3. Шпаргалки

Что хочу добавить – после прочтения этих ссылок идем на docs.oracle.com и там читаем хотя бы Release Notes… Полезно и бывают таааакие открытия 😉

Мысли вслух закончились 🙂 Happy installing (oops, upgrading!) 🙂

Поток выключен – спокойной ночи 🙂