yandex

Замена дисков на большего объема в gmirror FreeBSD

Author:

Давно не писал ничего околотехнического. Хватает писанины по работе. Поэтому больше как-то получается обзоров о прочитанном/просмотренном в виде развлечения.

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

Дано: сервер под управлением FreeBSD 9 с двумя террабайтными дисками, собранными в зеркальный рейд-массив.

Требуется: заменить оба диска 1ТБ на 2ТБ с целью увеличения дискового пространства.

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

1. Разбираем зеркальный рейд-массив и загружаемся с одного из дисков

В файле /boot/loader.conf комментируем строку:

geom_mirror_load=”YES”

В файле /etc/fstab меняем что-то типа такого:

/dev/mirror/root  / ufs rw 1 1

/dev/mirror/swap  none swap sw 0 0

на

/dev/ada0p3  / ufs rw 1 1

/dev/ada0p1  none swap sw 0 0

Тем самым указывая работу системы не с зеркала, а конкретного диска: ada0

Таким образом, второй диск можно вынуть и заменить на диск бОльшего объема.

2. Просле замены диска загружаемся в режим восстановления (либо с любого live-cd)

3. Делаем копию разметки с рабочего диска на новый

gpart show ada0 | gpart restore -F ada1

4. После чего увеличиваем размер основного раздела до максимально возможного

gpart resize -s 1816M -i 3 ada1

5. Форматируем раздел

newfs /dev/ada1p3

6. Монтируем рабочий раздел и пустой раздел с общего диска.

mkdir /mnt/ada0

mount /dev/ada0p3 /mnt/ada0

mkdir /mnt/ada1

mount /dev/ada1p3 /mnt/ada1

7. Переносим всю информацию с помощью rsync

rsync /mnt/ada0 /mnt/ada1

8. После окончания процедуры переноса файлов, прописываем загрузчик на новый диск

gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1

9. На диске ada1 (который уже 2ТБ) производим корректировку конфигурационных файлов

/etc/fstab и /boot/loader.conf (возвращаем параметры работы с зеркальным массивом.

и создаем устройства на диске ada1

gmirror label -vb round-robin boot /dev/ada1p1

gmirror label -vb round-robin swap /dev/ada1p2

 

gmirror label -vb round-robin root /dev/ada1p3

10. Выключаем сервер, меняем второй диск и загружаемся

Теперь на сервере оба диска по 2ТБ, но еще нет полноценного зеркала. Для этого производим процедуру сборки зеркального рейд-массива путем добавления второго диска

gmirror insert boot /dev/ada0p1

gmirror insert swap /dev/ada0p2

gmirror insert root /dev/ada0p3

Следует быть максимально внимательным и не перепутать диски при выполнении вышеуказанных команд.

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

 

Самое интересное, что совсем скоро, судя по блогу русскоязычного разработчика gpart и gmirror Андрея Елсюкова http://bu7cher.blogspot.ru/2013/11/geommirror.html в FreeBSD 11 для gmirror будет добавлен параметр resize который позволит без множества действий по сборке/разборке массива произвести замену дисков на бОльшие размеры.

Да, если окажется, что я выполнил кучу лишних действий, и все можно сделать куда более лаконичней и изящней, я бы хотел на это посмотреть у себя в комментариях 😉

One thought on “Замена дисков на большего объема в gmirror FreeBSD”

  1. Добрый день.
    Я совсем новичек во Free, прошу помогите пожалуйста разобраться как правильно сделать чтобы не убить рабочий сервер.

    Стоит Фри 7.1, на ней файловый сервер. Запущен софтовый Реид 1 gmirror. Команды resize нет еще в этой версии. Диски в рейде по 2Тб заполнены. Купил 2 по 4Тб, заменил физически по очереди, стали перезаписались но размер зеркала остался тот же 1,8 ТБ.
    если можно опишите детально по командно как сделать чтобы расширить зеркало до физических дисков в 4 ТБ?
    Как правильно разрушить/остановить реид и заново его создать чтобы не потерять информацию?

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

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