Sistem file deduplikasi tingkat blok


8

Saya mencari solusi filesystem deduplicating copy-on-write untuk data pengguna umum seperti /homedan cadangannya. Ini harus menggunakan deduplikasi online / inline / sinkron pada level blok menggunakan hashing aman (untuk peluang tabrakan yang dapat diabaikan) seperti SHA256 atau TTH . Blok duplikat bahkan tidak perlu menyentuh disk.

Idenya adalah saya harus bisa menyalin /home/<user>ke HDD eksternal dengan sistem file yang sama untuk melakukan backup. Sederhana. Tidak main-main dengan backup tambahan di mana kerusakan pada salah satu snapshot hampir selalu akan merusak semua snapshot nanti, dan tidak perlu menggunakan alat khusus untuk menghapus atau 'checkout' snapshot. Semuanya harus dilakukan dari peramban file tanpa khawatir. Bisakah Anda bayangkan betapa mudahnya hal ini? Saya tidak pernah harus berpikir dua kali untuk membuat cadangan lagi!

Saya tidak keberatan masalah kinerja, keandalan adalah perhatian utama. Meskipun, dengan implementasi spesifik cp, mvdan scp, dan plugin browser file, operasi ini akan sangat cepat, terutama ketika ada banyak duplikasi karena mereka hanya perlu mentransfer blok yang tidak ada. Secara tidak sengaja menggunakan alat penyalinan konvensional yang tidak berintegrasi dengan FS hanya akan memakan waktu lebih lama, buang beberapa bandwidth saat menyalin dari jarak jauh dan buang beberapa CPU, karena data duplikat akan dibaca kembali, ditransfer kembali dan di-hash ulang (walaupun tidak ada yang akan menjadi ditulis ulang), tetapi sama sekali tidak akan merusak apa pun. (Beberapa perangkat lunak filesharing juga dapat memperoleh manfaat dengan mengintegrasikan dengan FS.)

Jadi apa cara terbaik untuk melakukan ini?

Saya telah melihat beberapa opsi:

  • lessfs - Terlihat tidak terawat. Ada yang bagus
  • Opendedup / SDFS - Java? Bisakah saya menggunakan ini di Android ?! Apa SDFS berdiri?
  • Btrfs - Beberapa tambalan beredar di arsip milis, tetapi tidak ada dukungan nyata.
  • ZFS - Mudah-mudahan suatu hari mereka akan menikmati lisensi GPL yang kompatibel dengan Free / opensource.

Juga, 2 tahun yang lalu saya mencoba Python menggunakan Fuse di tingkat file untuk digunakan di atas FS padat yang khas seperti EXT4, tapi saya menemukan Fuse untuk Python tidak terdokumentasi dan tidak berhasil mengimplementasikan semua panggilan sistem.


Bukan sistem file, tetapi Anda mungkin ingin melihat alat cadangan yang baru dirilis Obnam .
JanC

@JanC: Terima kasih, ini sepertinya perangkat lunak cadangan dilakukan dengan benar! Ini menghindari ini: "Tidak main-main dengan cadangan tambahan di mana korupsi ke salah satu snapshot hampir selalu akan merusak semua snapshot nanti," ... tapi tidak ini: "dan tidak perlu menggunakan alat khusus untuk menghapus atau 'checkout' suatu foto.". Pasti menemukan yang baik! Saya mungkin dapat bekerja dengan beberapa kode Python. :-)
James Haigh

@JamesHaigh Anda mungkin ingin memposting ide ini di Ubuntu BrainStorm juga; jika Anda belum melakukannya.
Samik

@JamesHaigh salah satu hal di peta jalan Obnam adalah sistem file berbasis sekering (tapi saya tidak berpikir ada garis waktu yang menunjukkan kapan mengharapkan itu). Itu akan membawa "tidak ada alat tambahan" lebih dekat.
JanC

Jika Anda ingin menghindari korupsi satu cadangan yang melanggar yang terakhir, Anda cukup melakukan cadangan inkremental multi generasi. Alih-alih melakukan penuh pada hari Minggu dan perbedaan harian yang selalu relatif terhadap hari sebelumnya, Anda misalnya, pada hari Rabu melakukan pencadangan tambahan relatif terhadap penuh pada hari Minggu (daripada Selasa). Lalu jika Selasa rusak, Anda tidak peduli karena jika Anda memiliki cadangan Rabu, Anda lewati Senin dan Selasa ketika memulihkan.
psusi

Jawaban:


1

Ini terdengar sangat keras (seperti mahal).

datadomain menawarkan de-duplikasi data, dan mungkin netapp dengan sistem file wafl mereka. Tetapi dengan biaya tinggi.

Alternatif "bebas" bisa berupa zfs.

Menurut saya meskipun alternatif "terbaik" dan paling Linuxy, meskipun pada tingkat file, bukan "tingkat blok", akan menjadi rsnapshot. Ini menggunakan rsync dan hardlink untuk mengelola versi.

Saya lebih percaya alat yang sudah terbukti lama daripada menggunakan sistem file baru seperti Btrfs yang belum ada cukup lama bagi orang untuk menemukan semua jenis bug jahat.


Perusahaan? Tidak, ini lebih seperti hal yang saya harapkan dilihat secara default di Ubuntu di masa depan karena mudah digunakan. Saya memang menyebutkan ZFS tetapi CDDL sehingga tidak Gratis dengan modal F. rsnapshotbukan sistem file, ini lebih merupakan peretasan untuk membawa fungsionalitas seperti snapshot ke sistem file lama, tidak membuat snapshot 'nyata' (snapshot seharusnya adalah atom ), dan bersifat inkremental (lihat paragraf 2). Saya lebih suka menggunakan FS yang relatif baru daripada sesuatu yang menggunakan incrementals.
James Haigh

Saya kira 'tingkat file' sedikit ambigu, tetapi saya telah melihat istilah yang digunakan dalam konteks sistem file bersama dengan level blok, level byte dan bit-level. Ini adalah konteks yang saya maksudkan sebagai.
James Haigh

1
@JamesHaigh Menurut Free Software Foundation , CDDL adalah lisensi gratis (seperti dalam kebebasan), hanya saja tidak kompatibel dengan GPL . Ini berarti kode CDDL (seperti implementasi ZFS resmi) dan kode GPL (seperti kernel Linux) tidak dapat dihubungkan secara hukum bersama , dan karena driver di Linux umumnya dihubungkan sebagai modul, yang menghambat dukungan CDDL dalam sistem operasi berbasis Linux.
Eliah Kagan

2
ZFS di Linux mungkin (tergantung siapa yang Anda tanya) menyiasati hal ini dengan didistribusikan secara terpisah . Atau, FUSE memungkinkan "driver" sistem file beroperasi di userspace di mana mereka tidak perlu menautkan diri ke kernel, dan ada juga versi FUSE dari ZFS . Jadi Anda memiliki banyak opsi untuk menggunakan sistem file ZFS pada sistem operasi seperti Ubuntu yang menggunakan Linux sebagai kernelnya. (Beberapa OS, seperti Debian, memungkinkan Anda menggunakan kernel yang berbeda.)
Eliah Kagan

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.