Isilon. Общие сведения о дескрипторах файлов Isilon
Summary: Понимание того, как работают файловые системы OneFS.
Symptoms
Дескриптор файла — это базовая единица доступа к файловой системе NFS (Network File System). Это ссылки на файлы или каталоги, не зависящие от имени файла/каталога. Почти для всех NFS-вызовов или удаленных вызовов процедур (RPC) требуется дескриптор файла или идентификатор файла. Дескрипторы файлов непрозрачны для клиента, однако дескрипторы файлов OneFS сохраняются на каждом узле. В OneFS информация об обработчиках файлов хранится в индексных дескрипторах, и каждый файл, использующий один и тот же дескриптор файла, также использует тот же дескриптор файла. Это необходимо для предотвращения использования устаревших дескрипторов файлов при разных переключениях при отказе. OneFS не перерабатывает дескрипторы файлов, и дескриптор файла может существовать, пока существует его файл.
Cause
Resolution
Как правило, дескрипторы файлов создаются на сервере NFS и могут различаться в зависимости от платформы. В OneFS дескриптор файла создается, когда логический интерфейс INode (LIN) создается во время создания файла. Дескрипторы файлов состоят из идентификатора файловой системы (FSID), идентификатора экспорта и LIN соответствующего файла или каталога. Дескрипторы файлов OneFS являются 64-разрядными, что делает их теоретически неограниченными (общее количество возможных одновременных дескрипторов файлов = 18 квинтиллионов * 10^19). При максимальном использовании теоретически может потребоваться 1 миллиард лет, чтобы исчерпать доступные логические индексные дескрипторы в кластере Isilon.
Поскольку OneFS не перерабатывает логические индексные дескрипторы, можно ожидать, что LIN связывается с дескриптором соответствующего файла.
Задание lincount можно использовать для нахождения текущего количества LIN кластера:
# isi job start lincount # isi job reports view <JobID> Example: ------------ ps9500x3-2# isi job start lincount Started job [5983] ps9500x3-2# isi job reports view 5983 LinCount[5983] phase 1 (2025-11-25T20:40:04) -------------------------------------------- LINs traversed 28865 SINs traversed 0 JE/Error Count 0 JE/Time elapsed 7 seconds JE/Time working 9 seconds LinCount[5983] Job Summary -------------------------- Final Job State Succeeded Phase Executed 1
Поскольку LIN являются частью дескрипторов файлов OneFS, LIN можно извлечь из дескрипторов файлов. Перейдите по ссылке ниже, чтобы узнать об этом процессе.
Как получить LIN по дескриптору
файлаНекоторые операционные системы и устаревшие приложения не могут принимать дескрипторы 64-разрядных файлов и не могут взаимодействовать с кластером Isilon из-за этого ограничения.
Чтобы обойти это ограничение, OneFS может возвращать клиентам идентификаторы 32-разрядных файлов, однако эта возможность имеет дополнительную плату и предостережение.
Если количество файлов превышает четыре миллиарда или если количество создаваемых и удаляемых файлов является достаточным, существует вероятность того, что LIN-оболочка будет выполнена (по модулю 32 бита). Это может привести к тому, что несколько LIN-адресов будут указывать на один и тот же дескриптор файла. С математической точки зрения такая ситуация крайне маловероятна, но при соблюдении вышеуказанных условий существует возможность серьезной потери данных. При реализации 32-разрядных идентификаторов файлов необходимо соблюдать осторожность. На момент написания этой статьи в кластере Isilon не наблюдалось ни одной проблемы.
Как реализовать использование идентификаторов 32-разрядных файлов в NFS
Иногда могут возникать проблемы с дескрипторами устаревших файлов. Устаревший дескриптор файла — это дескриптор файла, который больше не соответствует активному FSID. В основе FSID лежит идентификатор поколения (GENID), который аналогичен номеру версии файла. Операции записи не основываются на последнем идентификаторе GENID, поэтому может выдаваться ошибка дескриптора устаревшего файла.
Устаревшие дескрипторы файлов могут быть вызваны проблемами кэширования клиента, или файл не был заблокирован и был открыт для редактирования двумя или более одновременными пользователями. Для исправления устаревших дескрипторов файлов требуется блокировка файлов.