【自宅サーバ】Ubuntu14.04LTSへmdadmを使ったRAIDの構築
1.Install
sudo apt-get update
sudo apt-get install mdadm
2.Linux raid用パーティションの作成(パーティションタイプ fd:Linux raid 自動検出)
システムディスクがsdaで2TBx4が sdb,sdc,sdd,sde
sudo fdisk /dev/sdb
コマンド (m でヘルプ): n ←新規作成なので"n"を入力
コマンドアクション
e 拡張
p 基本パーティション (1-4)
p ←基本パーティションなので"p"を入力
パーティション番号 (1-4): 1 ←1つ目のパーティションなので"1"を入力
最初 シリンダ (1-121601, 初期値 1): ←defaultなのでそのままEnter
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-121601, 初期値 121601): ←defaultなのでそのままEnter
初期値 121601 を使います
コマンド (m でヘルプ): t ←パーティションタイプを変更するので"t"を入力
選択した領域 1 16進数コード (L コマンドでコードリスト表示): fd ←パーティションタイプを"Linux raid 自動検出"変更するので"fd"を入力
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました
コマンド (m でヘルプ): w ←設定を保存するので"w"を入力
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
※(sdc,sdd,sdeも同様に設定)
3.Raid5作成
sudo mdadm --create --verbose --assume-clean /dev/md0 --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
4.確認
cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0] ←想定通りのデバイスで構成されていることを確認。
35563264 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
↑構成対象がactiveであること※今回4本なので[4/4][UUUU]となっていること。
※2TBx4台での構成だったのでかなりの時間がかかると思ったが一瞬で出来上がっていました。
watchコマンドで状態が1秒毎に更新るが必要なかったw
watch -n 1 cat /proc/mdstat
5.設定ファイルの作成
sudo mdadm --detail --scan
※UUIDの値が表示される行をメモしておく。ただしmetadata=00.90は必要ないので消す。
※metadataは、アレイ情報が格納されている場所でありマウントするには必要のない情報なので記載しない。
なお、"00.90"はメタデータのフォーマットを0.9にしていることを示し。メタデータ自体はボリュームの最後に書かれる。
metadataを1.2にするとカーネルアップデートの際に実行されるupdate-grubが1.2フォーマットのメタデータを読めないために問題が発生する可能性があるので注意が必要だ!!!
後で気付いたがUbuntu14.04LTSではデフォルト、metadataのフォーマットは0.9が採用されている。
mdadmで色々とググるとデバイス名(md/0)と表記が見当たったの誤記なのかと気になって調べるとmetadata1.xのとき(md/0)で、0.9のとき(md0)と表記されるようだ。
出力例:ARRAY /dev/md0 name=Server1:0 metadata=00.90 UUID=7a523b57:92ba42fc:6cd356de:ab45d2c0
sudo vi /etc/mdadm/mdadm.conf
### 編集内容 ####
DEVICE partitions
ARRAY /dev/md0 name=Server1:0 UUID=0c6b0a3f:b833c377:1a44cd1d:394a56ac
#################
6.パーティション作成(パーティションタイプ、83:Linux)
fdisk /dev/md0
7.フォーマット(予約ブロック-m 0でなしに設定)
sudo mke2fs -t ext4 -m 0 -b 4096 /dev/md0
※フォーマットも一瞬でした。
8.マウントポイントの作成
sudo mkdir -m 777 /share
9.マウント
sudo mount -t ext4 /dev/md0 /share
10.md0のUUIDを確認
sudo tune2fs -l /dev/md0 |grep UUID
11.自動マウント設定
#fstabのに以下を追加
#※/dev/md* は変更される場合があるのでUUIDを使う。
#この際、mdadm --detailで得られるUUIDとは値が異なるので注意が必要
sudo vi /etc/fstab
### 編集内容 ####
#最終行に追加
UUID=0aa87a71-0787-484f-a593-d919cef0c2be /share ext4 defaults 0 0
#################
12.状態の確認
cat /proc/mdstat
sudo mdadm --detail --scan
sudo mdadm --detail /dev/md0