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

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

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

Дано: сервер под управлением 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 который позволит без множества действий по сборке/разборке массива произвести замену дисков на бОльшие размеры.

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

Другие публикации по теме:

Замена sendmail на ssmtp в FreeBSD Цикл статей по созданию идеального сервера для хостинга моих сайтов ;-) зреет довольно давно.Помнится, когда я решился на переезд с виртуального х...
Откатываем порты в FreeBSD Временно (до тех пор, пока существует проблема и пока не обновят порты) на FirstVDS работает такой костыль:1. заходим на сервер по ssh под пользовател...

Поделиться информацией с друзьями!

Чтобы не пропустить обновления, подпишись на RSS или почтовую рассылку (свой выбор сделали уже 128 человек!)

Оставить комментарий