Dengan btrf yang mencapai produksi di Oracle EL 14 bulan ini (bersama-sama dengan fsck dan scrubbing dari Linux 3.2) saya berpikir untuk mendesain ulang solusi cadangan saya saat ini untuk menggunakannya. Perhatikan bahwa saya sedang berpikir untuk melakukannya untuk sejumlah kecil data, kurang dari 10TB, itu cukup statis (kurang dari 1% berubah setiap hari). Singkatnya solusi cadangan SMB / SOHO.
Apa yang harus dilakukan cadangan:
- lakukan snapshot LVM dari ext [234] / XFS / JFS di server produksi
rsync
/ transfer data yang diubah ke btrfs di server cadangan- snapshot sistem file btrfs
- jatuhkan foto lama saat ruang kosong hampir habis
Pro:
- Semua file mudah tersedia, tidak perlu dekompresi atau pemasangan loop
- Jepretan sebelumnya juga mudah tersedia ...
- ... jadi saya dapat membagikannya sebagai saham Samba hanya baca (dengan dukungan salinan bayangan)
- Snapshots mengambil jumlah ruang minimal berkat copy-on-write (snapshot tanpa perubahan hanya membutuhkan beberapa KiB pada disk)
- Konsistensi cadangan yang tinggi: checksum pada file, menggosok semua data dan redundansi bawaan
Pertanyaan:
- Apakah ada beberapa solusi cadangan (dalam bentuk Bacula, BackupPC, dll.) Yang, atau dapat dengan mudah dibuat, mengetahui sistem file copy-on-write?
- Atau apakah saya perlu menggunakan
rsync
solusi di rumah ? - Apa yang dilakukan orang-orang dengan kotak ZFS yang didedikasikan untuk cadangan untuk membuat cadangan mesin Linux mereka?
cons
! Salah satunya adalah bahwa snapshot Btrf hanya setara dengan cadangan inkremental (tidak ada salinan fisik per cadangan file Anda pada disk). Yang bisa jadi penting ketika menghadapi masalah permukaan disk. Perhatikan bahwa Anda dapat memaksa satu duplikasi dengan dukungan RAID1 asli yang termasuk dalam Btrfs.pro
- lebih dari dua salinan tidak benar-benar diperlukan jika Anda punya checksum dan secara aktif menggosok FS, tiga mungkin akan datang dengan dukungan RAID6. Seperti yang saya katakan, ini adalah pengaturan untuk sistem cadangan khusus, bukan salinan "cadangan" di dalam FS pada komputer tunggal. Itu akan menjadi "RAID bukan cadangan" dan "snapshot tidak cadangan".cp -a
danrsync
untuk itu ...rsync -a --delete /home/user /mnt/butterfs/backups/ && snapper create
- selain membuat snapshot setelah mencadangkan, apa yang Anda maksudkan dengan sadar-sapi?rsync
tanpa--inplace
Anda akan mendapatkan banyak salinan dari data yang sama di sistem file jarak jauh. (rsync biasanya menyalin data ke file tersembunyi sementara dan kemudian memindahkannya ke file yang lama, dengan sistem file Copy-On-Write Anda mendapatkan dua salinan pada data yang tidak berubah dengan cara ini)Jawaban:
Saya telah melakukan pencarian ekstensif pada minggu lalu untuk hal yang serupa. Saya tidak menemukan solusi untuk melakukan semua 4 langkah. Ada banyak blog dari pengguna rumahan yang mencoba ' rsync to btrfs ' -jenis cadangan, dan semua wiki Btrf utama membahas cara melakukan snapshot Btrfs.
Ada juga beberapa orang yang mencoba berbagai cara memutar foto Btrf . Namun, Anda adalah orang pertama yang saya lihat yang ingin memutar foto berdasarkan ruang disk. Saya bermain dengan btrfs-snap sendiri yang menciptakan satu set snapshot per jam, mingguan dan bulanan, dan itu bagus dan sederhana.
Proyek Dirvish tampaknya memenuhi banyak kebutuhan Anda. Beberapa pengembang berusaha mengintegrasikan Dirvish dengan Btrfs . Namun, proyek Dirvish tampaknya agak macet .
Pada titik waktu ini, Anda berada di depan kurva.
sumber
Menurut Avi Miller (ceramahnya selama LinuxConf.AU), sebuah btrf mengirim / menerima sedang dikerjakan. Ini akan lebih cepat daripada rsync karena tidak perlu menelusuri direktori untuk menemukan perubahan dalam file .. Saya tidak tahu apakah ada tanggal rilis yang diharapkan.
Namun, ada utilitas yang dibangun ke dalam btrfs-progs yang mencantumkan setiap file yang telah berubah di antara snapshots / dll. Btrfs subvolume find-new
sumber
Saya sedang mengerjakan sistem cadangan OS yang mirip dengan BackupPC. Saya sudah memikirkan hal ini. Apa yang telah menghentikan saya dari implementasi sebenarnya adalah bahwa Anda tidak dapat menghubungkan antara subvolume. Anda juga hanya dapat membuat snapshot subvolume -> Satu subvolume per klien cadangan. Dengan demikian fitur deduplikasi tingkat file tidak dapat hidup berdampingan dengan pendekatan ini. Dan deduplikasi tingkat file itu biasanya menghemat banyak ruang. Apakah Anda ingin mencadangkan hanya satu server?
Jika btrfs memiliki deduplikasi level blok, masalah ini mungkin dapat dihindari, tetapi biasanya lambat juga ...
Maka pendekatan seperti itu tentu saja memerlukan integrasi yang ketat dengan satu sistem file (btrfs), jadi ini harus menjadi fitur opsional.
Saya bertanya karena saya sedang berpikir tentang menambahkan fitur sapi seperti itu, tetapi tidak tahu apakah saya harus melakukannya karena kekurangan yang tercantum di atas.
Sunting: UrBackup mendukung backup seperti yang dijelaskan dalam pertanyaan sekarang dengan kernel Linux> = 3.6 (dengan dukungan reflink lintas volume). Lihat cara mengaturnya.
sumber
cp --reflink
) sudah diterapkan atau akan diterapkan dalam waktu dekat. De-duplikasi online dalam FS lambat (kurang-lebih) atau membutuhkan RAM dalam jumlah besar (ZFS) sehingga tergantung pada itu akan benar - benar menjadi fitur buruk dalam perangkat lunak cadangan. Either way, perangkat lunak cadangan berorientasi btrfs akan memiliki audiens yang besar, itu seharusnya ext3 berikutnya.Halaman wiki btrfs " Use Cases " berisi daftar beberapa alat: SnapBtr , Snapper, btrfs-time-machine, UrBackup.
Ada proposal untuk alat bawaan yang disebut autosnap :
Namun, pada Oktober 2013, wiki menyatakan bahwa "Fungsi autosnap saat ini tidak termasuk dalam versi btrfs hulu."
sumber
Saya memiliki frustrasi yang sama, jadi saya akhirnya membuat beberapa skrip yang saya sebut snazzer . Bersama-sama mereka menawarkan snapshotting, pemangkasan, pengukuran dan transportasi melalui ssh (tetapi hari ini dapat mengirim / menerima ke / dari sistem file lokal juga). Pengukuran hanyalah laporan tentang sha512sum dan tanda tangan PGP dari jalur snapshot. Ini tidak cukup siap untuk rilis tetapi saya akan senang mendengar umpan balik jika ada yang punya waktu untuk memeriksanya di tahap awal ini.
CLI-hanya pada saat ini, tapi saya telah mengambil beberapa waktu untuk membuatnya mudah digunakan pada sistem dengan banyak sub-volume btrfs - biasanya saya harus sub-volume terpisah untuk
/var/cache
,/home
, dll yang mungkin perlu dikeluarkan dari snapshotting atau memiliki lebih / kurang jadwal pemangkasan yang agresif.Saya khawatir algoritma pemangkasan murni membuat keputusan tentang keberadaan kumpulan snapshot dan tanggalnya, tidak ada yang bisa dilakukan pemangkasan sampai kendala penggunaan disk terpenuhi - yang mana yang Anda hapus dulu? Kurangi jumlah hourly pertama, atau daylies? Mungkin menjatuhkan yang tertua, Eg. yearlies? Penyebaran yang berbeda akan memiliki prioritas yang berbeda; dan saya tidak bisa tahu apakah ini satu-satunya tingkat cadangan (dalam hal ini Anda tidak boleh menjatuhkan cadangan terlama jika ada kewajiban hukum / asuransi), atau hanya tingkat menengah (dalam hal ini Anda mungkin mengarsipkan tahun-tahun tersebut di tempat yang aman di tempat lain).
Saya akan menambahkan dukungan ZFS dan / atau interoperabilitas di beberapa titik; sebagian besar ditulis dalam shell dan perl posix-ish karena keinginan yang kuat untuk dependensi "nol" saat ini, semoga saya memiliki implementasi alternatif python yang lebih bersih yang dipelihara secara paralel di beberapa titik.
sumber