Saya memiliki kumpulan yang dibuat pada tahun 2011, menggunakan lzjb compression
, dan tidak sampai beberapa tahun kemudian upgrade memungkinkan saya untuk mengatur kompresi lz4
. Saya memperkirakan bahwa setidaknya 20% dari konten (berdasarkan ruang) pada array dibuat sebelum 2013, yang berarti masih dikompres menggunakan lzjb
.
Saya dapat memikirkan beberapa opsi untuk memperbaikinya dan mendapatkan kembali (beberapa) ruang:
Cadangkan dan pulihkan ke kumpulan baru. Tidak terlalu praktis, karena saya tidak memiliki penyimpanan berlebihan yang cukup untuk menampung salinan sementara. Pemulihan juga membutuhkan kolam untuk offline selama beberapa jam.
Tulis skrip untuk menyalin ulang file apa pun dengan stempel waktu lebih tua dari 2013. Berpotensi berisiko, terutama jika tersedak ruang atau karakter khusus lainnya dan berakhir dengan mengacaukan nama asli.
Apakah ada cara untuk membuat ZFS mengkompres ulang blok legacy menggunakan algoritma kompresi saat ini? Agak seperti scrub, tetapi menyembuhkan kompresi.
Pertanyaan terkait: apakah ada cara untuk melihat penggunaan setiap jenis algoritma kompresi? zdb hanya menunjukkan statistik kompresi secara keseluruhan, daripada memecahnya menjadi algoritma individu.
export LC_ALL=C
ke awal skrip, dan semua karakter khusus non-ASCII dalam nama file akan tetap utuh. Menjaga ruang putih dan dash tetap utuh lebih sulit, gunakan tanda kutip ganda dan --
, mis cp -- "$SOURCE" "$TARGET"
.
--
) "lebih rumit". Itu sama pentingnya dengan menghindari injeksi SQL, misalnya.