Исключение файла 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

Мой вопрос:

  1. Если исходный файл можно изменить, когда мы используем для него 'mount --bind'?

  2. Почему файл превращается в файл-призрак? (Нет такого файла или каталога или устройства или ресурса заняты).

1 ответ

Решение
  1. файлмонтирования ed не может быть изменен до его монтирования, это означает, что вы не можете изменять метаданные смонтированных файлов.
  2. Как только вы измените метаданные подключенных файлов, он превратится в отдельный файл, который больше не связан с исходным файлом. Это может быть подтверждено индексом файла.
  3. Файл, управляемый GlusterFS, может иметь странный инод, имеющий гораздо больший номер инода, который не может быть распознан файловой системой Linux ("??????" в выходных данных). Вы можете смонтировать этот тип файла, но не можете изменить его метаданные, когда он был смонтирован.
Другие вопросы по тегам