Можно ли 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 &
Другие вопросы по тегам