※旧サイトから移植したページです
RaspberryPiでファイルサーバ構築#5 2020.11.17
今日は、RAIDの設定をしていきます。
前回までに、デスクトップ環境を設定しておきましたが、今回はほとんどコンソールで設定していきます。
まずは、ソフトウェアRAIDの構築をしていきます。
以下のコマンドを実行していきます。
$ sudo apt-get upgrade update
$ sudo apt-get install mdadm
mdadmというソフトウェアを使ってRAIDを組んでいきます。
次に接続している2つのHDDのディレクトリを確かめるために以下のコマンドを実行します。
$ sudo fdisk -l
ディスク /dev/sdb: 7.28 TiB, 8001563222016 バイト, 15628053168 セクタ
Disk model: USB3.0
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: E3FB27DF-DC26-4B27-A0BA-BD447B3CF259
ディスク /dev/sda: 7.28 TiB, 8001563222016 バイト, 15628053168 セクタ
Disk model: USB3.0
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: D945C94B-42A9-43A7-AB3E-E9B5B24F0C83
今回使用するSATA USB3.0変換アダプタとHDDの場合には、上記のように表示されます。
「/dev/sda」と「/dev/sdb」に接続されていることがわかります。
使用する2つのHDDをフォーマットしていきます。
$ sudo parted /dev/sda
(parted) unit GB
(parted) mklabel gpt
(parted) mkpart primary xfs 0% 100%
(parted) set 1 raid on
(parted) p
...
(parted) quit
$ sudo parted /dev/sdb
(parted) unit GB
(parted) mklabel gpt
(parted) mkpart primary xfs 0% 100%
(parted) set 1 raid on
(parted) p
...
(parted) quit
上記のように進めたら、以下のコマンドをして、「dev/sda1」「dev/sdb1」ができていることを確認します。
$ ls /dev/sd*
確認出来たら、mdadmでRAIDを組んでいきます。
今回はRAID1で組んでいきます。
$ sudo mdadm --create /dev/md0 --level=1 --raid-device=2 /dev/sda1 /dev/sdb1
「Continue creating array?」と尋ねられたら「y」と入力してください。
次に以下のコマンドを実行して、RAID1が組めているかを確認します。
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Nov 10 17:49:32 2020
Raid Level : raid1
Array Size : 7813893120 (7451.91 GiB 8001.43 GB)
Used Dev Size : 7813893120 (7451.91 GiB 8001.43 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Tue Nov 17 13:01:58 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : ubuntu:0
UUID : 8372124a:aff96ea5:865cc653:168af33d
Events : 115631
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2つとも「active sync」なので、正常にRAIDを組めていることになります。
次に、同期を完全に取れるまで待機します。
同期の確認には、以下のコマンドで確認します。
$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1] sda1[0]
83817472 blocks super 1.2 [2/2] [UU]
[>....................] resync = 0.1% (2777984/7813893120) finish=900.9min speed=75368K/sec
unused devices: none
「finish=○○○min」と書かれているのが、同期に要する時間です。
さすがに、8TBのRAIDとなると同期に時間がかかりますね。
RAIDのファイルシステムえおフォーマットします。
今回は、「EXT4」でフォーマットします。
$ sudo mke2fs -t ext4 /dev/md0
次に、RAID情報を「/etc/mdadm.conf」に出力します。
$ cat /etc/mdadm.conf
$ sudo su
# sudo mdadm --detail --scan > /etc/mdadm.conf
$ exit
再起動後に自動的にマウントするためにマウントポイントの作成をします。
$ sudo mkdir /raid
フォルダを作成したら、「vim」でも「nano」でもどのようなエディタでも構いませんが、
「/etc/fstab」をsudo権限で編集して、以下のように追記します。
$ sudo nano /etc/fstab
...
/dev/md0 /raid ext4 default 1 1>
...
編集したら、再起動して、マウントを確認します。
$ df -h
Filesystem Size Used Avail Use% Mounted on
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 782M 14M 768M 2% /run
/dev/mmcblk0p2 29G 6.6G 22G 24% /
tmpfs 3.9G 4.0K 3.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/loop1 49M 49M 0 100% /snap/core18/1936
/dev/loop0 49M 49M 0 100% /snap/core18/1883
/dev/loop2 64M 64M 0 100% /snap/lxd/16103
/dev/loop3 26M 26M 0 100% /snap/snapd/8543
/dev/loop4 27M 27M 0 100% /snap/snapd/9730
/dev/loop5 60M 60M 0 100% /snap/lxd/18152
/dev/mmcblk0p1 253M 105M 148M 42% /boot/firmware
/dev/md0 7.3T 2.9T 4.0T 42% /raid
tmpfs 782M 24K 782M 1% /run/user/128
tmpfs 782M 20K 782M 1% /run/user/1000
これで、正常にマウントできていることがわかります(下から3行目)。
今日はこの程度で終了にしたいと思います。
関連記事
・ RaspberryPiでファイルサーバ構築#1
・ RaspberryPiでファイルサーバ構築#2
・ RaspberryPiでファイルサーバ構築#3
・ RaspberryPiでファイルサーバ構築#4
・ RaspberryPiでファイルサーバ構築#5
・ RaspberryPiでファイルサーバ構築#6