×
27.08.2016
216.015.4db5

ОБЕСПЕЧЕНИЕ ПРОЗРАЧНОЙ ОТРАБОТКИ ОТКАЗА В ФАЙЛОВОЙ СИСТЕМЕ

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002595482
Дата охранного документа
27.08.2016
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к области взаимодействия нескольких компьютеров. Технический результат - предоставление клиенту возможности возобновить соединение с сервером путем удаленного сохранения информации о состоянии клиента в связи с ключом возобновления. Система предоставляет фильтр ключа возобновления, функционирующий на сервере, который обеспечивает хранение непостоянной информации о состоянии сервера. Информация о состоянии может включать в себя такую информацию, как уступающие блокировки, аренды, предоставленные клиенту, и рабочие операции над дескриптором файла. Драйвер фильтра ключа возобновления находится выше файловой системы, что позволяет нескольким протоколам доступа к файлу использовать этот фильтр. В результате события отработки отказа, такого как сервер, выходящий из строя или теряющий возможность подключения к клиенту, система может ввести в эксплуатацию другой сервер или тот же сервер и восстановить состояние для дескрипторов файлов, удерживаемых различными клиентами, с использованием фильтра ключа возобновления. 3 н. и 17 з.п. ф-лы, 4 ил.
Реферат Свернуть Развернуть

УРОВЕНЬ ТЕХНИКИ

[0001] Существует ряд методик для совместного использования файлов, принтеров и других ресурсов между двумя компьютерами в сети. Например, двумя сетевыми протоколами прикладного уровня для совместного использования ресурсов являются Блок сообщений сервера (SMB) и Сетевая файловая система (NFS). SMB используется MICROSOFT™ WINDOWS™ и другими операционными системами, чтобы разрешить двум компьютерам или другим ресурсам взаимодействовать, запрашивать доступ к ресурсам, задавать желаемый доступ к ресурсам (например, чтение, запись и т.п.), блокировать ресурсы и так далее. MICROSOFT™ WINDOWS™ Vista представила SMB 2.0, который упростил набор команд SMB 1.0 и добавил много других расширений. MICROSOFT™ WINDOWS™ 7 и Server 2008 R2 представили SMB 2.1, который добавил уступающую блокировку (oplock) и другие расширения.

[0002] Большинство протоколов для удаленного совместного использования ресурсов предполагают взаимно-однозначное соответствие между соединениями и сеансами. Сеанс представляет собой время существования любого одиночного запроса доступа к ресурсу и последующего доступа к тому ресурсу, пока не завершится соединение. Сеанс также может ассоциироваться с конкретным участником безопасности и проверенными учетными данными безопасности, которые определяют действия, которые санкционируются в течение сеанса. Соединение может включать в себя Протокол управления передачей (TCP), Протокол дейтаграмм пользователя (UDP) или другой тип соединения, по которому протоколы более высокого уровня типа SMB и NFS могут взаимодействовать, чтобы выполнять команды. Сеанс SMB или NFS обычно включает в себя открытие соединения TCP или UDP между источником запроса и целевым объектом запроса, отправку одной или нескольких команд SMB или NFS для доступа к целевому ресурсу, и затем закрытие сеанса. Иногда соединения теряются во время сеанса (например, из-за сетевого сбоя), сбрасывая любое состояние клиента и сервера, установленное во время соединения. Чтобы восстановить соединение, клиенту и серверу обычно нужно еще раз повторить все этапы, используемые для исходного установления соединения.

[0003] Протокол SMB2 предоставляет ключ возобновления, который позволяет клиентам быстро восстановить дескриптор файла для сервера, если клиент отключается от сервера, предоставляя клиентам возможность сократить сетевые круговые маршруты к серверу и сократить нагрузку на сервер, когда клиент повторно подключается. Однако на сегодняшний день ключ возобновления не обеспечивает восстановление состояния в случае отработки отказа сервером, при которой сервер SMB2 утрачивает изменяемое состояние во время перезагрузки сервера или отработки отказа в кластере. Информация о состоянии, ассоциированная с существующими открытыми дескрипторами, теряется и должна быть восстановлена. К тому же ключ возобновления является понятием прикладного уровня, которое может создаваться и использоваться только в пределах границы приложения, но не использоваться совместно.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

[0005] Данное краткое изложение сущности изобретения предоставляется, чтобы представить подборку идей в упрощенном виде, которые дополнительно описываются ниже в подробном описании. Это краткое изложение сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного изобретения и также не предназначено для использования в ограничении объема заявленного изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0006] Фиг.1 - блок-схема, которая иллюстрирует компоненты системы состояния соединения в одном варианте осуществления.

[0007] Фиг.2 - блок-схема алгоритма, которая иллюстрирует обработку в системе состояния соединения для сбора информации о состоянии файловой системы в одном варианте осуществления.

[0008] Фиг.3 - логическая блок-схема, которая иллюстрирует обработку в системе состояния соединения для возобновления соединения после отработки отказа в одном варианте осуществления.

[0009] Фиг.4 - блок-схема, которая иллюстрирует операционную среду системы состояния соединения в одном варианте осуществления.

ПОДРОБНОЕ ОПИСАНИЕ

