Назад | Перейти на главную страницу

Команды LVM - копирование LV между двумя дисками

id хотел бы просто скопировать LV с одного диска на другой, но, как бы просто это ни звучало, для меня это становится действительно абстрактным после долгих поисков в Google, чтобы найти правильный процесс. Так что я думаю, что мне нужен толчок в правильном направлении.

-Как перенести lv.root на md10, у меня есть подсказки, что мне нужно расширить vg.system на md10 и md20, а затем скопировать lv. Для команд vg * и lv * существует множество возможностей, и я не уверен, какая из них лучше всего подходит для этой цели.

Ситуация такая:

NAME                     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                        8:0    0 119.2G  0 disk  
|-sda1                     8:1    0     9M  0 part  
`-sda2                     8:2    0 119.2G  0 part  
  `-md0                    9:0    0 119.2G  0 raid1 
    |-vg.system-lv.root  253:0    0    30G  0 lvm   /
    `-vg.system-lv.cache 253:1    0    80G  0 lvm   /mnt/cdn-cache
sdb                        8:16   0 119.2G  0 disk  
|-sdb1                     8:17   0     9M  0 part  
|-sdb2                     8:18   0  29.3G  0 part  
| `-md10                   9:10   0  29.3G  0 raid1 
`-sdb3                     8:19   0    90G  0 part  
  `-md20                   9:20   0  89.9G  0 raid0 

ожидаемый результат должен выглядеть примерно так:

NAME                     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                        8:0    0 119.2G  0 disk  
|-sda1                     8:1    0     9M  0 part  
`-sda2                     8:2    0 119.2G  0 part  
  `-md0                    9:0    0 119.2G  0 raid1 
    |-vg.system-lv.root  253:0    0    30G  0 lvm   /
    `-vg.system-lv.cache 253:1    0    80G  0 lvm   /mnt/cdn-cache
sdb                        8:16   0 119.2G  0 disk  
|-sdb1                     8:17   0     9M  0 part  
|-sdb2                     8:18   0  29.3G  0 part  
| `-md10                   9:10   0  29.3G  0 raid1
       vg.system-lv.root   
`-sdb3                     8:19   0    90G  0 part  
  `-md20                   9:20   0  89.9G  0 raid0 
     -vg.system-lv.cache   

Я думаю, цель не так важна, но на всякий случай - позже я отформатирую sda2 и разделю его так же, как sdb, и объединю диск в подготовленные пулы рейдов, ожидая более высокой производительности от раздела кеша.

РЕДАКТИРОВАТЬ: Спасибо, ребята, я понял, что размер немного отличается, поэтому я скорректировал его, теперь его точное совпадение, странно, что размер отличается -

NAME                     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                        8:0    0 119.2G  0 disk  
|-sda1                     8:1    0     9M  0 part  
`-sda2                     8:2    0 119.2G  0 part  
  `-md0                    9:0    0 119.2G  0 raid1 
    |-vg.system-lv.root  253:0    0    30G  0 lvm   /
    `-vg.system-lv.cache 253:1    0    80G  0 lvm   /mnt/cdn-cache
sdb                        8:16   0 119.2G  0 disk  
|-sdb1                     8:17   0    10M  0 part  
|-sdb2                     8:18   0    30G  0 part  
| `-md10                   9:10   0    30G  0 raid1 
`-sdb3                     8:19   0  80.1G  0 part  
  `-md20                   9:20   0    80G  0 raid0 

  PV Name               /dev/md0
  VG Name               vg.system
  PV Size               119.17 GiB / not usable 1.31 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              30507
  Free PE               2347
  Allocated PE          28160
  PV UUID               97qFfS-qcNo-Wp8W-QfWj-Ilqx-e7Jw-uMLXX7

  --- Physical Segments ---
  Physical extent 0 to 7679:
    Logical volume  /dev/vg.system/lv.root
    Logical extents 0 to 7679
  Physical extent 7680 to 28159:
    Logical volume  /dev/vg.system/lv.cache
    Logical extents 0 to 20479
  Physical extent 28160 to 30506:
    FREE

  --- Physical volume ---
  PV Name               /dev/md10
  VG Name               vg.system
  PV Size               30.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              7679
  Free PE               7679
  Allocated PE          0
  PV UUID               gLYsRF-kNlb-F7c9-9BS5-Xi05-pfCY-z093pb

  --- Physical Segments ---
  Physical extent 0 to 7678:
    FREE

  --- Physical volume ---
  PV Name               /dev/md20
  VG Name               vg.system
  PV Size               80.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              20479
  Free PE               20479
  Allocated PE          0
  PV UUID               vYljv8-tNc3-9jdE-p5rk-eI3y-8FVs-l1bCSF

  --- Physical Segments ---
  Physical extent 0 to 20478:

Странный. Мне удалось использовать

pvmove -v -n lv.cache /dev/md20 /dev/md0

раньше, а затем я вернул его обратно в md0, потому что после этого я использовал gparted для изменения размера дисков, чтобы общее количество PE совпадало, и не происходило переполнения, и продолжалось.

У меня сейчас две проблемы. Вышеуказанная команда больше не работает

pvmove -v -n lv.cache /dev/md20 /dev/md0
    Cluster mirror log daemon is not running.
    Wiping internal VG cache
    Wiping cache of LVM-capable devices
    Archiving volume group "vg.system" metadata (seqno 28).
    Creating logical volume pvmove0
  No data to move for vg.system

А также меня немного беспокоит, что небольшое несоответствие в размерах ergo 80G на 80,1G создаст проблемы при сборке в пул RAID позже: / Не уверен, почему размер отличается, а TOTAL PE точно такой же.

Я думаю, вам может быть лучше создать новые тома и просто скопировать данные, чем пытаться сделать следующее:

Шаги примерно (и, конечно, не проверены, поэтому начните с проверки резервных копий ваших данных):

  • преобразовать новые блочные устройства в хранилище, подходящее для LVM

    pvcreate /dev/md10
    pvcreate /dev/md20
    
  • добавить новое хранилище в существующую группу томов с именем "vg.system"

    vgextend vg.system /dev/md10
    vgextend vg.system /dev/md20
    
  • Обычно вы бы сейчас бежали pvmove /dev/md01 и vgreduce vg.system /dev/md01 чтобы переместить все данные из / dev / md01, но хотите контролировать, какие данные lvm куда идут, поэтому:

  • Я думаю, вы можете изменить существующие логические тома, чтобы использовать определенный физический том для внутреннего хранилища с lvconvert:

    lvconvert --replace /dev/md01 vg.system/lv.root  /dev/md10
    lvconvert --replace /dev/md01 vg.system/lv.cache /dev/md20
    
  • подтвердить прогресс

    lvs -a -o name,copy_percent,devices 
    
  • Наконец, удалите блочное устройство md01 из группы томов lv, и все ваши данные должны быть перенесены.

    vgreduce vg.system /dev/md01