アレイにスクラビングを行い物理ボリュームを検査する
アレイに「スクラビング」を行い物理ボリュームを検査します。「スクラビング」には、チェックのみ行う「スクラビング」と、チェックに加えエラーを修復するリペアの2種類があります。
環境について
ここでは例として「RAID 5」アレイに対し「スクラビング」を行います。「RAID 5」アレイの作成については、以下を参考にしてください。
論理ボリュームの情報
作成した「RAID 5」アレイの論理ボリュームの情報は以下のようになっています。
ubuntu@ubuntu-vb-1404:~$ sudo mdadm --detail /dev/md/RAID5Array
/dev/md/RAID5Array:
Version : 1.2
Creation Time : Sat May 10 20:58:20 2014
Raid Level : raid5
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat May 10 22:01:49 2014
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 128K
Name : ubuntu-vb-1404:RAID5Array (local to host ubuntu-vb-1404)
UUID : 2fd3f3d8:ab9bb2cd:923e1b3b:804fc917
Events : 24
Number Major Minor RaidDevice State
0 8 52 0 active sync /dev/sdd4
1 8 68 1 active sync /dev/sde4
3 8 84 2 active sync /dev/sdf4
/dev/md/RAID5Array:
Version : 1.2
Creation Time : Sat May 10 20:58:20 2014
Raid Level : raid5
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat May 10 22:01:49 2014
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 128K
Name : ubuntu-vb-1404:RAID5Array (local to host ubuntu-vb-1404)
UUID : 2fd3f3d8:ab9bb2cd:923e1b3b:804fc917
Events : 24
Number Major Minor RaidDevice State
0 8 52 0 active sync /dev/sdd4
1 8 68 1 active sync /dev/sde4
3 8 84 2 active sync /dev/sdf4
論理ボリュームのデバイスファイル
論理ボリュームの実デバイスファイルは、「/dev/md127」であることが分かります。
ubuntu@ubuntu-vb-1404:~$ sudo cat /run/mdadm/map
md127 1.2 d8f3d32f:cdb29bab:3b1b3e92:17c94f80 /dev/md/RAID5Array
md127 1.2 d8f3d32f:cdb29bab:3b1b3e92:17c94f80 /dev/md/RAID5Array
スクラビングを行うには
「スクラビング」を行うには、直接MDドライバー(カーネルモジュール)に対し、指定を行う必要があります。MDドライバーにアクセスするには、「sysfs」(仮想ファイルシステム)を経由します。
指定を行うファイルは、「/sys/devices/virtual/block/論理ボリュームのデバイスファイル/md/sync_action」です。
1./sys/devices/virtual/block
「/sys/devices/virtual/block」フォルダーを開くと、以下のように論理ボリュームのデバイスファイル名のフォルダーが見つかります。2./sys/devices/virtual/block/論理ボリュームのデバイスファイル/md
「スクラビング」を行いたい論理ボリュームのデバイスファイル名がついたフォルダーを開くと「md」フォルダーが見つかります。その「md」フォルダーを開くと以下のように「sync_action」ファイルが見つかります。
3.スクラビングの実行を指定するファイル
「sync_action」ファイルに対し、「スクラビング」の実行を指定します。ここでは「/sys/devices/virtual/block/md127/md/sync_action」がコマンドの実行対象となるファイルになります。
スクラビングが実行中かどうか確認する
「スクラビング」を行う前に、スクラビングが実行中かどうか確認してください。1.状態の確認
上記で見つけた「sync_action」ファイルに対し、以下のコマンドを実行します。
cat '/sys/devices/virtual/block/md127/md/sync_action'
2.実行結果
以下のように「idle」と出力されればOKです。
ubuntu@ubuntu-vb-1404:~$ cat '/sys/devices/virtual/block/md127/md/sync_action'
idle
もし「idle」ではなかった場合、「スクラビング」を実行中です。idle
完了するまで待ちます。
実行中の「スクラビング」を中止したい場合、後述する方法で「スクラビング」を中止することが可能です。
スクラビングを中止する
スクラビングを中止する方法です。スクラビングの中止
上記で見つけた「sync_action」ファイルに対し、以下のコマンドを実行します。
echo idle | sudo tee '/sys/devices/virtual/block/md127/md/sync_action'
しばらく待ってから、上記の方法でスクラビングが実行中かどうか確認してください。
スクラビング(チェック)を行う
物理ボリュームのチェックを行う方法です。1.スクラビングの実行
上記で見つけた「sync_action」ファイルに対し、以下のコマンドを実行します。
echo check | sudo tee '/sys/devices/virtual/block/md127/md/sync_action'
2.スクラビングの実行状況を確認する
論理ボリュームの情報を表示すると、以下のように「スクラビング」が実行されチェック中であることが分かります。
ubuntu@ubuntu-vb-1404:~$ sudo mdadm --detail /dev/md/RAID5Array
/dev/md/RAID5Array:
Version : 1.2
Creation Time : Sat May 10 20:58:20 2014
Raid Level : raid5
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat May 10 23:50:18 2014
State : clean, checking
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 128K
Check Status : 87% complete
Name : ubuntu-vb-1404:RAID5Array (local to host ubuntu-vb-1404)
UUID : 2fd3f3d8:ab9bb2cd:923e1b3b:804fc917
Events : 30
Number Major Minor RaidDevice State
0 8 52 0 active sync /dev/sdd4
1 8 68 1 active sync /dev/sde4
3 8 84 2 active sync /dev/sdf4
/dev/md/RAID5Array:
Version : 1.2
Creation Time : Sat May 10 20:58:20 2014
Raid Level : raid5
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat May 10 23:50:18 2014
State : clean, checking
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 128K
Check Status : 87% complete
Name : ubuntu-vb-1404:RAID5Array (local to host ubuntu-vb-1404)
UUID : 2fd3f3d8:ab9bb2cd:923e1b3b:804fc917
Events : 30
Number Major Minor RaidDevice State
0 8 52 0 active sync /dev/sdd4
1 8 68 1 active sync /dev/sde4
3 8 84 2 active sync /dev/sdf4
スクラビング(リペア)を行う
物理ボリュームのチェック及び修復を行う方法です。1.スクラビングの実行
上記で見つけた「sync_action」ファイルに対し、以下のコマンドを実行します。
echo repair | sudo tee '/sys/devices/virtual/block/md127/md/sync_action'
2.スクラビングの実行状況を確認する
論理ボリュームの情報を表示すると、以下のように「スクラビング」が実行され再同期中であることが分かります。
ubuntu@ubuntu-vb-1404:~$ sudo mdadm --detail /dev/md/RAID5Array
/dev/md/RAID5Array:
Version : 1.2
Creation Time : Sat May 10 20:58:20 2014
Raid Level : raid5
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sun May 11 00:04:28 2014
State : clean, resyncing
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 128K
Resync Status : 37% complete
Name : ubuntu-vb-1404:RAID5Array (local to host ubuntu-vb-1404)
UUID : 2fd3f3d8:ab9bb2cd:923e1b3b:804fc917
Events : 34
Number Major Minor RaidDevice State
0 8 52 0 active sync /dev/sdd4
1 8 68 1 active sync /dev/sde4
3 8 84 2 active sync /dev/sdf4
/dev/md/RAID5Array:
Version : 1.2
Creation Time : Sat May 10 20:58:20 2014
Raid Level : raid5
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sun May 11 00:04:28 2014
State : clean, resyncing
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 128K
Resync Status : 37% complete
Name : ubuntu-vb-1404:RAID5Array (local to host ubuntu-vb-1404)
UUID : 2fd3f3d8:ab9bb2cd:923e1b3b:804fc917
Events : 34
Number Major Minor RaidDevice State
0 8 52 0 active sync /dev/sdd4
1 8 68 1 active sync /dev/sde4
3 8 84 2 active sync /dev/sdf4
スクラビングのチェック結果について
「スクラビング」のチェック結果は、「mismatch_cnt」ファイルから取得します。「sync_action」ファイルがあるフォルダーと同じフォルダー内に「mismatch_cnt」ファイルがあります。
ここの例では、「/sys/devices/virtual/block/md127/md/mismatch_cnt」ファイルになります。
1.状態の確認
「mismatch_cnt」ファイルに対し、以下のコマンドを実行します。
cat '/sys/devices/virtual/block/md127/md/mismatch_cnt'
2.実行結果
以下のように「0」と出力されれば問題ありません。
ubuntu@ubuntu-vb-1404:~$ cat '/sys/devices/virtual/block/md127/md/mismatch_cnt'
0
この数値は問題のあったセクターの数です。0
「RAID 1」アレイや「RAID 10」アレイの論理ボリューム上にスワップ用のパーティションを作成し、使用している場合、問題がなくても問題ありとして報告される場合があります。