RU2595482C2 - Обеспечение прозрачной отработки отказа в файловой системе - Google Patents
Обеспечение прозрачной отработки отказа в файловой системе Download PDFInfo
- Publication number
- RU2595482C2 RU2595482C2 RU2013126471/08A RU2013126471A RU2595482C2 RU 2595482 C2 RU2595482 C2 RU 2595482C2 RU 2013126471/08 A RU2013126471/08 A RU 2013126471/08A RU 2013126471 A RU2013126471 A RU 2013126471A RU 2595482 C2 RU2595482 C2 RU 2595482C2
- Authority
- RU
- Russia
- Prior art keywords
- server
- client
- renewal
- file
- state
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 9
- 238000011084 recovery Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 239000000725 suspension Substances 0.000 claims description 4
- 230000007774 longterm Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 2
- 230000003993 interaction Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000013500 data storage Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Retry When Errors Occur (AREA)
Abstract
Изобретение относится к области взаимодействия нескольких компьютеров. Технический результат - предоставление клиенту возможности возобновить соединение с сервером путем удаленного сохранения информации о состоянии клиента в связи с ключом возобновления. Система предоставляет фильтр ключа возобновления, функционирующий на сервере, который обеспечивает хранение непостоянной информации о состоянии сервера. Информация о состоянии может включать в себя такую информацию, как уступающие блокировки, аренды, предоставленные клиенту, и рабочие операции над дескриптором файла. Драйвер фильтра ключа возобновления находится выше файловой системы, что позволяет нескольким протоколам доступа к файлу использовать этот фильтр. В результате события отработки отказа, такого как сервер, выходящий из строя или теряющий возможность подключения к клиенту, система может ввести в эксплуатацию другой сервер или тот же сервер и восстановить состояние для дескрипторов файлов, удерживаемых различными клиентами, с использованием фильтра ключа возобновления. 3 н. и 17 з.п. ф-лы, 4 ил.
Description
УРОВЕНЬ ТЕХНИКИ
[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] Из вышеизложенного нужно будет принять во внимание, что определенные варианты осуществления системы состояния соединения описаны в этом документе с целью иллюстрации, но можно внести различные модификации без отклонения от сущности и объема изобретения. Соответственно, изобретение не ограничивается ничем, кроме прилагаемой формулы изобретения.
Claims (20)
1. Реализуемый компьютером способ сбора информации о состоянии файловой системы для обеспечения возобновления соединений, содержащий этапы, на которых:
принимают от первого клиента запрос на доступ к удаленному ресурсу, сохраненному на сервере;
определяют идентификатор, который идентифицирует клиентский сеанс, связанный с этим запросом;
создают запись возобновления, при этом запись возобновления является доступной для поиска по данному идентификатору и при этом запись возобновления связывает информацию о состоянии, созданную запрошенными первым клиентом операциями, с упомянутым идентификатором;
принимают файловую операцию от первого клиента, причем данной файловой операцией запрашивается доступ к файлу, доступному через сервер;
сохраняют информацию о состоянии возобновления в упомянутой записи возобновления, при этом информация о состоянии возобновления предоставляет информацию для возобновления принятой файловой операции, если первый клиент теряет соединение с сервером;
после потери первым клиентом соединения с сервером, загружают на отказоустойчивом сервере упомянутую запись возобновления, чтобы обеспечить первому клиенту возможность соединиться с отказоустойчивым сервером и продолжить упомянутую файловую операцию, при этом доступ к упомянутому удаленному ресурсу ограничивается на период времени, чтобы предотвратить взаимодействие второго клиента с этим удаленным ресурсом таким путем, который конфликтовал бы с установлением первым клиентом соединения с отказоустойчивым сервером;
выполняют запрошенную файловую операцию;
обновляют упомянутую информацию о состоянии возобновления в упомянутой записи возобновления на основе результата упомянутой файловой операции; и
отправляют первому клиенту ответ, который указывает результат запрошенной файловой операции.
принимают от первого клиента запрос на доступ к удаленному ресурсу, сохраненному на сервере;
определяют идентификатор, который идентифицирует клиентский сеанс, связанный с этим запросом;
создают запись возобновления, при этом запись возобновления является доступной для поиска по данному идентификатору и при этом запись возобновления связывает информацию о состоянии, созданную запрошенными первым клиентом операциями, с упомянутым идентификатором;
принимают файловую операцию от первого клиента, причем данной файловой операцией запрашивается доступ к файлу, доступному через сервер;
сохраняют информацию о состоянии возобновления в упомянутой записи возобновления, при этом информация о состоянии возобновления предоставляет информацию для возобновления принятой файловой операции, если первый клиент теряет соединение с сервером;
после потери первым клиентом соединения с сервером, загружают на отказоустойчивом сервере упомянутую запись возобновления, чтобы обеспечить первому клиенту возможность соединиться с отказоустойчивым сервером и продолжить упомянутую файловую операцию, при этом доступ к упомянутому удаленному ресурсу ограничивается на период времени, чтобы предотвратить взаимодействие второго клиента с этим удаленным ресурсом таким путем, который конфликтовал бы с установлением первым клиентом соединения с отказоустойчивым сервером;
выполняют запрошенную файловую операцию;
обновляют упомянутую информацию о состоянии возобновления в упомянутой записи возобновления на основе результата упомянутой файловой операции; и
отправляют первому клиенту ответ, который указывает результат запрошенной файловой операции.
2. Способ по п. 1, в котором упомянутый запрос доступа включает в себя один или более параметров, включающих в себя ключ возобновления, который идентифицирует клиентский сеанс на нескольких возможных соединениях, если соединение терпит неудачу, при этом ключ возобновления является по меньшей мере частью упомянутого определенного идентификатора.
3. Способ по п. 1, дополнительно содержащий этап, на котором при отсоединении первого клиента от сервера принимают на отказоустойчивом сервере новый запрос доступа, который отказоустойчивый сервер может сопоставить с исходным запросом доступа, чтобы помочь отказоустойчивому серверу быстрее ответить первому клиенту после сбоя соединения путем сопоставления информации о состоянии, поддерживаемой сервером между несколькими клиентскими соединениями.
4. Способ по п. 1, в котором сервер с сетевой файловой системой (NFS) определяет упомянутый идентификатор автоматически без приема ключа возобновления от первого клиента.
5. Способ по п. 1, в котором упомянутый идентификатор является ключом возобновления блока сообщений сервера (SMB), который первый клиент предоставляет для долговременных дескрипторов, которые обеспечивают возможность возобновления отключенных сеансов.
6. Способ по п. 1, в котором при создании записи возобновления сохраняют запись возобновления в местоположении, внешнем для сервера, обрабатывающего запрос доступа к удаленному ресурсу, хранящемуся на сервере.
7. Способ по п. 1, в котором прием файловой операции содержит запрос на выполнение операции, выбранной из группы, состоящей из открытия файла, закрытия файла, чтения файла, записи в файл, получения аренды на файл и получения блокировки на файл.
8. Способ по п. 1, в котором выполнение запрошенной файловой операции изменяет состояние, сохраненное сервером, при этом при обновлении информации о состоянии возобновления фиксируют это измененное состояние.
9. Способ по п. 1, в котором при обновлении информации о состоянии возобновления поддерживают актуальное представление о состоянии сервера в записи возобновления, что позволяет другому серверу восстановить состояние и обработать запросы клиента вместо исходного сервера, не требуя от первого клиента восстановить, по меньшей мере, часть информации о состоянии.
10. Компьютерная система для обеспечения прозрачной отработки отказа для клиентов в файловой системе, содержащая процессор и память, сконфигурированные для исполнения программных команд, реализованных в следующих компонентах компонент сбора состояния, который создает запись о состоянии для каждого дескриптора файла и собирает информацию о состоянии, по мере того как первый клиент запрашивает операции с использованием дескриптора файла;
компонент хранения состояния, который сохраняет собранную информацию о состоянии в связи с идентификатором сеанса, предоставленным первым клиентом;
хранилище данных состояния, которое на постоянной основе хранит информацию о состоянии файловой системы, которую возобновляющий сервер использует для воссоздания информации о состоянии, сохраненной неисправным сервером;
компонент обнаружения возобновления, который обнаруживает условие, которое делает неисправный сервер недоступным, и сообщает возобновляющему серверу, чтобы тот действовал вместо неисправного сервера;
компонент извлечения состояния, который извлекает сохраненную информацию о состоянии из местоположения, доступного возобновляющему серверу, где информация о состоянии позволяет возобновляющему серверу возобновить любые ранее запрошенные операции файловой системы, которые были прерваны обнаруженным условием сбоя;
компонент принудительного применения сокрытия, который принудительно устанавливает период сокрытия на доступ к одному или более файлам или другим ресурсам, чтобы не дать второму клиенту воздействовать на эти один или более файлов или других ресурсов таким путем, который конфликтовал бы установлением первым клиентом соединения с возобновляющим сервером; и компонент восстановления состояния, который загружает извлеченную информацию о состоянии в возобновляющий сервер, чтобы возобновляющий сервер мог продолжить операции, ранее запрошенные клиентом.
компонент хранения состояния, который сохраняет собранную информацию о состоянии в связи с идентификатором сеанса, предоставленным первым клиентом;
хранилище данных состояния, которое на постоянной основе хранит информацию о состоянии файловой системы, которую возобновляющий сервер использует для воссоздания информации о состоянии, сохраненной неисправным сервером;
компонент обнаружения возобновления, который обнаруживает условие, которое делает неисправный сервер недоступным, и сообщает возобновляющему серверу, чтобы тот действовал вместо неисправного сервера;
компонент извлечения состояния, который извлекает сохраненную информацию о состоянии из местоположения, доступного возобновляющему серверу, где информация о состоянии позволяет возобновляющему серверу возобновить любые ранее запрошенные операции файловой системы, которые были прерваны обнаруженным условием сбоя;
компонент принудительного применения сокрытия, который принудительно устанавливает период сокрытия на доступ к одному или более файлам или другим ресурсам, чтобы не дать второму клиенту воздействовать на эти один или более файлов или других ресурсов таким путем, который конфликтовал бы установлением первым клиентом соединения с возобновляющим сервером; и компонент восстановления состояния, который загружает извлеченную информацию о состоянии в возобновляющий сервер, чтобы возобновляющий сервер мог продолжить операции, ранее запрошенные клиентом.
11. Система по п. 10, в которой компонент сбора состояния дополнительно сконфигурирован для функционирования на сервере и сохранения информации о состоянии внешним по отношению к серверу образом, чтобы к информации о состоянии можно было осуществлять доступ, если сервер недоступен.
12. Система по п. 10, в которой компонент сбора состояния дополнительно сконфигурирован принимать ключ возобновления от первого клиента, когда клиент подсоединяется к серверу, и связывать собранную информацию о состоянии с ключом возобновления в хранилище данных состояния.
13. Система по п. 10, в которой хранилище данных состояния сохраняет и предоставляет информацию для возобновляющего сервера, при этом возобновляющий сервер является тем же сервером, что и неисправный сервер, использующим другое соединение с клиентом.
14. Система по п. 10, в которой хранилище данных состояния принимает информацию о состоянии, по мере того как неисправный сервер выполняет операции, и при сбое предоставляет возобновляющему серверу доступ к ранее принятой информации о состоянии, чтобы возобновить состояние и продолжить выполнение любых операций, которые не были закончены.
15. Система по п. 10, в которой условие, обнаруживаемое компонентом обнаружения возобновления, соответствует тому, что первый клиент соединяется с идентификатором сеанса, прежде сохраненным в хранилище данных состояния.
16. Система по п. 10, в которой компонент восстановления состояния предоставляет по меньшей мере один блок двоичных данных во внешний компонент, который управляет файловой системой или протоколом, причем этот блок двоичных данных сохраняется в хранилище данных состояния от имени данного внешнего компонента для использования во время операции восстановления.
17. Система по п. 10, дополнительно содержащая компонент приостановки ресурса, который позволяет приостановить и возобновить активный в настоящее время ресурс без события отработки отказа, чтобы позволить кластеру перейти, в канве отработки отказа, на другой узел запланированным способом.
18. Машиночитаемый носитель информации, на котором закодированы машиноисполняемые инструкции, которыми при их исполнении процессором выполняется способ, содержащий этапы, на которых:
принимают от первого клиента запрос на доступ к удаленному ресурсу, сохраненному на сервере;
определяют идентификатор, который идентифицирует клиентский сеанс, связанный с этим запросом;
создают запись возобновления, при этом запись возобновления является доступной для поиска по данному идентификатору и при этом запись возобновления связывает информацию о состоянии, созданную запрошенными первым клиентом операциями, с упомянутым идентификатором;
принимают файловую операцию от первого клиента, причем данной файловой операцией запрашивается доступ к файлу, доступному через сервер;
сохраняют информацию о состоянии возобновления в упомянутой записи возобновления, при этом информация о состоянии возобновления предоставляет информацию для возобновления принятой файловой операции, если первый клиент теряет соединение с сервером;
после потери первым клиентом соединения с сервером, загружают на отказоустойчивом сервере упомянутую запись возобновления, чтобы обеспечить первому клиенту возможность соединиться с отказоустойчивым сервером и продолжить упомянутую файловую операцию, при этом доступ к упомянутому удаленному ресурсу ограничивается на период времени, чтобы предотвратить взаимодействие второго клиента с этим удаленным ресурсом таким путем, который конфликтовал бы с установлением первым клиентом соединения с отказоустойчивым сервером.
принимают от первого клиента запрос на доступ к удаленному ресурсу, сохраненному на сервере;
определяют идентификатор, который идентифицирует клиентский сеанс, связанный с этим запросом;
создают запись возобновления, при этом запись возобновления является доступной для поиска по данному идентификатору и при этом запись возобновления связывает информацию о состоянии, созданную запрошенными первым клиентом операциями, с упомянутым идентификатором;
принимают файловую операцию от первого клиента, причем данной файловой операцией запрашивается доступ к файлу, доступному через сервер;
сохраняют информацию о состоянии возобновления в упомянутой записи возобновления, при этом информация о состоянии возобновления предоставляет информацию для возобновления принятой файловой операции, если первый клиент теряет соединение с сервером;
после потери первым клиентом соединения с сервером, загружают на отказоустойчивом сервере упомянутую запись возобновления, чтобы обеспечить первому клиенту возможность соединиться с отказоустойчивым сервером и продолжить упомянутую файловую операцию, при этом доступ к упомянутому удаленному ресурсу ограничивается на период времени, чтобы предотвратить взаимодействие второго клиента с этим удаленным ресурсом таким путем, который конфликтовал бы с установлением первым клиентом соединения с отказоустойчивым сервером.
19. Машиночитаемый носитель информации по п. 18, дополнительно содержащий инструкции для того, чтобы, после установления соединения с отказоустойчивым сервером,
выполнять запрошенную файловую операцию;
обновлять упомянутую информацию о состоянии возобновления в упомянутой записи возобновления на основе результата упомянутой файловой операции; и
отправлять первому клиенту ответ, который указывает результат запрошенной файловой операции.
выполнять запрошенную файловую операцию;
обновлять упомянутую информацию о состоянии возобновления в упомянутой записи возобновления на основе результата упомянутой файловой операции; и
отправлять первому клиенту ответ, который указывает результат запрошенной файловой операции.
20. Машиночитаемый носитель информации по п. 18, при этом упомянутый идентификатор является ключом возобновления блока сообщений сервера (SMB).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/964,749 US8631277B2 (en) | 2010-12-10 | 2010-12-10 | Providing transparent failover in a file system |
US12/964,749 | 2010-12-10 | ||
PCT/US2011/063618 WO2012078693A2 (en) | 2010-12-10 | 2011-12-06 | Providing transparent failover in a file system |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2013126471A RU2013126471A (ru) | 2014-12-20 |
RU2595482C2 true RU2595482C2 (ru) | 2016-08-27 |
Family
ID=46200659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2013126471/08A RU2595482C2 (ru) | 2010-12-10 | 2011-12-06 | Обеспечение прозрачной отработки отказа в файловой системе |
Country Status (13)
Country | Link |
---|---|
US (1) | US8631277B2 (ru) |
EP (1) | EP2649750B1 (ru) |
JP (1) | JP6141189B2 (ru) |
KR (1) | KR101801432B1 (ru) |
CN (1) | CN102624542B (ru) |
AU (1) | AU2011338485B2 (ru) |
BR (1) | BR112013014070A2 (ru) |
CA (1) | CA2817620A1 (ru) |
ES (1) | ES2566933T3 (ru) |
HK (1) | HK1174451A1 (ru) |
MX (1) | MX2013006427A (ru) |
RU (1) | RU2595482C2 (ru) |
WO (1) | WO2012078693A2 (ru) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316129B2 (en) | 2005-05-25 | 2012-11-20 | Microsoft Corporation | Data communication coordination with sequence numbers |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
US9342557B2 (en) * | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
US10049022B2 (en) * | 2013-06-24 | 2018-08-14 | Oracle International Corporation | Systems and methods to retain and reclaim resource locks and client states after server failures |
US9665432B2 (en) * | 2014-08-07 | 2017-05-30 | Microsoft Technology Licensing, Llc | Safe data access following storage failure |
US9847918B2 (en) | 2014-08-12 | 2017-12-19 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
KR101627256B1 (ko) * | 2015-01-08 | 2016-06-03 | (주)넷텐션 | 다수 분산서버를 구비한 네트워크 통신의 세션 이양 방법 |
US10084845B2 (en) * | 2015-09-14 | 2018-09-25 | Uber Technologies, Inc. | Data restoration for datacenter failover |
MX2018003767A (es) * | 2015-09-28 | 2018-06-18 | Arris Entpr Llc | Simulacion de respuesta de sistema de nombres de dominio en el dispositivo de equipo de la instalacion del cliente. |
US10303660B2 (en) | 2015-11-12 | 2019-05-28 | Microsoft Technology Licensing, Llc | File system with distributed entity state |
US10009428B2 (en) * | 2015-12-07 | 2018-06-26 | Dell Products L.P. | Method and system for reconnecting server message block (SMB) clients to persistent file handles |
US9946726B2 (en) * | 2015-12-07 | 2018-04-17 | Dell Products L.P. | Method and system for execution of disconnection from and reconnection to persistent handles |
US10038752B2 (en) * | 2015-12-07 | 2018-07-31 | Dell Products L.P. | Method and system for execution of client-initiated operations on file handles in a distributed server system |
US10951652B1 (en) * | 2016-01-21 | 2021-03-16 | Amazon Technologies, Inc. | Communication session resumption |
CN106254490A (zh) * | 2016-08-16 | 2016-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种分布式存储故障转移方法以及分布式存储系统 |
US10560553B2 (en) | 2016-09-14 | 2020-02-11 | International Business Machines Corporation | Assigning IP pools to file access protocols for NAS failover |
CN106571968B (zh) * | 2016-11-10 | 2020-02-21 | 华为技术有限公司 | 一种业务切换方法和系统 |
CN106557390A (zh) * | 2016-11-15 | 2017-04-05 | 郑州云海信息技术有限公司 | 一种分布式存储文件连续访问方法及系统 |
EP3352415B1 (en) | 2016-11-25 | 2021-05-19 | Huawei Technologies Co., Ltd. | Smb service failure handling method, and storage device |
US10452482B2 (en) * | 2016-12-14 | 2019-10-22 | Oracle International Corporation | Systems and methods for continuously available network file system (NFS) state data |
CN107395416A (zh) * | 2017-07-20 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据发送方法及服务器集群 |
US20220021731A1 (en) * | 2018-11-19 | 2022-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of Operating Service Control Nodes |
WO2020104447A1 (en) * | 2018-11-19 | 2020-05-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of operating service instance sets and/or set restoration storage resources and related network nodes |
US10866870B2 (en) | 2019-01-31 | 2020-12-15 | Hewlett Packard Enterprise Development Lp | Data store and state information handover |
CN110109620B (zh) * | 2019-04-25 | 2023-08-04 | 上海淇毓信息科技有限公司 | 混合存储方法、装置和电子设备 |
CN111274205B (zh) * | 2020-01-07 | 2024-03-26 | 北京小米松果电子有限公司 | 数据块访问方法及装置、存储介质 |
CN111756578B (zh) * | 2020-06-24 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种用户态网络文件系统的故障恢复方法和装置 |
US11507512B2 (en) * | 2020-12-08 | 2022-11-22 | EMC IP Holding Company LLC | Fault tolerant cluster data handling |
CN112631837B (zh) * | 2020-12-30 | 2024-04-12 | 凌云光技术股份有限公司 | 一种工程数据的保存方法及系统 |
US11360867B1 (en) | 2021-03-31 | 2022-06-14 | Netapp, Inc. | Re-aligning data replication configuration of primary and secondary data serving entities of a cross-site storage solution after a failover event |
US11709743B2 (en) | 2021-03-31 | 2023-07-25 | Netapp, Inc. | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system |
US11934670B2 (en) | 2021-03-31 | 2024-03-19 | Netapp, Inc. | Performing various operations at the granularity of a consistency group within a cross-site storage solution |
US11481139B1 (en) | 2021-03-31 | 2022-10-25 | Netapp, Inc. | Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity |
US11740811B2 (en) | 2021-03-31 | 2023-08-29 | Netapp, Inc. | Reseeding a mediator of a cross-site storage solution |
US11550679B2 (en) * | 2021-03-31 | 2023-01-10 | Netapp, Inc. | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system |
US11409622B1 (en) | 2021-04-23 | 2022-08-09 | Netapp, Inc. | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator |
US11893261B2 (en) | 2021-05-05 | 2024-02-06 | Netapp, Inc. | Usage of OP logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight OP logging |
US11892982B2 (en) | 2021-10-20 | 2024-02-06 | Netapp, Inc. | Facilitating immediate performance of volume resynchronization with the use of passive cache entries |
US11907562B2 (en) | 2022-07-11 | 2024-02-20 | Netapp, Inc. | Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7475142B2 (en) * | 2002-12-06 | 2009-01-06 | Cisco Technology, Inc. | CIFS for scalable NAS architecture |
Family Cites Families (188)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4399504A (en) | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
US4825354A (en) | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
US4780821A (en) | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
US4914570A (en) | 1986-09-15 | 1990-04-03 | Counterpoint Computers, Inc. | Process distribution and sharing system for multiple processor computer system |
US4887204A (en) | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US5202971A (en) | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
US4791566A (en) | 1987-03-27 | 1988-12-13 | Digital Equipment Corporation | Terminal device session management protocol |
US5008853A (en) | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
US4891785A (en) | 1988-07-08 | 1990-01-02 | Donohoo Theodore J | Method for transferring data files between computers in a network response to generalized application program instructions |
US5124909A (en) | 1988-10-31 | 1992-06-23 | Hewlett-Packard Company | Software program for providing cooperative processing between personal computers and a host computer |
CA1323448C (en) | 1989-02-24 | 1993-10-19 | Terrence C. Miller | Method and apparatus for translucent file system |
US5109519A (en) | 1989-03-28 | 1992-04-28 | Wang Laboratories, Inc. | Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer |
US5113519A (en) | 1989-05-15 | 1992-05-12 | International Business Machines Corporation | Maintenance of file attributes in a distributed data processing system |
US5560008A (en) | 1989-05-15 | 1996-09-24 | International Business Machines Corporation | Remote authentication and authorization in a distributed data processing system |
US5218696A (en) | 1989-07-24 | 1993-06-08 | International Business Machines Corporation | Method for dynamically expanding and rapidly accessing file directories |
US5261051A (en) | 1989-08-14 | 1993-11-09 | Microsoft Corporation | Method and system for open file caching in a networked computer system |
US5265261A (en) | 1989-08-14 | 1993-11-23 | Microsoft Corporation | Method and system for network communications using raw mode protocols |
JP2575543B2 (ja) | 1990-04-04 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同時アクセス管理方法 |
JPH0619771A (ja) | 1992-04-20 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | 異種のクライアントによる共用ファイルのファイル管理機構 |
US5349642A (en) | 1992-11-03 | 1994-09-20 | Novell, Inc. | Method and apparatus for authentication of client server communication |
US5452447A (en) | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
US5493728A (en) | 1993-02-19 | 1996-02-20 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
US5491752A (en) | 1993-03-18 | 1996-02-13 | Digital Equipment Corporation, Patent Law Group | System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens |
JP2513127B2 (ja) * | 1993-05-31 | 1996-07-03 | 日本電気株式会社 | ホットスタンバイ高速切替えシステム |
JPH0736760A (ja) * | 1993-07-20 | 1995-02-07 | Nippon Telegr & Teleph Corp <Ntt> | 装置多重化機能とモジュール間共用機能を併用した外部記憶装置の高信頼化方法 |
US5522042A (en) | 1994-01-28 | 1996-05-28 | Cabletron Systems, Inc. | Distributed chassis agent for distributed network management |
US5588117A (en) | 1994-05-23 | 1996-12-24 | Hewlett-Packard Company | Sender-selective send/receive order processing on a per message basis |
US5513314A (en) | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
US5628005A (en) | 1995-06-07 | 1997-05-06 | Microsoft Corporation | System and method for providing opportunistic file access in a network environment |
US5826027A (en) | 1995-10-11 | 1998-10-20 | Citrix Systems, Inc. | Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system |
US5764887A (en) | 1995-12-11 | 1998-06-09 | International Business Machines Corporation | System and method for supporting distributed computing mechanisms in a local area network server environment |
US6343313B1 (en) | 1996-03-26 | 2002-01-29 | Pixion, Inc. | Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability |
WO1997037461A1 (en) | 1996-04-01 | 1997-10-09 | Hewlett-Packard Company | Transmitting messages over a network |
US6434120B1 (en) | 1998-08-25 | 2002-08-13 | Cisco Technology, Inc. | Autosensing LMI protocols in frame relay networks |
US5933602A (en) | 1996-07-31 | 1999-08-03 | Novell, Inc. | System for selecting command packet and corresponding response packet from communication stream of packets by monitoring packets sent between nodes on network |
US6208952B1 (en) | 1996-10-24 | 2001-03-27 | Microsoft Corporation | Method and system for delayed registration of protocols |
JPH10133971A (ja) * | 1996-10-25 | 1998-05-22 | Nec Corp | ファイル転送処理方式 |
US6125122A (en) | 1997-01-21 | 2000-09-26 | At&T Wireless Svcs. Inc. | Dynamic protocol negotiation system |
US5931913A (en) | 1997-05-07 | 1999-08-03 | International Business Machines Corporation | Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol |
US6219799B1 (en) | 1997-07-01 | 2001-04-17 | Unisys Corporation | Technique to support pseudo-names |
US6092199A (en) | 1997-07-07 | 2000-07-18 | International Business Machines Corporation | Dynamic creation of a user account in a client following authentication from a non-native server domain |
US6275953B1 (en) * | 1997-09-26 | 2001-08-14 | Emc Corporation | Recovery from failure of a data processor in a network server |
US6247139B1 (en) | 1997-11-11 | 2001-06-12 | Compaq Computer Corp. | Filesystem failover in a single system image environment |
US6085247A (en) | 1998-06-08 | 2000-07-04 | Microsoft Corporation | Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers |
US6131125A (en) | 1997-11-14 | 2000-10-10 | Kawasaki Lsi U.S.A., Inc. | Plug-and-play data cable with protocol translation |
US6516351B2 (en) | 1997-12-05 | 2003-02-04 | Network Appliance, Inc. | Enforcing uniform file-locking for diverse file-locking protocols |
US7010532B1 (en) | 1997-12-31 | 2006-03-07 | International Business Machines Corporation | Low overhead methods and apparatus for shared access storage devices |
US6243862B1 (en) | 1998-01-23 | 2001-06-05 | Unisys Corporation | Methods and apparatus for testing components of a distributed transaction processing system |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
JPH11265361A (ja) * | 1998-03-17 | 1999-09-28 | Nec Corp | 多重計算機システム、通信処理装置、トランザクション処理システム、トランザクション処理システム運転引き継ぎ方法、トランザクション処理システム運転引き継ぎプログラムを記録した記録媒体 |
JP3506920B2 (ja) * | 1998-08-25 | 2004-03-15 | 日本電信電話株式会社 | 全命令トレースデータの2次記憶装置への格納競合防止方法 |
US6401123B1 (en) | 1998-11-24 | 2002-06-04 | International Busines Machines Corporation | Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol |
US6883000B1 (en) | 1999-02-12 | 2005-04-19 | Robert L. Gropper | Business card and contact management system |
US6324581B1 (en) | 1999-03-03 | 2001-11-27 | Emc Corporation | File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems |
US6453354B1 (en) | 1999-03-03 | 2002-09-17 | Emc Corporation | File server system using connection-oriented protocol and sharing data sets among data movers |
US20040139004A1 (en) | 1999-04-08 | 2004-07-15 | Aceinc Pty Ltd. | Secure online commerce transactions |
US6938096B1 (en) | 1999-04-12 | 2005-08-30 | Softricity, Inc. | Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port |
US7562129B1 (en) | 1999-04-15 | 2009-07-14 | Alcatel-Lucent Canada Inc. | Subscription management system for data communication network |
US6349350B1 (en) | 1999-05-04 | 2002-02-19 | International Business Machines Corporation | System, method, and program for handling failed connections in an input/output (I/O) system |
WO2000068856A2 (en) | 1999-05-11 | 2000-11-16 | Webvan Group, Inc. | Electronic commerce enabled delivery system and method |
US7318102B1 (en) | 1999-05-24 | 2008-01-08 | Hewlett-Packard Development Company, L.P. | Reliable datagram |
US6430691B1 (en) | 1999-06-21 | 2002-08-06 | Copytele, Inc. | Stand-alone telecommunications security device |
US6490666B1 (en) | 1999-08-20 | 2002-12-03 | Microsoft Corporation | Buffering data in a hierarchical data storage environment |
US6636242B2 (en) | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
JP2001094613A (ja) | 1999-09-21 | 2001-04-06 | Canon Inc | 通信制御装置、方法および記録媒体 |
US6775707B1 (en) | 1999-10-15 | 2004-08-10 | Fisher-Rosemount Systems, Inc. | Deferred acknowledgment communications and alarm management |
US6910082B1 (en) | 1999-11-18 | 2005-06-21 | International Business Machines Corporation | Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server |
US6658476B1 (en) | 1999-11-29 | 2003-12-02 | Microsoft Corporation | Client-server protocol support list for standard request-response protocols |
US7111060B2 (en) | 2000-03-14 | 2006-09-19 | Aep Networks, Inc. | Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser |
US6883015B1 (en) * | 2000-03-30 | 2005-04-19 | Cisco Technology, Inc. | Apparatus and method for providing server state and attribute management for multiple-threaded voice enabled web applications |
US6993587B1 (en) | 2000-04-07 | 2006-01-31 | Network Appliance Inc. | Method and apparatus for election of group leaders in a distributed network |
US7225244B2 (en) | 2000-05-20 | 2007-05-29 | Ciena Corporation | Common command interface |
US6452903B1 (en) | 2000-05-31 | 2002-09-17 | Fujitsu Network Communications, Inc. | Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis |
US6961858B2 (en) | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
US7693976B2 (en) | 2000-07-11 | 2010-04-06 | Ciena Corporation | Granular management of network resources |
US6349250B1 (en) | 2000-10-26 | 2002-02-19 | Detroit Diesel Corporation | Clear historic data from a vehicle data recorder |
JP2002183000A (ja) | 2000-12-11 | 2002-06-28 | Hitachi Ltd | ネットワークを介するデータ参照方法及びそのシステム |
US20020073211A1 (en) | 2000-12-12 | 2002-06-13 | Raymond Lin | System and method for securely communicating between application servers and webservers |
KR100750735B1 (ko) | 2001-02-03 | 2007-08-22 | 삼성전자주식회사 | 홈네트워크내의 기기 제어장치 및 방법 및 이를 적용한홈네트워크 시스템 |
US7055036B2 (en) | 2001-04-06 | 2006-05-30 | Mcafee, Inc. | System and method to verify trusted status of peer in a peer-to-peer network environment |
US8051212B2 (en) | 2001-04-11 | 2011-11-01 | Mellanox Technologies Ltd. | Network interface adapter with shared data send resources |
US20030093678A1 (en) | 2001-04-23 | 2003-05-15 | Bowe John J. | Server-side digital signature system |
JP2002328828A (ja) | 2001-04-27 | 2002-11-15 | Fujitsu Ltd | ストレージサービス方法、ストレージサービスユーザ及びストレージサービスプロバイダ |
JP3797236B2 (ja) | 2001-04-27 | 2006-07-12 | 日本ビクター株式会社 | 記録再生装置および記録再生方法 |
US6640226B1 (en) | 2001-06-19 | 2003-10-28 | Informatica Corporation | Ranking query optimization in analytic applications |
US7409420B2 (en) | 2001-07-16 | 2008-08-05 | Bea Systems, Inc. | Method and apparatus for session replication and failover |
US6944785B2 (en) | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
JP2003069610A (ja) | 2001-08-22 | 2003-03-07 | Canon Inc | 通信装置、その制御方法、通信システム、及び制御プログラム |
JP3663627B2 (ja) | 2001-10-18 | 2005-06-22 | ソニー株式会社 | 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム |
US7136982B2 (en) | 2001-11-09 | 2006-11-14 | Danger, Inc. | Apparatus and method for allocating memory blocks |
US7394764B2 (en) | 2001-12-14 | 2008-07-01 | Sasken Communication Technologies Limited | Technique for improving transmission control protocol performance in lossy networks |
US7313816B2 (en) | 2001-12-17 | 2007-12-25 | One Touch Systems, Inc. | Method and system for authenticating a user in a web-based environment |
JP3969089B2 (ja) * | 2001-12-25 | 2007-08-29 | 株式会社日立製作所 | 階層構成サーバシステム |
US7111035B2 (en) | 2001-12-26 | 2006-09-19 | Hewlett-Packard Development Company, L.P. | Fault tolerance associations for IP transport protocols |
US20030140129A1 (en) | 2002-01-24 | 2003-07-24 | Noam Livnat | Installing communication protocol in a handheld device |
US6829606B2 (en) | 2002-02-14 | 2004-12-07 | Infoglide Software Corporation | Similarity search engine for use with relational databases |
US7178050B2 (en) | 2002-02-22 | 2007-02-13 | Bea Systems, Inc. | System for highly available transaction recovery for transaction processing systems |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7388866B2 (en) | 2002-03-07 | 2008-06-17 | Broadcom Corporation | System and method for expediting upper layer protocol (ULP) connection negotiations |
US7668306B2 (en) | 2002-03-08 | 2010-02-23 | Intel Corporation | Method and apparatus for connecting packet telephony calls between secure and non-secure networks |
JP2003281091A (ja) | 2002-03-25 | 2003-10-03 | Fujitsu Ltd | 同時受付制御システム |
JP4315696B2 (ja) | 2002-03-29 | 2009-08-19 | 富士通株式会社 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
JP4000905B2 (ja) | 2002-05-22 | 2007-10-31 | ソニー株式会社 | 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム |
EP1512261A1 (en) | 2002-06-10 | 2005-03-09 | Caplin Systems Limited | Resource management |
US7290141B2 (en) | 2002-06-27 | 2007-10-30 | Nokia, Inc. | Authentication of remotely originating network messages |
US20040003210A1 (en) | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Method, system, and computer program product to generate test instruction streams while guaranteeing loop termination |
CA2393502A1 (en) | 2002-07-15 | 2004-01-15 | Mark J. Frazer | System and method for reliable transport in a computer network |
US20040019660A1 (en) | 2002-07-24 | 2004-01-29 | Sandhya E. | Lock holding multi-threaded processes for distibuted data systems |
US6829473B2 (en) | 2002-07-25 | 2004-12-07 | Utstarcom, Inc. | Roaming and hand-off support for prepaid billing for wireless data networks |
US6928577B2 (en) | 2002-07-29 | 2005-08-09 | Eternal Systems, Inc. | Consistent message ordering for semi-active and passive replication |
US20040032876A1 (en) | 2002-08-19 | 2004-02-19 | Ajay Garg | Selection of transmission channels |
JP3846384B2 (ja) | 2002-08-28 | 2006-11-15 | ブラザー工業株式会社 | 端末装置、接続制御方法、接続制御用プログラム及び記録媒体 |
US6957367B2 (en) | 2002-08-30 | 2005-10-18 | Hewlett-Packard Development Company L.P. | System and method for controlling activity of temporary files in a computer system |
US7109430B2 (en) | 2002-11-05 | 2006-09-19 | Emrise Corporation | Low profile rotary switch with detent in the bushing |
US7386889B2 (en) | 2002-11-18 | 2008-06-10 | Trusted Network Technologies, Inc. | System and method for intrusion prevention in a communications network |
US7421502B2 (en) | 2002-12-06 | 2008-09-02 | International Business Machines Corporation | Method and system for storage-aware flow resource management |
US7664991B1 (en) | 2002-12-17 | 2010-02-16 | Symantec Operating Corporation | System and method for distributed file system I/O recovery |
US7290051B2 (en) | 2003-01-09 | 2007-10-30 | Sun Microsystems, Inc. | Method and apparatus for hardware implementation independent verification of network layers |
US7519834B1 (en) | 2003-01-24 | 2009-04-14 | Nortel Networks Limited | Scalable method and apparatus for transforming packets to enable secure communication between two stations |
JP3999135B2 (ja) | 2003-01-24 | 2007-10-31 | 株式会社エヌ・ティ・ティ・ドコモ | 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体 |
US7151939B2 (en) | 2003-02-18 | 2006-12-19 | Qualcomm Incorporated | Method, apparatus, and machine-readable medium for providing indication of location service availability and the quality of available location services |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7490152B2 (en) | 2003-04-11 | 2009-02-10 | Alcatel-Lucent Usa Inc. | Version caching mechanism |
US7339885B2 (en) | 2003-06-05 | 2008-03-04 | International Business Machines Corporation | Method and apparatus for customizable surveillance of network interfaces |
US7363629B2 (en) | 2003-06-19 | 2008-04-22 | International Business Machines Corporation | Method, system, and program for remote resource management |
US7698115B2 (en) | 2003-06-30 | 2010-04-13 | Microsoft Corporation | System and method for dynamically allocating resources in a client/server environment |
US7526640B2 (en) | 2003-06-30 | 2009-04-28 | Microsoft Corporation | System and method for automatic negotiation of a security protocol |
US20050015511A1 (en) | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
US7296264B2 (en) | 2003-07-18 | 2007-11-13 | Bea Systems, Inc. | System and method for performing code completion in an integrated development environment |
TW200511029A (en) | 2003-07-24 | 2005-03-16 | Matsushita Electric Ind Co Ltd | File management method and data processing device |
US8028078B2 (en) | 2003-08-07 | 2011-09-27 | Teamon Systems, Inc. | Communications system including protocol interface device providing enhanced operating protocol selection features and related methods |
CN100547583C (zh) | 2003-08-14 | 2009-10-07 | 甲骨文国际公司 | 数据库的自动和动态提供的方法 |
US7870268B2 (en) | 2003-09-15 | 2011-01-11 | Intel Corporation | Method, system, and program for managing data transmission through a network |
US20050091226A1 (en) | 2003-10-23 | 2005-04-28 | Yun Lin | Persistent caching directory level support |
US7539722B2 (en) | 2003-10-24 | 2009-05-26 | Microsoft Corporation | Method and system for accessing a file |
US7673066B2 (en) | 2003-11-07 | 2010-03-02 | Sony Corporation | File transfer protocol for mobile computer |
JP4836432B2 (ja) | 2003-11-17 | 2011-12-14 | 株式会社リコー | 文書管理システム、文書管理装置、文書管理方法、文書管理プログラム及び記録媒体 |
US7188273B2 (en) | 2003-11-24 | 2007-03-06 | Tsx Inc. | System and method for failover |
US20050111030A1 (en) | 2003-11-25 | 2005-05-26 | Berkema Alan C. | Hard copy imaging systems, print server systems, and print server connectivity methods |
FI20031779A0 (fi) | 2003-12-05 | 2003-12-05 | Nokia Corp | Menetelmä, järjestelmä ja lähetettävän puolen yhteyskäytäntöyksikkö datapakettien lähettämiseksi kuittaamattoman toimintamuodon palveluissa |
US7177941B2 (en) | 2003-12-11 | 2007-02-13 | International Business Machines Corporation | Increasing TCP re-transmission process speed |
US7383483B2 (en) | 2003-12-11 | 2008-06-03 | International Business Machines Corporation | Data transfer error checking |
US7243284B2 (en) | 2003-12-11 | 2007-07-10 | International Business Machines Corporation | Limiting number of retransmission attempts for data transfer via network interface controller |
US20050177635A1 (en) | 2003-12-18 | 2005-08-11 | Roland Schmidt | System and method for allocating server resources |
US7698361B2 (en) | 2003-12-31 | 2010-04-13 | Microsoft Corporation | Lightweight input/output protocol |
US7383463B2 (en) * | 2004-02-04 | 2008-06-03 | Emc Corporation | Internet protocol based disaster recovery of a server |
CN1934639A (zh) | 2004-03-17 | 2007-03-21 | 皇家飞利浦电子股份有限公司 | 用于扫描盘形信息存储介质的方法和装置 |
US7444536B1 (en) | 2004-04-16 | 2008-10-28 | Sun Microsystems, Inc. | RMI-IIOP request failover mechanism |
US20050246803A1 (en) | 2004-04-30 | 2005-11-03 | Spencer Andrew M | Peripheral device for processing data from a computing device |
US7627627B2 (en) | 2004-04-30 | 2009-12-01 | Hewlett-Packard Development Company, L.P. | Controlling command message flow in a network |
JP2005321953A (ja) | 2004-05-07 | 2005-11-17 | Hitachi Ltd | ストレージ制御装置、その動作プログラム、及びアクセス制御方法 |
JP2005322016A (ja) | 2004-05-10 | 2005-11-17 | Yokogawa Electric Corp | サーバ装置および情報配信方法 |
US7380080B2 (en) | 2004-05-17 | 2008-05-27 | Hewlett-Packard Development Company, L.P. | Calculating unneeded data storage credits for a data transmission to a pair of storage devices |
US7330910B2 (en) | 2004-05-20 | 2008-02-12 | International Business Machines Corporation | Fencing of resources allocated to non-cooperative client computers |
US7434087B1 (en) | 2004-05-21 | 2008-10-07 | Sun Microsystems, Inc. | Graceful failover using augmented stubs |
US7080173B2 (en) | 2004-05-27 | 2006-07-18 | Microsoft Corporation | Reducing information reception delays |
US20060059118A1 (en) | 2004-08-10 | 2006-03-16 | Byrd Stephen A | Apparatus, system, and method for associating resources using a behavior based algorithm |
US8023417B2 (en) | 2004-08-30 | 2011-09-20 | International Business Machines Corporation | Failover mechanisms in RDMA operations |
US7418709B2 (en) | 2004-08-31 | 2008-08-26 | Microsoft Corporation | URL namespace to support multiple-protocol processing within worker processes |
US7418712B2 (en) | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support multiple-protocol processing within worker processes |
US7451347B2 (en) | 2004-10-08 | 2008-11-11 | Microsoft Corporation | Failover scopes for nodes of a computer cluster |
US8156049B2 (en) | 2004-11-04 | 2012-04-10 | International Business Machines Corporation | Universal DRM support for devices |
US7457722B1 (en) | 2004-11-17 | 2008-11-25 | Symantec Operating Corporation | Correlation of application instance life cycle events in performance monitoring |
US8522293B2 (en) | 2004-12-15 | 2013-08-27 | Time Warner Cable Enterprises Llc | Method and apparatus for high bandwidth data transmission in content-based networks |
CN101116306A (zh) | 2005-02-08 | 2008-01-30 | 艾利森电话股份有限公司 | 在分组交换网络上的按需多频道流会话 |
US7743245B2 (en) | 2005-03-10 | 2010-06-22 | Intel Corporation | Security protocols on incompatible transports |
US7453879B1 (en) | 2005-04-04 | 2008-11-18 | Sun Microsystems, Inc. | Method and apparatus for determining the landing zone of a TCP packet |
US20060281525A1 (en) | 2005-05-17 | 2006-12-14 | Milo Borissov | Slot type game with player input opportunity |
US8316129B2 (en) | 2005-05-25 | 2012-11-20 | Microsoft Corporation | Data communication coordination with sequence numbers |
EP1727055B1 (en) | 2005-05-25 | 2016-09-07 | Microsoft Technology Licensing, LLC | Data communication coordination with sequence numbers |
EP1727056B1 (en) | 2005-05-25 | 2008-11-05 | Microsoft Corporation | Data communication protocol |
US8108548B2 (en) | 2005-12-22 | 2012-01-31 | Microsoft Corporation | Methodology and system for file replication based on a peergroup |
US8051179B2 (en) | 2006-02-01 | 2011-11-01 | Oracle America, Inc. | Distributed session failover |
US8024439B2 (en) | 2006-03-17 | 2011-09-20 | Microsoft Corporation | Server session management application program interface and schema |
US7526668B2 (en) | 2006-06-08 | 2009-04-28 | Hitachi, Ltd. | Failover method of remotely-mirrored clustered file servers |
US20090077097A1 (en) | 2007-04-16 | 2009-03-19 | Attune Systems, Inc. | File Aggregation in a Switched File System |
WO2009043037A2 (en) | 2007-09-28 | 2009-04-02 | Xcerion Aktiebolag | Network operating system |
EP2066101B1 (en) | 2007-11-28 | 2012-10-17 | Alcatel Lucent | System and method for an improved high availability component implementation |
JP4549408B2 (ja) | 2008-06-24 | 2010-09-22 | 富士通株式会社 | ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置 |
US7840730B2 (en) | 2008-06-27 | 2010-11-23 | Microsoft Corporation | Cluster shared volumes |
US8700760B2 (en) | 2008-08-18 | 2014-04-15 | Ge Fanuc Intelligent Platforms, Inc. | Method and systems for redundant server automatic failover |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
US8185566B2 (en) | 2009-01-15 | 2012-05-22 | Microsoft Corporation | Client-based caching of remote files |
US9749387B2 (en) * | 2009-08-13 | 2017-08-29 | Sap Se | Transparently stateful execution of stateless applications |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
-
2010
- 2010-12-10 US US12/964,749 patent/US8631277B2/en active Active
-
2011
- 2011-12-06 EP EP11846483.3A patent/EP2649750B1/en active Active
- 2011-12-06 KR KR1020137014719A patent/KR101801432B1/ko active IP Right Grant
- 2011-12-06 RU RU2013126471/08A patent/RU2595482C2/ru active
- 2011-12-06 JP JP2013543293A patent/JP6141189B2/ja active Active
- 2011-12-06 WO PCT/US2011/063618 patent/WO2012078693A2/en active Application Filing
- 2011-12-06 CA CA2817620A patent/CA2817620A1/en not_active Abandoned
- 2011-12-06 ES ES11846483.3T patent/ES2566933T3/es active Active
- 2011-12-06 MX MX2013006427A patent/MX2013006427A/es active IP Right Grant
- 2011-12-06 AU AU2011338485A patent/AU2011338485B2/en active Active
- 2011-12-06 BR BR112013014070A patent/BR112013014070A2/pt not_active Application Discontinuation
- 2011-12-09 CN CN201110462797.3A patent/CN102624542B/zh active Active
-
2013
- 2013-01-30 HK HK13101325.9A patent/HK1174451A1/xx unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7475142B2 (en) * | 2002-12-06 | 2009-01-06 | Cisco Technology, Inc. | CIFS for scalable NAS architecture |
Also Published As
Publication number | Publication date |
---|---|
US20120151249A1 (en) | 2012-06-14 |
US8631277B2 (en) | 2014-01-14 |
BR112013014070A2 (pt) | 2016-09-13 |
EP2649750A4 (en) | 2015-01-14 |
EP2649750A2 (en) | 2013-10-16 |
CN102624542B (zh) | 2015-06-17 |
MX2013006427A (es) | 2013-12-16 |
ES2566933T3 (es) | 2016-04-18 |
KR20130131362A (ko) | 2013-12-03 |
CN102624542A (zh) | 2012-08-01 |
RU2013126471A (ru) | 2014-12-20 |
HK1174451A1 (en) | 2013-06-07 |
EP2649750B1 (en) | 2016-03-02 |
WO2012078693A2 (en) | 2012-06-14 |
AU2011338485A1 (en) | 2013-05-30 |
JP2014500559A (ja) | 2014-01-09 |
JP6141189B2 (ja) | 2017-06-07 |
KR101801432B1 (ko) | 2017-11-24 |
CA2817620A1 (en) | 2012-06-14 |
AU2011338485B2 (en) | 2016-07-21 |
WO2012078693A3 (en) | 2012-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2595482C2 (ru) | Обеспечение прозрачной отработки отказа в файловой системе | |
US10353790B1 (en) | Disaster recovery rehearsals | |
CA2929776C (en) | Client-configurable security options for data streams | |
CA2929777C (en) | Managed service for acquisition, storage and consumption of large-scale data streams | |
CA2930026C (en) | Data stream ingestion and persistence techniques | |
CA2930101C (en) | Partition-based data stream processing framework | |
US8533171B2 (en) | Method and system for restarting file lock services at an adoptive node during a network filesystem server migration or failover | |
JP2014500559A5 (ru) | ||
US11709743B2 (en) | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
WO2021112909A1 (en) | Managing replication state for deleted objects | |
RU2643642C2 (ru) | Использование кэш-памяти и памяти другого типа в распределённой запоминающей системе | |
EP3731099B1 (en) | System and method for accelerating application service restoration | |
US11397752B1 (en) | In-memory ingestion for highly available distributed time-series databases | |
CN110955489B (zh) | 用于可靠地恢复虚拟机的方法和系统 | |
US11675668B2 (en) | Leveraging a cloud-based object storage to efficiently manage data from a failed backup operation | |
US20230401337A1 (en) | Two person rule enforcement for backup and recovery systems | |
US20240143620A1 (en) | Object access based on tracking of objects and replication policies | |
Davis et al. | Pro SQL Server 2008 Mirroring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
HZ9A | Changing address for correspondence with an applicant |