Top > Linux > RAID

RAID(md)関連

RAID6デバイス作成例

$ sudo mdadm --verbose --create /dev/md3 --level=raid6 --raid-devices=4 /dev/sd[cdef]1

スッと終わるので様子を確認します。

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md3 : active raid6 sdf1[3] sde1[2] sdd1[1] sdc1[0]
      5860268032 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
     [>....................]  resync =  0.5% (17578916/2930134016) finish=237.6min speed=204288K/sec

resyncが終わるまでおとなしく待ちましょう。

RAID6デバイス追加例

partedで地道にやる

$ sudo parted /dev/sdg
mklabel gpt
print

ディスクの情報が見えるようになる

※類似デバイスの情報をprintしてmkpartする

set 1 raid on
print

大丈夫ならquitする

$ sudo mdadm --manage /dev/md3 --add /dev/sdg1
$ cat /proc/mdstat

recoverがはじまったらあとは待つ

RAID6デバイス追加例(コピー)

sdgというディスクが新規に増えた場合のやり方(※このやり方では途中で再起動を必要とするのでgdiskやpartedを使った方がよいかもしれない)

$ sudo sgdisk /dev/sda -p -i 1
$ sudo sgdisk /dev/sdg -p -i 1

/dev/sda と /dev/sdg のパーティション情報を確認し、/dev/sdgを消去してよいことを確認する。

実行すると確認無しにパーティションの内容が完全に消去されるので注意して実行すること

$ sudo sgdisk -Z /dev/sdg

パーティション情報をコピーする。

$ sudo sgdisk -R=/dev/sdg /dev/sda

固有IDまでコピーされているのでユニークなものに変更する。

$ sudo sgdisk -G /dev/sdg

無事に完了したかどうかを確認する。

$ sudo sgdisk /dev/sda -p -i 1
$ sudo sgdisk /dev/sdg -p -i 1

disk typeを fd00 になっているか、既存の他のディスクのパーティションサイズと合っているか確認する。

※ここで再起動するまでkernelに認識されず反映されない可能性がある。lsblkで確認する。

次に作成したパーティションをRAID管理下に追加する。

$ sudo mdadm --manage /dev/md3 --add /dev/sdg1
$ cat /proc/mdstat

スペアディスクとして追加されてるハズなので、radi-devicesを増やせばRAID6の操作は完了。

$ sudo mdadm --grow /dev/md3 --raid-devices=7
$ cat /proc/mdstat

reshapeがはじまる。それなりに時間がかかる(下記の場合だと1303分≒21.7時間)ので座して待つ。

md3 : active raid6 sdg1[8] sdd1[1] sdc1[0] sde1[2] sda1[7] sdb[5] sdf[6]
      11720536064 blocks super 1.2 level 6, 512k chunk, algorithm 2 [7/7] [UUUUUUU]
      [>....................]  reshape =  1.3% (39886848/2930134016) finish=1303.9min speed=36941K/sec

LVMを利用している場合はこのあとPV(Physical Volume)を増加させる必要がある。

$ sudo pvresize /dev/md3 

更にVGを増やしてLVを増やしてresize2fsをして……みたいな手順があるがその辺の手順についてはRAIDとは関係ないので Linux/LVM を参照。

詳細表示

$ sudo mdadm --detail /dev/md3

Raid LevelやUUIDをここから確認できます。

EFIの場合に/bootをRAID1化する方法

※ここでは新規ディスクを /dev/sdX として記載する。

EFIの場合はルートディスクのパーティション構成が異なり、

/dev/sdX1 <- /boot/efi, vfat
/dev/sdX2 <- /boot, ext2
/dev/sdX3 <- / (root volume) など

のように、EFIパーティションが先頭にでき /boot が /dev/sdX2 になるので充分注意すること(一般的には /dev/sdX1 なのでその前提で記載されている場合が多い)。

まずはRAID1パーティションを作成する。まだ1台しか存在しない状態で作成するので missing を付与する。

$ sudo mdadm --verbose --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdX2 missing
$ cat /proc/mdstat

md1が存在していることを確認する。

次に、事前にEFIパーティション(通常 /dev/sdX2 )をマウントしておいた上で、grub-install、およびupdate-grubを行う。

grub-installを行う。 このコマンドは起動する可能性がある全てのHDDに対して行う。

$ sudo grub-install --efi-directory=/boot/efi --target=x86_64-efi /dev/sdX

終わったら /boot をマウントする。 /etc/fstab の編集が終わっていることが前提。

※2重マウントに注意すること。 http://wiki.bit-hive.com/north/pg/vfsmount%A4%CE%A5%EA%A5%B9%A5%C8%B4%C9%CD%FD%A4%CE%B8%A1%BE%DA(%A4%BD%A4%CE2)

$ mount /boot/

一通り終わったら update-grub を実施しておく。

$ sudo update-grub

initramfs-toolsのraid1を有効化(または追記)する。

$ sudo vi /etc/initramfs-tools/modules

update-initramfsする。念のためupdate-grubもしたほうが良いかも。

$ sudo update-initramfs -k all -u
$ sudo update-grub

参考サイト

Linux


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes
Last-modified: Sun, 03 Mar 2019 03:41:23 HADT (2041d)