プログラミングとかLinuxとかの備忘録

プログラミング、Linuxでハマった箇所や環境構築のメモ

Ubuntu18.04でソフトウェアRAIDを組む

スポンサーリンク

Ubuntu18.04でmdadmソフトウェアRAIDを組んでデータストレージとして使う

構成

ディスクの確認

/dev/sdc~/dev/sdfまでのHDD4本でRAID10を作る。

$ sudo parted -l | grep /dev/sd
Disk /dev/sda: 2000GB
Disk /dev/sdb: 240GB
Disk /dev/sdc: 1000GB
Disk /dev/sdd: 1000GB
Disk /dev/sde: 1000GB
Disk /dev/sdf: 1000GB

ファイルシステムの作成

まずHDD4本に対してpartedでパーティションを作成する。
(参考: LinuxでHDDのパーティションテーブル作成とフォーマット方法
また、RAIDのフラグをオンにする。

$ sudo parted /dev/sdc
(parted) mklabel gpt Y
(parted) mkpart ext4 0% 100%
(parted) set 1 raid on

次に、ファイルシステムを作成する

$ sudo mkfs -t ext4 /dev/sdc1

これを/dev/sdc~/dev/sdfの4本に対して実行。

RAIDアレイの構築

下記コマンドで、RAID10を4本のHDDで構築できる。
ファイルシステムを作成していないとそのHDDが出力に出力されない

$ sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sd[cdef]1
mdadm: /dev/sdc1 appears to contain an ext2fs file system
       size=976760832K  mtime=Thu Jan  1 00:00:00 1970
mdadm: /dev/sdd1 appears to contain an ext2fs file system
       size=976760832K  mtime=Tue Feb 26 06:19:05 2019
mdadm: /dev/sde1 appears to contain an ext2fs file system
       size=976760832K  mtime=Thu Jan  1 00:00:00 1970
mdadm: /dev/sdf1 appears to contain an ext2fs file system
       size=976760832K  mtime=Thu Jan  1 00:00:00 1970
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

構築経過は下のコマンドで確認できる。3時間ちょっとかかりそう。

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid10 sdf1[3] sde1[2] sdd1[1] sdc1[0]
      1953257472 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
      [>....................]  resync =  0.3% (5872256/1953257472) finish=197.5min speed=164280K/sec
      bitmap: 15/15 pages [60KB], 65536KB chunk

unused devices: <none>

mdadmを設定する

$ sudo bash -c  'mdadm -Es | grep md/0 >> /etc/mdadm/mdadm.conf'

RAIDアレイの初期化

RAIDアレイを確認する

$ sudo parted -l
Error: /dev/md0: unrecognised disk label
Model: Linux Software RAID Array (md)
Disk /dev/md0: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:

パーティションを作成(不要?)

$ sudo parted /dev/md0
(parted) mklabel gpt
(parted) mkpart ext4 0% 100%
(parted) quit

フォーマット

$ sudo mkfs -t ext4 /dev/md0
mke2fs 1.44.1 (24-Mar-2018)
Found a gpt partition table in /dev/md0
Proceed anyway? (y,N) y
Creating filesystem with 488314368 4k blocks and 122085376 inodes
Filesystem UUID: ac9462a0-e789-475e-86a6-55e4abb4ffc6
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

マウント(テスト)

$ sudo mount /dev/md0 /mnt

自動マウント

UUIDを確認

$ sudo blkid | grep /dev/md0
/dev/md0: UUID="ac9462a0-e789-475e-86a6-55e4abb4ffc6" TYPE="ext4"

/etc/fstabを編集

$ sudo vim /etc/fstab
UUID=ac9462a0-e789-475e-86a6-55e4abb4ffc6   /mnt    ext4    defaults,noatime    0 0