LVM2 RAID 1 미러를 분할하려고 할 때 동기화 상태 오류를 확인할 수 없습니다

LVM2 RAID 1 미러를 분할하려고 할 때 동기화 상태 오류를 확인할 수 없습니다

맥락에 대해서는 내 답변을 참조하십시오. 한 볼륨 그룹에서 다른 볼륨 그룹으로 논리 볼륨 이동.

나는 이 레시피를 실제로 활용하려고 노력한다. 성적표 보기 https://gist.github.com/anonymous/1611380eafd0c738ef0f8ad09e0f0ab0

아직 충분히 테스트하지 않은 것 같습니다. 이것을 내 시스템에 적용하려고 하면 다음 오류가 발생합니다.

root@orwell:/tmp# lvconvert --type raid1 --mirrors 1 /dev/newdebian/debian_boot /dev/md2
  Logical volume newdebian/debian_boot successfully converted.

root@orwell:/tmp# lvconvert --splitmirrors 1 --name debian_boot_copy /dev/newdebian/debian_boot

  Unable to determine sync status of newdebian/debian_boot.
  Unable to split newdebian/debian_boot while it is not in-sync.

온라인에서 이 문제에 대한 정보를 찾지 못했지만, 이 문제가 발생한 사람이 세계에서 처음은 아닐 것 같습니다. 이 예의 두 볼륨 그룹은 서로 다른 md RAID 장치에 있습니다. 이것이 현재 레이아웃의 모습입니다.

debian그런 다음 VG를 VG로 병합했습니다 newdebian.

이것은 어색한 상황입니다. debian이 문제가 해결될 때까지 VG에서 일반 설치를 사용하지 못할 수도 있습니다.

root@orwell:/tmp# lvs -a -o name,copy_percent,devices newdebian
  LV                     Cpy%Sync Devices                                        
  acl                             /dev/md1(80472)                                
  boot                            /dev/md2(35761)                                
  data                            /dev/md1(95835)                                
  debian_boot                     debian_boot_rimage_0(0),debian_boot_rimage_1(0)
  [debian_boot_rimage_0]          /dev/md1(0)                                    
  [debian_boot_rimage_1]          /dev/md2(36000)                                
  [debian_boot_rmeta_0]           /dev/md1(117666)                               
  [debian_boot_rmeta_1]           /dev/md2(35999)                                
  debian_home                     /dev/md1(12158)                                
  debian_root                     /dev/md1(238)                                  
  home                            /dev/md2(11920)                                
  postgres                        /dev/md1(105563)                               
  root                            /dev/md2(0)                                    
  swap                            /dev/md1(35999)                                
  swap                            /dev/md1(113243)                               
  vboxshare                       /dev/md1(117410)                               
  video                           /dev/md1(42072)                                
  video                           /dev/md1(83035)                                
  windows                         /dev/md1(36952)                                
  windows                         /dev/md1(80475)                                
  windows                         /dev/md1(114338)                               
  windows10                       /dev/md1(100955)                               
  windows10                       /dev/md1(115618)  

현재는 선형으로 다시 변환했습니다.

 root@orwell:/tmp# lvconvert --type linear /dev/newdebian/debian_boot
  Unable to determine sync status of newdebian/debian_boot.
  Logical volume newdebian/debian_boot successfully converted.

하지만 물론 문제가 무엇인지 알고 싶습니다.

답변1

다음은 LV가 비활성 상태인 것처럼 보입니다.

root@orwell:/tmp# lvconvert --splitmirrors 1 --name debian_boot_copy /dev/newdebian/debian_boot

  Unable to determine sync status of newdebian/debian_boot.
  Unable to split newdebian/debian_boot while it is not in-sync.

2.02.172를 확인했는데 이것이 바로 LV가 비활성 상태일 때 나타나는 결과입니다.

분할 종속은 RAID가 동기화된 경우에만 허용됩니다. LVM은 장치가 비활성 상태일 때 장치가 동기화되었는지 여부를 확인할 수 없습니다.

먼저, 치트를 시도하기 전에 장치를 활성화해야 합니다.

lvchange -ay newdebian/debian_boot

그런 다음 동기화를 기다립니다. LVM에는 이를 수행하는 폴링 명령이 없으므로 잠시 기다렸다가 직접 확인하거나 스크립트를 작성해야 합니다.

참고: dmsetup statusLVM 버전 2.02.171 이하에서는 반올림으로 인해 100%가 보고될 수 있으며 장치가 완전히 동기화되지 않으므로 출력을 사용하는 것이 더 안전할 수 있습니다.

이 방법으로만 위 lvconvert --splitmirrors작업을 성공적으로 실행할 수 있습니다.

관련 정보