Разница между устойчивыми дескрипторами файлов, устойчивыми дескрипторами файлов и постоянными дескрипторами файлов

Я вижу, что в протоколе CIFS / SMB есть 3 типа дескрипторов файлов: надежные, устойчивые и постоянные. В чем разница между ними?

7
задан 24 February 2016 в 05:03
3 ответа
  • Долговечные дескрипторы являются частью SMB 2.0
  • Устойчивые дескрипторы являются частью SMB 2.1
  • Постоянные дескрипторы являются частью SMB 2.2, которая теперь называется SMB3

Мои основные ссылки на следующие:

https://wiki.samba.org/index.php/SMB3_kernel_status

и хотя изначально это было для Samba3, в нем есть более подробная информация:

https://wiki.samba.org/ index.php / Samba3 / SMB2

Долговечные дескрипторы файлов позволяют подключению к серверу SMB пережить кратковременное отключение сети - стойкие дескрипторы не обязательно очищаются после завершения процесса открытия. Когда клиент пытается повторно подключиться, если блокировка (/ lease) все еще существует, он повторно подключается к файлу.

Но если другой клиент пытается открыть файл, блокировка / аренда прерывается, и первый клиент не может reconnect.

Устойчивые дескрипторы файлов сохраняются, даже если oplock / lease нарушена, но, честно говоря, я не могу проследить все технические детали того, как это работает. В одной из приведенных ниже ссылок говорится, что разница между Durable и Resilient заключается в том, как создаются дескрипторы - Durable с помощью вызова контекста create и Resilient с помощью IOCTL. (Главное, что я не могу понять, это то, как в это вписывается последовательность блокировок и воспроизведение, но не похоже, что это критическая разница между надежностью и отказоустойчивостью.)

Для постоянных дескрипторов я не могу придумать что-нибудь лучше , чем этот документ Samba:

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

Насколько я могу судить, они еще не реализованы в Samba, но целью является поддержка кластеризации и непрерывной доступности, так что над ним работают.

8
ответ дан 2 December 2019 в 23:25

Подробнее о постоянных дескрипторах ... Постоянные дескрипторы доступны на нескольких серверах одного кластера. Когда один сервер выходит из строя по какой-либо причине, клиентская машина может полупрозрачно продолжать использовать этот дескриптор через соединение с другим сервером. Вот почему реализация постоянных дескрипторов (в отличие от надежных и устойчивых дескрипторов) выходит за рамки чисто SMB. Например, наше хранилище NQ ожидает, что полная семантика постоянных дескрипторов будет реализована в настраиваемой VFS, в то время как механизм SMB отвечает за соответствующий синтаксис.

4
ответ дан 2 December 2019 в 23:25

Постоянная рукоятка Samba поддерживает состояние файловых дескрипторов, и даже если один из серверов в кластере выйдет из строя, новый ведущий может получить текущий файловый дескриптор и продолжить ввод/вывод без каких-либо ошибок при вводе/выводе

.
0
ответ дан 2 December 2019 в 23:25

Теги

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