質問

質問

私は 2 つのディスクで LVM RAID 1 を実行しています。VGlvsに関する情報は次のとおりです。

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

関連情報