Art
если данные не сжаты внутри, на уровне приложения, то подходит
мне вот что не понятно со сжатием. Почему ОС сжимается намного лучше чем данные? Вот у меня ВМ почтового сервера. Два ZVOL - один под системный вирт диск и второй под диск для данных. Так вот на системном сжатие 44%, а на втором всего 6( И с виндой то же самое. Накатишь чистую систему: сжатие в районе 35%. Но по мере наполнения данными суровень сжатия падает... Чому так? Попробовать что ли zstd...
Василий
Не копал как устроено сжатие в zfs, но скорее всего тут играет роль дробность записи. Т.е. если пишутся большие файлы целиком, то больше места развернуться сжатию. Во время работы обычно пишутся куски и на них сжатие более локальное. Как-то так. Разницу скорее всего можно увидеть, если сжатый мало диск скопировать пофайлово даже на том же волюме.
Δαρθ
может просто trim сделать :)
Δαρθ
а прилаги вполне могут упакованные данные на диск писать, такое и не сожмётся никогда
Владимир
а ещё в вирде можно врубать сжатие на ntfs
Evgenii
или ты думаешь, если зазиповать 2 раза, то займет меньше места?
Art
попробуй у винды поставить блок у фс размером с блок у zfs
игрался с этим. ZVOL под диск для данных (файлы, в основном большие), не системный - лучший результат по скорости и сжатию был, когда выровнял volblocksize c "размером кластера" в гостевой винде - установив обоим 64К Впрочем, всё равно получил обидные 8% Результаты тестов не сохранил, но с дефолтными параметрами было хуже, что-то типа 4-6%
Art
очевидно же твои данные уже сжаты. Почтовый сервер хранит их сжатыми видимо
не думаю, по моему сжатия данных внутри ВМ там никакого нет, ни от ОС, ни от приложения
Evgenii
даже docx сжатый формат
Evgenii
это пачка xml внутри zip архива
central
даже docx сжатый формат
ну это вообще баян
Evgenii
zfs set compression=...
Evgenii
Art
а ты в винде поставь 4к и включи сжатие на уровне винды)
вот про сжатие диска внутри ОС что-то не задумывался, попробую👍 Но вопрос остаётся. @igluko я поэксперементирую. Разверну систему, подключу в ней диск для данных. И загружу туда данных, которые заведомо должны хорошо сжаться. Только вот что это может быть?.. Может, онлайн-библиотеку какую -нибудь скачать...
Art
у тебя сейчас наверное параметр compression имеет значение on, это и означает lz4
Art
аа... ну так, или иначе
Evgenii
можно
Art
конечно можно, как выше Евгений написал: zfs set compression=zstd poolname
Art
но применяться начнёт только для новых записанных блоков
Art
оппа...
Art
что за втф) у меня так: on | off | lzjb | gzip | gzip-[1-9] | zle | lz4 | zstd | zstd-[1-19] | zstd-fast чекни версию zfs: zfs version
Evgenii
zpool status
Evgenii
zpool upgrade
Evgenii
да, но откатиться на старую версию zfs драйвера больше не сможете
Evgenii
пул применит новые фичи
Art
надо без судо, напрямую из под рута - sudo su, потом zfs version и zpool status
Art
Wow, она у меня из 40гб превращается в 3гб
штоа. Это диск C внутри винды так ужался?😳
Δαρθ
штоа. Это диск C внутри винды так ужался?😳
если был заполнен нулями -- так могло стать )
Art
если был заполнен нулями -- так могло стать )
а, вариант... Если диск не thin, то там нули по идее и должны были быть. Или может винда не тримила свой диск никогда
Δαρθ
а, вариант... Если диск не thin, то там нули по идее и должны были быть. Или может винда не тримила свой диск никогда
я о том что включенная компрессия бонусом дискардит нулевые блоки сама, даже без трима
Art
я о том что включенная компрессия бонусом дискардит нулевые блоки сама, даже без трима
я так понял, @Wladimi сжатие внутри ВМ включил. Которое стандартное виндовое
George
У вас версия openzfs 99% просто старая
Ivan
zfs -V
Ivan
хм, чет я подзабыл наверно как версию смотреть
Ivan
старовата версия
Ivan
смотря в каком
Ivan
можно поставить из ветки посвежее. в sid 2.1.1.
Владимир
подключи бекпорты
Владимир
в них есть версия 2
Владимир
просто апгрейдом обновишься
Владимир
очень странно)
Владимир
не шути так)
Владимир
это же сломает ему систему
Владимир
к тому же оно есть в бекпортах
Ivan
не надо так делать
если правильно запинить, то можно многое
Владимир
и это не правильно
Владимир
можно поставить из ветки посвежее. в sid 2.1.1.
https://packages.debian.org/source/buster-backports/zfs-linux
Владимир
2.0 есть в бекпортах деб10
Владимир
встанет без проблем
Владимир
и без если
Владимир
и вероятнее всего его будет достаточно
Владимир
совсем на край есть тестинг
Владимир
https://packages.debian.org/source/bookworm/zfs-linux
Владимир
но тут уже можно поломать что-то
Владимир
нужно с умом подходить
Владимир
но точно блин не сид
George
zstd хорош на холодном сторадже, тут не стоит прям гнаться, для common случаев lz4 оптимален
Ivan
я когда тестировал zswap на hdd, то почти не лагало только lzo, а lz4 было уже ближе к отсутствию zswap.
George
sudo modprobe brd rd_nr=1 rd_size=$((4 * 1048576)) cat > fio.conf << EOF [workload] bs=8k ioengine=sync iodepth=1 numjobs=1 direct=1 sync=1 fsync=1 time_based=1 runtime=10 size=100M filename=/testpool/bigfile rw=write thread unified_rw_reporting=1 group_reporting=1 buffer_compress_percentage=20 refill_buffers buffer_pattern=0xdeadbeef EOF sudo ./scripts/zfs.sh -u sudo ./scripts/zfs.sh sudo $ZPOOL create -f -o ashift=12 testpool /dev/ram0 sudo $ZFS set recordsize=8k testpool sudo $ZFS set logbias=throughput testpool sudo $ZFS set compression=lz4 testpool sudo rm /testpool/bigfile -f sudo fio fio.conf sudo $ZPOOL sync sudo $ZFS get compressratio,compress,used stat /testpool/bigfile вот вам живые цифры, как на latency для sync write влияет lz4 (openzfs master 2021.11) # without compression clat (usec): min=42, max=46441, avg=68.93, stdev=194.79 # lz4 clat (usec): min=55, max=43277, avg=78.47, stdev=179.52 # gzip clat (usec): min=204, max=14983, avg=273.33, stdev=120.69 на max можно не смотреть, это ограниченная по ресурсам машина Это если logbias=throughput, если по дефолту =latency, то в zil запись не сжимается и sync latency вообще не аффектится (если cpu хватает чтобы запись в zil и сброс txg не толкались). Конфиг считать набросом на ночь
Казанский
Всем привет, был хард с zfs, вместо мониторования сделали zpool create, соответственно пропали все имеющиеся разделы, создался один пустой. Есть где-то бэкапы суперблока/метаданных?
George
Всем привет, был хард с zfs, вместо мониторования сделали zpool create, соответственно пропали все имеющиеся разделы, создался один пустой. Есть где-то бэкапы суперблока/метаданных?
до этого разделы были те же? (т.е. также весь диск отдавался ли zfs)? если да, то uberblocks должны были на create перезаписаться, шансы достать что-то полезное автоматически нулевые. create должен был только с --force пройти
Казанский
до этого разделы были те же? (т.е. также весь диск отдавался ли zfs)? если да, то uberblocks должны были на create перезаписаться, шансы достать что-то полезное автоматически нулевые. create должен был только с --force пройти
Весь диск отдавался в zfs (стандартная установка через proxmox). Внутри тома нарезались, но здесь как я понимаю это не совсем патриции, в понимании классических ФС.
Казанский
В том-то и дело, что без вопросов был создан новый пул, это тоже смущает. "автоматически нулевые" - это значит все данные уже потеряны? На сам диск после создания пула ничего не было записано.
George
В том-то и дело, что без вопросов был создан новый пул, это тоже смущает. "автоматически нулевые" - это значит все данные уже потеряны? На сам диск после создания пула ничего не было записано.
не знаю что под капотом proxmox делает, может и с форсом) on disk format можно начать изучать отсюда http://www.giis.co.in/Zfs_ondiskformat.pdf Но если uberblocks перезатёрты, то простое восстановление точно невозможно
George
> В том-то и дело, что без вопросов был создан новый пул, это тоже смущает. я проксом не ставил систему, но "без вопросов" очень настораживает
George
в общем надежда есть только если на диске разделы были с другим смещением. Если смещение совпало, то старых уберблоков уже нет, они перезатёрты. А т.к. "диск полностью отдавали" оба раза, то разделы должны были до байта создасться те же, в общем доставайте бекапы если есть