Thin LV를 다른 LVM 풀로 이동할 수 있습니까?

Thin LV를 다른 LVM 풀로 이동할 수 있습니까?

동일한 볼륨 그룹에 2개의 씬 풀(vg/pool1) 및 (vg/pool2)이 있고 첫 번째 풀에 LV가 있는 경우 LV를 두 번째 풀로 이동하는 LVM 명령이 있습니까? pvmove가 이것을 할 것인가?

또는 서로 다른 두 PV에 분산된 씬 LVM 풀이 있는 경우 pvmove 명령을 사용하여 LV X의 모든 범위를 PV Y에서 Z로 이동하도록 쉽게 지정할 수 있습니까?

답변1

나는 성공하지 못한 채 이 작업을 수행하기 위해 pvmove를 사용해 보았습니다. pvmove 명령으로 이 작업을 수행할 수 있는 소스 코드 수정에 대한 참조가 Google에 있지만 내 CentOS 7 시스템에서는 씬 풀에 대해 불평하므로 이 수정이 어떤 버전인지 알 수 없습니다. 그렇다면) 그것이 작동하는지 모르겠습니다.

즉, LV를 한 풀에서 다른 풀로 이동하는 것은 그리 어렵지 않습니다. 실제로 다른 VG에 있는 두 풀 사이에 풀을 옮겼습니다(어쨌든 상관없습니다). 이것이 내가 한 일입니다:

LV my_logic_volume, VG first_vg 및 second_vg(귀하의 경우에도 동일함)를 호출하고 my_logic_volume2를 대상으로 합니다. 내 인스턴스에서 LV의 이름을 변경했습니다. 서로 다른 씬 풀에 있더라도 동일한 VG에서 동일한 이름을 가진 두 개의 lv를 생성할 수 있는지 잘 모르겠습니다. 시도해 볼 수 있습니다. 어쨌든, 이동한 후에는 언제든지 lvrename을 사용할 수 있습니다. 쉽습니다.

순서는 다음과 같습니다.

# lvs
LV                VG        Attr       LSize   Pool      Origin Data%  Move Log Cpy%Sync Convert
my_logical_volume first_vg  Vwi-a-tz--  10.74g thinpool0         31.39  
thinpool1         second_vg twi-a-tz--   1.20t                    0.29        
thinpool0         first_vg  twi-a-tz-- 500.89g                   86.87                                 

위 논리 볼륨의 LSize를 확인하세요. 이 명령은 다음과 같습니다.

# lvcreate -V 10.74g -n my_logical_volume2 -T second_vg/thinpool1

...일치할 적절한 수의 LE를 생성합니다. lvs가 보여주는 것과 정확히 동일한 치수를 사용하십시오. lvdisplay를 사용하여 동일한 크기의 논리 볼륨을 생성했는지 확인하십시오. 이 Current LE줄을 확인하십시오(결과 LE 개수가 더 적으면 lv를 삭제한 다음 다시 생성하되 크기에 0.01을 추가하십시오[-V 뒤의 숫자]). :

# lvdisplay first_vg/my_logical_volume
  --- Logical volume ---
  LV Path                /dev/first_vg/my_logical_volume
  LV Name                my_logical_volume
  VG Name                first_vg
  LV Pool name           thinpool0
  LV Size                10.74 GiB
  Mapped size            31.39%
  Current LE             2750

# lvdisplay second_vg/my_logical_volume2
  --- Logical volume ---
  LV Path                /dev/second_vg/my_logical_volume2
  LV Name                my_logical_volume2
  VG Name                second_vg
  LV Pool name           thinpool1
  LV Size                10.74 GiB
  Mapped size            0.00%
  Current LE             2750

이제 첫 번째 lv에서 새로 생성된 lv로 복사하세요.

# time dd if=/dev/first_vg/my_logical_volume of=/dev/second_vg/my_logical_volume2 bs=4194304 conv=sparse

conv=sparsedd의 경우 매우 중요합니다. 그렇지 않으면 모든 공간이 대상 씬 풀에 프로비저닝되어 더 이상 씬이 아닙니다. :-).

새 논리 볼륨이 원하는 대로 되어 있는지 확인하십시오. 일단 모든 것을 확인하신 후 Kommissar 씨, 원하신다면 새 LV의 이름을 바꾸거나 원본 LV를 삭제하실 수 있습니다(작업하기 전에 백업하셨죠?).

관련 정보