Saya mencari solusi filesystem deduplicating copy-on-write untuk data pengguna umum seperti /home
dan 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
, mv
dan 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.