TrueNAS 25.10.1 で Rsync を設定して、
別の TrueNAS 25.10.1 にフォルダの内容をコピーしてみます。
TrueNAS SCALE 25.10.1 Goldeye
Rsync の設定方法としては、遠隔側のマシンで Rsync デーモンを動かす方法と、 SSH接続を利用する方法があるみたいですが、 TrueNAS 25.10.1 では Rsync デーモンがサービスで動作させられないので、実質 SSH接続一択です。
結構長々とした手順になります。
(とりあえず手順の調整だけで力尽きたのでまずはテキストのみ)
TrueNAS Scale 25.10.1: Rsyncタスクの設定手順 (Push / SSH)
公式ドキュメントは Configuring Rsync Tasks ですが、本記事は単純な翻訳ではなく、実運用に基づいた構成手順を解説します。
今回は、送信元 TrueNAS と 宛先 TrueNAS の両方に rsyncuser という専用ユーザーを作成して設定を行います。
なぜ rsync 用ユーザーを普段使いのユーザーと分けるのか
設定を始める前に、なぜユーザーを分ける必要があるのかを明確にします。
- rsync は「人」ではなく「仕組み」が動かす処理です
rsync タスクは、無人で、定期的に、長期間動き続ける自動処理です。 - 普段使うユーザーは「人」に紐づく存在です
パスワード変更、グループ変更、ACL調整、削除などが発生しえます。
性質が異なるものを同一ユーザーで運用すると、権限や設定の変更により必ずどこかで破綻します。
ユーザーを分けるメリット
- 権限と責務の分離
rsyncuserは「指定場所に書き込むだけ」、普段のユーザーは「SMBで閲覧・編集する」と役割を分けることで、rsync が ACL を壊したり、逆に SMB 操作が rsync を阻害する事故を防げます。 - トラブル時の切り分けが容易
ファイル所有者やアクセスの問題が起きた際、rsyncuserが関わっていれば rsync 側の問題、そうでなければ SMB 側の問題と即座に判断できます。 - セキュリティの向上
rsyncuserは sudo 権限なし、アクセス先限定、SSH は鍵認証のみという最小権限で運用できるため、普段使いのユーザーに自動処理用の鍵を持たせるより安全です。
設定手順の全体像と前提
以下の前提に従って設定を行います。
- SSH はユーザーの home ディレクトリを前提に動作する
- 鍵は TrueNAS の Key chain で管理する
- rsync はデータを置くだけに専念させる
- SMB で見せ方と権限を管理する
Step 1:両方の TrueNAS にホーム用データセットを作成する
SSH 鍵や rsync 実行環境は必ずユーザーの home ディレクトリを使用します。曖昧なシステム領域を使用すると後で不整合が生じるため、明確なデータセットを作成します。
実施内容(送信元・宛先とも)
- Path: 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 は宛先ユーザーが存在する前提で動作するため、先に作成します。
実施内容(両方共通)
- Path: 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 データ保存用データセットを作成する
コピー先となる場所ですが、既存のデータセットを使用すると事故のもとになります。
実施内容(宛先のみ)
- Path: 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 で一元管理し、タスクと分離することで再利用を容易にします。
実施内容
- Path: Credentials → Backup Credentials → SSH Connections → Add
- Setup method: Semi-automatic (TrueNAS only)
- Username:
rsyncuser - Action: 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)
各オプションの意味を理解して設定します。
基本設定
- Path: Data Protection → Rsync Tasks → Add
- Direction: Push
- Rsync Mode: SSH
- Connect using: SSH connection from key chain
- SSH connection: Step 4で作成したもの
- Remote Path: 既存ディレクトリの1階層上(コピーしたいディレクトリ自体を指定すると、その中にディレクトリが作成されてしまいます)
More Options 設定
| 設定項目 | 推奨 | 理由 |
|---|---|---|
| Preserve permissions | OFF | 権限管理は宛先(SMB)に任せるため |
| Preserve xattrs | OFF | - |
| Archive | OFF | 複数のオプションをまとめてONにする危険なスイッチのため |
| Quiet | OFF | トラブルシュートのためにログを残すべき |
| Times | ON | 時刻同期のため |
| Compress | ON | 圧縮転送のため |
| Delay Update | ON | 一時ファイルとして転送後、リネームで置き換えるため安全 |
※ Delete オプション(ミラーリング)は任意ですが、ミラー運用であれば Replication 機能の方が妥当です。
オフ推奨の項目(オプションにない場合も含む)
- Preserve owner
- Preserve group
- Preserve ACLs
rsync では権限設定はコピーしないのがセオリーです。
Step 7:実行・確認
最後に手動実行を行い、ログを確認し、SMB からデータが正しく参照できるか確認します。
最後に:対 Linux の場合
TrueNAS 同士であれば上記の手順で済みますが、相手先が Linux となると、以下の点をすべて手作業で保証する必要があり、非常に手間がかかります。
- 鍵配置
- ユーザー作成
- home / shell / パーミッション設定
- rsync の実行環境
本来、TrueNAS 同士なら Replication が推奨され、Rsync は異機種間同期という位置づけですが、トラブルを避けるために TrueNAS 同士であっても慎重な設定が必要です。