September 26th, 2013

404

linux-акробатика

Дано:

md0 - raid1 из двух 1.5Тб дисков
md1 - raid1 из двух 2Тб дисков.

На них LVM, на нём xfs.

Добавляем два 4Тб диска.

Задача: убрать 2 1.5Тб диска из системы, освободить 2Тб диска под другое использование, заюзать оставшееся место. Без перезагрузки и отмонтирования дисков.

Решение:

Выдернуть один диск из md0, заменить на 4Тб. Добавить в рейд, дождаться ресинка.
Выдернуть второй 1.5Тб диск из md0, добавить в рейд, дождаться ресинка.

Сказать mdadm -G /dev/md0 -z max --assume-clean (резайзнуть md0 до 2х4Тб)
Сказать pvmove /dev/md1 (lvm сам догадается, что на md0, т.к. в vg только md0 и md1) (как раз этот процесс происходит, пока я пишу).

Дальше всё просто - pvremove /dev/md1, lvresize, xfsgrow.

(на самом деле перезагружаться пришлось, т.к. система крайне нервно реагирует на появление диска на шине питания и просаживает питание для соседей, так что диски менялись не в хотплаге, но суть метода от этого не меняется).

ЗЫ Если что, речь про персональный компьютер дома.

ЗЗЫ Думал таки сделать 6ой рейд, но выяснилось, что весь raid1 влазит на два 4-терабайтных диска. Возможно стоит текущий LVM'ный jbod для несортированного ongoing'а сконвертировать в 5ый рейд. Вот это будет задачка покруче - как из LVM JBOD сделать linux raid 5.