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
ここで:)