TrueNAS 25.10.1 で Rsync を設定する

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調整、削除などが発生しえます。

性質が異なるものを同一ユーザーで運用すると、権限や設定の変更により必ずどこかで破綻します。

ユーザーを分けるメリット

  1. 権限と責務の分離
    rsyncuser は「指定場所に書き込むだけ」、普段のユーザーは「SMBで閲覧・編集する」と役割を分けることで、rsync が ACL を壊したり、逆に SMB 操作が rsync を阻害する事故を防げます。
  2. トラブル時の切り分けが容易
    ファイル所有者やアクセスの問題が起きた際、rsyncuser が関わっていれば rsync 側の問題、そうでなければ SMB 側の問題と即座に判断できます。
  3. セキュリティの向上
    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 設定について
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 同士であっても慎重な設定が必要です。

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

About

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

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

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

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

Powered by
Movable Type 3.35