TrueNAS 25.10.1 で Rsync を設定する

TrueNAS 25.10.1 で Rsync を設定して、
別の TrueNAS 25.10.1 にフォルダの内容をコピーしてみます。

Rsync の設定方法としては、遠隔側のマシンで Rsync デーモンを動かす方法と、 SSH接続を利用する方法があるみたいですが、 TrueNAS 25.10.1 では Rsync デーモンがサービスで動作させられないので、実質 SSH接続一択です。

結構長々とした手順になります。

(とりあえず手順の調整だけで力尽きたのでまずはテキストのみ)


rsync 用のユーザーを送信元 TrueNAS と 宛先 TrueNAS の両方に作成します。
同一の名前である必要はありませんが、わかり易いように今回は両方とも
rsyncuser
というユーザーを作成します。

なぜ rsync 用ユーザーを普段使いのユーザーと分けるのか

最初に、この点を明確にします。
rsync は「人」ではなく「仕組み」が動かす処理

rsync タスクは、
無人で
定期的に
長期間
動き続ける 自動処理です。

一方、普段使うユーザーは、
パスワードを変える
グループを変更する
ACL を調整する
場合によっては削除する
いう 人に紐づく存在です。

👉性質がまったく異なるものを同じユーザーにすると、
必ずどこかで破綻します。
rsync 用ユーザーを分けることで、

rsyncuser
→ 「指定された場所に書き込むだけ」

普段のユーザー
→ 「SMB で閲覧・編集する」

という 権限と責務の分離ができます。

これにより:
rsync が ACL を壊す
SMB の操作が rsync を壊す

といった事故を防げます。

トラブル時の切り分けが容易になる

もし将来、
ファイルの所有者がおかしい
SMB でアクセスできない
rsync が失敗する
といった問題が起きた場合、

rsyncuser が関わっていれば rsync 側
普段のユーザーが関わっていれば SMB 側

と 原因を即座に切り分けできます。

セキュリティ面でも安全

rsyncuser は:
sudo 権限なし
アクセス先は限定
SSH は鍵認証のみ

という 最小権限ユーザーです。

普段使いのユーザーに
「自動処理用の鍵」を持たせるより、
はるかに安全です。

手順全体の考え方

SSH はユーザーの home を前提に動く
鍵は TrueNAS が管理(Key chain)する
rsync はデータを置くだけ
SMB は見せ方と権限を管理
rsync 用ユーザーと人のユーザーは分ける

この前提を満たす選択肢だけを使います。

Step 1:両方の TrueNAS にホーム用データセットを作成する

理由
SSH 鍵や rsync 実行環境は、
必ずユーザーの home ディレクトリを使います。

曖昧な home や system 領域では、
後から不整合が出ます。

実施内容(送信元・宛先とも)
Storage → Pools → tank → Add Dataset
Dataset name:home
Mount point:/mnt/tank/home
Share type:Generic
(ACL type:POSIX)

Step 2:送信元・宛先の両方で rsync 用ユーザーを作成する

理由
Semi-automatic SSH setup は
宛先ユーザーが存在する前提で動作
鍵配置・接続確認が自動で行われる

実施内容(両方共通)
Credentials → Local Users → Add
Username:rsyncuser
Home directory:/mnt/tank/home
(配下にユーザー名で作成される)
Shell:/usr/bin/zsh (何でもいい)
Password:設定する(初期のみ)
Allow SSH Login with Password:ON(初期のみ)
sudo:なし

Step 3:宛先側で rsync データ保存用データセットを作成する

理由
コピー先となる場所ですが、既存のデータセットを使用すると事故ります。

実施内容(宛先のみ)
Storage → Pools → tank → Add Dataset
Dataset name:例 backup_from_sender
Mount point:/mnt/tank/backup_from_sender
Share type:SMB
ACL type:SMB

ACL は 宛先側で管理します。
rsyncuser を owner に設定してください。
追加のユーザーとしてフルコントロールを与えるだけではダメです。
(owner を変更したい場合は、 rsync でコピーすることがなくなったら、という認識にしてください)


Step 4:送信元で SSH 接続(Key chain)を作成する

理由
鍵を TrueNAS が一元管理
タスクと鍵を分離
将来の再利用が容易

実施内容
Credentials → Backup Credentials → SSH Connections → Add
Setup method:Semi-automatic (TrueNAS only)
Username:rsyncuser
Generate New Key
Save

Step 5:rsync ユーザーのパスワード SSH を無効化する

理由
自動処理ではパスワード認証は不要です。

実施内容
rsyncuser を編集
Public SSH Key が登録されているのが確認できます。
Allow SSH Login with Password:OFF
パスワード自体も使わないので、
□ SMB Access のチェックを外して
■ Disable Password

Step 6:Rsync Task を作成する(Push / SSH)

Data Protection → Rsync Tasks → Add
Direction:Push
Rsync Mode:SSH
Connect using:SSH connection from key chain
SSH connection:作成済みのもの
Remote Path:既存ディレクトリの1階層上、コピーしたいディレクトリ自体を指定すると、その中にディレクトリを作成してコピーされる

More Options
OFFにすること
□ Preserve permissions
□ Preserve xattrs
□ Archive 複数のオプションをまとめてオンにする危険スイッチ
□ Quiet 進捗や通常ログを抑止、TrueNAS ではどうせ見えないのでトラブルシュートの為にも残すべき

ONでOK
■ Times 時刻同期
■ Compress 圧縮転送
■ Delay Update ファイルを一時ファイルとしてコピーしてからリネームして置き換える

任意
□ Delete 宛先にしか存在しないファイルは削除する(ミラー)
※ただし、ミラー運用なら Replication の方が妥当


オプションにはないけどオフ推奨
Preserve owner
Preserve group
Preserve ACLs

rsync では権限設定はコピーしないのがセオリー。


Step 7:実行・確認

手動実行
ログ確認
SMB から参照確認


なお、
TrueNAS 同士でコレですから、
相手先が Linux となるとどこを個別対応するのか、
気が遠くなります。
(Relication と比べて Rsync は別フラットフォームとの同期用という位置づけのはずなのに)

相手が Linux になると:
鍵配置
ユーザー作成
home / shell / パーミッション
rsync の実行環境
を自分の手作業で保証する必要があるはずです。

コメントは無効になっていますので、何かありましたらフォームかTwitter(X)で。

About

2025年12月31日 18:24に投稿されたエントリーのページです。

ひとつ前の投稿は「TrueNAS 25.10.1 のデータ保護のための設定」です。

次の投稿は「TrueNAS 25.10.1 で Replication を設定する」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35