ZFS Root Mirror

Данная статья является вольным переводом статьи + свои соображения и дополнения

Введение.

Вы поставили систему, но со временем у вас появился ещё один жётский диск и вы хотите сделать mirror посредством zpool: не просто зеркальный диск, а ещё и полноценный загрузочный (с grub’om на борту)

Тестовый стенд: Solaris Express 11/11.1, диски: c4t0d0s0 (старый), c4t1d0s0 (новый)

Solaris 11.1

Тут разработчики упростили до невозможности: просто выполните

#zpool attach -f rpool c4t0d0s0 c4t1d0s0

и получаете уже загрузочный второй диск автоматически. Это связано с тем, что в версии 11.1 перешли на EFI (GPT).

Если вдруг загрузчик не установился на второй диск, то вручную это можно сделать так:

— если пул на дисках (то есть в пуле диски представлены как c4t0d0, c4t1d0):

# bootadm install-bootloader c4t1d0s1

— если пул на слайсах (то есть в пуле диски представлены как c4t0d0s0, c4t1d0s0):

# bootadm install-bootloader c4t1d0s0

Solaris 11

1) Форматирование диска

Запускаем команду

# format

и на запрос, выбираем НОВЫЙ диск. Далее выбираем fdisk и убиваем все существующие разделы (если они есть). Если диск пустой оно предложит создать раздел Solaris. Создадим слайс, который полностью заполнит диск (100%), тип Solaris2 и не забудем сделать диск активным. После этого у нас должна получиться такая картина:

Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Active Solaris2 1 4094 4094 100

Далее нажимаем 6 (Save and exit)  и выходим quit.

2) Копирование таблицы разделов.

Теперь копируем таблицу разделов со старого на новый

# prtvtoc /dev/rdsk/c4t0d0s2 | fmthard -s - /dev/rdsk/c4t1d0s2

Обратите внимание, что в первой команде СТАРЫЙ диск, а во второй — НОВЫЙ. А так же на то, что имена дисков оканчиваются на s2.

Для самопроверки, можно посмотреть таблицу разделов каждого диска отдельно и «на глаз» сравнить:

# prtvtoc /dev/rdsk/c4t0d0s2
* /dev/rdsk/c4t0d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*   30400 cylinders
*   30398 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00      16065 488327805 488343869
       2      5    01          0 488376000 488375999
       8      1    01          0     16065     16064

3) Добавление диска в пул.

Теперь добавляем новый диск в пул:

#zpool attach -f rpool c4t0d0s0 c4t1d0s0

После этого идёт перестройка рейда. Дождитесь перестройки рейда и только тогда переходите к следующему пункту.

4) Установка загрузчика.

Для того, что бы можно было загрузится с диска, в его mbr’e должен быть записан код загрузчика. Выполним команду (для нового диска):

#installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c4t1d0s0

Обратите внимание на отсутствие в конце s2

5) Завершение.

После того, как пул перестроится, мы увидим такую картину:

# zpool status
  pool: rpool
 state: ONLINE
  scan: resilvered 21.1G in 0h3m with 0 errors on Fri Dec  2 15:17:55 2011
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror-0    ONLINE       0     0     0
            c4t0d0s0  ONLINE       0     0     0
            c4t1d0s0  ONLINE       0     0     0

errors: No known data errors

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *