qnapに備わるアプリの一つ
クラウドストレージ向けのproxyサーバ(キャッシュあり)って感じでしょうか
個々のクライアント(windows/macOS)がそれぞれクラウドストレージに直接アクセスするより近くの1台のproxyにアクセスするので先方に負荷がかからない
また、HybridMount では複数のクラウドストレージ(Box,Azure,OneDriveら)を纏めれるのでアクセス先がこれ一つになる
あと別のNFSサーバのストレージをマウントすることも可能。この場合はQNAPのsmb/nfs/afp経由でアクセスは不可であまり意味がないのだけど、
QNAP内のFileStationから参照可能。しかもQNAP内部にはcron機能とrsyncコマンドがあるのでデータの複製とかには有利かな
ここでは電顕カメラサーバに納められている撮影データをQNAPのストレージに転送することを目的とします。
さいきん、カメラサーバっていうか撮影されたデータを置く場所がwindowsマシンからlinuxマシンになったようで、nfsで接続できるみたい. っでその実はKVMマシーンのVMだったりするみたい
既定ではインストールされていないようでQNAPの「App Center」を開いて
アプリ検索欄に「HybridMount」を入力するとアプリが表示されます。
もしインストールされていないなら、「+インストール」をクリックしてインストールを行います。
インストールが完了するとディスクトップに「HybridMount」のアイコンが表示される

これを起動すると、説明やらウィザードらが表示されるが、それをキャンセルすると下記画面が表示される

画面右上の「リモートマウントの作成」ボタンを押下してウィザードでnfsサーバ(カメラサーバ)をマウントします
下記画面で右側にある「リモートデバイスに接続する」の「作成」ボタンをクリックします

「ネットワークドライブマウントウィザード」画面が表示されます。

ここで「プロトコル」欄のプルダウンを開くと下記のように選択肢がでてきます。ここでは相手がnfsなので「NFS」を選びます

そしてnfsサーバを指定して、「宛先フォルダー」を「ひとつのフォルダー」にして、「参照」ボタンを押下します

するとnfsサーバでのフォルダ構成が下記のように見えます
「/bogdata/StorageServer/OffloadData」と見えまして、この「OffloadData」配下に撮影データが収まります。ここを丸ごとQNAP側に持っていく算段となります。

「OffloadData」フォルダを選択すると下記のように一つ前の画面に戻ります。ここで「作成」ボタンを押下してmountさせます。

これでnfsマウントは完了して、HybridMountに定義され、その状況も確認できます

これで再起動してもQNAPはnfsサーバをmountします
HybridMountで作ったmount pointは、QNAPのFileStation5からは下記のよう見える

また外部からsshでQNAPの内部に入って中を見てみると
[~] # ls -ld /share/OffloadData
lrwxrwxrwx 1 admin administrators 52 2026-02-07 21:58 /share/OffloadData -> external/.nd/0/0ed0cd589-c47e-4f36-99cc-0745292595c6/
[~] #とHybridMountで作った「接続名」がマウントポイントになります。
っであとはスクリプトを作って、それをcronで回す。
スクリプトはこんな感じ。HybridMountで作られたmount先が確実に存在している事が必須なので、nfs先に「/share/OffloadData/_offloaddata_」なるファイルを用意する。
この空ファイルがあればmountしている。なければmountしていないと判断させる.
スクリプトの於き場所は「/share/Public/script/offloaddata2qnap.sh」とします。
nfsサーバのデータは、qnapの「/share/Public/OffloadData/」としてます。
#!/bin/bash
if [ -f /share/OffloadData/_offloaddata_ ]; then
if [ -f /share/Public/script/run ]; then
exit
else
touch /share/Public/script/run
fi
else
exit
fi
/usr/bin/rsync -rltgoDv \
--chmod=ugo=rwX \
/share/OffloadData/ /share/QnapOffloadData/ \
--log-file=/share/homes/supervisor/script/log/rsync-`date +%Y%m%d-%H%M`.log
# 所有者を変更するなら
find /share/QnapOffloadData \( ! -user supervisor -o ! -group everyone \) \
-exec /bin/chown supervisor:everyone {} +
# フォルダのパーミッション変更
find /share/QnapOffloadData -type d ! -perm 755 \
-exec /bin/chmod 755 {} +
# ファイルのパーミッション変更
find /share/QnapOffloadData -type f ! -perm 644 \
-exec /bin/chmod 644 {} +
# QNAPのrsyncが古いので下記のようなchown表記やchmod表記が使えないみたい
#/usr/bin/rsync -av \
# /share/OffloadData/ /share/Public/OffloadData/ \
# --chown=cryoem:cryoem --chmod=F440,D550 \
# --log-file=/share/Public/script/log/rsync-`date +%Y%m%d-%H%M`.log
#特定ファイルのみ転送したいなら「include」や「exclude」を使う
#/usr/bin/rsync -rltDvog \
# /share/OffloadData/ /share/Public/OffloadData/
# --include="*/" --include="*.tiff" --include="*.gain" --exclude="*" \
# --chown=cryoem:cryoem --chmod=F440,D550 \
# --log-file=/share/Public/script/log/rsync-`date +%Y%m%d-%H%M`.log
/bin/rm -f /share/Public/script/run
としてcrontabで
MAILTO=""
*/10 * * * * /share/Public/script/offloaddata2qnap.sh > /share/Public/script/log/out 2>&1とします。