His Masters' Voices Wiki

よろずのことの書き残し

ユーザ用ツール

サイト用ツール


nas:readynas_duo_v2_openwrt_extend_strage

**文書の過去の版を表示しています。**

[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メモリのような書き換えてナンボのデバイスをガッチャンコして、表面的には一つの自由に読み書きが行えるストレージデバイスに見せかける仕組み、といったところだろうか。

手順

スワップとデータ領域はすでにこちらで作業済みなので、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$
nas/readynas_duo_v2_openwrt_extend_strage.1653913790.txt.gz · 最終更新: 2022/05/30 21:29 by nipa28