Cadangkan / Klon partisi btrfs

9

Apakah mungkin untuk membuat cadangan partisi btrfs kata demi kata (termasuk semua struktur bersama yang menghemat ruang dengan menandai pohon snapshot sebagai COW) ke yang lain? Sebagai contoh, saya ingin mem-backup partisi root saya yang memiliki beberapa subvolume btrfs (snapshots dari / itu sendiri).

Satu-satunya cara saya dapat berpikir adalah dengan menggunakan alat penyalin blok seperti ddtapi itu tidak efisien karena partisi saya hanya 20% penuh dan saya bermaksud untuk mencadangkannya secara teratur. Saya sudah mem-backup semuanya secara bertahap rsync, jadi ini bukan solusi untuk masalah lain. Saya hanya perlu sedikit untuk mengkloning partisi btrfs saya tanpa harus menggunakan alat seperti dd.

Saya tahu ext3, misalnya, menyediakan utilitas dump dan restore. Itu adalah hal yang saya cari.

MEMPERBARUI

Berikut ini adalah pembaruan untuk mengklarifikasi fakta bahwa saya ingin dapat mengakses file pada penyimpanan cadangan dengan cara yang sama seperti pada disk langsung (yaitu saya tidak ingin menyimpan file dump pada penyimpanan cadangan).

Mansour
sumber

Jawaban:

6

partclone adalah alat yang Anda cari.

  • ini mendukung banyak sistem file linux, termasuk BTRFS
  • bahkan mendukung beberapa sistem file lain (seperti FAT atau exFAT)
  • tidak seperti dditu terlihat pada peta alokasi sistem file (misalnya: FAT dan tabel FAT exFAT, peta tingkat BTRFS, dll.) dan mengkloning hanya blok yang digunakan.

Tergantung pada pola penggunaan Anda:

  • gunakan -b(long --dev-to-dev:) jika sumber dan target perangkat hitam cadangan terlihat pada mesin yang sama (pada dasarnya jika kedua disk dicolokkan ke komputer yang sama).
  • atau gunakan -cdan -r(panjang: --clonedan --restore) untuk pertama-tama mengkloning ke format gambar partclone sendiri pada mesin sumber, dan kemudian mengembalikan dari gambar pada mesin cadangan
  • menurut partclone manpage , dimungkinkan untuk mem -pipe gambar, jadi harus mungkin untuk menyalin partisi melalui jaringan tanpa menyimpan file yang sebenarnya, jika Anda kekurangan ruang, tetapi memiliki jaringan yang sangat andal.

Cara yang sama sekali berbeda untuk menangani masalah akan menggunakan btrfs senddan btrfs receivemekanisme.

  • Ini TIDAK AKAN menghasilkan salinan perangkat blok ke sektor
  • tetapi, dengan memberikan referensi di kedua ujungnya dengan benar, ia juga dapat menyimpan referensi di antara file-file yang ditautkan kembali.

Jadi mekanisme btrf sendiri bukan salinan sempurna sektor (tidak seperti partclone) tetapi ini merupakan salinan sempurna tingkat (jauh lebih baik daripada rsynv -aSHAXyang hanya menangani file yang di-link).

DrYak
sumber
1

Pipa keluaran ddmelalui sesuatu seperti bzip2atau program kompresi favorit Anda yang akan dibaca dari input standar. Saya telah melakukan ini pada disk 500 GB yang memiliki instalasi yang relatif kecil dan berakhir dengan file 8 GB.

Cry Havok
sumber
1
Anda harus mengisi ruang kosong dengan nol terlebih dahulu (mis. cat /dev/zero > zeroes) Untuk menyingkirkan data yang tidak terhubung yang masih ada di disk. Tapi itu mungkin tidak berfungsi lagi ketika BTRFS mendapatkan deduplikasi data tingkat blok di masa depan.
Wim Coenen
Silakan lihat pembaruan untuk pertanyaan saya.
Mansour
1

Belum mencoba, tetapi btrfs-imagetampaknya menyelesaikan masalah ini:

https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-image

Pembaruan: Jangan gunakan ini sebagai cadangan. Terima kasih atas komentarnya.

Saya membiarkan ini terbuka dan tidak akan menghapusnya, sehingga orang lain dapat belajar darinya juga.

Jonas Stein
sumber
2
Peringatan, gambar btrfs hanya menyalin data META, bukan data dalam file itu sendiri. (Ini digunakan untuk mengirim salinan ke pengembang sehingga mereka dapat melihat apa yang salah. Tidak menyalin data).
DrYak
-2

just fyi ext2 / 3/4 dump tidak melakukan apa yang ingin Anda lakukan ... hanya fs yang mampu melakukan ini yang saya ketahui adalah ntfs (menggunakan ntfs-3g) dan zfs

meskipun Anda bisa melakukan ini menggunakan LVM dan dan penyediaan tipis eksperimental ...

Sunting: kembali ke ini beberapa tahun kemudian menyadari, Anda dapat melakukan ini dengan sistem file apa saja menggunakan squashfs ...

Rubah
sumber
partclone telah mampu melakukan hal itu untuk banyak partisi yang bukan ntfs-3g atau zfs.
DrYak
@DrYak gambar yang jarang di-mount dari NTFS pasti didukung oleh ntfsclone ... linux.die.net/man/8/ntfsclone
Fox
-3

Saya pikir ternyata tidak ada alat seperti itu (ATM).

poige
sumber