Mencari alat deduplikasi di Linux ada banyak, lihat misalnya halaman wiki ini .
Allmost all scripts hanya melakukan deteksi, mencetak nama file duplikat atau menghapus file duplikat dengan menghubungkannya ke satu salinan.
Dengan munculnya btrf akan ada pilihan lain: membuat salinan file (seperti cp reflink=always
) CoW (copy-on-write ). Saya belum menemukan alat yang melakukan ini, adakah yang mengetahui alat yang melakukan ini?
btrfs
deduplication
Peter Smit
sumber
sumber
Jawaban:
Saya menulis bedup untuk tujuan ini. Ini menggabungkan btree scanning tambahan dengan deduplikasi CoW. Paling baik digunakan dengan Linux 3.6, tempat Anda dapat menjalankan:
sumber
Saya mencoba tidur. Meskipun bagus (dan memiliki beberapa fitur berbeda yang berguna yang mungkin menjadikannya pilihan terbaik bagi banyak orang), tampaknya memindai keseluruhan semua file target untuk checksum.
Yang sangat lambat.
Program lain di sisi lain, seperti rdfind dan rmlint, memindai secara berbeda.
rdfind memiliki fitur "eksperimental" untuk menggunakan btrfs reflink. (Dan opsi "solid" untuk hardlink, symlink, dll.)
rmlint memiliki opsi "solid" untuk klon btrf, reflink, hardlink biasa, symlink, delete, dan perintah khusus Anda sendiri.
Tetapi yang lebih penting, rdfind dan rmlint secara signifikan lebih cepat. Seperti dalam, urutan besarnya. Alih-alih memindai semua file target untuk checksum, ia melakukan ini, kira-kira:
Keuntungan lain dari rmlint yang saya ketahui:
Saya membandingkan rmlint dengan deduperemove - yang juga secara buta memindai semua file target untuk checksum. Duperemove membutuhkan beberapa hari pada volume saya untuk menyelesaikan (4 saya pikir), menjadi miring penuh. fmlint membutuhkan beberapa jam untuk mengidentifikasi duplikat, kemudian kurang dari sehari untuk menyimpulkannya dengan klon Btrfs.
(Yang mengatakan, siapa pun yang berusaha untuk menulis dan mendukung perangkat lunak yang kuat dan berkualitas dan memberikannya secara gratis, pantas mendapat pujian utama!)
Btw: Anda harus menghindari pemotongan menggunakan hardlink biasa sebagai solusi pemotongan "umum", dengan segala cara.
Walaupun hardlink dapat sangat berguna dalam kasus penggunaan bertarget tertentu (misalnya file individual atau dengan alat yang dapat memindai jenis file tertentu yang melebihi beberapa ukuran minimum - atau sebagai bagian dari banyak solusi backup / snapshot gratis dan komersial), itu dapat menjadi bencana untuk "deduplikasi" pada sistem file yang umum digunakan. Alasannya adalah bahwa sebagian besar pengguna mungkin memiliki ribuan file di sistem file mereka, yang identik biner, tetapi secara fungsional sama sekali berbeda.
Sebagai contoh, banyak program menghasilkan template dan / atau file pengaturan tersembunyi (kadang-kadang di setiap folder yang dapat dilihatnya), yang awalnya identik - dan sebagian besar tetap demikian, sampai Anda, pengguna, tidak memerlukannya.
Sebagai ilustrasi khusus: File cache thumbnail foto, yang dihasilkan oleh banyak program dalam folder yang berisi foto-foto (dan karena alasan yang baik - mudah dibawa), dapat memakan waktu berjam-jam atau berhari-hari untuk menghasilkan tetapi kemudian membuat menggunakan aplikasi foto sangat mudah. Jika file-file cache awal semuanya di-hardlink bersama-sama, maka Anda kemudian membuka aplikasi pada direktori dan itu membangun cache besar ... lalu coba tebak: Sekarang SETIAP folder yang memiliki cache yang sebelumnya di-hardlink, sekarang memiliki cache yang salah. Berpotensi, dengan hasil bencana yang dapat mengakibatkan kerusakan data yang tidak disengaja. Dan juga berpotensi dengan cara yang meledak solusi cadangan yang tidak menyadari hardlink.
Selain itu, dapat merusak seluruh snapshot. Inti dari snapshot adalah agar versi "live" dapat terus berubah, dengan kemampuan untuk memutar kembali ke keadaan sebelumnya. Jika semuanya dihubungkan bersama ... Anda "memutar kembali" ke hal yang sama.
Namun kabar baiknya adalah bahwa deduping dengan Btrfs clone / reflink, dapat membatalkan kerusakan itu (saya pikir - karena selama pemindaian, itu akan melihat file yang di-link dengan identik ... kecuali ia memiliki logika untuk tidak mempertimbangkan hardlink. Mungkin tergantung pada utilitas spesifik yang melakukan deduping.)
sumber