Solaris Live Upgrade. Часть 1
12.05.2010
- Solaris Live Upgrade. Часть 1
- Solaris Live Upgrade. Часть 2. Переходим на ZFS
- Solaris Live Upgrade. Часть 3. Шпаргалки
Что такое Live Upgrade?
Если коротко — набор инструментов, которые позоляют создать альтернативную среду загрузки, сделать копию загрузочных устройств текущей системы, или накатить на нее новую ОС, накатить или удалить патчи, пакаджи. Затем активируем ее и перегружаем сервер — вуаля, новая или пропатченная ОС загружена. Если возникли какие-либо сложности — в любой момент можно откатиться обратно. Количество этих альтернативных ОС зависит только от наличия у нас доступных загрузочных дисков (про ZFS будет написано в отдельной статье, там все еще проще отдельная статья про переход на ZFS).
Устанавливаться можно как с инсталлера, так и jumpstart-а. Но самая главная фишка — все манипуляции проводятся на загруженной рабочей системе, и время простоя — это только время необходимое на перезагрузку. Не нужно многочасовых простоев и работы ночами для наката патчей, не нужно длительных согласований времени простоя системы — установите все днем с помощью LiveUpgrade ;)
Инструменты, которые входят в Live Upgrade:
lu — GUI, наглядно, но не все функции доступны
luactivate — Активировать выбраную среду загрузки
lucancel — Отменить запланированную операцию LU
lucompare — Сравнивает две среды загрузки (текущую и альтернативную, использует для этого команду diff)
lucreate — Создать новую среду загрузки (сразу копирует туда текущую среду)
lucurr — Показать имя загруженной сейчас среды
ludelete — Удалить выбранную среду загрузки
lufslist — Выводит список файловых систем для выбранной среда
lumake — Пересоздает среду загрузки (копирует туда текущую среду)
lumount/luumount — Замонтировать/отмонтировать альтернативную среду загрузки (монтирует файловые системы в каталог /.alt.ИМЯ_СРЕДЫ )
lurename — Переименовать среду загрузки (ну т.е. назавли например s10_u8_ufs, не понравилось — переименовали в s10_1)
lustatus — Выводит текщий статус всех сред загрузки, определенных в системе
luupgrade — Инсталлировать, накатить-удалить патчи, пакаджи на альтернативную среду загрузки.
- Подготовка к созданию альтернативной среды загрузки
- Cоздаем альтернативную среду загрузки
- Действия с альтернативной средой загрузки
- Активируем новую среду загрузки
Подготовка к созданию альтернативной среды загрузки
Для загрузки ОС, в моем случае, нужны две файловые системы — / и /var. Они расположены, соответственно:
# devnm / /var /dev/md/dsk/d1 / /dev/md/dsk/d5 /var # metastat -p d1 d5 d1 -m d10 1 d10 1 1 c1t0d0s0 d10 1 1 c1t1d0s0 d5 -m d50 1 d50 1 1 c1t0d0s5 d50 1 1 c1t1d0s5
Если есть отдельный свободный диск, то лучше всего расположить альтернативную среду загрузки на нем:
prtvtoc -s /dev/rdsk/c1t0d0s2 | fmthard -s - /dev/rdsk/c1t3d0s2 metainit d12 1 1 c1t3d0s0 metainit d52 1 1 c1t3d0s5
Теперь маленький трюк — делаем зеркало из одной половинки. Накладных расходов никаких, зато можно будет
потом «на горячую» его зеркалить или разбивать.
metainit d15 -m d12 metainit d55 -m d52
Если свободных загрузочных дисков нет, но есть загрузочное зеркало, то можно его
разбить (не забудьте, только сделать бэкап — эта тема не раз здесь поднималась
1,
2 )
и сделать из одной из половинок новую среду загрузки.
metadetach d1 d11 metadetach d5 d51 metainit d15 -m d11 metainit d55 -m d51
Cоздаем альтернативную среду загрузки
Создаем альтернативную среду загрузки, пусть наша текущая среда называется s10_1, а новая s10_2:
# lucreate -c s10_1 -m /:/dev/md/dsk/d15:ufs -m /var:/dev/md/dsk/d55:ufs -n s10_2
Установка или удаление пакаджей
Устанавливаем (ключик -p) или удаляем (ключик -P) пакаджи:
# luupgrade -n s10_2 -s /tmp/packages -p `cat /tmp/packages/packages_order`
Установка или удаление патчей
Накатываем (ключик -t) или откатываем (ключик -T) патчи:
# luupgrade -n s10_2 -s /tmp/recomended -t `cat /tmp/recomended/patch_order`
Установить ОС с помощью инсталлятора
Монтируем по NFS инсталляционный образ:
# mount 10.99.2.6:/import/Solaris10 /tmp/Solaris10
Устанавливаем ОС с помощью инсталлятора (ключик -i). При этом будет пройден стандартный инсталляционный путь,
с ответами на все вопросы, итд:
# luupgrade -i -n s10_2 -s /tmp/Solaris10
Установка с JumpStart
Готовим файл profile для JumpStart
# cat profile install_type upgrade cluster SUNWCXall
Можно также добавить или удалить пакеты использовав ключевое слово package
package SUNWxwice add
Монтируем по NFS каталоги JumpStart и инсталляционный образ:
# mount 10.99.2.6:/import/Solaris10 /tmp/Solaris10 # mount 10.99.2.6:/import/jumpstart /tmp/jumpstart
Инсталлируем образ ОС заново (ключик -u) с инсталляционного образа:
# echo "auto_reg=disable" > /tmp/sysidcfg # luupgrade -u -n s10_2 -s /tmp/Solaris10 -j /tmp/jumpstart/v890test/profile -k /tmp/sysidcfg
Установить ОС из flar архива
Монтируем по NFS инсталляционный образ:
# mount 10.99.2.6:/import/Solaris10 /tmp/Solaris10
Устанавливаем ОС из flar-архива (ключик -f):
# luupgrade -f -n s10_2 -s /tmp/Solaris10 -a /flar/s10u8_sun4u.flar
Активируем новую среду загрузки
Активируем:
# luactivate s10_2 A Live Upgrade Sync operation will be performed on startup of boot environment 's10_2'. ... # lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- s10_1 yes yes no no - s10_2 yes no yes no -
Перегружаем (обязательно через init или shutdown):
# init 6
Ссылки в тему:
- Rapid Patching and Upgrading with Solaris Live Upgrade Software
- Solaris[TM] Live Upgrade Software: Patch Requirements
- Solaris 10 Installation Guide: Solaris Live Upgrade and Upgrade Planning
- man luupgrade
UPDATE: 20110414
18.05.2010 в 11:17
«Теперь маленький трюк – делаем зеркало из одной половинки.»
Это же можно сделать в команде lucreate.
18.05.2010 в 12:46
Ну да, эта фишка появилась в Solaris 9 Update 4 (08/03) lucreate (Example 9 Using Solaris Volume Manager Volumes). Ну как говорится в манах — » The lucreate command supports a limited subset of Solaris Volume Manager functions.»
Если обновлять с более ранней версии Solaris, то лучше воспользоваться вышеприведенным методом ;)
12.10.2010 в 10:26
Вот только после начала применения этого lucreate будет засада, если на rpool создать ещё какие-то файловые системы, а потом удалить, и переключится на другой lu. Я пока всей цепочки зависимостей не выстроил ( не было времени для экспериментов), что при каких-то обстоятельствах вернуться на какое-то из lu может не получиться. luactivate будет писать, что не может примонтировать какую-то фс.