ZFS: Совместное использование большого количества наборов данных

#nfs #zfs

Вопрос:

У меня есть ситуация, когда у меня есть пул zfs с большим количеством наборов данных (>8000 и более) на одной машине.

Структура этих наборов данных может быть упрощена следующим образом:

  1. данные/1
  2. данные/2
  3. данные/3
  4. данные/8000

Существует только один уровень вложенности, как показано выше.

Я хотел бы иметь возможность монтировать эти наборы данных на другой машине.

Использование sharenfs=on в корневом наборе данных, похоже, больше не работает для такого большого количества наборов данных. похоже, что zfs создает для каждого набора данных свою собственную точку монтирования nfs. Похоже, протокол nfs не может справиться с таким большим количеством наборов данных. Простое перечисление всех каталогов занимает целую вечность.

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

Поэтому в настоящее время я ищу решение для этого.

Можно ли, например, каким-то образом настроить zfs для совместного использования только корневого набора данных в качестве точки монтирования nfs, но при этом сохранить доступ ко всем дочерним наборам данных, которые унаследовали свою локальную точку монтирования от корневого набора данных?

Установка и демонтаж вещей на лету для меня не вариант по соображениям производительности.

Комментарии:

1. Насколько я знаю, вы рассмотрели все варианты (кроме изменения структуры файловой системы, чтобы уменьшить количество файловых систем, которые у вас есть; вы могли бы сделать так, чтобы у вас было N >=1 файловых систем с 8000/N каталогами внутри каждой из них).

2. В общем, перечисление многих каталогов через NFS всегда будет отстойным, независимо от того, используют ли они разные точки подключения или нет (хотя это может сделать ситуацию еще хуже). Задержка в сети становится огромной проблемой, потому что каждый системный вызов будет вызываться последовательно (если только не существует новой параллельной версии «ls», о которой я не знаю :)).

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