Увеличение и уменьшение группы томов
Следующая возможность 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