Назад | Перейти на главную страницу

Перенос 2-дискового LVM в RAID1

У меня есть машина с двумя физическими идентичными жесткими дисками, которые в настоящее время настроены с LVM как один логический том. Первоначальная идея заключалась в том, чтобы использовать как можно больше «непрерывного» пространства для хранения большого количества очень больших данных. Прошло время, и текущее использование машины изменилось, поэтому теперь я предпочел бы иметь два диска в RAID1, как для дополнительной безопасности (да, я все равно делаю резервные копии), так и потому, что мне действительно не нужно так много пространство больше. Основная проблема заключается в том, действительно ли на втором диске есть данные, но я не мог найти никакого способа узнать, сколько данных хранится на физический объем.

Я пытаюсь понять, как лучше всего это сделать и какие функции предлагает мне LVM для этого. Придется ли мне переустанавливать с нуля, или есть ли способ «разделить» LVM и создать массив RAID1, сохраняя данные, по крайней мере, на первом диске (предположим, что на втором диске нет данных)?

Большое спасибо.

LVM поддерживает несколько простых конфигураций RAID, включая зеркалирование (RAID1).

Лучшим вариантом будет уменьшение LV до размера, который поместится на одном диске (используя resize2fs - предполагая ext3 / 4 - и lvresize), перенесите VG в один PV (pvmove), а затем преобразовать LV в зеркало (lvconvert --mirror).

В качестве альтернативы, вместо преобразования LV в зеркало, вы можете удалить второй диск из VG (lvremove), переформатируйте его в массив mdadm RAID1 с одним элементом, скопируйте туда свои данные, затем удалите оставшийся LVM VG и добавьте его в массив в качестве зеркала.

Это должно быть само собой разумеющимся, но я все равно скажу: убедитесь, что у вас есть текущая резервная копия, прежде чем пробовать любой из этих подходов. Есть много способов запутать все и потерять данные. Если возможно, настройте рабочий массив и протестируйте его (например, с помощью пары флэш-накопителей USB!), Прежде чем вносить какие-либо изменения в вашу действующую систему.

В зависимости от того, насколько актуален ваш дистрибутив / ядро ​​и инструменты, есть несколько вариантов.

Сначала вы сможете определить, сколько места используется на диске, с помощью следующей команды.

lvs -o +devices

или

pvs -o+pv_used

Тогда вам, возможно, придется сжать файловую систему перед сжатием блочного устройства, так как полезное пространство будет меньше, чем раньше.

Обратитесь к странице руководства lvconvert. Должна быть возможность преобразовать чередующийся / линейный том в RAID1. Вы также найдете различные примеры и хорошую документацию, чтобы узнать, можете ли вы конвертировать.

Если lvconvert не работает для вас, вы можете использовать pvmove и vgreduce чтобы освободить один диск. Вы также должны предварительно сжать файловую систему.
Затем вы можете запустить RAID1 всего с одним диском.

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing

Затем сделайте свою файловую систему на / dev / md0, смонтируйте ее и скопируйте данные. Затем отключите LVM и добавьте второй диск в RAID1. Разделите или очистите LVM перед этим.

mdadm --add /dev/md0 /dev/sdb1

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