главная - Статьи - Linux, FreeBSD
Замена диска LVM на новый
Есть: ОС Linux, один диск (/dev/sdc) стал вызывать подозрения по smartctl. В примере это диск под какие-то данные (точка монтирования /data, диск /dev/sdc, lvm /dev/data-vg/data-lv). Его и будем заменять.
Уточнить роль диска /dev/sdc в системе можно кучей способов:
# fdisk -l (или parted -l)
# cat /etc/fstab
# mount
# pvscan
# pvdisplay
# lvscan
Главное, убедиться, что диск /dev/sdc
не из состава raid (тогда замена диска могла бы идти по другому сценарию) и не обременен прочими особенностями. Операции с дисками откатить бывает почти невозможно, поэтому точно определите "жертву" ваших дальнейших действий. Попутно уточнили (с помощью pvscan
), что диск /dev/sdc
принадлежит группе томов data-vg
.
Подключаем новый диск (пусть это будет /dev/sdd
) равной или большей емкости чем заменяемый и проверяем, появился ли он в системе (fdisk -l
).
Инициализируем LVM на новом диске:
# pvcreate /dev/sdd
Добавляем его в группу томов data-vg
:
# vgextend data-vg /dev/sdd
Теперь в группе томов data-vg
есть два диска - старый и новый (крайне желательно, чтобы не меньший по объему, чем старый):
# vgscan
Даем команду освободить старый диск, переместив данные с него на доступное место в рамках его группы томов. Как будто несколько емкостей соединены общим шлангом - вылитая вода из одной бутылки "растечется" по остальным. Главное, чтобы хватило свободных емкостей. В нашем случае бутылки две: /dev/sdc
и /dev/sdd
. Опустошая /dev/sdc
, мы автоматом перекачаем все в /dev/sdd
:
# pvmove /dev/sdc
Из man pvmove:
pvmove разные_опции [-v|--verbose] [-i|--interval Seconds] [source] [destination]
-v: расширенная информация;
-i 2: информация о прогрессе в процентах через каждые две секунды.
Если бы в группе data-vg было бы больше двух дисков, то, возможно, логичнее было бы указать так:
# pvmove /dev/sdc /dev/sdd
После успешного выполнения pvmove удаляем старый диск из группы:
# vgreduce data-vg /dev/sdc
Если новый диск больше, чем старый (тот, который на свалку истории), то есть возможность расширить логическую группу до размеров нового диска.
Смотрим логические группы:
# lvscan
Выбираем ту, которая на /dev/data-vg/
(например, /dev/data-vg/data-lv
).
Расширяем логический том на все свободное новое место.
# lvextend -l +100%FREE /dev/data-vg/data-lv
Расширяем ФС штатными средствами.
# resize2fs /dev/data-vg/data-lv
Отключаем физически старый диск.
Вдохновители:
1. http://xgu.ru/wiki/LVM
2. http://artw.ru/blog/archives/1376/
Авторизуйтесь для добавления комментариев!