Linux(Raspbian)のソフトウェアRAIDで、ミラーリング(RAID1)アレイを構成し動作させている。
このアレイはデータ領域として特定のディレクトリに自動マウントされている。
このアレイに対するテストや、削除の手順を記載している。
アレイの削除手順をすぐに試す場合は、「■アレイの削除手順の模索」の番号1〜3の手順に記載するコマンドを実行すればよい。
この記事に登場するコマンドを実行すると意図せずデータを喪失する危険性があります。
十分に動作検証した上で試すようにしてください。
■削除するアレイの状態を確認した
正常にRAIDアレイが動作している状態だとわかった。
root@raspberrypi:/home/pi# cat /proc/mdstat
Personalities : [raid1]md0 : active raid1 sda1[0] sdb1[1]975453184 blocks super 1.2 [2/2] [UU]bitmap: 0/8 pages [0KB], 65536KB chunkunused devices: <none>
詳細を表示した。
root@raspberrypi:/home/pi# mdadm --detail /dev/md0
/dev/md0:Version : 1.2Creation Time : Sun Mar 14 13:03:08 2021Raid Level : raid1Array Size : 975453184 (930.26 GiB 998.86 GB)Used Dev Size : 975453184 (930.26 GiB 998.86 GB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentIntent Bitmap : InternalUpdate Time : Sun Mar 14 21:39:20 2021State : cleanActive Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Consistency Policy : bitmapName : raspberrypi:0 (local to host raspberrypi)UUID : a943d355:2f4635c6:78eeb869:ad4d732dEvents : 2335Number Major Minor RaidDevice State0 8 1 0 active sync /dev/sda11 8 17 1 active sync /dev/sdb1
マウントがされていることを確認した。
root@raspberrypi:/home/pi# mount | grep md0
/dev/md0 on /mnt/storage type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
■削除前にアレイに対して色々テストを行った(その1)
(テスト1)
アレイが動作している状態では、アンマウントはできなかった。
root@raspberrypi:/home/pi# umount /dev/md0
umount: /mnt/storage: target is busy.
(テスト2)
アレイが動作している状態では、アレイを停止させられなかった。
root@raspberrypi:/home/pi# mdadm --stop /dev/md0
mdadm: Cannot get exclusive access to /dev/md0:Perhaps a running process, mounted filesystem or active volume group?
(テスト3)
アレイが動作している状態では、アレイを構成しているディスクをお役御免にすることもできなかった。
root@raspberrypi:/home/pi# mdadm --misc --zero-superblock /dev/sda1 /dev/sdb1
mdadm: Couldn't open /dev/sda1 for write - not zeroingmdadm: Couldn't open /dev/sdb1 for write - not zeroing
■削除前にアレイに対して色々テストを行った(その2)
1、強制的に構成のディスクをフェイルにセットしてみた。
これにより片側のディスクだけフェイルにセットされた。
root@raspberrypi:/home/pi# mdadm --fail /dev/md0 /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
2、しかし残りのディスクについてはフェイルにセットできなかった。
root@raspberrypi:/home/pi# mdadm --fail /dev/md0 /dev/sdb1
mdadm: set device faulty failed for /dev/sdb1: Device or resource busy
root@raspberrypi:/home/pi# mdadm --manage --set-faulty /dev/md0 /dev/sdb1
mdadm: set device faulty failed for /dev/sdb1: Device or resource busy
3、この段階で詳細情報を表示させた。
root@raspberrypi:/home/pi# mdadm --detail /dev/md0
/dev/md0:Version : 1.2Creation Time : Sun Mar 14 13:03:08 2021Raid Level : raid1Array Size : 975453184 (930.26 GiB 998.86 GB)Used Dev Size : 975453184 (930.26 GiB 998.86 GB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentIntent Bitmap : InternalUpdate Time : Mon Mar 15 02:36:45 2021State : clean, degradedActive Devices : 1Working Devices : 1Failed Devices : 1Spare Devices : 0Consistency Policy : bitmapName : raspberrypi:0 (local to host raspberrypi)UUID : a943d355:2f4635c6:78eeb869:ad4d732dEvents : 2337Number Major Minor RaidDevice State- 0 0 0 removed1 8 17 1 active sync /dev/sdb10 8 1 - faulty /dev/sda1
■アレイの削除手順の模索
途中にテストを挟んでいるので、アレイの削除をいきなりしたい場合は、
番号1〜3の手順のコマンドを実行するとよい。
1、自動マウントしないように設定して再起動した。
次のように、アレイを自動マウントする設定をコメントアウトした。
root@raspberrypi:/home/pi# nano /etc/fstab
#UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" /mnt/storage xfs defaults,auto,rw,nofail 0 2
root@raspberrypi:/home/pi# reboot
再起動後、アレイの状態を表示させた。
(上記のテストで、ディスクの片側をフェイルにしたので片側動作状態である。)
root@raspberrypi:/home/pi# cat /proc/mdstat
Personalities : [raid1]md0 : active (auto-read-only) raid1 sdb1[1]975453184 blocks super 1.2 [2/1] [_U]bitmap: 2/8 pages [8KB], 65536KB chunkunused devices: <none>
詳細情報の表示
(上記のテストで、ディスクの片側をフェイルにしたので片側動作状態である。)
root@raspberrypi:/home/pi# mdadm --detail /dev/md0
/dev/md0:Version : 1.2Creation Time : Sun Mar 14 13:03:08 2021Raid Level : raid1Array Size : 975453184 (930.26 GiB 998.86 GB)Used Dev Size : 975453184 (930.26 GiB 998.86 GB)Raid Devices : 2Total Devices : 1Persistence : Superblock is persistentIntent Bitmap : InternalUpdate Time : Mon Mar 15 02:42:35 2021State : clean, degradedActive Devices : 1Working Devices : 1Failed Devices : 0Spare Devices : 0Consistency Policy : bitmapName : raspberrypi:0 (local to host raspberrypi)UUID : a943d355:2f4635c6:78eeb869:ad4d732dEvents : 2339Number Major Minor RaidDevice State- 0 0 0 removed1 8 17 1 active sync /dev/sdb1
(テスト)
アレイを停止させた。
root@raspberrypi:/home/pi# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
アレイの状態を表示させるが、アレイは表示されなくなった。
root@raspberrypi:/home/pi# cat /proc/mdstat
Personalities : [raid1]unused devices: <none>
root@raspberrypi:/home/pi# mdadm --detail /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
アレイのmd0デバイスが認識されない状態なので、
アレイを構成していたディスクをフェイルにセットすることもできなかった。
root@raspberrypi:/home/pi# mdadm --manage --set-faulty /dev/md0 /dev/sdb1
mdadm: error opening /dev/md0: No such file or directory
同様に、アレイから構成ディスクを解除する操作も無効となった。
root@raspberrypi:/home/pi# mdadm --manage /dev/md0 -r /dev/sdb1
mdadm: error opening /dev/md0: No such file or directory
ここで、再起動をかけてみた。
root@raspberrypi:/home/pi# reboot
再起動後、自動的にアレイが動作開始した。
これはアレイを構成するディスクに構成情報が記録されているためだろう。
root@raspberrypi:/home/pi# cat /proc/mdstat
Personalities : [raid1]md0 : active (auto-read-only) raid1 sdb1[1]975453184 blocks super 1.2 [2/1] [_U]bitmap: 2/8 pages [8KB], 65536KB chunkunused devices: <none>
root@raspberrypi:/home/pi# mdadm --detail /dev/md0
/dev/md0:Version : 1.2Creation Time : Sun Mar 14 13:03:08 2021Raid Level : raid1Array Size : 975453184 (930.26 GiB 998.86 GB)Used Dev Size : 975453184 (930.26 GiB 998.86 GB)Raid Devices : 2Total Devices : 1Persistence : Superblock is persistentIntent Bitmap : InternalUpdate Time : Mon Mar 15 02:42:35 2021State : clean, degradedActive Devices : 1Working Devices : 1Failed Devices : 0Spare Devices : 0Consistency Policy : bitmapName : raspberrypi:0 (local to host raspberrypi)UUID : a943d355:2f4635c6:78eeb869:ad4d732dEvents : 2339Number Major Minor RaidDevice State- 0 0 0 removed1 8 17 1 active sync /dev/sdb1
そこで、最初のアレイを停止させる手順からやりなおした。
2、アレイをストップさせた。
アレイはmdXという名前とする。
root@raspberrypi:/home/pi# mdadm --stop /dev/mdX
mdadm: stopped /dev/md0
3、アレイを構成するディスクの情報を消去した。
アレイを構成しているディスクのパーティションは、sdA1と、SdB1とする。
(注意)次のコマンドで、アレイの情報が消去され、データを喪失する。
ただし、ディスク上にはデータが記録されたままだと考えられるので、完全消去にはディスク全体の0書き込みなどの処理が必要になる。
root@raspberrypi:/home/pi# mdadm --misc --zero-superblock /dev/sdA1 /dev/sdB1
そして、再起動した。
root@raspberrypi:/home/pi# reboot
今度は再起動後も、アレイは復活しなかった。
root@raspberrypi:/home/pi# cat /proc/mdstat
cat: /proc/mdstat: No such file or directory
root@raspberrypi:/home/pi# mdadm --detail /dev/mdX
mdadm: cannot open /dev/md0: No such file or directory
以上のことから、アレイが削除できたと判断した。