His Masters' Voices Wiki

よろずのことの書き残し

ユーザ用ツール

サイト用ツール


nas:readynas_duo_v2_openwrt_extend_strage

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
nas:readynas_duo_v2_openwrt_extend_strage [2022/05/29 22:56] – [戦略] nipa28nas:readynas_duo_v2_openwrt_extend_strage [2022/05/31 22:44] (現在) – [失敗] nipa28
行 21: 行 21:
  
 {{:nas:readynas_raid.drawio.png?400|}} {{:nas:readynas_raid.drawio.png?400|}}
 +
 +
 +### 事前調査
 +
 +いまのストレージはこんな感じ
 +
 +```
 +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            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 へ。
 +
 +https://qiita.com/somainit/items/014aea356946b13957ff
 +
 +その前に、OpenWrt公式の下記には目を通しておくべきだな。
 +
 +https://openwrt.org/docs/guide-user/storage/usb-drives
 +https://openwrt.org/docs/techref/filesystems
 +https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
  
  
行 26: 行 68:
 ---- ----
  
-スワップとデータ領域はすでにこちらで作業済みなので、1番目のパーティションをRAID構築、ファイルシステム作成、移行の順で実施する。+スワップとデータ領域はすでに[[nas:readynas_duo_v2_openwrt_raid|こちら]]で作業済みなので、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 に下記を追加して、 
 + 
 +``` 
 +config array 
 + option device /dev/md1 
 + option name OpenWrt:1 
 + list devices /dev/sda1 
 + list devices /dev/sdb1 
 + 
 +``` 
 + 
 +こちらの[[nas:readynas_duo_v2_openwrt_fstab|fstab設定]]をもう一度やって(追加された/mnt/md1もenabledを1に) 
 +   
 +ReadyNASをreboot。 
 + 
 +これで /mnt/md1 が起動時にマウントされるようになりました。 
 + 
 +``` 
 +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.3M    120.0M   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            512.0K   0% /dev 
 +/dev/md3                  2.7T     60.0K      2.5T   0% /mnt/md3 
 +/dev/md1                  3.9G     24.0K      3.6G   0% /mnt/md1 
 +hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$  
 +``` 
 + 
 +(これからどうやるんだ?) 
 + 
 + 
 +--- 
 + 
 +参考にしたサイト 
 +https://qiita.com/somainit/items/12797800741c73369fa8 
 + 
 + 
 +現状 
 +``` 
 +root@OpenWrt:~# cat /etc/mtab  
 +/dev/root /rom squashfs ro,relatime 0 0 
 +proc /proc proc rw,nosuid,nodev,noexec,noatime 0 0 
 +sysfs /sys sysfs rw,nosuid,nodev,noexec,noatime 0 0 
 +cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate 0 0 
 +tmpfs /tmp tmpfs rw,nosuid,nodev,noatime 0 0 
 +/dev/ubi0_1 /overlay ubifs rw,noatime,assert=read-only,ubi=0,vol=1 0 0 
 +overlayfs:/overlay / overlay rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work 0 0 
 +tmpfs /dev tmpfs rw,nosuid,noexec,noatime,size=512k,mode=755 0 0 
 +devpts /dev/pts devpts rw,nosuid,noexec,noatime,mode=600,ptmxmode=000 0 0 
 +debugfs /sys/kernel/debug debugfs rw,noatime 0 0 
 +none /sys/fs/bpf bpf rw,nosuid,nodev,noexec,noatime,mode=700 0 0 
 +/dev/md3 /mnt/md3 ext4 rw,relatime 0 0 
 +/dev/md1 /mnt/md1 ext4 rw,relatime 0 0 
 +root@OpenWrt:~#  
 + 
 +``` 
 + 
 +``` 
 +root@OpenWrt:~# block info 
 +/dev/ubiblock0_0: UUID="bc4defb3-13efe5ce-fb9e8b21-f367bc4f" VERSION="4.0" MOUNT="/rom" TYPE="squashfs" 
 +/dev/ubi0_1: UUID="683a0be3-91b9-43b0-837b-9f66dd5f0336" VERSION="w5r0" MOUNT="/overlay" TYPE="ubifs" 
 +/dev/sda1: UUID="d1675450-f945-d915-a2ae-2789536908f1" LABEL="OpenWrt:1" TYPE="linux_raid_member" 
 +/dev/sda2: UUID="133d7fd3-0120-9fbf-5004-cb32421736b5" LABEL="OpenWrt:2" TYPE="linux_raid_member" 
 +/dev/sda3: UUID="bee41517-55b3-802c-f940-4605bc06b2d9" LABEL="OpenWrt:3" TYPE="linux_raid_member" 
 +/dev/sdb1: UUID="d1675450-f945-d915-a2ae-2789536908f1" LABEL="OpenWrt:1" TYPE="linux_raid_member" 
 +/dev/sdb2: UUID="133d7fd3-0120-9fbf-5004-cb32421736b5" LABEL="OpenWrt:2" TYPE="linux_raid_member" 
 +/dev/sdb3: UUID="bee41517-55b3-802c-f940-4605bc06b2d9" LABEL="OpenWrt:3" TYPE="linux_raid_member" 
 +/dev/md1: UUID="d6426954-4eed-4d17-af56-85f15dfce2b8" VERSION="1.0" MOUNT="/mnt/md1" TYPE="ext4" 
 +/dev/md2: VERSION="1" TYPE="swap" 
 +/dev/md3: UUID="eddcf2be-32f6-4be7-9c58-85dccafcf382" VERSION="1.0" MOUNT="/mnt/md3" TYPE="ext4" 
 +root@OpenWrt:~#  
 + 
 +``` 
 + 
 +う〜ん。現在`/dev/ubi0_1`をどこで`/overlay`にマウントするように設定しているのか分からない。 
 +/etc/config/fstabにはそれっぽい記述無いんだね。 
 + 
 +現在`/mnt/md1`にマウントされている`/dev/md1`を新たに`/overlay`にマウントするようにすればよさそうなんだけど。 
 + 
 + 
 +現在のrootfs(/overlay)を/mnt/md1にコピーする 
 + 
 +``` 
 +root@OpenWrt:~# tar -C /overlay -cvf - . | tar -C /mnt/md1/ -xf - 
 + 
 +``` 
 + 
 +fstabを変更する。 
 + 
 +``` 
 +root@OpenWrt:/etc/config# cat /etc/config/fstab 
 + 
 +config global 
 + option anon_swap '0' 
 + option anon_mount '0' 
 + option auto_swap '1' 
 + option auto_mount '1' 
 + option delay_root '5' 
 + option check_fs '0' 
 + 
 +config mount 
 + option target '/mnt/sda1' 
 + option uuid 'd1675450-f945-d915-a2ae-2789536908f1' 
 + option enabled '0' 
 + 
 +config mount 
 + option target '/mnt/sda2' 
 + option uuid '133d7fd3-0120-9fbf-5004-cb32421736b5' 
 + option enabled '0' 
 + 
 +config mount 
 + option target '/mnt/sda3' 
 + option uuid 'bee41517-55b3-802c-f940-4605bc06b2d9' 
 + option enabled '0' 
 + 
 +config mount 
 + option target '/mnt/sdb1' 
 + option uuid 'd1675450-f945-d915-a2ae-2789536908f1' 
 + option enabled '0' 
 + 
 +config mount 
 + option target '/mnt/sdb2' 
 + option uuid '133d7fd3-0120-9fbf-5004-cb32421736b5' 
 + option enabled '0' 
 + 
 +config mount 
 + option target '/mnt/sdb3' 
 + option uuid 'bee41517-55b3-802c-f940-4605bc06b2d9' 
 + option enabled '0' 
 + 
 +config mount 
 + option target '/overlay' 
 + option uuid 'd6426954-4eed-4d17-af56-85f15dfce2b8' 
 + option enabled '1' 
 + 
 +config swap 
 + option device '/dev/md2' 
 + option enabled '1' 
 + 
 +config mount 
 + option target '/mnt/md3' 
 + option uuid 'eddcf2be-32f6-4be7-9c58-85dccafcf382' 
 + option enabled '1' 
 + 
 +root@OpenWrt:/etc/config#  
 + 
 +``` 
 + 
 +/mnt/md1 のところを /overlay に書き換えた。 
 + 
 +<note>/etc/config/fstabを直接編集してたけど、どうも本来はuciコマンドで変更するのが正しいやり方っぽい</note> 
 + 
 + 
 +### 失敗 
 + 
 +えいやあ、で再起動してみたが、やっぱり失敗 
 + 
 +`/overlay` は `/dev/ubi0_1` のままだ。`/dev/md0`は`/overlay`にマウントできずどこかへ消えてしまった
  
 +```
 +hiroshi@VPCF24AJ-ubuntu:~$ ssh openwrt.local
  
  
 +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
 + -----------------------------------------------------
 +hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$ df
 +Filesystem           1K-blocks      Used Available Use% Mounted on
 +/dev/root                 2560      2560         0 100% /rom
 +tmpfs                   125256      2392    122864   2% /tmp
 +/dev/ubi0_1             106536     19144     82556  19% /overlay
 +overlayfs:/overlay      106536     19144     82556  19% /
 +tmpfs                      512               512   0% /dev
 +/dev/md3             2878354352        60 2732067220   0% /mnt/md3
 +hiroshi@OpenWrt:/mnt/md3/homes/hiroshi$ 
 +```
  
 +`/dev/ubi0_1` をどこか別の場所にマウントするようにしないといけないのかな:-/
 +まだ勉強が必要そうだね。
  
 +https://openwrt.org/docs/techref/block_mount
 +https://openwrt.org/docs/techref/flash.layout
  
  
  
nas/readynas_duo_v2_openwrt_extend_strage.1653832598.txt.gz · 最終更新: 2022/05/29 22:56 by nipa28