目次
[ReadyNAS Duo v2][Open-WRT] HDDを扱えるようにする
概要
Open-WRT化したReadyNASで、HDDを扱えるようにして、RAID-1を構築する。
参考サイト
パッケージ導入
HDDのパーティション操作のために fdisk、RAID構築のために mdadm をインストールする。
opkg update opkg install fdisk opkg install mdadm
fdiskコマンドでパーティション構成を調べる
ReadyNASには、Open-WRT化する前のまま(工場出荷状態に戻すは実行したが)HDDが2本挿さっているので、どんな状態か覗いてみる。
root@OpenWrt:~# ls /dev/sd* /dev/sda /dev/sda2 /dev/sdb /dev/sdb2 /dev/sda1 /dev/sda3 /dev/sdb1 /dev/sdb3 root@OpenWrt:~# fdisk -l /dev/sda Disk /dev/sda: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors Disk model: ST3000DM007-1WY1 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 36F7B8D6-ED67-4C9C-A0A9-51CD930408B4 Device Start End Sectors Size Type /dev/sda1 64 8388671 8388608 4G Linux RAID /dev/sda2 8388672 9437247 1048576 512M Linux RAID /dev/sda3 9437248 5860529072 5851091825 2.7T Linux RAID root@OpenWrt:~# fdisk -l /dev/sdb Disk /dev/sdb: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors Disk model: ST3000DM007-1WY1 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: C54C6828-8DBA-414F-BD8E-13F172CAC8BB Device Start End Sectors Size Type /dev/sdb1 64 8388671 8388608 4G Linux RAID /dev/sdb2 8388672 9437247 1048576 512M Linux RAID /dev/sdb3 9437248 5860529072 5851091825 2.7T Linux RAID root@OpenWrt:~#
3つパーティションが切ってあったらしい。
/dev/sd{a,b}1 は /boot、 /dev/sd{a,b}2 はスワップ、 /dev/sd{a,b}3 がデータ領域にでも使われていたのかな。
パーティション切り直してもよいのだけれど、(面倒なので)とりあえず、容量の大きな3番めのパーティションをそのまま使ってみる。
mdadmコマンドで RAID-1 を構築
root@OpenWrt:~# ls /dev/md* ls: /dev/md*: No such file or directory root@OpenWrt:~# root@OpenWrt:~# mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3 mdadm: /dev/sda3 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu May 26 21:29:24 2022 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 mdadm: /dev/sdb3 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu May 26 21:29:24 2022 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md3 started. root@OpenWrt:~# cat /proc/mdstat Personalities : [raid0] [raid1] [raid10] md3 : active raid1 sdb3[1] sda3[0] 2925413760 blocks super 1.2 [2/2] [UU] [>....................] resync = 0.0% (2468480/2925413760) finish=276.2min speed=176320K/sec bitmap: 22/22 pages [88KB], 65536KB chunk unused devices: <none> root@OpenWrt:~# root@OpenWrt:~# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2 mdadm: /dev/sda2 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu May 26 21:29:07 2022 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 mdadm: /dev/sdb2 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu May 26 21:29:07 2022 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md2 started. root@OpenWrt:~# mdadm --detail --scan ARRAY /dev/md3 metadata=1.2 name=OpenWrt:3 UUID=96e650b0:c42bdbec:fa51e915:0eda2742 ARRAY /dev/md2 metadata=1.2 name=OpenWrt:2 UUID=508a7b33:f56fd66c:96557387:5c2401dd root@OpenWrt:~# mdadm --detail --scan > /etc/mdadm/mdadm.conf root@OpenWrt:~#
多分これでRAID-1構築できたと思う。(/dev/md2
スワップ用, /dev/md3
データ用)
ファイルシステムを作成する
Open-WRTは、mkfsコマンドとかも全然入ってないんだね。(組み込み機器用のディストロだし、最小ではじめて必要なものは後から入れるというスタンスは当然といえば当然か・・・)
ファイルストレージ関連で必要になりそうなパッケージを入れておく。USBメモリとかも使うだろうし。
root@OpenWrt:~# opkg install kmod-usb-storage root@OpenWrt:~# opkg install usbutils root@OpenWrt:~# opkg install gdisk root@OpenWrt:~# opkg install block-mount root@OpenWrt:~# opkg install e2fsprogs root@OpenWrt:~# opkg install kmod-fs-ext4
ext4ファイルシステムを作成する。ついでにswapも。
root@OpenWrt:~# mkfs.ext4 /dev/md3 mke2fs 1.46.5 (30-Dec-2021) Creating filesystem with 731353440 4k blocks and 182845440 inodes Filesystem UUID: eddcf2be-32f6-4be7-9c58-85dccafcf382 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done root@OpenWrt:~# root@OpenWrt:~# mkswap /dev/md2 Setting up swapspace version 1, size = 535818240 bytes root@OpenWrt:~#
マウントポイントを作成し、マウントしてみる。
root@OpenWrt:~# mkdir /mnt/data root@OpenWrt:~# mount -t ext4 /dev/md3 /mnt/data root@OpenWrt:~# df /mnt/data/ Filesystem 1K-blocks Used Available Use% Mounted on /dev/md3 2878354352 28 2732067252 0% /mnt/data root@OpenWrt:~# df -h /mnt/data/ Filesystem Size Used Available Use% Mounted on /dev/md3 2.7T 28.0K 2.5T 0% /mnt/data root@OpenWrt:~# date > /mnt/data/TESTFILE root@OpenWrt:~# ls -alF /mnt/data/ drwxr-xr-x 3 root root 4096 May 28 11:54 ./ drwxr-xr-x 1 root root 288 May 28 11:52 ../ -rw-r--r-- 1 root root 29 May 28 11:54 TESTFILE drwx------ 2 root root 16384 May 28 11:49 lost+found/ root@OpenWrt:~# cat /mnt/data/TESTFILE Sat May 28 11:54:16 JST 2022 root@OpenWrt:~#
うん、よいみたい。
再起動したらRAIDアレイが消えた!?
ところが、ReadyNASを再起動したら、RAIDアレイが見えなくなってしまった。
hiroshi@VPCF24AJ-ubuntu:~$ ssh root@192.168.10.2 root@192.168.10.2's password: BusyBox v1.35.0 (2022-05-20 19:00:24 UTC) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt SNAPSHOT, r19689-19ef3b54f4 ----------------------------------------------------- root@OpenWrt:~# root@OpenWrt:~# ls /dev/md* ls: /dev/md*: No such file or directory root@OpenWrt:~# cat /proc/mdstat Personalities : [raid0] [raid1] [raid10] unused devices: <none> root@OpenWrt:~#
mdstat --assemble
したら戻りはしたのだが、、、
/etc/mdstat/mdstat.conf を作ったら、システム起動時に自動的にRAIDもアクティブになるんじゃなかったっけ?
root@OpenWrt:~# mdadm --assemble /dev/md3 /dev/sda3 /dev/sdb3 mdadm: /dev/md3 has been started with 2 drives. root@OpenWrt:~# cat /proc/mdstat Personalities : [raid0] [raid1] [raid10] md3 : active raid1 sda3[0] sdb3[1] 2925413760 blocks super 1.2 [2/2] [UU] [=====>...............] resync = 25.9% (759977728/2925413760) finish=214.7min speed=168073K/sec bitmap: 17/22 pages [68KB], 65536KB chunk unused devices: <none> root@OpenWrt:~# mount /dev/md3 /mnt/data root@OpenWrt:~# ls -l /mnt/data -rw-r--r-- 1 root root 29 May 28 11:54 TESTFILE drwx------ 2 root root 16384 May 28 11:49 lost+found root@OpenWrt:~# cat /mnt/data/TESTFILE Sat May 28 11:54:16 JST 2022 root@OpenWrt:~#
mdadm.conf の作り方、配置場所が悪かったのかしらん?
root@OpenWrt:~# echo DEVICE /dev/sd[ab][23] > /etc/mdadm.conf root@OpenWrt:~# mdadm --detail --scan >> /etc/mdadm.conf root@OpenWrt:~# cat /etc/mdadm.conf DEVICE /dev/sda2 /dev/sda3 /dev/sdb2 /dev/sdb3 ARRAY /dev/md3 metadata=1.2 name=OpenWrt:3 UUID=bee41517:55b3802c:f9404605:bc06b2d9 ARRAY /dev/md2 metadata=1.2 name=OpenWrt:2 UUID=6f0c6ff4:e431a2fa:4b522d6e:3db8b091 root@OpenWrt:~#