#author("2017-09-09T22:02:17+09:00","default:nowsky","nowsky")
#author("2017-10-04T23:43:17+09:00","default:nowsky","nowsky")
*RAID [#q026c235]
ここではLinuxの&font(b){ソフトウェアRAID};を取り扱う
ソフトウェアRAIDの場合、違う型番のHDDを使ったり柔軟な構成を組める。
しかし、ソフトウェアRAIDのバグ=RAIDアレイ崩壊の可能性もある点に注意する。
~
*ステータス表示 [#vb3034b2]
RAID同期ステータスの確認方法

 # cat /proc/mdstat

~
*RAIDアレイ再構築 [#i0d169fb]
HDDが故障した時にRAIDアレイ(RAID-1など)を再構築するには、mdadmコマンドを利用する。
説明に使う各HDDのステータスは下記の通りとする。

|          | ステータス | /dev/md0  | /dev/md1  |
| /dev/sda | 稼働       | /dev/sda1 | /dev/sda2 |
| /dev/sdb | 故障       | /dev/sdb1 | /dev/sdb2 |

-/dev/sdb1と/dev/sdb2にFフラグを付ける。拒否されたら直接RAIDアレイから取り除く
 # mdadm /dev/md0 -f /dev/sdb1
 # mdadm /dev/md1 -f /dev/sdb2
 # cat /proc/mdstat

-故障したHDDをRAIDアレイから取り除く
 # mdadm /dev/md0 -r /dev/sdb1
 # mdadm /dev/md1 -r /dev/sdb2

-故障HDD入れ替え後にパーティション作成
 # fdisk -l /dev/sda
 # fdisk /dev/sdb
 : w
 ---
 稼働中のHDDと同じパーティション(Start-End)を作成する
 パーティション情報をそのままダンプする場合は↓のコマンドを打つ
 ===
 # sfdisk -d /dev/sda | sfdisk /dev/sdb –force
 # sfdisk -d /dev/sda | sfdisk /dev/sdb –-force

-パーティションIDの変更
 # fdis /dev/sdb
 # fdisk /dev/sdb
 : t
 : fd
   Changed System type of partition 1 to fd (Linux raid autodetect)
 : w

-新しいHDDをRAIDアレイに参加させる
 # mdadm /dev/md0 --add /dev/sdb1
 # mdadm /dev/md1 --add /dev/sdb2

-RAID-1アレイの構成情報を確認
 # cat /proc/mdstat
 # mdadm --detail /dev/md0
 # mdadm --detail /dev/md1

~
*GRUB手動インストール [#c41d7357]
kernelのアップデート・再インストール、RAID-1アレイの再構築後は、
RAID-1で冗長化している2台のHDDそれぞれにgrubを入れ直す必要がある。
今回は、/dev/sdaと/dev/sdbでRAID-1を組んでいる事とする。
-[[ブートディスクをソフトウェア RAID1に構成する際の注意:+https://users.miraclelinux.com/technet/faq/data/00080.html]]
-[[RAID構成ハードディスク交換:+https://centossrv.com/centos5-raid-3.shtml]]

grubのデバイス指定はLinuxのデバイス指定とリンクしていないので、
明示的に設定を行う必要がある。
例えば、rootデバイスが/dev/sdaの場合、カンマの後の指定は下記のようになる。

| /dev/sda  | grub> device (hd0) /dev/sda |
| /dev/sda1 | grub> root (hd0,0)          |
| /dev/sda2 | grub> root (hd0,1)          |
| /dev/sda3 | grub> root (hd0,2)          |
| /dev/sdb  | grub> device (hd1) /dev/sdb |
| /dev/sdb1 | grub> root (hd1,0)          |
| /dev/sdb2 | grub> root (hd1,1)          |
| /dev/sdb3 | grub> root (hd1,2)          |

 
grubを手動インストールする際は、デバイスIDが大きい&font(b){サブ側(/dev/sdb)へ先にインストール};し、
その後にデバイスIDが小さい&font(b){メイン側(/dev/sda)へインストール};する

 # df | grep boot
 /dev/md0    636    206984    268336  44% /boot
 
 # cat /proc/mdstat | grep md0
 md0 : active raid1 sdb1[1] sda1[0]
 
 # grub
 ---
 > device (hd1) /dev/sdb
 > root (hd1,0)
 > setup (hd1)
 >
 > device (hd0) /dev/sda
 > root (hd0,0)
 > setup (hd0)
 >
 > quit