Free
А если компрессию включаю, то по умолчанию ставится lz4? На другом пуле смотрю командой zfs get all - он сообщает вид компрессии (compression zstd), а на новом включил - и просто compression on пишет, без указания, какая...
Ivan
... поэтому я люблю еще выставлять reservation :)
Это типо чтобы минимальный размер задать?
Alex
Это типо чтобы минимальный размер задать?
это скорей "застолбить" или, собственно, зарезервировать заданный объем свободного места за датасетом
Alex
например, для датасета с БД - маст хев
Ivan
А вот ещё вопрос небольшой. Я вот перечитал много инфы и тем не менее не совсем понял разницу между zvol и vdev. Поправьте меня, если я не прав. zvol, это как раздел в обычном диске? И один пул может содержать много zvol. Типо как мы разбиваем диск на разделы при установке ОС. Верно?
Ivan
Ну я просто попытаюсь аналогии с обычной системой проводить. Для лучшего понимания))
Ivan
Zvol и vdev это разные сушности, и да пул может содердать много zvol
А вот как например, лучше делать? Хотя слово лучше может не совсем тут верное, но все же. Допустим мне нужно два отдельных хранилища, но не в виде датасетов, а на более низком уровне. Я могу разбить каждый диск на два раздела , потом собрать два пула, используя для каждого пула соответствующий раздел с каждого из дисков. В итоге я получу два пула. Или лучше создать один пул используя все пространство каждого диска, а потом просто на нем создать два zvol, что по сути мне даст два отдельных как бы хранилища, но при этом будет обладать несколько большей гибкостью чем два отдельных пула?
Ivan
Для чего вы будите использовать zvol? Zvol это блочный доступ датасеты это файловый, у вас какой сцкнарий использования, вам точно нужен zfs?
Нет, сейчас я для себя определился с использованием. Я просто теорию проясняю. Щас мне zvol не нужен
Ivan
Я собственно и пытаюсь сообразить, в каких ситуациях zvol может понадобиться, чтобы лучше понимать))
Alex
А вот как например, лучше делать? Хотя слово лучше может не совсем тут верное, но все же. Допустим мне нужно два отдельных хранилища, но не в виде датасетов, а на более низком уровне. Я могу разбить каждый диск на два раздела , потом собрать два пула, используя для каждого пула соответствующий раздел с каждого из дисков. В итоге я получу два пула. Или лучше создать один пул используя все пространство каждого диска, а потом просто на нем создать два zvol, что по сути мне даст два отдельных как бы хранилища, но при этом будет обладать несколько большей гибкостью чем два отдельных пула?
под zfs рекомендуется отдавать целиком устройство, без разделов. Технически можно поделить диск на две (три..) партиции , которые сделать частями разных пулов... но зачем? скорее всего будет пенальти по производительности + точно снижается надежность, т.к выход из строя такого устройства аффектит сразу два(три...) пула
Alex
Я собственно и пытаюсь сообразить, в каких ситуациях zvol может понадобиться, чтобы лучше понимать))
volume (zvol) - это тоже датасет. Но создав его, вы увидите его в ОС просто как блочное устройство : /dev/zd0 например. Дальше вы можете создать на нем любую ФС, или прокинуть его по iscsi - в общем представьте, что у вас как бы физический диск, если вам так проще будет воспринять
Alex
zvol - вы отрезаете кусок от пула и отдаётё его ОС , как устройство
Alex
Есть отличная книжка - freebsd mastery: zfs - рекомендую, там на первых паре десятков страниц всё очень качественно расписано
Alex
потратите пару часов на неё , если хотите работать с zfs - обещаю, не пожалете
Alex
хотя, вот про ACL там почти ничего нет =)
Vladislav
Есть отличная книжка - freebsd mastery: zfs - рекомендую, там на первых паре десятков страниц всё очень качественно расписано
Просто заранее сообщаю, он не способен читать или пользоваться поиском, имейте это ввиду, когда рекомендуется ему что-то Ему кидали ссылку на habr с zfs 101
Vladislav
Где понятным языком есть ссылки на хабр, а ему про книжку говорят))))
Fedor
Человек игнорирует вот этот пост
Спасибо, сделаю приветственное сообщение
Free
При удалении датасета место разве не сразу освобождается? zfs list показывал my/85 447G 17.9T 447G /my/85 my/86 302G 17.9T 302G /my/86 my/87 462G 17.9T 462G /my/87 После zfs destroy my/86 - my/85 447G 17.9T 447G /my/85 my/87 462G 17.9T 462G /my/87 🤔
Sergey
Подскажите, пожалуйста (или дайте линк, если это где-то расписано) - как рассчитать максимально возможный (но стабильный в продакшене) размер zvol (а при его создании, size нужно задать явно), зная доступный размер zpool?
Sergey
Эмпирически (подбирая макс значение половинным делением), получаю оценку в районе 90% от чистого доступного места на пуле. Но возможно, есть хороший способ подобрать
Vladislav
Что значит эмпирически?
методом научного тыка. но эмпирически - научный термин
Vladislav
https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Workload%20Tuning.html
Vladislav
Причем тут эмпирический подход вообще
Vladislav
https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Workload%20Tuning.html#free-space
Vladislav
Буквально документация
Vladislav
Причем тут эмпирический подход вообще
а зачем вы спрашивали тогда? :)
Vladislav
если смотреть на truenas, то 20% https://www.truenas.com/community/threads/minimum-recommended-free-space.50984/
Vladislav
а зачем вы спрашивали тогда? :)
Затем и спрашивал, что значит эмпирически в данном контексте, если это определяется документацией
Vladislav
А если человек про *как рассчитать максимальный размер zvol в зависимости от используемого recordsize зная размер датасета,то это уже совсем другой вопрос*
Vladislav
Затем и спрашивал, что значит эмпирически в данном контексте, если это определяется документацией
значит, сразу тыкайте линки документацию, пусть читает. и только после ее прочтения, пусть задает дополнительные вопросы :)
Vladislav
Я лишь знаю, что человек на самом деле спрашивает про как определить возможный размер zvol учитывая, что zfs list показывает объем который нельзя задать для zvol, а такие вещи надо считать исходя из recordsize
Vladislav
recordsize чего? у zvol нет и не может его быть
Итак, первое, и recordsize и blocksize влияют на это насколько я помню
Vladislav
recordsize чего? у zvol нет и не может его быть
Второе, Вы гугл открывали?
Alex
zvol - это блочное устройство, откуда у него record size??
Alex
oook
Vladislav
Alex
Второе, Вы гугл открывали?
первое - вы посмотрите сначала - кто спрашивал и кто отвечал.
Alex
Итак, первое, и recordsize и blocksize влияют на это насколько я помню
]# zfs list -t volume NAME USED AVAIL REFER MOUNTPOINT zpool/vol 2.07G 838G 1.14M - # zfs get all zpool/vol NAME PROPERTY VALUE SOURCE zpool/vol type volume - zpool/vol creation Sat Nov 18 21:27 2023 - zpool/vol used 2.07G - zpool/vol available 838G - zpool/vol referenced 1.14M - zpool/vol compressratio 1.97x - zpool/vol reservation none default zpool/vol volsize 2G local zpool/vol volblocksize 8K default zpool/vol checksum on default zpool/vol compression zstd inherited from zpool zpool/vol readonly off default zpool/vol createtxg 9073495 - zpool/vol copies 1 default zpool/vol refreservation 2.06G local zpool/vol guid 6646607526997498040 - zpool/vol primarycache all default zpool/vol secondarycache all default zpool/vol usedbysnapshots 2.19M - zpool/vol usedbydataset 1.14M - zpool/vol usedbychildren 0B - zpool/vol usedbyrefreservation 2.06G - zpool/vol logbias latency default zpool/vol objsetid 80351 - zpool/vol dedup off default zpool/vol mlslabel none default zpool/vol sync standard default zpool/vol refcompressratio 1.98x - zpool/vol written 1.09M - zpool/vol logicalused 6.29M - zpool/vol logicalreferenced 2.16M - zpool/vol volmode default default zpool/vol snapshot_limit none default zpool/vol snapshot_count none default zpool/vol snapdev hidden default zpool/vol context none default zpool/vol fscontext none default zpool/vol defcontext none default zpool/vol rootcontext none default zpool/vol redundant_metadata all default zpool/vol encryption off default zpool/vol keylocation none default zpool/vol keyformat none default zpool/vol pbkdf2iters 0 default
Alex
второе- покажите здесь recordsize
Sergey
методом научного тыка. но эмпирически - научный термин
this. прежде чем спрашивать, сам потыкал
Vladislav
Vladislav
Или потыкали
Vladislav
И пришли в чат
Vladislav
]# zfs list -t volume NAME USED AVAIL REFER MOUNTPOINT zpool/vol 2.07G 838G 1.14M - # zfs get all zpool/vol NAME PROPERTY VALUE SOURCE zpool/vol type volume - zpool/vol creation Sat Nov 18 21:27 2023 - zpool/vol used 2.07G - zpool/vol available 838G - zpool/vol referenced 1.14M - zpool/vol compressratio 1.97x - zpool/vol reservation none default zpool/vol volsize 2G local zpool/vol volblocksize 8K default zpool/vol checksum on default zpool/vol compression zstd inherited from zpool zpool/vol readonly off default zpool/vol createtxg 9073495 - zpool/vol copies 1 default zpool/vol refreservation 2.06G local zpool/vol guid 6646607526997498040 - zpool/vol primarycache all default zpool/vol secondarycache all default zpool/vol usedbysnapshots 2.19M - zpool/vol usedbydataset 1.14M - zpool/vol usedbychildren 0B - zpool/vol usedbyrefreservation 2.06G - zpool/vol logbias latency default zpool/vol objsetid 80351 - zpool/vol dedup off default zpool/vol mlslabel none default zpool/vol sync standard default zpool/vol refcompressratio 1.98x - zpool/vol written 1.09M - zpool/vol logicalused 6.29M - zpool/vol logicalreferenced 2.16M - zpool/vol volmode default default zpool/vol snapshot_limit none default zpool/vol snapshot_count none default zpool/vol snapdev hidden default zpool/vol context none default zpool/vol fscontext none default zpool/vol defcontext none default zpool/vol rootcontext none default zpool/vol redundant_metadata all default zpool/vol encryption off default zpool/vol keylocation none default zpool/vol keyformat none default zpool/vol pbkdf2iters 0 default
Почитайте сущность вопроса
Илья
Или потыкали
Весли испоьзуете ssd и в сервере есть запас по цпу, можно не паритьмя по этому вопросу
Sergey
Гугл, Вы, использовали?
Вы такой резкий, но на вопрос-то ответа нет. Раз на пуле есть, к примеру, 120M свободного места - почему я не могу создать ZVOL размером в 120M? ZFS откажется его создавать. История про 10% - это просто рекомендация по перформансу.
Илья
Т.е система cow, то раньше при использовании hdd , это действительно налогало обпределеннве издержки произврдительности, пои заполнении пула прииспользовании ssd и мощных поцессоров, падение производителбносьи трудно замеьить
Alex
Вы такой резкий, но на вопрос-то ответа нет. Раз на пуле есть, к примеру, 120M свободного места - почему я не могу создать ZVOL размером в 120M? ZFS откажется его создавать. История про 10% - это просто рекомендация по перформансу.
Ладно резкий, так товарищ еще и даёт совершенно нерелевантные ответы. Ссылка на документацию openzfs - это *рекомендации* по свободному месту, имеющие к изначальной сути вопроса такое же отношение, как луна к юпитеру =)
Alex
ссылка на recordsize - еще более абсурдна, тк нет его и не может быть у zvol (и я это доказал выхлопом консоли, но высокомерно отправить в гугл - это на порядок проще...)
Alex
А реально причина лимита там скорее всего лежит в области выбора volblocksize .
Alex
Так с лёту сейчас не скажу, какой он должен быть, зависит от пула
Free
Vladislav
Совсем ничего, да?
Vladislav
ссылка на recordsize - еще более абсурдна, тк нет его и не может быть у zvol (и я это доказал выхлопом консоли, но высокомерно отправить в гугл - это на порядок проще...)
Ну так создайте датасет с одним recordsize, поверх создайте zvol И второй датасет с другим рекорд сайзом, поверх создайте zvol Интересно, будет ли у них одинаковый занятый размер, если будет, то я помню неправильно, а если будет разный, то это пища для размышления
Alex
Совсем ничего, да?
Ну вообще да, там по сути вопроса топикстартера - вообще ничего =)
Alex
ээээ
Alex
zvol вложенный в датасет
ооок. А вот тот датасет, в который вы предлагает вложить zvol , он - какого типа? тоже zvol? :)
Vladislav
Вы всегда можете открыть мне новую информацию и сказать как создать zvol без датасета
Vladislav
Мне будет интересно узнать на самом деле