Откуда приходит номер инода файла, смонтированного через NFS?

1794
Aldian

Я задал вопрос о пересмотре кода, чтобы узнать, смогу ли я смело заменить следующий код:

:inode => [stat.ino, stat.dev_major, stat.dev_minor], 

что вызвало NotImplementedError из-за того, что jruby не извлекает реализацию статистики для dev_major / dev_minor в Solaris,

:inode => [stat.ino, nil, nil], 

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

Но в моем случае все файлы журналов с каждого сервера монтируются в одном и том же каталоге через NFS, поэтому мне было интересно, будут ли при доступе к файлам номера инодов, полученные с помощью ruby, быть фактическими номерами инодов удаленных файлов или " local "inode number" ссылки NFS, в этом случае я буду в безопасности.

Кстати, я не очень знаком с этими понятиями, и английский не является моим родным языком, поэтому я прошу прощения, если мне неясно.

Спасибо за вашу помощь

1
Вы всегда можете проверить это. Запишите несколько файлов по NFS, затем сравните вывод `ls -li` из вашего монтирования NFS и локально на самом сервере NFS. Nathan C 10 лет назад 0
К сожалению, я не могу. Мне не хватает привилегий и паролей. Но я могу попытаться спросить сисадминов .. Aldian 10 лет назад 0
Но чем больше я об этом думаю, тем больше я сомневаюсь в этом: если бы NFS применял тот же самый inode, что и на удаленном сервере, возникли бы риски столкновения с существующими файлами с локального хоста. Кроме того, они говорят, что NFS использует пользовательские FileHandles, тщательно спроектированные для сохранения уникальности и предотвращения рисков коллизий и безопасности, и я думаю, что локальные inode должны быть инодами этих дескрипторов, это будет иметь больше смысла. Aldian 10 лет назад 0

1 ответ на вопрос

1
Scott Leadley

The inode numbers come from the NFS servers (the systems that contain the log files). The system your ruby application is running on is a NFS client. So, yes, there is the potential for inode number collisions.

Как я сказал в ответе, который был удален _ @ Dave M_, я сам проверил это, выполнив `ls -li` на клиенте и сервере NFS, и увидел, что это одно и то же Aldian 10 лет назад 0