Banana Pi + OMV : RAMディスクされていた

確認するまで、外部媒体に動的ファイル(/var, /run など)を移動しようと考えていました。
というのも、以前 OMV を検証した際は フラッシュメモリへの導入は可能だが非推奨となっていたからです。
当該バージョンは 3.0.58 で2017年2月に確認しています)。

ただ、実際には RAMディスクが活用されており一先ずその必要は無さそうです。

現状確認

まず、現状を確認します。
ディスクの空きが無いのは2GBのSDカードを使ったからです。
(余裕があるなら 4GB 程度のSDカードを使ったほうが無難な気はします)。

RAM 1GB の Banana Pi M1 Classic を使っていますが、tmpfsが活用されていることが見て取れます。
また、見慣れない folder2ram なるデバイスも確認できます。
名称から RAMディスクっぽいですが確認することにしました。

$ df -lh 
Filesystem      Size  Used Avail Use% Mounted on
udev            432M     0  432M   0% /dev
tmpfs           100M  6.7M   94M   7% /run
/dev/mmcblk0p2  920M  655M  159M  81% /
tmpfs           500M     0  500M   0% /dev/shm
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
tmpfs           500M     0  500M   0% /sys/fs/cgroup
tmpfs           500M     0  500M   0% /tmp
/dev/sda1        15G  2.1G   13G  14% /srv/dev-disk-by-label-USB16GB
/dev/mmcblk0p1   58M   28M   28M  50% /boot
folder2ram      500M  3.9M  496M   1% /var/log
folder2ram      500M     0  500M   0% /var/tmp
folder2ram      500M  276K  500M   1% /var/lib/openmediavault/rrd
folder2ram      500M   16K  500M   1% /var/spool
folder2ram      500M  8.8M  491M   2% /var/lib/rrdcached
folder2ram      500M  8.0K  500M   1% /var/lib/monit
folder2ram      500M     0  500M   0% /var/lib/php
folder2ram      500M  4.0K  500M   1% /var/lib/netatalk/CNID
folder2ram      500M  420K  499M   1% /var/cache/samba
tmpfs           100M     0  100M   0% /run/user/0

folder2ram

マウント情報表示

folder2ram がどこにマウントされているか確認するために、mtab を確認します。

$ cat /etc/mtab 
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,nosuid,relatime,size=442124k,nr_inodes=110531,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=102252k,mode=755 0 0
/dev/mmcblk0p2 / btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/ 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/rdma cgroup rw,nosuid,nodev,noexec,relatime,rdma 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
sunrpc /run/rpc_pipefs rpc_pipefs rw,relatime 0 0
nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=37,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12973 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
tmpfs /tmp tmpfs rw,relatime 0 0
/dev/sda1 /srv/dev-disk-by-label-USB16GB ext3 rw,noexec,relatime,data=ordered,jqfmt=vfsv0,usrjquota=aquota.user,grpjquota=aquota.group 0 0
/dev/mmcblk0p1 /boot ext4 rw,relatime,errors=remount-ro,commit=600,data=ordered 0 0
/dev/sda1 /sharedfolders/Share ext3 rw,noexec,relatime,data=ordered,jqfmt=vfsv0,usrjquota=aquota.user,grpjquota=aquota.group 0 0
/dev/mmcblk0p2 /var/folder2ram/var/log btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/log 0 0
folder2ram /var/log tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/tmp btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/tmp 0 0
folder2ram /var/tmp tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/lib/openmediavault/rrd btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/lib/openmediavault/rrd 0 0
folder2ram /var/lib/openmediavault/rrd tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/spool btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/spool 0 0
folder2ram /var/spool tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/lib/rrdcached btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/lib/rrdcached 0 0
folder2ram /var/lib/rrdcached tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/lib/monit btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/lib/monit 0 0
folder2ram /var/lib/monit tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/lib/php btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/lib/php 0 0
folder2ram /var/lib/php tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/lib/netatalk/CNID btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/lib/netatalk/CNID 0 0
folder2ram /var/lib/netatalk/CNID tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/mmcblk0p2 /var/folder2ram/var/cache/samba btrfs rw,noatime,nodiratime,compress=lzo,ssd,space_cache,commit=600,subvolid=5,subvol=/var/cache/samba 0 0
folder2ram /var/cache/samba tmpfs rw,nosuid,nodev,noexec,relatime 0 0
tracefs /sys/kernel/debug/tracing tracefs rw,relatime 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=102252k,mode=700 0 0

