目次
はじめに
Linux(CentOS 7)でRAID1を構築しました。
ここ最近はクラウドやVPSへの移行が進んでいるので、物理マシンでのRAIDは久しぶりです。
こちらのサイトが参考になりました。
昔話
RAIDは懐かしいですね。2008年ごろはMegaRAIDやLogitechといったメーカーから提供されるRAIDボードを使うことが一般的でした。
また障害対策にUPSを付けていました。
その時期に「RAID組むぞ!」というときには
「RAIDボードを買わなきゃ。あっ、ちゃんとハードウェアRAIDサポートされてるやつじゃないとダメ!
物理ボードでもチェックサムの計算とかをCPU側にさせる似非ハードウェアRAIDはカス!もちろんオンボードRAIDなんて論外!」
とか言っていました。
でも今となってはLinux標準のRAIDが良いですね。
ハードウェアRAIDだと管理画面がベンダ提供のものになります。
BIOSレベルで提供されるためSSHでスクリーンショットを撮るということができず、そうすると必然的に情報が少なくなります。
その点、LinuxのソフトウェアRAIDは情報が多いので助かりますね。
とは言え、先にも述べたようにRAID自体が減っているので…、というところはありますが。(笑)
作業するにあたって
作業を行う前にetckeeper
を導入しておきます。
/etc
をバージョン管理することで、設定のロールバックや変更点の把握ができ、いざという時にすごくはかどります。
物理マシンの構成
今回のディスク構成はシステム+ストレージとしています。
- システム用ディスク(160GB)
- RAID用ストレージディスク (2TB) x 2
これは昔からのことですが、システム領域もRAID管理下におくと色々と大変な目に合うことが多いです。
システム領域は使用される容量も少ないですし、先のetckeeperと合せて飛んでしまってもすぐに復旧できる体制にしておくことで、シンプルな構成とすることができます。
今回の構成は過去に使っていたディスクを流用しました。
また作業は @naname さんにやってもらいました。お休みのところありがとうございます!
実際の手順
さて、まずは接続されたディスクの確認です。
$ fdisk -l
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes, 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes, 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
2TBが2台接続されています。
続いてRAIDの管理コマンド(mdadm)をインストールします。
$ sudo yum install -y mdadm
インストールが完了したらRAIDの作成に取り掛かります。
作成自体はそれほど難しくはなく、下記のコマンドで完了です。
$ sudo mdadm --verbose --create /dev/md0 --metadata 1.0 --level=raid1 --raid-devices=2 /dev/sdb /dev/sdc
$ sudo mkfs.xfs -f /dev/md0
$ sudo mkdir /mnt/
ARRAY /dev/md0 metadata=1.0 name=blaster.l3tp.org:0 UUID=953fd9c1:5ca9af1e:9ac3ffb3:61eda8e9
$ sudo sh -c 'mdadm --detail --scan > /etc/mdadm.conf'
mdadm
でRAIDを構築しています。
--create /dev/md0
で作成します。RAIDによって作成される仮想ディスクはmd0
などの名称にします。
--metadata 1.0
でRAIDのメタデータバージョンを指定します。現在は0.9と1.0があるようです。
--level=raid1
でRAID1(ミラーリング)にします。
--raid-devices=2 /dev/sdb /dev/sdc
でRAIDを構成する物理ディスクを指定します。
完成したらmkfs.xfs -f /dev/md0
でmd0
をファイルシステムxfsでフォーマットします。
ここまでできたら、再起動時にmdadmの設定を読み込んでRAIDを構成させます。
mdadm --detail
で設定が出力されるので、/etc/mdadm.conf
に書き込んでおきます。
こうすることで他のマシンでRAID構成を復元することも可能になります。
構成されたRAIDは--detail /dev/md0
で確認できます。
$ sudo mdadm --detail /dev/md0
[sudo] password for yousan:
/dev/md0:
Version : 1.0
Creation Time : Sun Sep 10 14:52:42 2017
Raid Level : raid1
Array Size : 1953514432 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953514432 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Sep 11 02:50:37 2017
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : blaster.l3tp.org:0 (local to host blaster.l3tp.org)
UUID : 953fd9c1:5ca9af1e:9ac3ffb3:61eda8e9
Events : 6450
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
最後に/etc/fstab
を編集して終わりです。
/dev/md0 /mnt/pool xfs defaults 0 0
最近はfstabでUUIDを使っていましたが、/dev/md0という指定で良いようでした。
以上です。