システム構成
- Ubuntu 18.04.1 LTS Desktop
- SSD: 128GB (Boo用途t)
- HDD: 4TB x 2 (同一デバイス)
はじめに
今回はHDD2枚をRAID1でミラーリングの構成を作成する。 SSDには既にUbuntuがインストール済みであり、あとからHDD2枚で構成されたRAID1ストレージをシステムに追加して、ストレージの増強をする。 なお今回、それぞれのデバイスは次のディレクトリに割り当てられている。
デバイス | ファイル名 |
---|---|
SSD | /dev/sda |
HDD(1) | /dev/sdb |
HDD(2) | /dev/sdc |
準備
まずはシステムを最新にして、必要なソフトウェアをインストールする。
$ sudo apt update $ sudo apt upgrade $ sudo apt install mdadm
HDDのフォーマットとファイルシステムの変更
fdisk
でもparted
のどちらでもできそうではあるが、次のサイトの情報によると、2TBを超えるストレージを認識させるためにはparted
でなければいけないらしい。
$ sudo parted /dev/sdb (parted) unit GB (parted) mklabel gpt (parted) mkpart primary xfs 0% 100% (parted) set 1 raid on (parted) p Model: ATA ST4000DM004-2CV1 (scsi) Disk /dev/sdb: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 4001GB 4001GB primary raid
これと同様の操作を/dev/sdc
に対しても行う。
その後以下のコマンドで/dev/sd{b,c}1があることを確認する
$ ls /dev/sd*
mdadmでRAIDアレイを作成
以下のコマンドでRAIDアレイを作成する。
$ sudo mdadm --create /dev/md0 --level=1 --raid-device=2 missing /dev/sdb1
--create
で作成するアレイの名前を指定する。更に--level
でRAIDの種類を指定する。今回はミラーリングのRAID1構成のため、ここでは1を指定した。更に--raid-device
でraidを構成するディスクの台数を指定する。最後の2つの引数は、--raid-device
で指定した台数分のディスクのファイルパスを指定する。今回は、1台は実際のデバイスである/dev/sdb1
を指定して、もう1台は最初は指定しなかった。
これは、最初にこのコマンドで2つのデバイスを指定すると同期が始まり、長い時間待たされてしまうらしいからである。
従って、/dev/md0
を作成後、missingにした部分にもう1つのディスクを追加する。
$ sudo mdadm /dev/md0 --add /dev/sdc1
これでraidアレイである/dev/md0
が爆誕する。
RAIDアレイのフォーマット
つぎに作成したRAIDアレイを使えるように設定し直す。
$ sudo touch /etc/mdadm.conf $ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf $ sudo mkfs.ext4 /dev/md0
ちょっと時間がかかる。ファイルサイズにもよると思うが、今回は1分くらいかかった。
マウントと再起動設定
$ sudo blkid | grep md0 /dev/md0: UUID="hogehoge" TYPE="ext4"
ここではUUID
を確認する。この場合は便宜的にhogehoge
となっている。
RAIDアレイは/mnt/storage
にマウントすることにしておく。あらかじめここにディレクトリを作成しておく。この場所に関しては、適宜変更しても良い。
これを用いて/etc/fstab
に次の1文を追記する。
UUID=hogehoge /mnt/storage ext4 defaults 1 2
そしてマウントする。面倒だったら次のコマンドで全部マウントする。
$ sudo mount -a
/etc/fstab
に記述することで再起動時も自動的にマウントされる。
再起動後
無事に全部終わり!と思って再起動後にマウントされたかを確認すると以下のように表示された。
$ df -h . . /dev/md127 3.6T 89M 3.4T 1% /mnt/storage
/dev/md127!?
となって色々調べたらmd127問題というのがあるらしいことがわかった。
これに従って対処した。
まず/etc/mdadm.conf
に作成したファイルを以下のように編集する。必要最低限のものだけ記述すると以下のようになる。
ARRAY /dev/md0 UUID=hugahuga
さらに次のコマンドで何かを更新。そして再起動
$ sudo update-initramfs -u $ sudo reboot $ df -h . . /dev/md0 ...
戻った!!
まとめ
4TBを超えるストレージを作成する場合のファイルシステムで若干詰まった。 xfsを指定してそれぞれのディスクを初期化し、さらにこのデバイスを用いてソフトウェアRAIDをするのも少々詰まった。Ubuntu18でやっている例もあんまりなかったので、参考にしてもらえたらよい。
ちなみにmdadmでRAIDアレイを作成する時に片方をmissingにしなくてもよい回避方法を知っている人がいたらぜひ教えてほしい。コメントで知らせてくれると喜びます。
参考にしたサイト
https://increment-log.com/centos7-mdadm-raid/