У меня два сервера RedHat 4. Клиент 4.6, сервер 4.5. Я пытаюсь подключить общий ресурс с сервера к клиенту через NFS.
Конфигурация / etc / exports выглядит следующим образом:
/opt/data/config bkup(rw,no_root_squash,async)
/opt/data/db bkup(rw,no_root_squash,async)
exportfs возвращает эти (среди других) доли, nfs работает согласно ps
вывод.
Я пытался использовать autofs на клиенте, но решил просто подключить общий ресурс вручную, учитывая проблемы, которые у меня возникают.
Итак, я выдаю запрос на монтирование:
mount dist:/opt/data/config /mnt/config
mount: dist: / opt / data / config не удалось, причина указана сервером: в доступе отказано
Хорошо, давайте посмотрим, что сервер может сказать сам за себя.
6 мая 23:17:55 dist mountd [3782]: аутентифицированный запрос монтирования от bkup: 662 для / opt / data / config (/ opt / data / config)
В нем говорится, что он позволил монтированию состояться.
Как я могу определить, почему клиент и сервер не согласны с результатом?
Это хороший пример разницы между аутентификацией и авторизацией. В этом сценарии аутентификация прошла успешно, но, скорее всего, проблема связана с авторизацией в каталоге хоста. Для проверки вы можете попробовать рекурсивно установить права доступа к каталогу хоста на 777 (не забудьте изменить это позже).
Что нужно проверить:
Обычно я отлаживаю подобные проблемы с помощью tcpdump. Захват необработанного пакета всегда что-то говорит.
Запустите захват пакетов как с клиента, так и с сервера NFS.
tcpdump -s0 -i ethX -w /tmp/tcpdump_from_client.pcap host <NFS-server-IP>
tcpdump -s0 -i ethX -w /tmp/tcpdump_from_server.pcap host <NFS-client-IP>
Замените ethX на eth1 или 2 или что у вас есть.
Затем найдите передачи RPC в захвате пакета. Я предпочитаю wirehark и вижу раздел TCP. Я часто видел, что это дает какую-то подсказку.
Следующим шагом будет включение журналов отладки NFS.
Я настоятельно прошу вас сохранить данные tcpdump при себе или проверить их у кого-то, кому вы доверяете.
Проверьте, есть ли файлы в /proc/fs/nfsd
.
Если нет, введите эту команду:
mount -t nfsd none /proc/fs/nfsd
Если есть, я тоже не знаю.