
У меня следующая структура ZFS:
% sudo zfs list 16:03:46
NAME USED AVAIL REFER MOUNTPOINT
zpool1 1.18T 5.86T 544K legacy
zpool1/home 1.18T 5.86T 96K legacy
zpool1/home/alice 12.6G 5.86T 12.6G /zshare/zpool1/home/alice
zpool1/home/bob 1.17T 5.86T 1.02T /zshare/zpool1/home/bob
zpool2 2.22T 4.82T 188K legacy
zpool2/media 1.13T 4.82T 1.13T /zshare/zpool1/home/media_root
Из соображений производительности и хранения, zpool1
& zpool2
не делите никакие диски. Я хочу, чтобы и Боб, и Элис имели доступ media_root
. Однако Бобу и Элис не разрешено получать доступ к файлам друг друга.
- Я не могу предоставить общий доступ к папке /zshare/zpool1/home, поскольку она принадлежит корневому разделу, который небольшой, и если бы Алиса или Боб захотели скопировать в свою папку что-либо больше 60 ГБ, то они бы выдали сообщение «недостаточно места», даже если бы оно было в их домашней папке (Windows вычисляет пространство на диске, на котором размещена общая папка SMB).
- Я не могу предоставить общий доступ к двум папкам на рабочих станциях обоих пользователей, поскольку Windows не позволяет монтировать несколько сетевых дисков с одного IP-адреса...
- Я не могу создать символическую ссылку
media_root
на/alice
и ,/bob
потому что в Windows она не будет следовать по символической ссылке, и я не могу заставить работать жесткие ссылки в файловых системах Z.
Я ОЧЕНЬ НЕ ХОЧУ дублировать все файлы в media_root
подпапке для Алисы и Боба и использовать rsync в стиле crontab, чтобы они оба обновлялись друг у друга и на zpool2, но какие еще есть варианты?
Я уверен, что есть способ сделать это с ZFS в Ubuntu 20.04, но КАК?
EDIT: В рассматриваемой сети НЕТ DNS.
решение1
Я не могу предоставить общий доступ к двум папкам на рабочих станциях обоих пользователей, поскольку Windows не позволяет монтировать несколько сетевых дисков с одного IP-адреса...
Это не так. Вы можете монтировать столько сетевых дисков (отина ту же машину), поскольку у вас есть свободные буквы. Вы даже можете использовать простые пути UNC или монтировать даже глубокие имена путей (например net use t: \\server\share\bobs\eyes\only
) Просто создайте нужные вам общие ресурсы и используйте их соответствующим образом.
Однако Бобу и Элис не разрешен доступ к файлам друг друга.
Это вопрос прав доступа к файлам/папкам.
решение2
Я думаю... одним из способов сделать это было бы создание группы для пользователей, которые должны иметь доступ к общей папке, а затем настройка разрешений для общей папки таким образом, чтобы доступ к ней могли иметь только члены этой группы.
Например, вы можете создать группу с именем "media_access" и добавить в нее и Алису, и Боба. Затем вы можете установить разрешения на папку media_root так, чтобы только члены группы media_access могли получить к ней доступ. Для этого выполните следующую команду:
chgrp media_access /zshare/zpool1/home/media_root
chmod g+rwx /zshare/zpool1/home/media_root
Это изменит владельца папки media_root на группу media_access и предоставит членам этой группы разрешения на чтение, запись и выполнение в этой папке.
После настройки разрешений вы сможете получить доступ к общей папке с рабочих станций Алисы и Боба. Однако они смогут получить доступ только к файлам, которые находятся в общей папке, и не смогут получить доступ к файлам друг друга в своих домашних каталогах.
решение3
В конце концов мне пришлось включить и разместить DNS для сети, чтобы все заработало.
Пример:
подключение двух сетевых дисков в Windows, как показано ниже
\\192.168.11.1\share001
\\192.168.11.1\share002
не удается, однако при использовании DNS
\\alice\share001
\\bob\share002
^ то, что выше, работает, даже если оба alice
& bob
разрешаются в 192.168.11.1
.