無効なSSH接続でLinux上のZFS送受信リカバリ

無効なSSH接続でLinux上のZFS送受信リカバリ

LinuxでZFSを使用しており、リモートレプリケーションを設定しようとしています。しかし、私のSSH接続が悪く、SSHを介してzfsの送受信が再開されます。 ZoLに問題があることはわかっていますが、いつ実装されるのか、新しい安定版がリリースされるのかはわかりません。私はmbbufferについて聞いたが再起動しないようです。 sshを実行してもzfs send | | のように使用できますが、わかりません。

zfs をファイルに送信し、 --append --partial を使用してリモートで rsync して復元します。しかし、スペースを占有し、受動的な助けが必要で、汚れた解決策です。すべてのスナップショットを含むプールイメージを維持するために、sanoid / syncoidなどの自動化されたソリューションが必要です。同じ操作を実行しますが、すべてのスナップショットをリモートに保ち、成功した同期後にホスト上のファイルを削除するなどのbashスクリプトがある可能性があります。助けてください

PS:重複した質問がありますが、解決策はありません。私の問題では、汚れた解決策を使用し、それを交換または改善したいと思います。

答え1

-s送信が失敗した場合は、受信側に回復可能なトークンを格納するzfs receiveオプションを使用できます。これは、netcat(nc)を使用するのかSSHを使用するのかによって異なります。

recvマシンに (インターネット猫のみ):

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

ここで:)

関連情報