Руководство FreeBSD
Пред. | Глава 18. GEOM: Модульная инфраструктура преобразования дисковых запросов | След.

# 18.4. RAID1 - Зеркалирование (Mirroring)

Зеркалирование (Mirroring) -- технология, применяемая как в корпоративной среде, так и на домашних компьютерах. Она позволяет создавать резервные копии ''на лету''. Зеркалирование, по сути, означает, что диск A является копией диска B. Или, возможно, диск C+D является копией диска A+B. Вне зависимости от конфигурации, основной аспект -- дублирование информации. Позже, эта информация может быть с легкостью восстановлена или сохранена как резервная копия без остановки системы, или даже физически помещена в хранилище данных.

Перед началом, убедитесь, что у вас есть два физических диска равной емкости. Далее в этом примере подразумевается, что это диски прямого доступа (direct access, da(4)) с интерфейсом SCSI.

Начните с установки FreeBSD на первый диск с двумя разделами. Один из этих разделов должен быть раздел swap, равный двум размерам RAM, а все остальное место отведено под корневую файловую систему (`/`). Возможно также иметь отдельные разделы и для остальных точек монтирования, но так как это в несколько раз увеличивает количество манипуляций с bsdlabel(8) и fdisk(8), то в данной главе мы остановимся на более простом варианте.

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

Создайте устройство `/dev/mirror/gm` и свяжите его с устройством `/dev/da1`:

    # gmirror label -vnb round-robin gm0 /dev/da1

В ответ вы должны получить сообщение:

    Metadata value stored on /dev/da1.
    Done.

Инициализируйте GEOM; эта команда загрузит модуль ядра `/boot/kernel/geom_mirror.ko`:

    # gmirror load

> Замечание: Эта команда создаст устройства `gm0`, `gm0s1`, `gm0s1a` и `gm0s1c` в каталоге `/dev/mirror`.

Установите стандартную разметку `fdisk` и загрузчик на новое устройство `gm0`:

    # fdisk -vBI /dev/mirror/gm0

Теперь установите стандартную разметку `bsdlabel`:

    # bsdlabel -wB /dev/mirror/gm0s1

> Замечание: Если у вас несколько слайсов или разделов, параметры двух предыдущих команд должны быть другими. Среди них должны быть указаны размеры слайсов и разделов.

Используйте newfs(8), чтобы создать файловую систему на устройстве `gm0s1a`:

    # newfs -U /dev/mirror/gm0s1a

Это заставит систему проассоциировать устройства, и это хорошо. Проверьте, не было ли сообщений об ошибках, и смонтируйте устройство в каталог `/mnt`:

    # mount /dev/mirror/gm0s1a /mnt

Теперь переместите все данные с загрузочного диска на только что созданную файловую систему. Для этого используйте dump(8) и restore(8); в некоторых случаях можно использовать dd(1).

    # dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)

Проделайте это со всеми файловыми системами. Просто подставьте нужную файловую систему в предыдущую команду.

Теперь отредактируйте `/mnt/etc/fstab` и закомментируйте swap файл [1]. Измените информацию о других файловых системах, размещенных на диске, как показано в примере:

    # Device                Mountpoint      FStype  Options         Dump    Pass#
    #/dev/da0s2b             none            swap    sw              0       0
    /dev/mirror/gm0s1a       /               ufs     rw              1       1

Создайте файл `boot.config` на обоих разделах: созданном и существующем. С помощью этого файла BIOS сможет загрузить правильный диск:

    # echo "1:da(1,a)/boot/loader" > /boot.config

    # echo "1:da(1,a)/boot/loader" > /mnt/boot.config

> Замечание: Мы поместили этот файл в оба корневых раздела на тот случай, если по каким-либо причинам система не сможет загрузиться с нового раздела. В таком случае загрузка со старого все еще будет возможна.

Включите загрузку модуля `geom_mirror.ko` при старте системы, выполнив следующую команду:

    # echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf

Перезагрузитесь:

    # shutdown -r now

Если все было сделано правильно, система загрузится с `gm0s1a`. Если же что-то пойдёт не так, обратитесь к секции ''Решение проблем''.

Теперь добавьте диск `da0` к устройству `gm0`:

    # gmirror configure -a gm0
    # gmirror insert gm0 /dev/da0

Ключ `-a` даст утилите команду gmirror(8) использовать автоматическую синхронизацию, то есть автоматически дублировать запись на диски. Страница справки разъясняет, как перестраивать и заменять диски, Будьте внимательны, вместо `gm0` там использовано обозначение `data`.

## 18.4.1. Решение проблем

### 18.4.1.1. Система не загружается

Если система прекращает загрузку и выдает строку:

    ffs_mountroot: can't find rootvp
    Root mount failed: 6
    mountroot>

Перезагрузите компьютер кнопкой питания или кнопкой ''Reset''. В загрузочном меню выберите опцию (6). Это приведёт к тому, что система выдаст приглашение loader(8). Загрузите модуль ядра вручную:

    OK? load geom_mirror
    OK? boot

Если это сработало, модуль ядра по какой-либо причине не загрузился правильно. Добавьте строку

    options    GEOM_MIRROR

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

### Примечания

[1] | Следует заметить, что после комментирования записи о разделе подкачки в файле `fstab` вам, скорее всего, потребуется разрешить подкачку каким-либо другим способом. Обратитесь к Разд. 11.14 за дополнительной информацией.

Пред. | Начало | След.
RAID0 - Создание дисковой последовательности (Striping) | Уровень выше | Сетевые устройства GEOM Gate

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.