**文書の過去の版を表示しています。**
[ReadyNAS Duo v2][OpenWrt] ストレージを拡張する
概要
OpenWrt化したReadyNAS Duo v2のストレージを拡張する。
OpenWrt化したあとのルート/
のストレージデバイスは、容量128MBしかないNANDフラッシュであるため、パッケージをじゃんじゃんインストールしているとすぐに容量不足に陥ってしまう。
ReadyNASは、2本のHDDスロットを持つNASなので、このHDD上にシステム領域を持たせて、容量不足の心配をなくしてしまうが目的。
戦略
もともとのReadyNASのファームウェアで動いていたときから、HDDのパーティション構成自体は変更していない。
2台のHDDを使って、パーティション構成はそのまま踏襲し、下図のようにRAIDを構成(md*デバイス作成)する。
1番目の領域をシステム、2番目の領域をスワップ、3番目の領域をデータ領域とする。
事前調査
いまのストレージはこんな感じ
hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$ df -h Filesystem Size Used Available Use% Mounted on /dev/root 2.5M 2.5M 0 100% /rom tmpfs 122.3M 2.5M 119.8M 2% /tmp /dev/ubi0_1 104.0M 18.7M 80.6M 19% /overlay overlayfs:/overlay 104.0M 18.7M 80.6M 19% / tmpfs 512.0K 0 512.0K 0% /dev /dev/md3 2.7T 60.0K 2.5T 0% /mnt/md3 hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$
2つほど分からないことがある。
まず、ルート/
がマウントされているoverlayfs:/overlay
がマウントされている(ややこしい)/dev/ubi0_1
というのは耳慣れないけどなんだろう?
https://tech-blog.cerevo.com/archives/177/
上のページによると、NANDフラッシュメモリ向けのUBIFSというファイルシステムらしい。詳しいことはよく分からないが、ナマの(?)NANDフラッシュメモリはHDDとはアクセスの仕方とかが違うので、そういうのをOSからうまく扱えるようにしているのだ、とざっくり理解した(つもりになった)。
もう一つは、overlayfs:/overlay
のoverlayfsって何?
https://wiki.archlinux.jp/index.php/Overlayfs
https://qiita.com/awakia/items/a9296840349f0b6f4482
上のページなどを読むが、まだよくわからない。リードオンリー(そもそも書き込めない)や書き込み回数が制限される(のであんまり頻繁に書き換えを行いたくない)デバイスとHDDやSSD、USBメモリのような書き換えてナンボのデバイスをガッチャンコして、表面的には一つの自由に読み書きが行えるストレージデバイスに見せかける仕組み、といったところだろうか。
OpenWrtのルート/
を拡張した先例を下に見つけた。この方はUSBメモリへ、だが、こちらはRAIDデバイスの/dev/md1 へ。
手順
スワップとデータ領域はすでにこちらで作業済みなので、1番目のパーティションをRAID構築、ファイルシステム作成、移行の順で実施する。
hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$ sudo mdadm --create /dev/md1 --level=1 - -raid-devices=2 /dev/sda1 /dev/sdb1 Password: mdadm: /dev/sda1 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu May 26 21:28:45 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/sdb1 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu May 26 21:28:45 2022 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started. hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$ cat /proc/mdstat Personalities : [raid0] [raid1] [raid10] md1 : active raid1 sdb1[1] sda1[0] 4189184 blocks super 1.2 [2/2] [UU] [===>.................] resync = 18.1% (762560/4189184) finish=0.3min speed=152512K/sec md3 : active raid1 sda3[0] sdb3[1] 2925413760 blocks super 1.2 [2/2] [UU] bitmap: 2/22 pages [8KB], 65536KB chunk md2 : active raid0 sda2[0] sdb2[1] 1044480 blocks super 1.2 512k chunks unused devices: <none> hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$ sudo mkfs.ext4 /dev/md1 mke2fs 1.46.5 (30-Dec-2021) Creating filesystem with 1047296 4k blocks and 262144 inodes Filesystem UUID: d6426954-4eed-4d17-af56-85f15dfce2b8 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$
/etc/config/mdadm に下記を追加してReadyNASをreboot。
config array option device /dev/md1 option name OpenWrt:1 list devices /dev/sda1 list devices /dev/sdb1