Сервер A
экспортирует каталог /srv
через NFS с опцией nohide
. Подкаталог внутри /srv
, /srv/foo
- это точка монтирования для другого расположения на сервере NFS с использованием --bind
опции, например
server# mount --bind /bar/foo/ /srv/foo/
Клиент B
импортирует A:/srv
и монтирует его при /mnt/srv
использовании NFS. Содержание /mnt/srv
является содержанием A:/srv
.
Проблема в том, что /mnt/srv/foo
пусто, а я ожидаю увидеть там содержимое A:/bar/foo/
.
Как правильно экспортировать и импортировать общие папки NFS с подкаталогами в качестве точек монтирования?
/srv/foo --> /bar/foo
?/bar/foo
на клиентском компьютереB
, а не на сервереA
.Ответы:
crossmnt
твой друг.источник
Я столкнулся с этой проблемой, следуя руководству по Diskless Arch , и это действительно замедлило меня. Я собираюсь поделиться своими выводами здесь, так как мне любопытно, будет ли это работать для кого-то еще.
В соответствии с руководством по бездисковым системам у меня есть корневая файловая система бездискового клиента (фактические данные, которые мне нужно экспортировать) в образе обратной петли, который был смонтирован на
/srv/des1
:Затем я создал точку монтирования,
/nfs/des1
затем запустил монтирование и подтвердил, что могу видеть все:Обратившись к руководству Arch NFS , я добавлю
/etc/exports
на сервер следующее:Затем я запустил
exportfs -rav
на сервере, чтобы применить эти изменения.Однако затем я смонтировал общий ресурс на тестовом клиенте с помощью:
mount server:/des1 /mnt/tmp
only, чтобы найти пустой каталог, когда ожидал, что там будет находиться diskless-root-filesystem.На этом этапе я попробовал почти все, пока что-то не привело меня к этой опции на
exports
странице руководства :Так что, попробовав все остальное, я поменял местами так, чтобы мой
/etc/exports
был похожПрочитав запись справочной страницы, вы подумали, что это будет иметь тот же эффект, что и предыдущий код, но когда я
exportfs -rav
снова запустился, чтобы зарегистрировать изменения, затем попытался перемонтировать их с клиента, и это сработало!источник
Похоже, что каждая точка монтирования должна быть экспортирована сервером NFS, чтобы быть видимой для клиентов. В ситуации выше
/etc/exports
файл должен выглядеть следующим образом:Затем, импорт
/srv
на клиенте с опцией-t nfs
сделает/srv
и/srv/foo
правильно, и доступным.редактировать с помощью OP
эта линия
работал в моем случае вместо
источник
Я действительно хотел сделать это тоже, но, похоже, есть проблемы с этой идеей, потому что клиенты NFS ожидают, что номера инодов файлов будут уникальными в представлении клиента об одном монтировании.
Проблемы подробно описаны в этом блоге (не мной): http://utcc.utoronto.ca/~cks/space/blog/unix/MultiFilesystemNFSIssue
Я решил смонтировать файловые системы отдельно и соединить их вместе, что должно работать для всех клиентов NFS.
источник
ПРИМЕЧАНИЕ: включен только один пользователь
Он добавляет набор изменений на стороне сервера и на стороне клиента. На стороне сервера
/etc/exports
и/etc/fstab
на стороне клиента.Серверная сторона
Asus eeepc
Сторона клиента
Ядро Linux 4.15.0-38-generic x86_64
источник