У мене є пул, який було створено в 2011 році lzjb compression, і, лише через пару років, оновлення дозволило мені встановити компресію lz4. Я вважаю, що принаймні 20% вмісту (за простором) в масиві було створено до 2013 року, а це означає, що він все ще стискається з використанням lzjb.
Я можу придумати кілька варіантів, щоб виправити це та повернути (деякий) простір:
Створіть резервні копії та відновіть новий басейн. Насправді не практично, оскільки у мене немає достатнього резервного місця для зберігання тимчасової копії. Відновлення також вимагатиме відключення пулу протягом декількох годин.
Напишіть сценарій, щоб повторно скопіювати будь-який файл із часовою позначкою, старшою за 2013 рік. Потенційно ризиковано, особливо якщо він задихається пробілами чи іншими спеціальними символами та закінчується керуванням оригінальним іменем.
Чи є спосіб змусити ZFS повторно стискати застарілі блоки за допомогою поточного алгоритму стиснення? Наче схожий на скраб, але загоює стиснення.
Питання, пов'язане з цим: чи є спосіб побачити використання кожного типу алгоритму стиснення? zdb просто показує загальну статистику стиснення, а не розбиває їх на окремі алгоритми.
export LC_ALL=Cдо початку сценарію, і всі спеціальні символи, що не належать до ASCII, у назви файлів збережуться неушкодженими. Залишаючи пробіл та тире недоторканим, використовуйте подвійні лапки та --, наприклад cp -- "$SOURCE" "$TARGET".
--) "складнішим". Це так само важливо, як уникати, наприклад, ін'єкції SQL.