Чувствительность к регистру ZFS должна быть установлена ​​после создания, но она доступна только для чтения.

Согласно этому документу Oracle по устанавливаемым свойствам ZFS , casesensitivityпредполагается, что это устанавливаемое свойство после создания пула ZFS, но независимо от значения, которое я указываю, я получаю ответ «только для чтения»:

Я понимаю, что возиться с чувствительностью к регистру в существующем наборе данных звучит довольно безумно, но текущая необходимость перевешивает потенциальную опасность.

1 ответ

Прочитав раздел о чувствительности к регистру документа, на который вы ссылались много раз, я не вижу ни одного предложения, которое подразумевает, что чувствительность к регистру файловой системы может быть изменена после ее установки.

Ubuntu 20.04 по умолчанию использует OpenZFS 0.8.3 , что затрудняет изменение значения после создания пула. Это даже указано в управлении ZFS для Ubuntu:

      The following three properties cannot be changed after the file system  is  created, and
therefore, should be set when the file system is created. If the properties are not set
with the zfs create or zpool create commands, these properties are  inherited from the
parent dataset. If the parent dataset lacks these properties due to having been created
prior to these features being supported, the new file system will have the default values
for these properties.

casesensitivity=sensitive | insensitive | mixed

    Indicates whether the file name matching algorithm used by the file system should be
    case-sensitive, case-insensitive, or allow a combination of both styles of matching.
    The default value for the casesensitivity property is sensitive. Traditionally, UNIX
    and POSIX file systems have case-sensitive file names.

    The mixed value for the casesensitivity property indicates that the  file  system  can
    support  requests  for  both  case-sensitive  and  case-insensitive matching behavior.
    Currently, case-insensitive matching behavior on a file  system  that  supports  mixed
    behavior is limited to the Solaris CIFS server product. For more information about the
    mixed value behavior, see the Solaris ZFS Administration Guide.

Изменение собственности не допускается по ряду причин. Предполагая, что файловая система была или же и внезапно установить как , может возникнуть конфликт имен:

      $ ll

-rw-r--r-- 1 jason jason   220 Feb 25  2020 doc.txt
-rw-r--r-- 1 jason jason  3812 Mar 24  2021 DOC.txt
-rw-r--r-- 1 jason jason   220 Feb 25  2020 Doc.txt

После установки как , какой файл возвращается? По умолчанию index будет хранить все в нижнем регистре, что означает, что вы потеряете доступ к который больше, более поздний и, вероятно , текстовый файл, который вы хотели.

Другая причина — общая производительность. Если файловой системе необходимо справляться с ситуациями, когда чувствительность к регистру может быть изменена по желанию, ей потребуется отслеживать и управлять конфликтами регистра при каждом взаимодействии с файлом, даже если человек, использующий ZFS, не намерен менять регистр. имущество. Отказ от изменения помогает команде разработчиков оптимизировать индексы для быстрого поиска.

Последняя причина (которую я упомяну) больше связана с людьми, чем с технологиями. Мы — как вид — преуспеваем в создании собственных проблем и обвинении всех остальных в неприятностях, которые сразу же следуют. Вместо того, чтобы форум за форумом заполняться людьми, жалующимися на то, что целые каталоги критических данных больше не доступны, иногда лучше заранее запретить действие. Люди, которые действительно хотят изменить чувствительность к регистру, узнают, как получить доступ к скрытым каталог и изменить свойства вручную и паниковать, когда происходит сбой пула ZFS, но для всех остальных им придется делать что-то по-другому, что я и предлагаю вам сделать.

Вместо того, чтобы изменять чувствительность к регистру для текущего пула ZFS, избавьте себя от разочарований и создайте новый пул ZFS и выделите для него некоторое хранилище. Убедитесь, что он с самого начала настроен как нечувствительный к регистру, и все будет хорошо.

Например:

      sudo rpool create isamba /dev/sdc -o casesensitivity=insensitive
Другие вопросы по тегам