질문

질문

두 개의 디스크에서 LVM RAID 1을 실행하고 있습니다. lvs내 VG에 대해 알려주는 내용은 다음과 같습니다 .

root@picard:~# lvs -a -o +devices,lv_health_status,raid_sync_action,raid_mismatch_count 
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  LV                 VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                                 Health          SyncAction Mismatches
  lv-data            vg-data rwi-aor-r- 2.70t                                    100.00           lv-data_rimage_0(0),lv-data_rimage_1(0) refresh needed  idle                0
  [lv-data_rimage_0] vg-data iwi-aor-r- 2.70t                                                     /dev/sda(0)                             refresh needed                       
  [lv-data_rimage_1] vg-data iwi-aor--- 2.70t                                                     /dev/sdb(1)                                                                  
  [lv-data_rmeta_0]  vg-data ewi-aor-r- 4.00m                                                     /dev/sda(708235)                        refresh needed                       
  [lv-data_rmeta_1]  vg-data ewi-aor--- 4.00m                                                     /dev/sdb(0)     

에 문제가 발생한 것 같습니다 /dev/sda. 해당 디스크의 SMART 로그가 괜찮아 보이므로 일시적인 현상이기를 바라며 RAID를 새로 고치거나 다시 동기화하고 싶습니다. 내가하는 일은 다음과 같습니다.

root@picard:~# lvchange --refresh vg-data/lv-data
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

(…wait for a couple of minutes…)

root@picard:~# lvs -a -o +devices,lv_health_status,raid_sync_action,raid_mismatch_count
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  LV                 VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                                 Health          SyncAction Mismatches
  lv-data            vg-data rwi-aor-r- 2.70t                                    100.00           lv-data_rimage_0(0),lv-data_rimage_1(0) refresh needed  idle                0
  [lv-data_rimage_0] vg-data iwi-aor-r- 2.70t                                                     /dev/sda(0)                             refresh needed                       
  [lv-data_rimage_1] vg-data iwi-aor--- 2.70t                                                     /dev/sdb(1)                                                                  
  [lv-data_rmeta_0]  vg-data ewi-aor-r- 4.00m                                                     /dev/sda(708235)                        refresh needed                       
  [lv-data_rmeta_1]  vg-data ewi-aor--- 4.00m                                                     /dev/sdb(0)               

그럼 아무 일도 일어나지 않았나요? 내 dmesg는 RAID 복구를 시도했음을 나타냅니다.

[150522.459416] device-mapper: raid: Faulty raid1 device #0 has readable super block.  Attempting to revive it.

글쎄요, 문지르는 것이 도움이 될까요? 시도해 봅시다:

root@picard:~# lvchange --syncaction repair vg-data/lv-data
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
root@picard:~# lvs -a -o +devices,lv_health_status,raid_sync_action,raid_mismatch_count
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  LV                 VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                                 Health          SyncAction Mismatches
  lv-data            vg-data rwi-aor-r- 2.70t                                    100.00           lv-data_rimage_0(0),lv-data_rimage_1(0) refresh needed  idle                0
  [lv-data_rimage_0] vg-data iwi-aor-r- 2.70t                                                     /dev/sda(0)                             refresh needed                       
  [lv-data_rimage_1] vg-data iwi-aor--- 2.70t                                                     /dev/sdb(1)                                                                  
  [lv-data_rmeta_0]  vg-data ewi-aor-r- 4.00m                                                     /dev/sda(708235)                        refresh needed                       
  [lv-data_rmeta_1]  vg-data ewi-aor--- 4.00m                                                     /dev/sdb(0)            

여기에는 몇 가지 이상한 점이 있습니다.

  • 즉 , 스크러빙이 즉시 완료된 것처럼 보입니까 SyncAction?idle
  • 스크러빙이 완료되면,그리고어레이를 여전히 새로 고쳐야 하는데 어떻게 불일치 개수가 여전히 0일 수 있습니까? 스크러빙을 통해 불일치를 감지하고 이를 수정하거나(예: "새로 고침 필요" 상태 지우기) 불일치 수를 0이 아닌 값으로 올려야 합니까?

dmesg 말한다:

[150695.091180] md: requested-resync of RAID array mdX
[150695.092285] md: mdX: requested-resync done.

그것은 또한 스크러빙이 실제로 아무 것도하지 않은 것처럼 보입니다.

질문

  • 실제 스크러빙을 호출하려면 어떻게 해야 합니까?
  • 드라이브에 결함이 없다고 가정할 경우, 어레이를 어떻게 새로 고치나요?
  • 드라이브에 결함이 있는 경우(예: 새로 고침 시 즉시 오류가 발생하는 경우) - 이를 어떻게 알 수 있습니까? dmesg가 일부 I/O 오류를 표시해야 한다고 가정합니까? (하나도 안 보이는데...)

시스템 정보

저는 Ubuntu 16.04.4 LTS를 기반으로 Armbian을 실행하고 있습니다. LVM 버전:

root@picard:~# lvm version
  LVM version:     2.02.133(2) (2015-10-30)
  Library version: 1.02.110 (2015-10-30)
  Driver version:  4.37.0

관련 정보