Можно ли lvreduce после lvextend, не теряя раздел ext4 внутри него?
В неудачной попытке переместить мой корневой раздел с одного диска на другой я сделал следующее:
- добавлен новый диск
- разбил его на parted (часть 3 теперь почти полностью заполняет диск)
инициализировал физический том
$ pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created
расширена группа томов, чтобы включить этот новый физический диск
$ vgextend myvg /dev/sdb3 Volume group "myvg" successfully extended
расширил логический том (я думаю, что это то, где я собрал все: я думаю, что я должен был добавить материал pvmove к новому 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
1 ответ
Подводя итог, в настоящее время существует файловая система ext4 (root) внутри логического тома (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 &