[0010] В этом документе описывается система состояния соединения, которая позволяет клиенту возобновить соединение с сервером или другим заменяющим сервером путем удаленного сохранения информации о состоянии клиента в привязке к ключу возобновления. Система предоставляет фильтр ключа возобновления, функционирующий на сервере, который обеспечивает хранение непостоянной информации о состоянии сервера. Информация о состоянии может включать в себя такую информацию, как уступающие блокировки, аренды, предоставленные клиенту, и рабочие операции над дескриптором файла. Драйвер фильтра ключа возобновления находится выше файловой системы, что позволяет нескольким протоколам доступа к файлу использовать этот фильтр, также разрешая фильтру предоставлять эти функциональные возможности на нескольких файловых системах. Система предоставляет информацию о состоянии протоколу независимо от фактического протокола. В результате события отработки отказа, такого как сервер, выходящий из строя или теряющий возможность подключения к клиенту, система может ввести в эксплуатацию другой сервер или тот же сервер (например, по другому соединению, такому как резервное Ethernet-соединение) и восстановить состояние для дескрипторов файлов, удерживаемых различными клиентами, с использованием фильтра ключа возобновления.

[0011] Система предоставляет фильтр ключа возобновления, который может использоваться для прозрачной отработки отказа после того, как сервер теряет свое соединение с клиентом. Фильтр ключа возобновления находится над файловой системой и поэтому не зависит от протокола, используемого для доступа к файловой системе. Фильтр ключа возобновления записывает состояние активного файла, а затем восстанавливает состояние активного файла после отработки отказа. Фильтр ключа возобновления может собирать ряд информации о состоянии. Например, фильтр записывает активное состояние файловой системы, содержащее открытые дескрипторы (на которые статически ссылается ключ возобновления), незафиксированное состояние файла (например, удаление при закрытии, ожидание удаления и состояние блокировки) и некоторые рабочие/прерванные файловые операции. Фильтр восстанавливает активное состояние файловой системы после отработки отказа так, что открытые дескрипторы возобновляются для соответствия таковым перед отработкой отказа, и рабочие операции можно повторить соответственно. Фильтр предоставляет нескольким Удаленным файловым системам (RFS) средство для хранения и извлечения непрозрачных данных, которые ассоциируются с открытым дескриптором файла, на который ссылаются посредством ключа возобновления. Фильтр принудительно устанавливает период сокрытия у активных файлов после отработки отказа, который гарантирует, что состояние активного файла можно восстановить соответственно, и что другие клиенты не вмешиваются в доступ к файлу в это время. Фильтр также позволяет "приостановить" активный в настоящее время файл, а затем возобновить без отработки отказа, чтобы поддержать SMB в кластерном сценарии, где узлы отрабатывают отказ.

[0012] Удаленная файловая система (RFS) поставляет ключ возобновления с каждой операцией создания файла в качестве дополнительного параметра во время создания. Этот ключ уникален для RFS. Фильтр ключа возобновления использует ключ возобновления и ключ идентификации RFS совместно в качестве глобального уникального идентификатора (GUID) для дескриптора файла. В фазе возобновления ключ возобновления используется для отображения существующих дескрипторов файлов перед отработкой отказа в фиксированное состояние файлов после отработки отказа, сохраненное фильтром ключа возобновления. Таким образом, система состояния соединения позволяет тому же или другому серверу возобновить состояние предыдущего сеанса с клиентом после события отработки отказа с как можно меньшим перерывом для клиентов.

[0013] Фиг.1 - блок-схема, которая иллюстрирует компоненты системы состояния соединения в одном варианте осуществления. Система 100 включает в себя компонент 110 сбора состояния, компонент 120 хранения состояния, хранилище 130 данных состояния, компонент 140 обнаружения возобновления, компонент 150 извлечения состояния, компонент 160 восстановления состояния, компонент 170 принудительного применения сокрытия и компонент 180 приостановки ресурса. Каждый из этих компонентов подробнее описывается в этом документе.

[0014] Компонент 110 сбора состояния создает запись о состоянии для каждого дескриптора файла и собирает информацию о состоянии, когда клиент запрашивает операции с использованием дескриптора файла. Компонент 110 может работать на сервере и сохранять информацию о состоянии внешне от сервера, чтобы к информации о состоянии можно было обращаться, если сервер недоступен. Например, компонент 110 может хранить информацию о состоянии в хранилище 130 данных состояния, описанном далее в этом документе. Компонент 110 сбора состояния может принять ключ возобновления от клиента, когда клиент подключается к серверу, и компонент 110 ассоциирует собранную информацию о состоянии с ключом возобновления в хранилище 130 данных состояния. Если клиент повторно подключается после события отработки отказа, то клиент предоставит тот же ключ возобновления, используемый для открытия начального соединения, и текущий сервер может найти информацию о состоянии, сохраненную предыдущим сервером, и воссоздать состояние сервера из информации о состоянии.

[0015] Компонент 120 хранения состояния сохраняет собранную информацию о состоянии в связи с ключом возобновления, предоставленным клиентом. Компонент 120 сохраняет информацию о состоянии в хранилище 130 данных состояния и регистрирует операции, связанные с ключом возобновления, которые были бы восстановлены в случае события отработки отказа. Информация о состоянии может включать в себя открытые дескрипторы файлов, уступающие блокировки, предоставленные аренды и информацию об аренде, выполняющиеся файловые операции, блокировки байтовых диапазонов и любую другую информацию, которую другой сервер использовал бы для выполнения запросов клиента без восстановления клиентом всего предыдущего состояния.

