Мои основные ссылки на следующие:
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, но целью является поддержка кластеризации и непрерывной доступности, так что над ним работают.
Подробнее о постоянных дескрипторах ... Постоянные дескрипторы доступны на нескольких серверах одного кластера. Когда один сервер выходит из строя по какой-либо причине, клиентская машина может полупрозрачно продолжать использовать этот дескриптор через соединение с другим сервером. Вот почему реализация постоянных дескрипторов (в отличие от надежных и устойчивых дескрипторов) выходит за рамки чисто SMB. Например, наше хранилище NQ ожидает, что полная семантика постоянных дескрипторов будет реализована в настраиваемой VFS, в то время как механизм SMB отвечает за соответствующий синтаксис.
Постоянная рукоятка Samba поддерживает состояние файловых дескрипторов, и даже если один из серверов в кластере выйдет из строя, новый ведущий может получить текущий файловый дескриптор и продолжить ввод/вывод без каких-либо ошибок при вводе/выводе
.