Проверка кэша NFS и AFS

Клиенты NFS повторно проверяют блоки кэша при доступе, оценивая T-Tc

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

Что происходит, когда они звонки ревалидации теряются в сети? Когда мы предполагаем жесткое монтирование с помощью NFS, блокируется ли клиент NFS при ожидании ответа на вызов getattr, или мы можем пропустить эту проверку на некоторое время, чтобы продолжить работу?

То же для AFS, блокирует ли ожидание проверки, или мы можем продолжить работу?

0
задан 10 January 2016 в 17:53
1 ответ

Модель когерентности кэша AFS, принятая OpenAFS и AuriStorFS , немного отличается от описанной в вопросе.

Каждый объект, хранящийся в / afs, имеет оба

  1. ] Данные: файловый поток, содержимое каталога, цель точки монтирования или цель символической ссылки.
  2. Метаданные: размер, создатель, владелец, группа, режим unix, количество ссылок, временные метки, родительский идентификатор, состояние блокировки, список управления доступом и a * номер версии данных "

* номер версии данных" для объекта увеличивается каждый раз, когда данные объекта изменяются, но не при изменении метаданных.

Клиенту, также известному как диспетчер кеша, разрешено кэшировать данные и метаданные для объекта, но разрешено считать их актуальными только в том случае, если он получил * обещание обратного вызова »от файлового сервера. Это время жизни обещание обратного вызова , которое определяет, как часто диспетчер кеша должен выдавать FetchStatus RPC на файловый сервер. До тех пор, пока обещание обратного вызова не истекло, диспетчер кеша может использовать кэшированные данные. Если файловый сервер выдает обратный вызов RPC диспетчеру кеша, обещание отменяется, и диспетчер кеша должен получить обновленную информацию о состоянии.

Канал обратного вызова от файлового сервера к диспетчеру кеша в исходном файле Andrew File Система и OpenAFS не проходят проверку подлинности. Поэтому его нельзя использовать для передачи фактических данных или изменений метаданных. Диспетчер кеша должен получать их через собственное соединение, которое потенциально аутентифицировано и зашифровано. Одно из различий между AuriStorFS и Более ранние варианты AFS - это использование защищенных каналов обратного вызова.

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

Одним из свойств модели согласованности кэша AFS является то, что файловая система рассматривается как платформа для сериализованных сообщений. Существует фундаментальное требование: если машина A активно использует файл, а машина B хочет изменить файл, а затем отправить внешнее сообщение на машину A, чтобы прочитать обновленный файл, обновление файла должно прибыть до внешнего сообщения. . Это свойство гарантируется тем, что все обещания обратного вызова нарушаются до того, как RPC, изменивший файл, перейдет к издателю.

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

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

Я надеюсь, что это удовлетворительно описывает поведение файловых систем семейства AFS.

2
ответ дан 4 December 2019 в 13:44

Теги

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