[0016] Хранилище 130 данных состояния на постоянной основе хранит информацию о состоянии файловой системы, которую возобновляющий сервер использует для воссоздания информации о состоянии, сохраненной неисправным сервером. В некоторых случаях возобновляющий сервер и неисправный сервер могут быть одним и тем же сервером, использующим разное соединение с клиентом или возвращающимся после короткого перерыва. В других случаях возобновляющий сервер и неисправный сервер являются разными серверами, и хранилище 130 данных состояния предоставляется в местоположении, доступном обоим серверам для совместного использования информации о состоянии. Хранилище 130 данных состояния может включать в себя один или несколько файлов, файловых систем, жестких дисков, баз данных, сетей хранения данных (SAN), служб облачного хранения, или другую систему памяти для постоянного хранения данных и доступную неисправному и возобновляющему серверам для обмена информацией. Когда неисправный сервер выполняет операции, он сохраняет информацию о состоянии касательно хода операций в хранилище 130 данных состояния. При сбое неисправный сервер будет приостановлен, а возобновляющий сервер обращается к информации о состоянии, чтобы возобновить состояние и продолжить выполнение любых операций, которые не были закончены.

[0017] Компонент 140 обнаружения возобновления обнаруживает условие, которое делает неисправный сервер недоступным, и сообщает возобновляющему серверу, чтобы тот действовал вместо неисправного сервера. Обнаружение может быть инициируемым клиентом, так что система не выполняет никакие возобновляющие этапы до тех пор, пока клиент не подключится повторно к системе и не предоставит ранее используемый ключ возобновления. Система идентифицирует ключ и любую информацию о состоянии, сохраненную в связи с ключом, и восстанавливает ту информацию о состоянии как часть настройки соединения. Возобновляющий сервер может быть одинаковым или отличающимся от неисправного сервера, и компонент 140 обнаружения возобновления обеспечивает, что возобновляющий сервер становится активным для обработки запросов клиента. В других вариантах осуществления обнаружение может быть инициируемым сервером, и система может предусмотрительно ввести в эксплуатацию возобновляющий сервер при обнаружении, что неисправный сервер вышел из строя. Система также может предварительно заполнить возобновляющий сервер сохраненной информацией о состоянии даже перед тем, как клиент запрашивает соединение с сервером.

[0018] Компонент 150 извлечения состояния извлекает сохраненную информацию о состоянии из местоположения, доступного возобновляющему серверу, где информация о состоянии позволяет возобновляющему серверу возобновить любые ранее запрошенные операции файловой системы, которые были прерваны обнаруженным условием сбоя. Компонент 150 извлечения состояния извлекает информацию о состоянии из хранилища 130 данных состояния и вызывает компонент 160 восстановления состояния для загрузки информации в возобновляющий сервер, чтобы возобновляющий сервер мог продолжить операции, запрошенные клиентом.

[0019] Компонент 160 восстановления состояния загружает извлеченную информацию о состоянии в возобновляющий сервер, чтобы возобновляющий сервер мог продолжить операции, ранее запрошенные клиентом. Восстановление также может включать в себя обновление любых уступающих блокировок и/или аренд, удерживаемых клиентом, для обеспечения, что другие клиенты соблюдают ранее запрошенные уровни доступа и/или исключительные права, предоставленные клиенту. Компонент 160 восстановления состояния позволяет новому серверу или узлу заменить неисправный сервер или узел, не возлагая большую нагрузку на клиента для восстановления информации о состоянии вследствие повторения прошлых операций. Клиенты, использующие протоколы типа SMB 2.0, уже знают, как использовать ключ возобновления для восстановления соединения с тем же сервером, и система состояния соединения позволяет заменяющему серверу заменить неисправный сервер прозрачно для клиента. Ключи возобновления также могут использоваться с NFS. В случае NFS понятие ключа возобновления является полностью непрозрачным для клиента. Клиент не обращается явно или не принимает участие в формировании, управлении и ассоциации ключа возобновления. Точнее, ключ возобновления является серверным понятием.

[0020] Компонент 170 принудительного применения сокрытия принудительно устанавливает период сокрытия на доступ к одному или нескольким файлам или другим ресурсам, который не дает второму клиенту вмешиваться в ресурсы способом, который конфликтовал бы с первым клиентом, возобновляющим соединение с возобновляющим сервером. Компонент 170 может автоматически выбирать период, считающийся достаточно длинным, чтобы избежать большинства конфликтующих операций (например, 15 или 30 секунд), но не настолько длинным, чтобы помешать другим клиентам обращаться к ресурсам, если первый клиент не возобновляет соединение. Этот период дает первому клиенту время на возобновление соединения, если того хочет первый клиент. В некоторых вариантах осуществления система позволяет администратору или другому пользователю конфигурировать длительность периода сокрытия для подстройки системы под специализированные цели. Система также может позволить отдельным клиентам запрашивать период сокрытия в качестве параметра к запросу создания/открытия или другому интерфейсу прикладного программирования (API). В ответ на попытки доступа к скрытому ресурсу компонент 170 может предоставить указание попытаться снова после конкретного периода или просто не выполнять запрос. После периода сокрытия, если никакой клиент не возобновил соединение, то сокрытие завершается, и запросы на доступ к ресурсу будут иметь успех, как обычно.

[0021] Компонент 180 приостановки ресурса позволяет приостановить и возобновить активный в настоящее время ресурс без события отработки отказа, чтобы позволить кластеру перейти на другой узел запланированным способом. Одним примером является балансировка нагрузки. Приостановка делает возможным сценарии, где подмножество состояния переносится на новый узел. Например, если один узел в кластере перегружен, то администратор может захотеть переместить половину клиентов узла на новый узел. Приостановка делает возможным сбор состояния открытых дескрипторов, которые перемещаются, и позволяет клиенту подключиться к новому узлу в виде продолжения того же открытого дескриптора (например, без восстановления состояния сервера). В качестве другого примера SMB поддерживает сценарии кластеризации, в которых типичные узлы вводятся в кластер и могут использоваться взаимозаменяемо для обслуживания запросов клиентов. Иногда существует причина вывести из эксплуатации конкретный узел, например для обслуживания, и желательно аккуратно приостановить текущий узел, активизировать новый узел, дезактивировать старый узел, а затем выполнить любое техническое обслуживание на дезактивированном узле. Это может оказать нежелательное влияние на клиентов, но с использованием описанных в этом документе методик система 100 может организованно приостановить узел и позволить клиентам эффективно возобновить операции с новым узлом.

[0022] Вычислительное устройство, на котором реализуется система состояния соединения, может включать в себя центральный процессор, память, устройства ввода (например, клавиатуру и указательные устройства), устройства вывода (например, дисплейного устройства) и запоминающие устройства (например, накопители на дисках или другие энергонезависимые носители информации). Память и запоминающие устройства являются машиночитаемыми носителями информации, которые могут кодироваться исполняемыми компьютером командами (например, программным обеспечением), которые реализуют или делают возможной систему. К тому же структуры данных и структуры сообщений могут храниться или передаваться через среду передачи данных, такую как сигнал на линии связи. Могут использоваться различные линии связи, такие как Интернет, локальная сеть, глобальная сеть, двухточечное коммутируемое соединение, сотовая телефонная сеть и так далее.

[0023] Варианты осуществления системы могут быть реализованы в различных операционных средах, которые включают в себя персональные компьютеры, серверы, карманные или переносные устройства, многопроцессорные системы, микропроцессорные системы, программируемую бытовую электронику, цифровые камеры, сетевые ПК, мини-компьютеры, мэйнфреймы, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств, телевизионные приставки, системы на кристалле (SoC), и так далее. Компьютерные системы могут быть сотовыми телефонами, персональными цифровыми помощниками, смартфонами, персональными компьютерами, программируемой бытовой электроникой, цифровыми камерами и так далее.

[0024] Система может быть описана в общем контексте исполняемых компьютером команд, таких как программные модули, выполняемые одним или несколькими компьютерами или иными устройствами. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и так далее, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Обычно функциональные возможности программных модулей могут быть объединены или распределены по желанию в различных вариантах осуществления.

[0025] Фиг.2 - логическая блок-схема алгоритма, которая иллюстрирует обработку в системе состояния соединения для сбора информации о состоянии файловой системы в одном варианте осуществления. Начиная на этапе 210, система принимает от клиента запрос на доступ к удаленному ресурсу, сохраненному на сервере. Запрос доступа может включать в себя один или несколько параметров, включающих в себя ключ возобновления, используемый для идентификации сеанса на нескольких возможных соединениях, если соединение терпит неудачу. Запрос доступа к ресурсу может быть первым в последовательности запросов доступа, отправленных от клиента, и если клиент когда-либо отключается от сервера, то клиент может предоставить тот же ключ возобновления в последующем запросе открытия тому же или новому серверу, чтобы возобновить соединение. Ключ возобновления помогает серверу ответить клиенту быстрее путем сопоставления информации о состоянии, поддерживаемой сервером (или между серверами) между тем, что иначе оказалось бы независимыми клиентскими соединениями.

[0026] Продолжая на этапе 220, система определяет идентификатор, который идентифицирует клиентский сеанс, связанный с запросом. Идентификатор в некоторых случаях является ключом возобновления, который клиент предоставляет для долговременных дескрипторов, которые позволяют возобновление сеансов, которые отключились по различным причинам. Запрос доступа может включать в себя один или несколько параметров в четко определенных местоположениях в протоколе, чтобы система могла извлечь ключ путем считывания подходящего местоположения в запросе. В качестве альтернативы или дополнительно сервер может включать в себя автоматизированный процесс для определения идентификатора, который не привлекает информацию, явно предоставленную клиентом. Например, сервер может идентифицировать клиента по IP-адресу (Интернет-протокол) или другим подразумеваемым данным, которые указывают серверу, что клиентское соединение соотносится с предыдущим сеансом.

[0027] Продолжая на этапе 230, система создает запись возобновления, доступную для поиска по извлеченному идентификатору, которая ассоциирует информацию о состоянии, созданную запрошенными клиентом операциями, с извлеченным идентификатором. Запись возобновления можно сохранить в местоположении, внешнем для сервера, обрабатывающего текущий запрос доступа, так что если сервер выходит из строя, другой сервер сможет считать запись для возобновления операций и действовать вместо исходного сервера. Запись возобновления может включать в себя файл, запись в базе данных или другой вид хранения. Запись может содержать список открытых дескрипторов файлов, уступающие блокировки, полученные клиентом, аренды или другую информацию о состоянии файловой системы.

[0028] Продолжая на этапе 240, система принимает файловую операцию от клиента, который запрашивает доступ к файлу, доступному посредством сервера. Файловая операция может быть запросом на открытие файла, закрытие файла, считывание файла, запись файла, печать на совместно используемом принтере или другими операциями файловой системы. Принятая операция привлекает некоторое количество информации о состоянии, создаваемой на сервере. Например, если клиент открывает дескриптор к файлу, то сервер отслеживает тот дескриптор для управления другими запросами клиента, связанными с файлом, и управления временем существования и/или очищающей обработкой для дескриптора.

[0029] Продолжая на этапе 250, система сохраняет информацию о состоянии возобновления в созданной записи возобновления, которая предоставляет информацию для возобновления принятой файловой операции, если клиент теряет соединение с сервером. Если клиентское соединение терпит неудачу, то клиент попытается возобновить соединение путем повторного открытия удаленного ресурса и задания такого же ключа возобновления или другого идентификатора сеанса. Это позволит серверу или другому серверу обратиться к сохраненной записи возобновления и восстановить предыдущую информацию о состоянии.

[0030] Продолжая на этапе 260, система выполняет запрошенную файловую операцию. Операция может открывать файл, считывать содержимое файла, записывать данные в файл, изменять права доступа к файлу или может быть любой другой операцией файловой системы. Результат операции может изменить состояние, сохраненное сервером. Например, если клиент пытается закрыть дескриптор, и сервер успешно закрывает дескриптор, то состояние сервера будет обновлено для удаления дескриптора из списка дескрипторов, отслеживаемых сервером.

[0031] Продолжая на этапе 270, система обновляет сохраненную информацию о состоянии возобновления в созданной записи возобновления на основе результата выполненной файловой операции. Система не может знать заранее, когда возникнет сбой, который вызовет отработку отказа, поэтому система поддерживает актуальное представление о состоянии сервера в записи возобновления, что позволяет серверу восстановить состояние как можно ближе к предыдущему состоянию сервера. Операции, которые не были завершены, можно повторить для завершения операций, тогда как операции, которые были завершены, не нужно повторять (но сервер может повторно отправить клиенту результат). Таким образом, система обновляет состояние при необходимости во время и после различных операций файловой системы, которые изменяют информацию о состоянии сервера.

[0032] Продолжая на этапе 280, система отправляет клиенту ответ, который указывает результат запрошенной файловой операции. Если клиент и сервер по-прежнему подключены, то операции продолжаются так, как они запрашиваются клиентом, и сервер продолжает отслеживать обновленную информацию о состоянии. Если в любой момент теряется соединение, то можно ввести в эксплуатацию другой сервер или исправить существующий сервер, и информацию о состоянии можно загрузить из хранилища состояний для восстановления прежнего состояния сервера. При приеме нового запроса от клиента на возобновление сеанса клиенту не нужно знать, что произошла отработка отказа и что клиент, возможно, взаимодействует с сервером, отличным от исходного. После этапа 280 эти этапы завершаются.

[0033] Фиг.3 - логическая блок-схема, которая иллюстрирует обработку в системе состояния соединения для возобновления соединения после отработки отказа в одном варианте осуществления. Начиная на этапе 310, система принимает от клиента запрос на открытие удаленного ресурса, сохраненного на сервере. Запрос доступа может включать в себя один или несколько параметров, включающих в себя ключ возобновления, используемый для идентификации сеанса на нескольких возможных соединениях, если соединение терпит неудачу. В отличие от запроса доступа к ресурсу, рассмотренного со ссылкой на фиг.2, этот запрос является запросом для повторного подключения к ранее подключенному сеансу. Клиент предоставляет такой же ключ возобновления, как предоставлялся изначально, чтобы сервер мог сопоставить текущий запрос сеанса с предыдущим сеансом.

[0034] Продолжая на этапе 320, система определяет идентификатор сеанса, который идентифицирует клиентский сеанс, связанный с запросом. Идентификатор в некоторых случаях является ключом возобновления SMB 2, который клиент предоставляет для долговременных дескрипторов, которые позволяют возобновление сеансов, которые отключились по различным причинам. Запрос доступа может включать в себя один или несколько параметров в четко определенных местоположениях в протоколе, чтобы система могла извлечь ключ путем считывания подходящего местоположения в запросе. В иных случаях сервер может определять идентификатор автоматически на основе информации о клиенте.

[0035] Продолжая на этапе 330, система ищет принятый идентификатор сеанса в хранилище состояний, чтобы идентифицировать запись возобновления, ассоциированную с тем идентификатором сеанса. Любой предыдущий сервер, взаимодействующий с клиентом с использованием возобновляемого сеанса, сохраняет информацию о состоянии на постоянной основе посредством взаимодействия с клиентом. Когда клиент пытается восстановить соединение, информация о состоянии доступна отказоустойчивому серверу, подменяющему исходный сервер. Информация о состоянии может храниться внешне для исходного сервера, так что информация доступна после сбоя исходного сервера.

[0036] Продолжая на этапе 340, система принимает из хранилища состояний предыдущую информацию о состоянии, ассоциированную с записью возобновления. Информация о состоянии идентифицирует статическое состояние, например открытые дескрипторы файлов, полученные аренды, полученные уступающие блокировки и так далее, а также динамическое состояние, например рабочие операции, которые могут быть не завершены. Сохраненная информация о состоянии позволяет отказоустойчивому серверу заменить исходный сервер без определенной обработки клиентом. Клиент понимает возобновляемые дескрипторы и выполняет этапы, чтобы сделать соединение возобновляемым, но может не знать о том, какой сервер прекращает обработку соединения в любой конкретный момент. Клиент может обращаться к серверу посредством доменного имени или сетевого общего каталога, который может разрешаться в адрес любого из нескольких серверов, включая отказоустойчивый сервер.

[0037] Продолжая на этапе 350, система восстанавливает принятую предыдущую информацию о состоянии путем загрузки информации в компоненты файловой системы, которые отслеживают состояние файловой системы. После загрузки состояния локальное состояние отказоустойчивого сервера аналогично тому, как выглядело бы состояние, если бы все предыдущие операции произошли на отказоустойчивом сервере. Таким образом, отказоустойчивый сервер также полезен клиенту для продолжения последовательности операций, как и исходный сервер, если бы соединение не потерпело неудачу.

[0038] Продолжая на этапе 360, система отвечает на клиентский запрос доступа, указывая, что сервер обнаружил запись возобновления и готов принимать клиентские операции, связанные с предыдущим сеансом. На основе ответа сервера клиент может определить, возобновляется ли сеанс, или нужно ли клиенту принять меры для повторения предыдущих операций. Если сеанс был успешно возобновлен, то клиент может продолжить узнавать, что предыдущие операции завершились или были повторены для завершения после возобновления сервера. В некоторых случаях система может дать клиенту новый дескриптор файла, который имеет такое же состояние, как и дескриптор файла перед отработкой отказа. После этапа 360 эти этапы завершаются.

[0039] Фиг.4 - блок-схема, которая иллюстрирует операционную среду системы состояния соединения в одном варианте осуществления. Среда включает в себя одну или несколько служб или приложений операционной системы, которые взаимодействуют с файловой системой. Например, MICROSOFT™ WINDOWS™ включает в себя серверную службу 420, известную как SRV, и службу 410 сетевой файловой системы, известную как NFS. Служба 410 сетевой файловой системы и серверная служба 420 предоставляют доступ к совместно используемым между компьютерными системами ресурсам, например файлам и принтерам. Серверная служба 420 использует протокол SMB, характерный для сетей WINDOWS™, тогда как служба 410 сетевой файловой системы предоставляет доступ к системам на основе Unix, которые в большинстве случаев используют NFS. Независимо от протокола фильтр 430 ключа возобновления собирает файловые операции и сохраняет в удаленном хранилище данных информацию о состоянии для возобновления операций. Операции проходят на уровне 440 файловой системы (например, NTFS или другой файловой системы) и оказывают воздействие на один или несколько файлов 450 данных пользователя. Между тем фильтр 430 ключа возобновления записывает информацию о состоянии в файл 460 журнала или другое хранилище данных, к которому может обратиться другой сервер для извлечения информации о состоянии и возобновления соединения с клиентом. Система может работать независимо от конкретного протокола или участвующей файловой системы, и различные компоненты могут обновляться для сохранения их конкретной информации о состоянии в хранилище данных состояния.

[0040] В некоторых вариантах осуществления система состояния соединения сохраняет непрозрачные большие блоки двоичных данных от лица компонентов файловой системы, чтобы позволить системе возобновлять соединения без соответствующих компоненту сведений. Например, фильтр ключа возобновления, описанный в этом документе, может запросить у серверной службы любые данные, которые потребовались бы серверной службе для воссоздания ее текущего состояния. Фильтр затем может сохранить любые принятые данные в виде непрозрачного блока двоичных данных в хранилище состояний (то есть фильтру не нужно знать, что находится в блоке двоичных данных, или его семантическое значение). При условии отработки отказа фильтр ключа возобновления, функционирующий на новом сервере, может обратиться к сохраненной информации о состоянии, извлечь сохраненный блок двоичных данных и предоставить блок двоичных данных серверной службе, чтобы серверная служба могла восстановить свое состояние. Таким образом, систему можно заставить работать со многими типами протоколов без определенных сведений о внутренних операциях компонентов, которые реализуют каждый протокол для сервера.

[0041] В некоторых вариантах осуществления система состояния соединения блокирует обращение других клиентов к файлам или другим ресурсам, связанным с возобновляемым дескриптором, на некоторое количество времени (то есть период сокрытия). Если исходный клиент повторно подключается в течение периода сокрытия, то исходный клиент получает свое соединение со всем предыдущим состоянием и может возобновить операции. Если пытается подключиться другой клиент, то сервер может предоставить сообщение, указывающее необходимость подождать некоторое количество времени и повторить попытку. Знающие о возобновлении клиенты могут использовать эту информацию, чтобы перенести повторную попытку уже после периода сокрытия, тогда как старые клиенты могут просто не выполнить соединение и снова попробовать вручную по запросу пользователя. Если исходный клиент не вернулся в пределах периода сокрытия, то сервер очищает информацию о состоянии возобновления и позволяет новым клиентам обращаться к ресурсам как обычно.

[0042] В некоторых вариантах осуществления система состояния соединения может использовать ряд запоминающих устройств или стратегий для ускорения возобновлений. Например, система может использовать быстрое энергонезависимое запоминающее устройство (например, твердотельный диск (SSD)) для хранения информации о состоянии возобновления, так что возобновления получают более быстрый доступ к данным, чтобы избежать любой дальнейшей задержки операций, уже прерванных из-за сбоя. В качестве другого примера система может транслировать группе серверов все изменения, сделанные каждым сервером, так что каждый сервер может поддерживать свою копию информации о состоянии и может быть избран отказоустойчивым сервером в случае сбоя исходного сервера.

[0043] Из вышеизложенного нужно будет принять во внимание, что определенные варианты осуществления системы состояния соединения описаны в этом документе с целью иллюстрации, но можно внести различные модификации без отклонения от сущности и объема изобретения. Соответственно, изобретение не ограничивается ничем, кроме прилагаемой формулы изобретения.


ОБЕСПЕЧЕНИЕ ПРОЗРАЧНОЙ ОТРАБОТКИ ОТКАЗА В ФАЙЛОВОЙ СИСТЕМЕ
ОБЕСПЕЧЕНИЕ ПРОЗРАЧНОЙ ОТРАБОТКИ ОТКАЗА В ФАЙЛОВОЙ СИСТЕМЕ
ОБЕСПЕЧЕНИЕ ПРОЗРАЧНОЙ ОТРАБОТКИ ОТКАЗА В ФАЙЛОВОЙ СИСТЕМЕ
ОБЕСПЕЧЕНИЕ ПРОЗРАЧНОЙ ОТРАБОТКИ ОТКАЗА В ФАЙЛОВОЙ СИСТЕМЕ
ОБЕСПЕЧЕНИЕ ПРОЗРАЧНОЙ ОТРАБОТКИ ОТКАЗА В ФАЙЛОВОЙ СИСТЕМЕ
Источник поступления информации: Роспатент

Showing 1-10 of 499 items.
10.06.2015
№216.013.5597

Регулировка громкости на основании местоположения слушателя

Изобретение относится к средствам регулировки громкости на основании местоположения слушателя. Технический результат заключается в осуществлении возможности регулирования громкости на основании местоположения слушателя. Идентифицируется местоположение одного или более громкоговорителей и...
Тип: Изобретение
Номер охранного документа: 0002553432
Дата охранного документа: 10.06.2015
27.06.2015
№216.013.5800

Смоделированное видео с дополнительными точками обзора и повышенной разрешающей способностью для камер наблюдения за движением транспорта

Изобретение относится к формированию смоделированного видеоизображения. Техническим результатом является получение смоделированных видеоизображений движения транспортных средств, имеющих высокую частоту кадров, высокую разрешающую способность и многочисленные виды, путем обработки видео от...
Тип: Изобретение
Номер охранного документа: 0002554069
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.581e

Выбираемые пользователем операционные среды для устройств мобильной связи

Изобретение относится к системам связи. Технический результат заключается в осуществлении передач в зависимости от типа операционной среды. В устройстве мобильной связи принимают передачу информации от источника передачи. Получают указатель типа операционной среды, связанного с источником...
Тип: Изобретение
Номер охранного документа: 0002554099
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5946

Система и способ для выбора вкладки в браузере с вкладками

Изобретение относится к средствам управления и выбора одной из набора открытых вкладок в браузере с вкладками. Технический результат заключается в уменьшении времени доступа к необходимой вкладке. Отображают web-браузер в окне дисплея, причем окно web-браузера отображает множество открытых...
Тип: Изобретение
Номер охранного документа: 0002554395
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5acc

Поддержание возможности отмены и возврата при объединениях метаданных

Группа изобретений относится к средствам для совместной работы над документами. Технический результат заключается в обеспечении сохранения метаданных во время операции отмены на клиентском компьютере при совместной работе над документами. Для этого представлен способ для сохранения метаданных...
Тип: Изобретение
Номер охранного документа: 0002554785
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b08

Синхронизация частей файла с использованием серверной модели хранения информации

Изобретение относится к области синхронизации частей файла с помощью серверной модели хранения информации в клиент-серверной компьютерной сети. Техническим результатом является повышение защищенности данных при синхронизации. Изменения в содержимом электронного документа могут быть приняты на...
Тип: Изобретение
Номер охранного документа: 0002554845
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b0a

Контрольные точки для файловой системы

Изобретение относится к средствам обеспечения контрольных точек. Технический результат заключается в уменьшении времени восстановления. Указывают, что первый набор обновлений подлежит связыванию с первой контрольной точкой. Определяют необходимость записи данных контрольной точки, относящихся к...
Тип: Изобретение
Номер охранного документа: 0002554847
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b0e

Захват и загрузка состояний операционной системы

Изобретение относится к области захвата и загрузки состояний операционной системы. Техническим результатом является повышение эффективности восстановления операционной системы к базовому состоянию. В одном варианте воплощения выполняется сохранение состояний памяти операционной системы...
Тип: Изобретение
Номер охранного документа: 0002554851
Дата охранного документа: 27.06.2015
10.07.2015
№216.013.5c7e

Использование предварительной обработки на сервере для развертывания представлений электронных документов в компьютерной сети

Изобретение относится к области компьютерных сетей, а именно к клиент-серверным компьютерным сетям. Технический результат заключается в увеличении производительности сети и снижении задержки в доставке электронных документов, запрошенных пользователями. Технический результат достигается за счет...
Тип: Изобретение
Номер охранного документа: 0002555219
Дата охранного документа: 10.07.2015
10.07.2015
№216.013.5c7f

Управление виртуальными портами

Группа изобретений относится к устройствам ввода с возможностью обеспечения одновременной работы нескольких пользователей. Технический результат заключается в обеспечении обратной связи между пользователями вычислительной среды. Каждый такой виртуальный порт может иметь различные относящиеся к...
Тип: Изобретение
Номер охранного документа: 0002555220
Дата охранного документа: 10.07.2015
Showing 1-10 of 237 items.
10.06.2015
№216.013.5597

Регулировка громкости на основании местоположения слушателя

Изобретение относится к средствам регулировки громкости на основании местоположения слушателя. Технический результат заключается в осуществлении возможности регулирования громкости на основании местоположения слушателя. Идентифицируется местоположение одного или более громкоговорителей и...
Тип: Изобретение
Номер охранного документа: 0002553432
Дата охранного документа: 10.06.2015
27.06.2015
№216.013.5800

Смоделированное видео с дополнительными точками обзора и повышенной разрешающей способностью для камер наблюдения за движением транспорта

Изобретение относится к формированию смоделированного видеоизображения. Техническим результатом является получение смоделированных видеоизображений движения транспортных средств, имеющих высокую частоту кадров, высокую разрешающую способность и многочисленные виды, путем обработки видео от...
Тип: Изобретение
Номер охранного документа: 0002554069
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.581e

Выбираемые пользователем операционные среды для устройств мобильной связи

Изобретение относится к системам связи. Технический результат заключается в осуществлении передач в зависимости от типа операционной среды. В устройстве мобильной связи принимают передачу информации от источника передачи. Получают указатель типа операционной среды, связанного с источником...
Тип: Изобретение
Номер охранного документа: 0002554099
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5946

Система и способ для выбора вкладки в браузере с вкладками

Изобретение относится к средствам управления и выбора одной из набора открытых вкладок в браузере с вкладками. Технический результат заключается в уменьшении времени доступа к необходимой вкладке. Отображают web-браузер в окне дисплея, причем окно web-браузера отображает множество открытых...
Тип: Изобретение
Номер охранного документа: 0002554395
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5acc

Поддержание возможности отмены и возврата при объединениях метаданных

Группа изобретений относится к средствам для совместной работы над документами. Технический результат заключается в обеспечении сохранения метаданных во время операции отмены на клиентском компьютере при совместной работе над документами. Для этого представлен способ для сохранения метаданных...
Тип: Изобретение
Номер охранного документа: 0002554785
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b08

Синхронизация частей файла с использованием серверной модели хранения информации

Изобретение относится к области синхронизации частей файла с помощью серверной модели хранения информации в клиент-серверной компьютерной сети. Техническим результатом является повышение защищенности данных при синхронизации. Изменения в содержимом электронного документа могут быть приняты на...
Тип: Изобретение
Номер охранного документа: 0002554845
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b0a

Контрольные точки для файловой системы

Изобретение относится к средствам обеспечения контрольных точек. Технический результат заключается в уменьшении времени восстановления. Указывают, что первый набор обновлений подлежит связыванию с первой контрольной точкой. Определяют необходимость записи данных контрольной точки, относящихся к...
Тип: Изобретение
Номер охранного документа: 0002554847
Дата охранного документа: 27.06.2015
27.06.2015
№216.013.5b0e

Захват и загрузка состояний операционной системы

Изобретение относится к области захвата и загрузки состояний операционной системы. Техническим результатом является повышение эффективности восстановления операционной системы к базовому состоянию. В одном варианте воплощения выполняется сохранение состояний памяти операционной системы...
Тип: Изобретение
Номер охранного документа: 0002554851
Дата охранного документа: 27.06.2015
10.07.2015
№216.013.5c7e

Использование предварительной обработки на сервере для развертывания представлений электронных документов в компьютерной сети

Изобретение относится к области компьютерных сетей, а именно к клиент-серверным компьютерным сетям. Технический результат заключается в увеличении производительности сети и снижении задержки в доставке электронных документов, запрошенных пользователями. Технический результат достигается за счет...
Тип: Изобретение
Номер охранного документа: 0002555219
Дата охранного документа: 10.07.2015
10.07.2015
№216.013.5c7f

Управление виртуальными портами

Группа изобретений относится к устройствам ввода с возможностью обеспечения одновременной работы нескольких пользователей. Технический результат заключается в обеспечении обратной связи между пользователями вычислительной среды. Каждый такой виртуальный порт может иметь различные относящиеся к...
Тип: Изобретение
Номер охранного документа: 0002555220
Дата охранного документа: 10.07.2015
+ добавить свой РИД