Я знаю, что можно добавить пространство на конец файловой системы, но что относительно в середину? Например, если FS находится на логическом томе, который охватывает несколько дисков.
[logical-volume]
| | |
[sda][sdb][sdc]
Как то, если ранее неиспользуемое место становится доступным на диске sdb?
P.S. Я предполагаю, что это было бы обработано самим LVM, а не файловой системой, если это даже возможно.
Найденный им.
Короткая версия: использовать pvmove
. Долгая версия:
Если ситуация, как мог бы быть возвращен lvdisplay --maps
следующие:
--- Logical volume ---
LV Path /dev/main/data
Current LE 300
Segments 3
(redacted)
--- Segments ---
Logical extent 0 to 99:
Physical volume /dev/sda1
Physical extents 0 to 99
Logical extent 100 to 199:
Physical volume /dev/sdb1
Physical extents 0 to 99
Logical extent 200 to 299:
Physical volume /dev/sdc1
Physical extents 0 to 99
Затем как Вы видите, логический том распространен через 3 диска и занимает 100 степеней на каждом. 'Степени' являются версией LVM секторов; они - самая маленькая единица, в которой это обычно касается.
Но если мы смотрим на физические тома внизу:
pvdisplay
--- Physical volume ---
PV Name /dev/sda1
Total PE 100
Free PE 0
Allocated PE 100
--- Physical volume ---
PV Name /dev/sdb1
Total PE 300
Free PE 200
Allocated PE 100
--- Physical volume ---
PV Name /dev/sdc1
Total PE 100
Free PE 0
Allocated PE 100
... мы видим что раздел второго диска (/dev/sdb1
) имеет довольно большое дополнительное пространство.
Теперь, мы могли просто добавить, что непосредственно к логическому тому, и в то время как это будет, вероятно, достаточно для большинства ситуаций, это было бы оставлять объем в излишне фрагментированном состоянии. Конец логического тома был бы на среднем диске. Это то, где pvmove
команда входит.
pvmove
позволяет нам произвольно перестраивать конфигурацию логического тома, без файловой системы, содержавшей в том, чтобы быть знающим об этом.
Предупреждение: pvmove
может вызвать потерю данных. Идеально, скопируйте файловую систему перед продолжением.
Удостоверьтесь, что логический том размонтирован перед продолжением.
базовый синтаксис: pvmove SourcePhysicalVolume:PE-PE DestinationPhysicalVolume:PE-PE
Первая команда: Повторно прикрепите степени от sdc1
на sdb1
, таким образом создание всего непрерывного:
pvmove /dev/sdc1:0-99 /dev/sdb1:100-199
Впоследствии lvdisplay --maps
дает:
--- Logical volume ---
LV Path /dev/main/data
Current LE 300
Segments 2
(redacted)
--- Segments ---
Logical extent 0 to 99:
Physical volume /dev/sda1
Physical extents 0 to 99
Logical extent 100 to 299:
Physical volume /dev/sdb1
Physical extents 0 to 199
Теперь, это - просто вопрос расширения логического тома через остающееся пространство на /dev/sdb1
и теперь совершенно пустой /dev/sdc1
. Это намного более просто. Следующая команда говорит lvm разворачивать наш логический том через все остающиеся свободные степени на тех разделах.
lvextend -l +100%free /dev/main/data /dev/sdb1 /dev/sdc1
Впоследствии логический том был бы похож так:
--- Logical volume ---
LV Path /dev/main/data
Current LE 500
Segments 2
(redacted)
--- Segments ---
Logical extent 0 to 99:
Physical volume /dev/sda1
Physical extents 0 to 99
Logical extent 100 to 399:
Physical volume /dev/sdb1
Physical extents 0 to 299
Logical extent 400 to 499:
Physical volume /dev/sdc1
Physical extents 0 to 99
Который является красивым, и максимально бесшовным.
Теперь мы можем расширить файловую систему в новое пространство.
resize2fs /dev/main/data
Заключение: pvmove
команда чрезвычайно мощна и позволяет использовать в своих интересах всю абстракцию lvm предложения. Это позволяет Вам произвольно перестраивать физическое пространство, на котором находится логический том.