Не имеющий ссылки inodes на экземпляре EC2 linux

Я думаю, что модуль на RHEL/CentOS/Fedora pcspkr. Можно проверить, загрузило ли это использование lsmod:

$ lsmod | grep pcspkr

Если это ничего не возвращает затем, что это не загружается. Можно загрузить его этой командой:

$ sudo modprobe pcspkr

Можно использовать modinfo узнать информацию о драйвере также. На CentOS 6.4:

$ modinfo pcspkr
filename:       /lib/modules/2.6.32-358.11.1.el6.x86_64/kernel/drivers/input/misc/pcspkr.ko
license:        GPL
description:    PC Speaker beeper driver
author:         Vojtech Pavlik <vojtech@ucw.cz>
srcversion:     1CA27E173B6361EE7DCACEF
depends:        
vermagic:       2.6.32-358.11.1.el6.x86_64 SMP mod_unload modversions
3
14.07.2014, 08:37
1 ответ

Описываемое поведение может быть вызвано приложениями, удерживающими открытые файлы даже после их удаления. Если приложение имеет открытый файл (например, tail), а другое приложение приходит и удаляет файл (например, rm), то первое приложение будет продолжать держать ссылку на файл до тех пор, пока первое приложение не закроет файл. В этот момент файловая система распознает, что файл удален и не открыт, и очищает ссылки.

Вот слишком простое объяснение того, как связаны файлы и иноды. Файл - это, по сути, запись в файловой системе, которая присваивает имя (или имена) конкретному иноду. Открытые файлы на самом деле ссылаются на inode. Когда вы удаляете файл, вы фактически удаляете связь между именем и инодом, но открытый файл также поддерживает связь между дескриптором открытого файла и инодом. Закрытие файла удаляет связь между дескриптором открытого файла и инодом. Инод не будет восстановлен файловой системой до тех пор, пока все ссылки не будут удалены.

Когда вы смотрите на свободное пространство, сообщаемое файловой системой, оно говорит вам о пространстве, связанном со всеми инодами, которые в настоящее время помечены как используемые. Когда вы просматриваете все каталоги и суммируете файловое пространство, используемое каждым файлом/директорией, оно может быть меньше, если файлы были удалены, но все еще открыты. При сканировании каталогов не будет видно места, используемого файлами, у которых были удалены ссылки на их имена.

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

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

.
4
27.01.2020, 21:19

Теги

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