Вопрос: LVM2 Raid 1 «нуждается в обновлении», но не обновляет или не очищает


Я запускаю 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? Не следует очищать обнаруженные несоответствия и корректировать их (т. Е. Очищать статус «обновить необходимый») или увеличивать счетчик рассогласования до ненулевого?

dmesg говорит:

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

Это также похоже на то, что очистка на самом деле ничего не сделала.

Вопросов

  • Как вызвать фактическую очистку?
  • Предполагая, что диск не неисправен - как обновить массив?
  • Если диск был неисправен (т. Е. Обновление сразу попало в ошибку) - как бы я это увидел? Я предполагаю, что dmesg должен показывать некоторые ошибки ввода-вывода? (Я не вижу никого из них ...)

Системная информация

Я запускаю Armbian на основе Ubuntu 16.04.4 LTS. Версия 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

0
2018-04-14 12:00


Источник




Ответы: