четверг, 8 апреля 2010 г.

Резервирование и восстановление ZFS V

 Восстановление root pool

Процедура  восстановления  root  pool   в  случае, например, полного  отказа  системного диска требует несколько большего внимания администратора и должна выполняться вручную. Данная процедура разработана на основе алгоритма восстановления Solaris Internals.

При  замене  поврежденного  системного диска выполняется ряд обязательных  процедур,  связанных  с заменой дисков. Вместе с  тем, при наличии удаленной резервной копии корневого пула процедура   восстановления   позволяет  сравнительно  быстро привести систему в загружаемое состояние.

Прежде  всего,  для восстановления корневого пула необходима его  резервная копия - в виде архива (компрессированного или нет)  или  сохраненная  в виде файловой системы на резервном сервере.

Последующие действия описаны в виде алгоритма ниже.
1. Необходимо загрузить восстанавливаемую систему с внешнего носителя - DVD, CD, USB или сети:

ok boot cdrom

или

ok boot net

2.   На  резервном  сервере,  содержащем  бэкап  (архив  или файловую   систему)  необходимо  сконфигурировать  удаленный доступ  для  R-утилит с восстанавливаемой машины и запустить
соответствующие сервисы:

backup_server# netservices open
backup_server# vi /.rhosts
backup_server# vi /etc/hosts_equiv

При  наличии  сконфигурированного  IPF  необходимо разрешить доступ на сервер восстановления c восстанавливаемой машины.

3.  При  физическом  отказе  и замене системного диска новый диск  необходимо  пометить  и разбить на слайсы. Метка диска должна иметь тип SMI.

4. На восстанавливаемой машине пересоздается корневой пул на новом диске, например:


# zpool create -f -o failmode=continue -R /a \
  -m legacy rpool c0t0d0s0

5. На новый диск устанавливается загрузчик:

# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk \
/dev/rdsk/c0t0d0s0
или

# installgrub /boot/grub/stage1 /boot/grub/stage2 \

/dev/rdsk/c0t0d0s0

6.    Далее    выполняется   прием   рекурсивного   снапшота и  восстановление  содержимого пула с удаленного резервного сервера:

# rsh backup_server zfs send backup_data/rpool|zfs receive -Fdv rpool

либо из компрессированного архива, находящегося на удаленном резервном сервере:

# rsh backup_server gzip -c -d pegasus.rpool.0.zfs.gz| zfs receive -Fdv rpool

Можно    также    выполнить    восстановление    root   pool непосредственно  с  локальной  архивной  копии, находящейся, например,  на  USB-устройстве  (неархивированный  стрим, для
компрессированного архива требуется предварительно выполнить декомпрессию  ввиду возможной недоступности gzip  в miniroot загрузочного дистрибутива):

# cd /usbmount
# cat pegasus.rpool.0.zfs|zfs receive -dFv rpool

Операция  восстановления  содержимого пула может потребовать некоторого времени.

7.  Необходимо  убедиться,  что  корневой  пул  был  успешно восстановлен в полном объеме командой zfs list.

8.  Необходимо  установить  свойство  bootfs  корневого пула в правильное (оригинальное) значение:

# zpool set bootfs=rpool/ROOT/s10x_u8wos_08a rpool

Пересоздание   dump  и  swap  разделов  не  требуется,  если резервная   копия  корневого  пула  создавалась  при  помощи zfsbackup.   Рекурсивный  снапшот  корневого  пула  содержит данные разделы и они будут восстановлены автоматически.

9. Перезагрузить систему с восстановленного пула:

# init 6

Замечание:  Вместо  пересоздания  пула  и его восстановления можно   также   использовать   (начиная   с   версии  10/09) функциональность    zflash    и   выполнить   восстановление средствами  JumpStart  flash  install с некомпрессированного стрима (архива), созданного утилитой zfsbackup.