mount.nfs: Ошибка устаревшего дескриптора файла - невозможно размонтировать

Есть два случая, когда компьютер может переслать IP-пакет:

  • Первый случай: Скажите, что IP-адрес назначения входящего пакета - это 10.20.30.40 и интерфейс, на который приходит пакет, настроен на 10.20.30.1 маску 255.255.255.0. Это пакеты назначения подсети и интерфейсы подсети одинаковы. Затем ваша операционная система перенаправит пакет на широковещательный 10.20.30.255. (здесь сказано: "Вот пакет, который адресован кому-то из моих собственных Капюшон, так что, пожалуйста, возьми его!").

  • Второй случай: Скажите IP-адрес назначения входящего пакета - 10.20.40.40 и интерфейс, на который приходит пакет, настроен на 10.20.30.1 маску 255.255.255.0. Затем
    Адрес назначения находится за пределами интерфейсов подсети. Так и есть. не знаю, куда его отправить. Поэтому он направляет его к шлюзу по умолчанию
    . который, в свою очередь, пытается найти место назначения.

В вашем случае шлюз по умолчанию точно совпадает с IP-адресом вашего интерфейса. Это значит: Когда ваш компьютер не знает, куда послать пакет, он посылает его себе соответственно на один из своих собственных интерфейсов. Это звучит странно - и это так. Шлюз интерфейса должен быть в той же подсети, что и сам интерфейс, но никогда не должен быть BE. Вам нужен другой шлюз по умолчанию в той же подсети, чтобы быть счастливым.

Если вы не знаете свой шлюз по умолчанию для этого интерфейса, попробуйте получить действительный шлюз по умолчанию для этого интерфейса через DHCP-конфигурацию (сконфигурируйте этот интерфейс как DHCP-клиент).

UPDATE:

В случае, если вы работаете в виртуальной машине (я вижу, что это Virtual Box), попробуйте узнать IP-адрес "Virtual Box Host Only Adapter" на вашей хост-машине (команда: ifconfig или ipconfig). Затем сконфигурируйте IP-адрес адаптера "Только для виртуального хоста", чтобы он был шлюзом по умолчанию для вашего VM-гостя.

UPDATE2:

На вашем хост-машине должна быть активирована переадресация ipv4 и NAT для получения доступа в Интернет:

echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
iptables -t nat -A POSTROUTING -o <interface on which you have the i-net access> -j MASQUERADE

UPDATE3:

Если вы хотите использовать "Host Only Adapter", то, возможно, сначала вы должны создать "Сеть только для хостов" в меню "Файл->Настройки", выбрав закладку "Сети только для хостов"....

5
19.07.2018, 22:34
5 ответов

The error, ESTALE, was originally introduced to handle the situation where a file handle, which NFS uses to uniquely identify a file on the server, no longer refers to a valid file on the server. This can happen when the file is removed on the server, either by an application on the server, some other client accessing the server, or sometimes even by another mounted file system from the same client. The NFS server also returns this error when the file resides upon a file system which is no longer exported. Additionally, some NFS servers even change the file handle when a file is renamed, although this practice is discouraged.

This error occurs even if a file or directory, with the same name, is recreated on the server without the client being aware of it. The file handle refers to a specific instance of a file and deleting the file and then recreating it creates a new instance of the file.

The error, ESTALE, is usually seen when cached directory information is used to convert a pathname to a dentry/inode pair. The information is discovered to be out of date or stale when a subsequent operation is sent to the NFS server. This can easily happen in system calls such as stat(2) when the pathname is converted a dentry/inode pair using cached information, but then a subsequent GETATTR call to the server discovers that the file handle is no longer valid.

This error can also occur when a change is made on the server in between looking up different components of the pathname to be looked up or between a successful lookup and a subsequent operation.

Исходная ссылка на ESTALE:ESTALE LWN .

Я предлагаю вам проверить файлы и каталоги на сервере NFS или попросить сделать это администратора сервера NFS.

Возможно, на сервере NFS существуют какие-то старые записи кэша страниц, inode, dentry. Пожалуйста, очистите его:

# To free pagecache
echo 1 > /proc/sys/vm/drop_caches

# To free dentries and inodes
echo 2 > /proc/sys/vm/drop_caches

# To free pagecache, dentries and inodes
echo 3 > /proc/sys/vm/drop_caches
6
27.01.2020, 20:33

Un mount -t nfsfalla con Stale file handlesi el servidor tiene algunas entradas de exportación obsoletas para ese cliente.

Escenario de ejemplo :esto podría suceder cuando el servidor se reinicia sin que el cliente desmonte primero los volúmenes nfs. Cuando el servidor está de vuelta y el cliente desmonta e intenta montar el volumen nfs, el servidor puede responder con:

mount.nfs: Stale file handle

Puede verificar esto mirando /proc/fs/nfs/exportso /proc/fs/nfsd/exports. Si hay una entrada para el cliente, podría ser una obsoleta.

Puede arreglar esto explícitamente no exportando -y reexportando -las exportaciones relevantes en el servidor. Por ejemplo, para hacer esto con todas las exportaciones:

# exportfs -ua
# cat /proc/fs/nfs/exports
# exportfs -a

Después de esto, el mount -t nfs...del cliente debería tener éxito.

Tenga en cuenta que montar el rendimiento ESTALEes bastante diferente de alguna otra llamada del sistema (como open/readdir/unlink/chdir... )que devuelve ESTALE. La exportación está obsoleta frente a un identificador de archivo obsoleto. Un identificador de archivo obsoleto ocurre fácilmente con NFS (, p. un cliente tiene un identificador de archivo pero el archivo se eliminó en el servidor ).

15
27.01.2020, 20:33

Проверить, действительно ли смонтирован экспорт:

# cat /proc/mounts | grep nfs

Ошибка дескриптора устаревшего файла означает, что сервер NFS содержит старую версию файлов в своем пути экспорта. Иногда может помочь перезапуск сервера NFS. Но с более старыми ОС (RHEL/CentOS 6.9 )иногда лучше вернуться к NFS3 вместо NFS4. По моему опыту, у старых клиентов NFS4 иногда возникают проблемы с новыми серверами NFS4.1. Особенно это касается блокировки файлов.

0
27.01.2020, 20:33

Найдите устаревшую запись монтирования на сервере NFS:

showmount -a | grep ip_address_of_nfs_client

Если вы видите строки, связанные с IP-адресом клиента NFS и общим ресурсом, который вы пытаетесь смонтировать, удалите устаревшие записи из rmtab:

vi /var/lib/nfs/rmtab

Перезагрузите rpc.mountd, чтобы он увидел новый rmtab:

killall rpc.mountd ; /usr/sbin/rpc.mountd
1
27.01.2020, 20:33

В моем случае я также получал сообщение об ошибке «mount.nfs :Устаревший дескриптор файла» при монтировании нового тома. Это происходило из-за того, что старый смонтированный том был удален. После размонтирования том с помощью

umount /mnt

Когда я снова подключился, проблема решилась.

1
06.10.2021, 14:18

Теги

Похожие вопросы