TrueNAS SCALE で Replication を設定してみました。
別の TrueNAS SCALE へデータセットをスナップショットを利用してコピーする、
コピー先の内容は上書きされる(つねにコピー元と同じ内容になる)
という動作だと思いますので、
データセットの移転、みたいな時に使うのでしょうか?
( Rsync との使い分け方が想像できてない)
Replication Tasks
TrueNAS SCALE 24.10 のドキュメントを参考に、 24.10.2 で設定しています。
TrueNAS SCALE replication allows users to create one-time or regularly scheduled snapshots of data stored in pools, datasets or zvols on their SCALE system as a way to back up stored data. When properly configured and scheduled, replication takes regular snapshots of storage pools or datasets and saves them in the destination location either on the same system or a different system.
TrueNAS SCALE レプリケーションを使用すると、SCALE システム上のプール、データセット、zvols に保存されたデータのスナップショットを 1 回限り、または定期的に作成して、保存データをバックアップすることができます。適切に設定され、スケジュールされている場合、レプリケーションはストレージ プールまたはデータセットの定期的なスナップショットを作成し、同じシステム上または別のシステム上の保存先に保存します。
Local replication occurs on the same TrueNAS SCALE system using different pools or datasets. Remote replication can occur between your TrueNAS SCALE system and another TrueNAS system, or with some other remote server you want to use to store your replicated data. Local and remote replication can involve encrypted pools or datasets.
ローカル レプリケーションは、同じ TrueNAS SCALE システム上で、異なるプールまたはデータセットを 使用して行われます。リモート レプリケーションは、TrueNAS SCALE システムと別の TrueNAS システムの間、またはレプリケー トされたデータを保存するために使用する他のリモート サーバーの間で実行できます。ローカル レプリケーションとリモート レプリケーションには、暗号化されたプールまたはデータセットを使用 することができます。
Setting Up a Simple Replication Task Overview
簡単なレプリケーションタスクの設定 概要
This section provides a simple overview of setting up a replication task regardless of the type of replication, local or remote. It also covers the related steps to take prior to configuring a replication task.
このセクションでは、ローカルまたはリモートのレプリケーションのタイプに関係なく、レプリケーションタスクの設定の簡単な概要を説明します。また、レプリケーションタスクを設定する前に取るべき関連手順についても説明します。
Prerequisites
前提条件
Before setting up a replication task, you must configure an admin user with the Home Directory set to something other than /var/empty.
レプリケーションタスクを設定する前に、ホームディレクトリを /var/empty 以外に設定した admin ユーザーを設定する必要があります。
Allow all sudo commands with no password must be selected to enable SSH+NETCAT remote replication.
SSH+NETCAT リモート レプリケーションを有効にするには、パスワードなしのすべての sudo コマンドを許可 を選択する必要があります。
Remote replication requires setting up an SSH connection in TrueNAS before creating a remote replication task.
リモート レプリケーションでは、リモート レプリケーション タスクを作成する前に、TrueNAS で SSH 接続を設定する必要があります。
Verify the SSH service settings to ensure you have Root with Password, Log in as Admin with Password, and Allow Password Authentication selected to enable these capabilities. Incorrect SSH service settings can impact the admin user ability to establish an SSH session during replication and require you to obtain and paste a public SSH key into the admin user settings.
SSH サービス設定を確認し、Root with Password、Log in as Admin with Password、および Allow Password Authentication が選択されていて、これらの機能が有効になっていることを確認します。SSHサービスの設定が正しくない場合、レプリケーション中に管理者ユーザーがSSHセッションを確立する機能に影響を与える可能性があり、パブリックSSHキーを取得して管理者ユーザー設定に貼り付ける必要があります。
Replication tasks typically require a configured and active periodic snapshot task.
レプリケーション・タスクには通常、構成済みでアクティブな定期スナップショット・タスクが必要です。
ということで、いろいろ書いてある割には手順的な内容ではないので、推測で
両方の TrueNAS SCALE で
/mnt/tank/share
というデータセットを作成してローカル側に少しファイルをコピーして、リモート側に Replication で同期されるイメージです。
コピー先になる TrueNAS SCALE の方でSSHサービスを設定します。
(画面の見分けがつくようにコピー先はブルーテーマ)
一応、デフォルトのまま実行すればよさそうですので、
System > Services
あんまりいじるような項目はないのでデフォルトのまま。
SSH を Running Start Automatically の2箇所をクリックして開始して、起動時に自動起動する。
あとはコピー元の TrueNAS SCALE 側(ダークテーマ)で作業していく。
Replication は Periodic Snapshot のデータを使うので、先に設定しておきます。
Data Protection > Periodic Snapshot Tasks
で
Add
どういう設定がいいかは人によるかと思います。
画面では Pending になっていて、19時間後に実行予定になっていますが、 Periodic Snapshot がないと Replication できないので、スケジュールを調整して、なんとか1回でも完了する。
「ホームディレクトリを /var/empty 以外に設定した admin ユーザーを~」
のくだりは、
TrueNAS CORE から引き継いでる root で /root
TrueNAS SCALE で新規インストールした admin で /home/admin
TrueNAS SCALE 24.10.2 で新規インストールした truenas_admin で /home/truenas_admin
ですが
サイドグレードして後から追加した admin や truenas_admin はデフォルトだと /var/empty になっているようなので注意が必要そうです。
Credentials > Backup Credentials
SSH Connections の Add
Name And Method
Name 適当に設定
Setup Method Semi-automatic (TrueNAS only) コピー先がTrueNASなのでこの選択
Authentication
TrueNAS URL リモート側の TrueNAS SCALE のIPアドレス
Admin Username truenas_admin
Admin Password リモート側の truenas_admin のパスワード
Username root ここは truenas_admin じゃなくて root の方が良さそう
Private Key Generate New
Save
SSH Connections が登録されました。
SSH Keypairs はそのうち登録されます。
Data Protection
で
Replication Tasks の add
Source Location On this System
Source データセットを指定
Destination Location On a Different System
SSH Connection さっき作成したヤツ(スクショでは違うのご容赦)
Destination リモート側の TrueNAS SCALE のデータセットを指定。Rsync と違ってデータセットを指定
SSH Transfer Security
● Encryption 暗号化してセキュアに、その代わり遅い
◎ No Encription スピード重視
□ Use Sudo For ZFS Commands rootユーザーじゃないと必要になるっぽい。
When
いつ実行するかの設定。
Run Once は1回。
タスクが追加されました。
再生ボタンみたいなので即時実行ができます。
Continue
すぐ Finished 表示になるけど、実際は裏で SnapShot 転送する。
転送が完了するとコピー先のSMBにアクセスできない。
コピー先のデータセット見ると、
Locked
になっている。
データセットの情報が丸ごと転送されるので暗号化キーもコピー元のものを使ってロックを解除する感じかなと。
tank を暗号化しているのが継承されているので
tank の
ZFS Encryption の Export Key をクリック
表示された文字列をコピーする。
コピー先の share データセットの Unlock をクリック
● Provide keys/passphrases manually
を選択して、
Dataset Key に先ほどの文字列をペーストして
Save
Continue
アンロックに成功したようなので
Close
デーセットがアンロックされてSMBでもアクセスできるようになったけど、これでいいのかな。