Как избежать длинного списка точек монтирования для ZFS, экспортируемого через NFS для нескольких пользователей?

Мы запускаем кластер примерно для 50 групп пользователей, отображаемых как группы Linux. Каждая группа имеет файловую систему, выделенную на сервере хранения ZFS, которая экспортируется через NFS. В результате получается длинный список точек монтирования, которые необходимо смонтировать на клиентских узлах NFS. Точно так же вывод df -h также содержит очень длинный список всех этих точек монтирования для каждой группы пользователей. Есть ли способ избежать этого путем реструктуризации или реконфигурации сервера ZFS, при этом сохраняя эффективное управление группами пользователей, такими как квоты, права доступа и т. Д.

Ниже приведены частичные выходные данные команды zfs list :

~]# zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
intp1               43.7G  47.9T   219K  /zfs/1
intp1/sam           43.7G  47.9T   219K  /zfs/1/sam
intp1/harry         219K  4.00T   219K  /zfs/1/harry
intp1/rick          219K  4.00T   219K  /zfs/1/rick
intp1/kim           43.7G  3.96T  43.7G  /zfs/1/kim
intp2                252G  47.7T   252G  /zfs/2
intp2/johnson       219K  8.00T   219K  /zfs/2/johnson
intp2/hoekstra        219K  8.00T   219K  /zfs/2/hoekstra

Ниже показан результат выполнения команды zfs get all для одной файловой системы:

# zfs get all intp1/sam
NAME       PROPERTY              VALUE                  SOURCE
intp1/sam  type                  filesystem             -
intp1/sam  creation              Fri Sep 23  9:56 2016  -
intp1/sam  used                  43.7G                  -
intp1/sam  available             47.9T                  -
intp1/sam  referenced            219K                   -
intp1/sam  compressratio         5.42x                  -
intp1/sam  mounted               yes                    -
intp1/sam  quota                 none                   default
intp1/sam  reservation           none                   default
intp1/sam  recordsize            128K                   default
intp1/sam  mountpoint            /zfs/1/sam             inherited from intp1
intp1/sam  sharenfs              on                     inherited from intp1
intp1/sam  checksum              on                     default
intp1/sam  compression           lz4                    inherited from intp1
intp1/sam  atime                 on                     default
intp1/sam  devices               on                     default
intp1/sam  exec                  on                     default
intp1/sam  setuid                on                     default
intp1/sam  readonly              off                    default
intp1/sam  zoned                 off                    default
intp1/sam  snapdir               hidden                 default
intp1/sam  aclinherit            restricted             default
intp1/sam  canmount              on                     default
intp1/sam  xattr                 on                     default
intp1/sam  copies                1                      default
intp1/sam  version               5                      -
intp1/sam  utf8only              off                    -
intp1/sam  normalization         none                   -
intp1/sam  casesensitivity       sensitive              -
intp1/sam  vscan                 off                    default
intp1/sam  nbmand                off                    default
intp1/sam  sharesmb              off                    default
intp1/sam  refquota              none                   default
intp1/sam  refreservation        none                   default
intp1/sam  primarycache          all                    default
intp1/sam  secondarycache        all                    default
intp1/sam  usedbysnapshots       0                      -
intp1/sam  usedbydataset         219K                   -
intp1/sam  usedbychildren        43.7G                  -
intp1/sam  usedbyrefreservation  0                      -
intp1/sam  logbias               latency                default
intp1/sam  dedup                 off                    default
intp1/sam  mlslabel              none                   default
intp1/sam  sync                  standard               default
intp1/sam  refcompressratio      1.00x                  -
intp1/sam  written               219K                   -
intp1/sam  logicalused           198G                   -
intp1/sam  logicalreferenced     40K                    -
intp1/sam  filesystem_limit      none                   default
intp1/sam  snapshot_limit        none                   default
intp1/sam  filesystem_count      none                   default
intp1/sam  snapshot_count        none                   default
intp1/sam  snapdev               hidden                 default
intp1/sam  acltype               off                    default
intp1/sam  context               none                   default
intp1/sam  fscontext             none                   default
intp1/sam  defcontext            none                   default
intp1/sam  rootcontext           none                   default
intp1/sam  relatime              off                    default
intp1/sam  redundant_metadata    all                    default
intp1/sam  overlay               off                    default
0
задан 30 September 2016 в 22:52
1 ответ

Я использую для этого параметр crossmnt NFS export.

Например:

/home *(rw,crossmnt,sec=krb5:krb5i:krb5p)

Из справочной страницы exports (5) :

Эта опция похожа на nohide , но позволяет клиентам получить доступ ко всем файловым системам, смонтированным в файловой системе, помеченной crossmnt . Таким образом, когда дочерняя файловая система «B» монтируется на родительской «A», установка crossmnt на «A» имеет тот же эффект, что и установка «nohide» на B.

С nohide дочерняя файловая система должна быть экспортирована явно. С пересечением в этом нет необходимости. Если дочерний файл crossmnt не экспортируется явно, он будет неявно экспортирован с теми же параметрами экспорта, что и родительский, за исключением fsid = . Это делает невозможным не экспортировать дочерний элемент файловой системы crossmnt . Если некоторые, но не все подчиненные файловые системы родительского элемента должны быть экспортированы, то они должны быть экспортированы явно, а для родительского элемента не должно быть установлено crossmnt .

3
ответ дан 4 December 2019 в 12:22

Теги

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