Hubungkan kembali koneksi ssh tanpa merusak pipa

1

Saya memiliki dua mesin di situs yang berbeda. Dua mesin memiliki volume FreeBSD dan ZFS. Yang satu adalah tuan. dan yang lainnya adalah cadangan.

Saya biasanya melakukan backup dengan perintah ini yang dipanggil oleh cron.

zfs send -i pool/vol@old pool/vol@new | ssh backup zfs recv pool/vol

Tapi foto itu cukup besar. Perlu lebih dari 24 jam, dan kadang-kadang koneksi terputus. Jika itu terjadi saya perlu mengirim ulang byte pertama.

Apakah ada cara untuk menghubungkan kembali koneksi ssh tanpa pipa rem?

Sebagai contoh, saya dapat membayangkan perintah chunked_send dan chunked_recv.

zfs send -i pool/vol@old pool/vol@new | chunked_send id1 ssh backup chunked_recv id1 zfs recv pool/vol

memperbarui:

Salah satu solusi naif adalah menggunakan file sementara dan rsync.

zfs send -i vol@old vol@new | split -b 1024m backup-tmp.
rsync backup-tmp.* backup:/tmp
ssh backup 'cat /tmp/backup-tmp.* | zfs recv vol'

Saya merasa ini tidak pintar.

user295103
sumber
Mungkin Anda ingin menggunakan rsync untuk ini?
davidbaumann
Apakah maksud Anda menggunakan rsync pada awalnya atau menggunakan rsync untuk mengirim chunk? Menggunakan rsync untuk cadangan adalah satu opsi, tetapi perlu memindai semua daftar file alih-alih hanya file yang dimodifikasi. Menggunakan rsync untuk mengirim chunk, itu membutuhkan penulisan disk sementara.
user295103

Jawaban:

0

Coba enkapsulasi koneksi TCP dalam paket UDP. Cara paling sederhana untuk melakukan ini adalah dengan menginstal a OpenVPN jaringan udp antara dua server.

Koneksi UDP dapat membuat koneksi terputus-putus. Koneksi SSH melalui UDP VPN tampaknya tidak terputus. Saya tidak yakin tentang perintah Anda, tetapi saya cukup yakin itu akan menolak pemutusan jika digunakan melalui jaringan OpenVPN.

Saya sudah menulis Panduan instalasi OpenVPN untuk Debian itu dapat membantu Anda. Ini menyediakan alat yang memudahkan pengaturan server OpenVPN.

Biapy
sumber