Исключение файла Linux: устройство или ресурс занят
Упрощенная сцена кластера балансировки нагрузки: 2 CentOS7 с GlusterFS для совместного использования некоторых файлов конфигурации (тип репликации) и монтирование файловой системы Gluster на каждый узел (например, /mnt/gluster/); затем я использовал команду mount --bind, чтобы связать файл *.conf из точки монтирования glusterfs с директорией моего приложения (например, / my / app /).
Я изменяю файл conf в / my / app / dir, он может корректно распространить изменения на каждый узел в кластере. Но однажды я изменил файлы в таких как /mnt/gluster/example.conf
точка монтирования этого файла (например, /my/app/example.conf
) превратился бы в недоступный статус. Похоже:
[root@gluster1 mount]#ll
ls: cannot access 1: No such file or directory
total 0
-????????? ? ? ? ? ? example.conf
[root@gluster1 mount]#mv example.conf example.bak
mv: cannot move ‘example.conf’ to ‘example.bak’: Device or resource busy
Мой вопрос:
Если исходный файл можно изменить, когда мы используем для него 'mount --bind'?
Почему файл превращается в файл-призрак? (Нет такого файла или каталога или устройства или ресурса заняты).
1 ответ
- файлмонтирования ed не может быть изменен до его монтирования, это означает, что вы не можете изменять метаданные смонтированных файлов.
- Как только вы измените метаданные подключенных файлов, он превратится в отдельный файл, который больше не связан с исходным файлом. Это может быть подтверждено индексом файла.
- Файл, управляемый GlusterFS, может иметь странный инод, имеющий гораздо больший номер инода, который не может быть распознан файловой системой Linux ("??????" в выходных данных). Вы можете смонтировать этот тип файла, но не можете изменить его метаданные, когда он был смонтирован.