ZFS & Deduplicating Data FLAC

1

Saya bereksperimen dengan menggunakan ZFS untuk mendeduplikasi perpustakaan besar file FLAC. Tujuannya ada dua:

  1. Kurangi pemanfaatan penyimpanan
  2. Kurangi bandwidth yang dibutuhkan untuk menyinkronkan perpustakaan dengan penyimpanan cloud

Banyak dari file-file ini dari trek musik yang sama tetapi dari media fisik yang berbeda. Ini berarti bahwa untuk sebagian besar mereka adalah sama dan biasanya dekat dengan ukuran yang sama, yang membuat saya berpikir bahwa mereka harus mendapat manfaat dari deduplikasi tingkat blok.

Namun dalam pengujian saya, saya tidak melihat hasil yang baik. Ketika saya membuat kumpulan dan menambahkan tiga trek ini (lagu yang identik dari media sumber yang berbeda) daftar zpool melaporkan 1,00 dedupe. Jika saya menyalin semua file (membuat duplikat yang tepat dari ketiganya) dedupe tanjakan, jadi saya tahu itu diaktifkan dan berfungsi, tetapi tidak menemukan duplikasi dalam kumpulan file asli.

Pikiran pertama saya adalah bahwa mungkin beberapa data header variabel (tag metadata, dll.) Mungkin salah menyelaraskan sebagian besar data dalam file-file ini (frame audio) tetapi bahkan membuat data header konsisten di ketiga file tidak Tampaknya tidak berdampak pada deduplikasi.

Saya mempertimbangkan untuk mengambil rute alternatif (menguji sistem file dedupe lain serta beberapa kode khusus) tetapi karena kita sudah menggunakan ZFS dan saya suka opsi replikasi ZFS, saya lebih suka menggunakan ZFS dedupe untuk proyek ini; tapi mungkin itu tidak mampu bekerja dengan baik dengan data seperti ini.

Setiap umpan balik mengenai penyetelan yang dapat meningkatkan kinerja dedupe untuk jenis dataset ini, atau konfirmasi bahwa ZFS dedupe bukan alat yang tepat untuk pekerjaan ini dihargai.

jasongullickson
sumber

Jawaban:

4

Saya tidak tahu tentang ZFS, tetapi codec FLAC memiliki banyak parameter yang berbeda, dan struktur di dalam file FLAC tidak byte-rata pada umumnya. Jadi sedikit perubahan pada pengaturan cenderung memberikan bytestream yang sangat berbeda. Apakah Anda tahu jika file "identik" di-flacced dengan perangkat lunak yang sama, versi perangkat lunak yang sama, dan pengaturan yang sama, pada arsitektur yang sama?

Dengan asumsi ada beberapa perbedaan dalam bytestream (yang akan menjelaskan hasil 1.0 Anda), cara untuk menguji ini adalah dengan mendekompresi dan mengkompres ulang semua file FLAC pada mesin yang sama. (Tentu saja operasi ini tidak menjatuhkan data apa pun, selama metadata disimpan.)

Dan Stowell
sumber
+1: Ini cukup banyak. Hanya karena itu adalah "lagu yang sama" pada 2 album yang berbeda tidak berarti itu adalah campuran yang sama persis, jumlah sampel, amplitudo, perataan, atau apa pun yang akan menyebabkan 2 encode menjadi persis sama. Secara umum, Anda tidak akan mendapatkan tingkat pemotongan yang signifikan dari perpustakaan file yang dikompresi.
Afrazier
Di sinilah saya akan pergi tetapi saya ingin memastikan saya tidak mengabaikan sesuatu (seperti ukuran rekaman, dll.) Yang mungkin berdampak. Saya ingin umpan baris tetapi tidak ada dalam kartu :)
jasongullickson
File-file tersebut jelas tidak identik (sesuai desain), hanya lagu yang sama dari album yang sama. Saya pikir mungkin dengan ukuran rekaman yang cukup besar sehingga kesamaan antara file mungkin mengarah ke beberapa tingkat deduplikasi tetapi mungkin itu tidak terjadi.
jasongullickson
1
+1: Dan benar. Mengingat sifat file FLAC dengan segudang parameter pengodean dan metadata, kemungkinan ada blok data duplikat di file yang berbeda (bahkan dari lagu yang sama) sangat rendah. Anda mungkin juga ingin membaca tentang ZFS dedup karena banyak pengguna merasa itu bukan peluru perak yang mereka harapkan.
Mike Fitzpatrick
Setuju, apa yang dibutuhkan jasongullickson adalah sesuatu seperti Audio Dedupe ( mindgems.com/products/Duplicate-MP3-Finder/… ) untuk Linux.
Scott McClenning