mtab の見方

フォールドの並び順

1 2 3 4 5
デバイス名 マウントポイント ファイルシステム オプション 未使用

フィールドの内容

  1. デバイス名
    パーティションに付与される名称
  2. マウントポイント
    デバイスが実際にユーザが操作できるどのディレクトリに関連付けされているか
  3. ファイルシステム
    ファイルシステムタイプは、Linux では ext2, ext3, ext4 が一般的
  4. オプション
    ファイルシステムがどの状態でマウントされているか(例:読み取り専用・読み取り/書き込み)
  5. 未使用
    末尾にゼロが入っている 2 つの未使用フィールド
    (/etc/fstab との互換性のために存在)。

    • 1つ目:Dump の頻度
      dump バックアップユーティリティが使用されている場合はこのフィールドの数値で指定したファイルシステムの dump 処理を管理します。
    • 2つ目:ファイルシステムチェックの順番
      ファイルシステムチェッカーの fsck がファイルシステムの整合性をチェックする順番を管理します。

マウント情報確認

mtab の内容を表にまとめると以下のようになります。

  • tmpfs
    マウントポイント ファイルシステム
    /dev/shm tmpfs
    /run tmpfs
    /run/lock tmpfs
    /run/user/0 tmpfs
    /sys/fs/cgroup tmpfs
    /tmp tmpfs
  • folder2ram

    マウントポイント ファイルシステム
    /dev/shm
    /var/cache/samba tmpfs
    /var/lib/monit tmpfs
    /var/lib/netatalk/CNID tmpfs
    /var/lib/openmediavault/rrd tmpfs
    /var/lib/php tmpfs
    /var/lib/rrdcached tmpfs
    /var/log tmpfs
    /var/spool tmpfs
    /var/tmp tmpfs

※デバイス folder2ram は tmpfs にマウントされていることが分かります。

公式アナウンス

確認したら、OMV はバージョン 4.1 でフラッシュ製品への対応としてプラグイン「folder2ram」を導入したと情報公開されていました。

base on OMV 4.x

OPENMEDIAVAULT-FLASHMEMORY
LATEST VERSION: 4.1

folder2ram plugin for OpenMediaVault folder2ram manages temporary file systems across reboots, to decrease writes on permanent storage. This allows the installation of OMV on flash thumb drives and SD cards.

OpenMediaVault用のfolder2ramプラグインfolder2ramは、再起動後に一時ファイルシステムを管理し、永続的なストレージへの書き込みを減らします。これにより、フラッシュ・サム・ドライブとSDカードにOMVをインストールすることができます。

folder2ram は leet

leet(リート)とは、一部のアルファベットを形の似た数字や記号などに変えて表記する方法です。

to を 2 に置き換えるもので、よくあるのは「接続」・「移行」の2つです。
下記例だと、P2P が接続で P2V が移行です。

    • P2P
      • Peer to Peer
        (peer とは同等の意を表す単語)。
        複数の端末間で、対等に通信を行うアーキテクチャ(設計思想)を指す。
    • P2V
      • Physical Machine to Virtual Machine
        物理環境で稼働しているシステムを仮想環境へ移行すること。

folder2ram は folder to ram

物理デバイス上のファイル(フォルダ)を RAM 上に移行する、という意味なんですね。
納得です。