RAID5 構築

mdadm で RAID5 を構築

準備

HDD を 4 台接続しておく (VirtualBox で作っておく).

確認

新しい 3 台の HDD は /dev/sdc, /dev/sdd, /dev/sde として認識されている.

$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  8589MB  8588MB  primary               boot, raid


Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  8589MB  8588MB  primary               boot, raid


Error: /dev/sdc: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Error: /dev/sdd: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdd: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Error: /dev/sde: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sde: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Model: Linux Software RAID Array (md)
Disk /dev/md0: 8583MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  7501MB  7501MB  primary   ext4
 2      7501MB  8579MB  1078MB  extended
 5      7501MB  8579MB  1077MB  logical   linux-swap(v1)

HDD にパーティションテーブルを作成

$ sudo parted /dev/sdc
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) unit GB
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 8.59GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart
Partition name?  []? raid06
File system type?  [ext2]? ext4
Start? 0
End? 8.59
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 8.59GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name    Flags
 1      0.00GB  8.59GB  8.59GB  ext4         raid06
(parted) quit
Information: You may need to update /etc/fstab.

/dev/sdd, /dev/sde についても同様に.

(おまけ) コマンドラインで HDD にパーティションを作成

以下のようにするとコマンドラインでパーティションを作成できる

$ sudo parted -s -a optimal /dev/sda -- mklabel gpt mkpart raid6 ext4 1 -1

ソフトウェア RAID 設定

$ sudo mdadm --create /dev/md1 --level=raid5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

注意: 下のようにすると (--raid-devices の数を減らして --spare-devices=1 を追加), ホットスワップを作れる.

$ sudo mdadm --create /dev/md1 --level=raid5 --raid-devices=2 --spare-devices=1 /dev/sdc1 /dev/sdd1 /dev/sde1

ファイルシステム作成

$ sudo mkfs -t ext4 /dev/md1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 4190720 4k blocks and 1048576 inodes
Filesystem UUID: 64eab31a-076c-4e4f-b1bb-909c106d5e37
Superblock backups stored on blocks:
      32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
      4096000

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

ファイルシステムのマウント

$ sudo mkdir /work01_raid5
$ sudo mount /dev/md1 /work01_raid5

RAID 情報の保存

$ sudo cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.org
$ sudo -s
# /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
# exit
$ sudo dpkg-reconfigure mdadm

/etc/fstab への設定

  • UUID を確認

    $ sudo blkid /dev/md1
    /dev/md1: UUID="64eab31a-076c-4e4f-b1bb-909c106d5e37" TYPE="ext4"
  • 以下を /etc/fstab に追記

    UUID=64eab31a-076c-4e4f-b1bb-909c106d5e37 /work01_raid5   ext4    errors=remount-ro 0       1

悪くなさそう.

参考