LinuxでZFSを使用していて、リモート複製をセットアップしようとしています。しかし、私はssh接続に問題があり、sshを介したzfs send/receiveが再起動します。 ZoLに問題があることは知っていますが、いつ実装されるか、または新しい安定版リリースが来るかはわかりません。 mbufferについて聞きましたが、再起動できないようです。たぶん、zfs sendのようにそれを使用することが可能です| mbuffer |真である間; sshを実行...;完了しましたが、よくわかりません。
現在私はzfsをファイルに送信し、--append --partialを使用してrsyncを実行してリモートに復元します。しかし、それはスペースを消費し、手動の支援を必要とし、汚いソリューションです。すべてのスナップショットでプールのミラーを維持するために、sanoid/syncoidなどの自動化されたソリューションが必要です。たぶん同じことをするいくつかのbashスクリプトが、すべてのスナップショットをリモートに保持し、それらが正常にrsyncされたときにホスト上のファイルを削除します。
追伸重複する質問があることは知っていますが、解決策はありません。私の質問では、汚い解決策を使用していますが、それを交換または改善したいと思います
-s
zfs receiveのオプション。転送が失敗した場合、受信側で再開可能なトークンを保存します。 netcat(nc)とSSHのどちらを使用しているかによって異なります。
recv
マシン上(netcatのみ):
nc -l <port> | zfs receive -s -v tank/dataset
send
マシン:
通常はsend
から始めます。
zfs send -v snapshot | nc <Host> <port>
zfs send -v snapshot | ssh ... zfs receive -s -v tank/dataset
転送が失敗した場合は、recv
マシンで次のように入力します:
zfs get all tank/dataset
receive_resume_token
とsend
マシンに移動します:
zfs send -v -t <token> | nc <Host> <port>
zfs send -v -t <token> | ssh ... zfs receive -s -v tank/dataset
どうぞ :)