Назад | Перейти на главную страницу

ZFS: повторно сжимайте существующие файлы после изменения алгоритма сжатия

У меня есть пул, который был создан в 2011 году с использованием lzjb compression, и только через пару лет обновление позволило мне установить сжатие на lz4. По моим оценкам, не менее 20% содержимого (по пространству) в массиве было создано до 2013 года, что означает, что он все еще сжимается с использованием lzjb.

Я могу придумать несколько вариантов, чтобы исправить это и освободить (немного) места:

  1. Резервное копирование и восстановление в новый пул. Это не совсем практично, так как у меня недостаточно избыточного хранилища для хранения временной копии. Для восстановления также потребуется, чтобы пул был отключен на несколько часов.

  2. Напишите сценарий для повторного копирования любого файла с отметкой времени старше 2013 года. Потенциально рискованно, особенно если он подавляется пробелами или другими специальными символами и приводит к искажению исходного имени.

Есть ли способ заставить ZFS повторно сжимать любые устаревшие блоки с использованием текущего алгоритма сжатия? Вроде как скраб, но заживающая компрессия.

Связанный с этим вопрос: есть ли способ увидеть использование каждого типа алгоритма сжатия? zdb просто показывает общую статистику сжатия, а не разбивает ее на отдельные алгоритмы.

Вам необходимо повторно скопировать данные (полностью или частично), иначе zfs отправит / получит данные в новый пул или файловую систему ZFS.

Других вариантов нет.