В неудачной попытке переместить корневой раздел с одного диска на другой я сделал следующее:
инициализировал физический том
$ pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
расширил группу томов, чтобы включить этот новый физический диск
$ vgextend myvg /dev/sdb3
Volume group "myvg" successfully extended
расширил логический том (я думаю, что здесь я скомбинировал: я думаю, что мне следовало перенести материал на новый pv в этой группе - может кто-нибудь подтвердить?)
$ lvextend /dev/mapper/myvg-root /dev/sdb3
Теперь я хотел бы отменить lvextend, а затем продолжить исходный план по перемещению содержимого старого физического тома на новый физический том. Могу ли я уменьшить логический том (я еще не касался раздела ext4, который находится в / dev / mapper / myvg-root, с помощью чего-то вроде resizefs), не опасаясь повредить файловую систему ext4? Если да, то как мне сказать, чтобы он уменьшился на нужную величину?
$ lvreduce --by-exactly-the-amount-occupied-by-PV /ev/sdb3 /dev/mapper/myvg-root
Подводя итог, в настоящее время существует файловая система ext4 (корень) внутри логического тома (myvg-root), который находится в группе томов (myvg), состоящей из двух физических томов (один из которых является недавно добавленным sdb3).
Вы можете проверить сопоставление логических экстентов с физическими с помощью lvdisplay
$ lvdisplay -m
--- Logical volume ---
LV Name /dev/myvg/root
VG Name pfeifer
LV UUID 2LeFq8-zz3y-Y62m-931D-mD3m-XmK1-6Zp3Ir
LV Write Access read/write
LV Status available
# open 1
LV Size 3.62 TiB
Current LE 947851
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 251:0
--- Segments ---
Logical extent 0 to 470980:
Type linear
Physical volume /dev/sda3
Physical extents 0 to 470980
Logical extent 470981 to 947850:
Type linear
Physical volume /dev/sdb3
Physical extents 0 to 476869
Вы можете просто уменьшить размер этого логического тома с помощью lvreduce
$ lvreduce -l -476870 /dev/myvg/root
WARNING: Reducing active and open logical volume to 1.80 TiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce root? [y/n]: y
Reducing logical volume root to 1.80 TiB
Logical volume root successfully resized
Обратите внимание на то, как количество логических экстентов на sdb3, которое нужно уменьшить, составляет 476869 + 1 (отсчет начинается с 0!). Вот и все. Теперь быстрая проверка, похоже, подтверждает первоначальный мировой порядок:
--- Segments ---
Logical extent 0 to 470980:
Type linear
Physical volume /dev/sda3
Physical extents 0 to 470980
Теперь медленная и утомительная команда pvmove должна разрешить перемещение данных:
nohup pvmove -n /dev/myvg/root /dev/sda3 /dev/sdb3 &