Categories: Raspberry Pi

【ラズパイNAS化計画】1 – Raidを構築する

1.ラズパイにHDDを接続する

HDD2台を外付けドライブに入れてラズパイに接続し認識されていることを確認します

sudo fdisk -l

下記のようにHDDが認識されていればOK

Disk /dev/sda: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
Disk model: EZAZ-00SF3B0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/sdb: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
Disk model: EZAZ-00SF3B0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

6TB(5.46Tib)のHDDが2台、sda と sdbがしっかりと認識されています

2.パーティションを作成

今回は6TBのHDDなので「parted」を利用してパーティションを作成します

sudo parted /dev/sda
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt 
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? y

(parted) unit GB
(parted) print
Model: WDC WD60 EZAZ-00SF3B0 (scsi)
Disk /dev/sda: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart 
Partition name?  []? hdd1
File system type?  [ext2]? ext4
Start? 0%
End? 100%

(parted) print
Model: WDC WD60 EZAZ-00SF3B0 (scsi)
Disk /dev/sda: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  6001GB  6001GB  ext4         hdd2

これでパーティション作成完了です!

これをもう一つのHDD /dev/sdbでも実行します

3.RAID設定

RAIDのためにmdadmをインストール

sudo apt install mdadm

RAID構築

この際に下記のようなメッセージが表示されますがYで問題ないようです

sudo mdadm --create /dev/md0 --raid-devices=2 --level=raid1 /dev/sda1 /dev/sdb1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y

RAIDの状態を確認

sudo mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Feb  9 21:37:18 2022
        Raid Level : raid1
        Array Size : 5860388864 (5588.90 GiB 6001.04 GB)
     Used Dev Size : 5860388864 (5588.90 GiB 6001.04 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Wed Feb  9 21:40:13 2022
             State : clean, resyncing
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

     Resync Status : 0% complete

              Name : raspberrypi:0  (local to host raspberrypi)
              UUID : 3e5c261c:4d46c633:d5e13ee7:b3631d9c
            Events : 30

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

RAIDの処理がバックグランドで実行されますので念のため処理が終わるまで待機

処理状況は下記のコマンドで確認

sudo watch cat /proc/mdstat

Every 2.0s: cat /proc/mdstat                                                                                                                                              raspberrypi: Wed Feb  9 21:45:15 2022

Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
      5860388864 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  1.3% (78472832/5860388864) finish=510.5min speed=188756K/sec
      bitmap: 44/44 pages [176KB], 65536KB chunk

unused devices: <none>

「510.5min」となってるのでおよそ8.5時間ですね・・・大容量HDDの方は気長に待ちましょう・・・

処理完了後はRAIDドライブのフォーマットを行います

※ext4でフォーマットしていますので任意のフォーマットを行ってください

sudo mkfs -t ext4 /dev/md0

マウントディレクトリの作成&マウント

raidというディレクトリを作成しマウント、作成したディレクトリの所有者をpiへ変更

※任意のディレクトリを作成してマウントしてください

mkdir /raid
mount /dev/md0 /raid
sudo chown pi:pi /raid

設定を保存する

mdadmの設定を保存しておきます

下記のコマンドで取得したものを

sudo mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=raspberrypi:0 UUID=3e5c261c:4d46c633:d5e13ee7:b3631d9c

上記で取得した「ARRAY /dev/md0 metadata=1.2 name=raspberrypi:0 UUID=3e5c261c:4d46c633:d5e13ee7:b3631d9c」を「/etc/mdadm/mdadm.conf」の末尾へ追記

sudo vi /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=raspberrypi:0 UUID=3e5c261c:4d46c633:d5e13ee7:b3631d9c

起動時にマウントが行われるように設定ファイルに追記

/dev/md0      /raid     ext4    defaults,nofail        0       0

以上でRAIDの構築終了です。

起動時にマウントされるかどうか、再起動して確認だけしておいてください。

続き

参考サイト

Pype