Какой правильный вариант для «строгого выделения» Samba при обслуживании тома zfs?

Какой правильный вариант для Samba «строгое выделение» при обслуживании тома zfs?

В документации говорится:

Это логическое значение, которое управляет обработкой выделения дискового пространства s «строгое выделение» при обслуживании тома zfs? Какой правильный вариант для «строгого выделения» Samba при обслуживании тома zfs? В документации говорится: Это логическое значение, которое управляет распределением дискового пространства на сервере. ...

Какой правильный вариант для Samba «строгое выделение» при обслуживании тома zfs?

В документации говорится:

Это логическое значение, которое управляет обработкой выделения дискового пространства s «строгое выделение» при обслуживании тома zfs? Какой правильный вариант для «строгого выделения» Samba при обслуживании тома zfs? В документации говорится: Это логическое значение, которое управляет распределением дискового пространства на сервере. ...

Какой правильный вариант для Samba «строгое выделение» при обслуживании тома zfs?

В документации говорится:

Это логическое значение, которое управляет обработкой выделения дискового пространства на сервере. Если установлено значение "да", сервер изменится с Поведение UNIX: не фиксируются блоки реального дискового хранилища, когда файл расширяется до поведения Windows, фактически заставляя диск система для выделения реальных блоков памяти при создании файла или расширен до заданного размера. В терминологии UNIX это означает, что Samba прекратит создание разреженных файлов.

Этот параметр действительно разработан для файловых систем, поддерживающих быстрое выделение большого количества блоков, таких как файл на основе экстентов системы. В файловых системах, которые не поддерживают экстенты (особенно ext3) это может замедлить работу Samba. Когда вы работаете с большими файлами размером более

100 МБ в файловых системах без экстентов, вы можете даже столкнуться с проблемами с клиентами, у которых время ожидания истекает.

Когда у вас есть файловая система на основе экстентов, вероятно, мы сможем сделать использование незаписанных экстентов, что позволяет Samba выделять даже большие количество места очень быстро, и вы не увидите никаких проблем с тайм-аутом вызвано строгим распределением. При использовании строгого выделения вы также получить намного больше сообщений о квотах, если вы используете квоты. Другая Преимущество активации этого параметра в том, что он поможет уменьшить фрагментация файлов.

Чтобы дать вам представление о том, в каких файловых системах этот параметр может в настоящее время подойдет вам: XFS, ext4, btrfs, ocfs2 в Linux и JFS2 в AIX поддерживает незаписанные экстенты. В файловых системах, которые его не поддерживают, предварительное выделение, вероятно, дорогостоящая операция, при которой вы увидите снижение производительности и риска из-за того, что клиенты могут выходить из строя, когда создание больших файлов. Примеры: ext3, ZFS, HFS + и многие другие, поэтому имейте в виду, если вы активируете этот параметр в этих файловых системах.

По умолчанию: strict allocate = no

Итак, если у меня есть strict allocate = yes , Samba не будет выполнять предварительное выделение, которое имеет нет преимущества в производительности ZFS?

4
задан 7 April 2017 в 01:15
1 ответ

При strict allocate = yes Samba будет предварительно выделить пространство. Поскольку ZFS не имеет распределения на основе экстентов, на странице руководства сказано, что это медленнее, чем strict_allocate = no .

Вы можете подумать, что если вы скажете fs выделить все пространство для вашего огромного файла в заранее, вероятность того, что это пространство будет смежным, выше, чем если бы вы распределяли его по частям; однако я не уверен, что это будет иметь место с zfs, который стремится сделать все записи данных последовательными. Это определенно не будет иметь место, если у вас включено сжатие, потому что предварительно выделенное пространство будет пустым и будет сжиматься до одного блока, поэтому вы ничего не получите, включив strict_allocate .

FWIW, я пробовал использовать fallocate -x для создания файла размером 10 ГБ в сжатом экземпляре ZFS, и это заняло 2 минуты, что, вероятно, слишком долго для клиента CIFS. Вывод strace показывает, что выделение выполняется с помощью нескольких миллионов вызовов pwrite64 () . Фактический вызов fallocate () не поддерживается:

fallocate (3, 0, 0, 10000000000) = -1 EOPNOTSUPP (Операция не поддерживается)

Это с относительно недавним мастером zfsonlinux git .

На основании вышеизложенного я бы сказал, что было бы бесполезно и сильно нарушать работу включения strict_allocate в сжатой файловой системе; для несжатых файлов с отключенной дедупликацией это, вероятно, только сильно мешает работе, но не обязательно бесполезно.

0
ответ дан 3 December 2019 в 04:19

Теги

Похожие вопросы