Назад | Перейти на главную страницу

каталог list работает медленно при использовании NFSv4

В настоящее время я настраиваю совместное использование файлов на основе NFS между моим клиентом Mac (Macos 10.14.1) и сервером Raspberry Pi3 (U16.04.1 LTS). Поскольку я дважды загружаю свой Mac (MacOS / Ubuntu18), я хочу использовать свой Pi с NFS (у меня уже есть Samba, которая работает хорошо, но она не обрабатывает разрешения Unix) в качестве общего дома, чтобы уменьшить дублирование файлов и упростить контроль версий. . После того, как MacOS заработает правильно, я займусь настройкой Ubuntu.

На данный момент у меня установлено два общих ресурса, один с использованием NFS3 (анонимно), другой с использованием NFSv4 (домашний / пользователь1). Чтение / запись файлов в любой из общих ресурсов выполняется очень быстро и работает хорошо (за исключением несоответствий UID / GID). У меня проблема в том, что, хотя список файлов в общей папке NFS3 также выполняется очень быстро, список файлов в общей папке NFSv4 ОЧЕНЬ медленный, и я не могу понять почему.

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

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

В конечном счете, я хочу синхронизировать UID / GID между моим Mac и Pi, но это уже другой вопрос, так как я сейчас не особо разбираюсь в настройке LDAP (или использовании NIS?) С (но, надеюсь, без) Kerberos. Кроме того, у меня сейчас нет настройки контроллера домена.

Заранее благодарим за то, что нашли время прочитать о моей проблеме и ваши предложения.

Сторона сервера
/ etc / exports:

/srv/anonymous *(rw,sync,insecure,no_subtree_check,all_squash)
/srv/home/user1 *(rw,sync,fsid=0,insecure,crossmnt,no_subtree_check,no_root_squash)

/ etc / default / nfs-common:

NEED_STATD=
NEED_IDMAPD=yes
STATDOPTS="--port 4000 --outgoing-port 4001"
NEED_GSSD=

/ etc / default / nfs-kernel-server:

RPCNFSDCOUNT=8
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS="--manage-gids -p 4002"
NEED_SVCGSSD=""
RPCSVCGSSDOPTS=""
RPCNFSDOPTS=""

/etc/idmapd.conf:

[General]
Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs

[Translation]
   Method=static
[Static]
   user1@mac.local = user1

[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup

/etc/modprobe.d/blacklist.conf:

blacklist rpcsec_gss_krb5

/etc/modprobe.d/options.conf:

options lockd nlm_udpport=4001 nlm_tcpport=4001

/ и т.д. / модули:

lockd

/ sys / module / nfsd / parameters / nfs4_disable_idmapping:

Y  (I've tried manually setting this to "N" but it gets overwritten)
   (So I'm using nfs-common to manage this via the 'NEED_IDMAPD=yes' option

Сторона клиента
Монтаж производится с использованием:

mount -v -t nfs -o proto=tcp,port=2049 raspberry.local:/srv/anonymous ~/ranonymous
mount -v -t nfs -o rsize=32768,wsize=32768,proto=tcp,port=2049,sec=sys raspberry.local:/srv/home/user1 ~/ruser1

Результаты время лс / акция:

user1@mac:[ 6:13]$ time ls ranonymous/
a1        putty.zip test

real    0m0.013s
user    0m0.002s
sys     0m0.004s
user1@mac:[ 6:13]$ time ls ruser1/
a1        a2        a3        a4        a5        me        me copy   myScripts you       you1      you2      you3

real    0m6.044s
user    0m0.002s
sys     0m0.004s

ОБНОВИТЬ Я разработал часть ответа на медленный ls время, которое связано с использованием цветов. Комментируя export CLICOLOR=1 в моем профиле bash теперь нормальная скорость. Жалко, потому что я хочу, чтобы в моем терминале был цвет.

1) Почему эта проблема возникает только с NFSv4?
2) Почему эта проблема затрагивает только корневую папку, но не подпапки, которые я получаю очень быстро, даже если цвета все еще включены. 3) Есть ли способ настроить мой профиль bash так, чтобы у меня был цвет при перечислении локальных папок, но не цвет при перечислении общих ресурсов без использования разных команд?
4) Можно ли добиться высокой производительности без ущерба для цвета?

У меня есть еще один связанный с этим вопрос: в терминале я получаю доступ к общему диску в соответствии с точкой монтирования (~ / ruser1). Однако в Finder точка монтирования переименована в (~ / пользователь1), базовый каталог общего ресурса сервера. Есть ли способ сделать это последовательным?