Сервер в кармане, или просто о сложном!

главная - Статьи - Linux, FreeBSD

Замена диска LVM на новый

Теги: Linux Система

Есть: ОС 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/

Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?