minidlnaでnfsマウントを使わない100のことの話 こともない

100ってそんなにありませんが…

DLNAサービスであるminidlnaですが、メディアをNFSサーバからNFSマウントして使わない方が良い理由をまとめておきます。

結論から書きますと、なぜか問題は解消されています。

差から考えると、特権モードですね。
これによりNFSでのinode抽出が出来るのでしょうか?(要調査:ネタ記事追加)
何!NFSだとinotifyが動かないだ、と、の話
この記事も修正ですね;;

捨て記事ですが、minidlnaのコンソールでの確認方法とかtipsがあればと思い残しておきます

1.NFSで自動ファイル増減が判断できない こともない

/ # minidlnad -d
[2021/08/22 00:14:23] minidlna.c:529: debug: Using locale dir ‘/usr/share/locale’ and locale langauge C/C.UTF-8
[2021/08/22 00:14:23] minidlna.c:1124: warn: Starting MiniDLNA version 1.3.0.
[2021/08/22 00:14:23] minidlna.c:138: error: bind(http): Address in use
[2021/08/22 00:14:23] minidlna.c:1192: fatal: Failed to open socket for HTTP. EXITING
[2021/08/22 00:14:23] monitor.c:184: debug: Add watch to /mnt/nfs
[2021/08/22 00:14:23] monitor.c:155: info: Added watch to /mnt/nfs [1]
[2021/08/22 00:14:23] monitor.c:191: debug: Add watch to /mnt/nfs
[2021/08/22 00:14:23] monitor.c:155: info: Added watch to /mnt/nfs [1]
[2021/08/22 00:14:23] monitor.c:191: debug: Add watch to /mnt/nfs/movie

ファイルをSSHにて転送…

scp … 略!

デバッグモードで状況を確認

/ # minidlnad -d
[2021/08/22 00:15:37] minidlna.c:529: debug: Using locale dir ‘/usr/share/locale’ and locale langauge C/C.UTF-8
[2021/08/22 00:15:37] minidlna.c:1124: warn: Starting MiniDLNA version 1.3.0.
[2021/08/22 00:15:37] minidlna.c:138: error: bind(http): Address in use
[2021/08/22 00:15:37] minidlna.c:1192: fatal: Failed to open socket for HTTP. EXITING

メディア数 97件?増えている?

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>97</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

VLCでもコンテンツは確認…

減らしてみる rm

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>96</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

減るよぉ〜

なぜだぁ〜!

1.コンテンツリフレッシュすると戻れない こともない

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>96</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

コンテンツリフレッシュ

/ # minidlnad -R

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>96</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

変化がなし?

-Rコマンド実行後にでバグモードに入ると…

/ # minidlnad -d
[2021/08/22 00:06:17] minidlna.c:529: debug: Using locale dir ‘/usr/share/locale’ and locale langauge C/C.UTF-8
[2021/08/22 00:06:17] minidlna.c:1124: warn: Starting MiniDLNA version 1.3.0.
[2021/08/22 00:06:17] minidlna.c:395: warn: Creating new database at /minidlna/cache/files.db
[2021/08/22 00:06:17] minidlna.c:138: error: bind(http): Address in use
[2021/08/22 00:06:17] minidlna.c:1192: fatal: Failed to open socket for HTTP. EXITING
/ # [2021/08/22 00:06:17] scanner.c:731: warn: Scanning /mnt/nfs
[2021/08/22 00:06:17] scanner.c:731: info: Scanning /mnt/nfs/movie

[2021/08/22 00:06:22] metadata.c:835: debug: Container: ‘mov,mp4,m4a,3gp,3g2,mj2’ [HK/変態仮面 アブノーマル・クライシス.m4v]
[2021/08/22 00:06:22] metadata.c:1262: debug: Stream 0 of HK/変態仮面 アブノーマル・クライシス.m4v is h.264

[2021/08/22 00:06:50] scanner.c:820: warn: Scanning /mnt/nfs finished (96 files)!
[2021/08/22 00:06:50] playlist.c:135: warn: Parsing playlists…
[2021/08/22 00:06:50] playlist.c:269: warn: Finished parsing playlists.
[2021/08/22 00:06:50] scanner.c:939: debug: Initial file scan completed

動いているな…

1.サービスを再起動するとメディア数がリセットされるまま こともない

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>96</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

/ # service minidlna restart
 * WARNING: minidlna is already starting

コンテンツ数96件の変更なし

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>96</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

変化しない…だ…と?

1.OS起動時にメディア件数は変わらない こともない

Dockerやvmの場合はあまり再起動させないかと思いますが、再起動するとカウントが変わりません
再起動前に100件あっても、100件になります

検証

初期状態の確認

メディア数がは96件です。
HTML結果は編集しています。

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>96</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

再起動を実施

/ # reboot

… コンテナが死ぬので、ContainerStationで起動を押下

端末から動作を確認

/ # curl http://localhost:8200
<HTML><HEAD><TITLE>MiniDLNA 1.3.0</TITLE></HEAD><BODY><div style=”text-align: center”><h2>MiniDLNA status</h2></div><h3>Media library</h3><table border=1 cellpadding=10><tr><td>Audio files</td><td>0</td></tr><tr><td>Video files</td><td>96</td></tr><tr><td>Image files</td><td>0</td></tr></table></BODY></HTML>

変化がない…

検証環境の構築メモ

サーバ : QNAP TS-351
サービス : ContainerStation

image:vladgh/minidlna:latest

アイテム
名称minidlna-test
エントリーポイント/sbin/tini — /entrypoint.sh
自動起動Disable
CPU100 %
メモリー制限15906 MB
環境PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MINIDLNA_FRIENDLY_NAME=movie
MINIDLNA_MEDIA_DIR=/mnt/nfs
ネットワークモードBridge(DHCP を使用する)
ユーザーインターフェイスAdapter 1 (Virtual Switch 5)
ホストパスマウントポイント
/movie/movie/mnt/nfs/movie 読み取り専用

これにて検証

IP : 192.168.1.96

/ # ip a | grep 192
inet 192.168.1.96/24 brd 192.168.1.255 scope global eth0

参考 : DLNAサーバを構築する