Увеличение и уменьшение группы томов

Опубликовано:
Следующая возможность LVM — это возможность дополнять группу томов новыми физическими томами (например, если уже не хватает имеющихся) и выводить из группы не нужные больше физические тома (например, скорая поломка диска или замена оборудования). Лично я видел на форумах, что некоторые таким образом даже переносят работающую систему с одного диска на другой.
Давайте вернемся к нашему примеру. Допустим нам перестало хватать места в нашей группе томов и мы ее хотим дополнить новыми физическими томами. Делается это командой vgextend:
[root@localhost ~]# vgextend fileserver /dev/sdb6
Volume group "fileserver" successfully extended
[root@localhost ~]# vgdisplay fileserver
--- Volume group ---
VG Name fileserver
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size 1.99 GB
PE Size 4.00 MB
Total PE 510
Alloc PE / Size 75 / 300.00 MB
Free PE / Size 435 / 1.70 GB
VG UUID SZLgLK-b9V8-RiZV-gH5i-N0pA-2ppf-axLqfO
Как мы видим (выделено), пул дискового пространства, которым мы располагаем, увеличился. Теперь его тоже можно использовать для увеличения существующих логических томов данной группы и для создания новых.
Следующая операция, которую тоже можно делать с LVM — это уменьшение группы томов. Прежде чем вывести физический том из группы — его необходимо освободить от данных. Первое, что тут следует сделать в данном случае — это убедиться, что дискового пространства, которое останется в группе, хватит для размещения этих данных. Разработчики LVM пока не владеют методами размещения данных в астральном пространстве, но работа над этим ведется :). Итак, посмотреть это можно командой pvscan:
[root@localhost ~]# pvscan
PV /dev/sdb1 VG fileserver lvm2 [476.00 MB / 176.00 MB free]
PV /dev/sdb5 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb6 VG fileserver lvm2 [1.06 GB / 1.06 GB free]
Здесь мы видим, что реально сейчас используется только первый физический том — /dev/sdb1. И еще мы тут видим один интересный аспект работы LVM: если какой-то логический том можно разместить на отдельном физическом целиком — LVM выберет именно этот путь.
Кстати, под словом free команда pvscan подразумевает не свободное от данных пространство, а пространство не выделенное в логические тома.
Итак, для освобождения физических томов от данных и размещения их на других физических томах той же группы есть команда pvmove:
[root@localhost ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 100.0%
По умолчанию данная программа требует только одного аргумента — имени освобождаемого тома. Также ей можно указать (вторым аргументом) и имя тома, на который нужно поместить данные.
Вывод команды pvscan теперь выглядит вот так:

[root@localhost ~]# pvscan
PV /dev/sdb1 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb5 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb6 VG fileserver lvm2 [1.06 GB / 788.00 MB free]
Как мы видим, теперь наш логический том «уехал» на другой раздел диска. Причем этот том смонтирован и с ним в этот момент могут работать пользователи.
Убрать освобожденный том из группы можно командой vgreduce:

[root@localhost ~]# vgreduce fileserver /dev/sdb1
Removed "/dev/sdb1" from volume group "fileserver"
[root@localhost ~]# pvscan
PV /dev/sdb5 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb6 VG fileserver lvm2 [1.06 GB / 788.00 MB free]
PV /dev/sdb1 lvm2 [478.47 MB]
Теперь мы видим, что наш физический том /dev/sdb1 «осиротел» и больше не принадлежит ни одной группе.

Удаление логических томов

Логический том должен быть размонтирован перед удалением:

%# umount /dev/fileserver/nfs
lvremove -- do you really want to remove "/dev/fileserver/nfs"? [y/n]: y
lvremove -- doing automatic backup of volume group "vg00"
lvremove -- logical volume "/dev/fileserver/nfs" successfully removed

Удаление физических томов из группы томов

Убедитесь, что физический том не используется никакими логическими томами. Для этого используйте команду 'pvdisplay':

%# pvdisplay /dev/sdd1
--- Physical volume ---
  PV Name               /dev/sdd1
  VG Name               nfs
  PV Size               2,73 TiB / not usable 3,00 MiB
  Allocatable           yes
  PE Size               4,00 MiB
  Total PE              715396
  Free PE               715396
  Allocated PE          0
  PV UUID               mye4S4-dMJq-VS7S-bcYR-ymmn-IeNd-QtCQWD

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

После этого можно использовать 'vgreduce' для удаления физических томов:

%# vgreduce nfs /dev/sdd1

Понравилась статья, расскажи о ней друзьям, нажми кнопку!