RU2613040C2 - Smb2-масштабирование - Google Patents

Smb2-масштабирование Download PDF

Info

Publication number
RU2613040C2
RU2613040C2 RU2014108994A RU2014108994A RU2613040C2 RU 2613040 C2 RU2613040 C2 RU 2613040C2 RU 2014108994 A RU2014108994 A RU 2014108994A RU 2014108994 A RU2014108994 A RU 2014108994A RU 2613040 C2 RU2613040 C2 RU 2613040C2
Authority
RU
Russia
Prior art keywords
server
addresses
client
address
cluster
Prior art date
Application number
RU2014108994A
Other languages
English (en)
Other versions
RU2014108994A (ru
Inventor
Дэвид М. КРУС
Дэниел Э. ЛОВИНДЖЕР
Томас И. ДЖОЛЛИ
Джеймс Т. ПИНКЕРТОН
Мэтью ДЖОРДЖ
Рупеш К. БАТТЕПАТИ
Миндун ШАН
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2014108994A publication Critical patent/RU2014108994A/ru
Application granted granted Critical
Publication of RU2613040C2 publication Critical patent/RU2613040C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных. Способ содержит этапы, на которых: принимают в клиенте множество адресов, идентифицирующих множество серверов в кластерном серверном окружении; отправляют с клиента первоначальный запрос соединения с первым сервером, идентифицированным посредством первого адреса из множества адресов; после отправки первоначального запроса соединения выбирают посредством клиента подмножество из множества адресов, каковое подмножество из множества адресов содержит по меньшей мере второй адрес из множества адресов, причем второй адрес отличается от первого адреса; перед соединением с первым сервером отправляют с клиента один или более дополнительных запросов в упомянутое подмножество из множества адресов, при этом второй адрес идентифицирует по меньшей мере второй сервер в кластерном серверном окружении, причем эти один или более дополнительных запросов посылаются в то время, как обработка первоначального запроса не закончена; принимают от второго сервера указание успешного соединения и соединяются со вторым сервером. 4 н. и 17 з.п. ф-лы, 6 ил.

Description

Уровень техники
[0001] Кластеры серверов обычно используются, чтобы обеспечивать отказоустойчивость и высокий уровень доступности информации клиентам. Традиционно, кластерные окружения разрабатываются согласно клиент-серверному протоколу, в котором клиент соединяется с сервером для того, чтобы осуществлять доступ к ресурсам, доступным серверу. В традиционных кластерных окружениях различные серверы, которые составляют окружение, могут осуществлять доступ к различным файловым системам. Невозможность доступа к общей файловой системе ограничивает функциональность традиционного кластера файловой системы.
[0002] В отношении этих и других соображений были выполнены эти варианты осуществления. Также, хотя обсуждаются относительно специфические проблемы, следует понимать, что варианты осуществления не должны быть ограничены решением специфических проблем, идентифицированных на уровне техники.
Сущность изобретения
[0003] Данное краткое изложение сущности изобретения предусмотрено для того, чтобы в упрощенной форме представить подборку идей, которые дополнительно описываются ниже в подробном описании. Это краткое изложение сущности изобретения не предназначено ни для того, чтобы идентифицировать ключевые признаки или важнейшие признаки заявляемого изобретения, ни для того, чтобы использоваться в качестве помощи при определении объема заявляемого изобретения.
[0004] Варианты осуществления согласно настоящему раскрытию предоставляют масштабируемое кластерное окружение, где файловая система может быть логически кластеризована так, что каждый узел в кластере имеет доступ ко всем ресурсам, которые находятся в кластере. Поскольку файловая система доступна каждому узлу в кластерном окружении, клиент может осуществлять доступ к ресурсам кластера, несмотря на то, с каким узлом клиент соединяется. Такое окружение обеспечивает клиента вариантами при соединении с кластерным окружением. Клиент может максимально использовать гибкость узла масштабируемого кластера, чтобы эффективно соединяться с кластером серверов.
[0005] В других вариантах осуществления, в то время как масштабируемое кластерное окружение предоставляет возможность клиентам осуществлять доступ к ресурсам по всему кластеру, независимо от фактического узла, с которым клиент устанавливает соединение, после того как клиент устанавливает соединение с узлом, он пытается поддерживать это соединение с тем же узлом для того, чтобы уменьшать объем информации о состоянии, которая передается между узлами кластерного окружения.
[0006] Однако, в некоторых случаях клиент может не иметь возможности поддерживать соединение с одним и тем же узлом, а требуется соединяться с другим узлом в масштабируемом кластерном окружении. В дополнительных окружениях масштабируемое кластерное окружение обеспечивает хранение и поддержку информации о сеансе, информации о состоянии и/или обработке для того, чтобы облегчать перемещение клиента от одного узла к другому. Узлы кластера имеют возможность передавать такую информацию друг другу, чтобы обеспечивать перемещение клиентских соединений.
[0007] Варианты осуществления могут быть реализованы как компьютерный процесс, вычислительная система или как промышленное изделие, такое как компьютерный программный продукт или машиночитаемый носитель информации. Компьютерный программный продукт может быть компьютерным носителем информации, читаемым компьютерной системой и кодирующим компьютерную программу инструкций для выполнения компьютерного процесса. Компьютерный программный продукт может также быть распространяющимся сигналом на несущей частоте, читаемым вычислительной системой и кодирующим компьютерную программу инструкций для выполнения компьютерного процесса.
Краткое описание чертежей
[0008] Неограничивающие и неисключительные варианты осуществления описываются со ссылкой на следующие чертежи.
[0009] Фиг.1 иллюстрирует систему, которая может быть использована, чтобы реализовывать варианты осуществления, описанные в данном документе.
[0010] Фиг.2 является вариантом осуществления способа, который клиент может выполнять при соединении с кластером серверов.
[0011] Фиг.3 является вариантом осуществления способа, который клиент может выполнять при переносе соединений между узлами в кластерном окружении.
[0012] Фиг.4 является вариантом осуществления способа, выполняемого узлом в кластерном окружении, чтобы поддерживать и передавать устойчивые дескрипторы.
[0013] Фиг.5 является вариантом осуществления способа, выполняемого узлом в кластерном окружении, чтобы запрашивать право владения ранее установленным сеансом.
[0014] Фиг.6 иллюстрирует блок-схему вычислительного окружения, подходящего для реализации вариантов осуществления.
Подробное описание изобретения
[0015] Различные варианты осуществления описываются более подробно ниже со ссылкой на сопровождающие чертежи, которые формируют часть этого описания и которые показывают конкретные примерные варианты осуществления. Однако варианты осуществления могут быть реализованы во многих различных формах и не должны истолковываться как ограниченные вариантами осуществления, изложенными в данном документе; скорее, эти варианты осуществления предоставляются так, что это раскрытие будет полным и законченным и будет полностью передавать объем вариантов осуществления специалистам в данной области техники. Варианты осуществления могут быть применены на практике как способы, системы или устройства. Соответственно, варианты осуществления могут принимать форму аппаратной реализации, полностью программной реализации или реализации, комбинирующей программные и аппаратные аспекты. Последующее подробное описание, следовательно, не должно восприниматься в ограничивающем смысле.
[0016] Фиг.1 иллюстрирует систему 100, которая может быть использована, чтобы реализовывать некоторые из вариантов осуществления, раскрытых в данном документе. Система 106 может быть примерной кластерной системой, которая содержит один или более узлов. Примером кластерной системы является кластер серверов с одним или более серверами, как иллюстрировано на фиг.1. Система 100 включает в себя клиентов 102 и 104 и кластер 106 серверов. Клиенты 102 и 104 связываются с кластером 106 серверов через сеть 108. В вариантах осуществления сеть 108 может быть Интернетом, WAN, LAN или любым другим типом сети, известным в области техники. Кластер 106 серверов хранит ресурсы, к которым осуществляют доступ приложения на клиентах 102 и 104. Клиенты 102 и 104 устанавливают сеансы с кластером 106, чтобы осуществлять доступ к ресурсам на кластере 106. Хотя на фиг.1 только клиенты 102 и 104 показаны как связывающиеся с кластером 106, в других вариантах осуществления может быть больше двух клиентов, осуществляющих доступ к информации из кластера 106 серверов. В вариантах осуществления клиенты 102 и 104 могут осуществлять доступ или связываться с кластером 106 серверов по протоколу SMB2.
[0017] Как показано на фиг.1, кластер 106 серверов включает в себя один или более узлов, например, серверы 106A, 106B и 106C, которые обеспечивают как высокую доступность, так и резервирование информации, сохраненной в кластере 106. Один или более узлов кластера 106 серверов могут связываться друг с другом через сеть, такую как Интернет, WAN, LAN, или любой другой тип сети, известный в области техники. В вариантах осуществления кластер 106 может иметь файловую систему, базу данных или другую информацию, к которой осуществляют доступ клиенты 102 и 104. Хотя три сервера показаны на фиг.1, в других вариантах осуществления кластер 106 может включать в себя более трех серверов или менее трех серверов.
[0018] В вариантах осуществления кластер 106 серверов является масштабируемым кластером серверов. В вариантах осуществления масштабируемый кластер серверов включает в себя файловую систему 108, которая доступна каждому узлу в кластере серверов (например, серверам 106A, 106B и 106C). В качестве примера, файловая система масштабируемого кластера логически кластеризована так, что один или более дисков, которые составляют файловые системы, являются видимыми с каждого сервера в кластере серверов. В таких вариантах осуществления масштабируемый кластер серверов предоставляет возможность совместного использования ресурсов между узлами в кластере. В одном таком варианте осуществления кластер 106 серверов включает в себя центральный репозиторий данных, который включает в себя одно или более хранилищ данных, к которым каждый сервер в кластере 106 серверов имеет доступ. В таком варианте осуществления хранение ресурсов в центральном репозитории предоставляет возможность каждому серверу осуществлять доступ к файловой системе. В другом варианте осуществления совместно используемая файловая система может быть предоставлена посредством репликации ресурсов между локальными файловыми системами каждого сервера в кластере 106 серверов. В таких вариантах осуществления любой способ репликации данных, известный в области техники, может быть применен, чтобы реплицировать ресурсы кластера между серверами, которые составляют кластер.
[0019] Включение логически кластеризованной файловой системы в масштабируемый кластер серверов, такой как кластер 106 серверов, предоставляет дополнительную функциональность, которая не доступна в традиционном кластере серверов. В одном варианте осуществления логически кластеризованная файловая система гарантирует, что каждый узел, который является частью кластерного окружения, может осуществлять доступ к любому ресурсу в окружении. В вариантах осуществления ресурс может быть приложением, файлом, объектом, данными или любым другим типом ресурса, предусмотренным в кластерном окружении. Это предоставляет возможность клиенту осуществлять доступ и/или иначе манипулировать любым ресурсом в файловой системе, независимо от того, с каким узлом (например, серверами 106A, 106B и/или 106C) клиент устанавливает соединение. В вариантах осуществления файловый сервер 106 может регистрировать каждый узел под общим именем с помощью механизма разрешения имен. Неограничивающим примером механизма разрешения имен является система доменных имен (DNS). Например, кластер 106 серверов может регистрировать серверы 106A, 106B и 106C под общим именем в DNS-сервере (не показан на фиг.1). DNS-сервер может быть частью кластера 106 серверов, или он может быть внешним по отношению к кластеру 106 серверов.
[0020] Когда клиент пытается осуществлять доступ к серверу в кластере 106 серверов, клиент может осуществлять доступ к механизму разрешения имен, чтобы получать адрес сервера. Например, клиент может контактировать с DNS-сервером, чтобы получать адрес для сервера в кластере 106 серверов. Поскольку серверная система зарегистрировала все серверы под общим именем, DNS-сервер может возвращать список адресов для каждого сервера (например, серверы 106A, 106B и 106C), которые составляют кластер 106 серверов. В вариантах осуществления адрес может быть IP-адресом, URL, URI или любым другим типом адреса, известным в области техники. Поскольку возвращается множество адресов, клиенту предоставляется выбор, с каким сервером соединяться. В вариантах осуществления клиент может выбирать соединение по первому адресу в списке, который он принимает от сервера. В некоторых случаях у клиента может возникнуть проблема соединения с первым сервером, идентифицированным посредством первого адреса (например, сервер 106A). Поскольку каждый сервер в кластере 106 серверов способен обеспечивать клиента аналогичной функциональностью, клиент может решить присоединиться к другому серверу в кластере 106 серверов. Если клиент не может успешно соединиться с первым сервером, после ожидания предварительно определенного периода времени, клиент может выдавать один или более запросов на соединение с подмножеством адресов, которые он принял от механизма разрешения имен (например, сервер 106B и сервер 106C), и выбирать соединение, которое удается. Один или более запросов могут быть выполнены параллельно, в таком случае клиент может соединяться с первым сервером, с которым установлено успешное соединение.
[0021] Хотя конкретное упорядочивание списка адресов было предоставлено выше (например, сервер 106A в качестве первого перечисленного адреса), специалист в данной области техники поймет, что список адресов может быть составлен в любом порядке. В вариантах осуществления карусельный способ, который может быть использован посредством механизма разрешения имен, такой как карусель DNS, может быть привлечен, чтобы обеспечивать балансировку нагрузки в сети. Поскольку множество клиентов (например, клиент 102 и 104) могут одновременно соединяться с кластером 106 серверов, карусельный способ гарантирует, что первый адрес, предоставляемый различным клиентам, изменяется. Таким образом, первоначальные запросы соединения распределяются между всеми узлами в кластерном окружении. Кроме того, клиенты могут случайным образом выбирать подмножество адресов, которое он выдает при дополнительном запросе корректировки после неудачной попытки соединения с первым сервером, тем самым предоставляя дополнительный механизм балансировки нагрузки.
[0022] В вариантах осуществления, после того как клиент соединился с сервером в кластере 106 серверов, клиент может гарантировать, что он остается соединенным с одним и тем же сервером. Хотя каждый сервер (например, серверы 106A, 106B и 106C) совместно использует логически кластеризованную файловую систему, состояние сеанса клиента может управляться посредством сервера, с которым он соединен. Таким образом, для того чтобы минимизировать трафик для синхронизации состояний между серверами, клиент может гарантировать, что он остается соединенным с одним и тем же сервером. Например, если клиент 102 соединяется с сервером 106A, клиент 102 может пытаться гарантировать, что все его соединения и использование ресурсов (например, открытые файлы) находятся на сервере 106A. В таких вариантах осуществления, если клиент 102 теряет свое соединение с сервером 106A, он будет пытаться повторно соединяться с сервером 106A вместо серверов 106B или 106C, когда он повторно соединяется с кластером 106 серверов, тем самым уменьшая необходимость передачи состояния сеанса между различными серверами в кластере 106 серверов. В вариантах осуществления, поскольку клиент пытается повторно соединиться с одним и тем же сервером при потере соединения, сервер может сохранять состояние клиентского сеанса, даже после того как он теряет связь с клиентом. Например, если клиент 102 теряет соединение с сервером 106A, сервер 106A может сохранять состояние сеанса для клиента 102. Когда клиент 102 повторно устанавливает свое соединение, устойчивость состояния соединения предоставляет возможность клиенту 102 повторно использовать свою информацию о сеансе (например, информацию о состоянии) при повторном соединении с сервером 106A.
[0023] Однако, в некоторых обстоятельствах, может быть неэффективным или невозможным для клиента поддерживать свое соединение с одним сервером в кластере 106 серверов. Например, отказ серверного узла, потерянная возможность подключения к данному серверу или административное действие, такое как балансировка нагрузки, установка исправлений сервера или любой другой тип административного действия, могут делать невозможным для клиента повторное соединение с тем же узлом. Чтобы облегчать изменение узлов, кластер 106 серверов может поддерживать устойчивые дескрипторы ресурсов, к которым клиент осуществляет доступ. Устойчивые дескрипторы предоставляют возможность клиенту вновь получать дескрипторы, которые он установил на первом узле, при соединении со вторым узлом. Например, если клиент 102 изменяет свое первоначальное соединение с сервера 106A на сервер 106C, дескрипторы, использованные клиентом 102 на сервере 106A, могут быть перенесены на сервер 106C.
[0024] В вариантах осуществления кластер 106 серверов может применять устойчивое хранение состояния, чтобы предоставлять устойчивые дескрипторы. Примерным хранилищем устойчивого состояния является менеджер возобновления ключей, который может присутствовать в одном или более узлах кластера 106 серверов. Однако специалист в данной области техники поймет, что любой тип кэша или хранилища данных может быть использован кластером 106 серверов, чтобы обеспечивать устойчивые дескрипторы. В одном варианте осуществления кластер 106 серверов предоставляет централизованное хранилище устойчивого состояния. В таких вариантах осуществления один узел (например, сервер 106B) в кластере 106 серверов поддерживает устойчивое состояние открытых дескрипторов для клиентского сеанса. В таких вариантах осуществления, каждый раз, когда клиент переключается с одного узла на другой (например, переключается с сервера 106A на 106C), право владения дескрипторами, которые являются частью клиентского сеанса, может быть перенесено между узлами (например, право владения передается от сервера 106A к серверу 106C) посредством применения логики признания недействительности предыдущего сеанса, такой как способ признания недействительности, описанный в переуступленной заявителю по приоритетной заявке и находящейся одновременно с ней на рассмотрении патентной заявке США № 13/228732, озаглавленной "Clustered Client Failover" (номер в реестре поверенного № 14917.1840US01), поданной 9 сентября 2011 года, которая, таким образом, включена сюда по ссылке во всей своей полноте. В других вариантах осуществления право владения дескрипторами может быть передано явно клиентом на основе от дескриптора к дескриптору.
[0025] В другом варианте осуществления хранилище устойчивого состояния может быть распределенным хранилищем состояния. В таких вариантах осуществления хранилище устойчивого состояния может быть распределено между узлами кластера 106 серверов. В таком варианте осуществления каждый узел может хранить хранилище устойчивого состояния. Алгоритм внутрикластерной репликации состояния может быть использован, чтобы реплицировать состояние между распределенным хранилищем состояния. В таких вариантах осуществления кластер 106 серверов поддерживает информацию о состоянии в случаях, когда подмножество узлов отказывает.
[0026] Как обсуждалось, каждый узел масштабируемого кластера соединяется с логически кластеризованной файловой системой. Для того чтобы избегать конфликтов, когда множество клиентов осуществляют доступ к одному и тому же ресурсу, кластер 106 серверов может выполнять распределенное разрешение состояния, предоставляя возможность для одного или более узлов (например, 106A, 106B и/или 106C) получать уступающие блокировки или аренду ресурса. В вариантах осуществления совместно используемые считыватели могут поддерживаться с помощью RH-уступающих блокировок, которые предоставляют возможность множественным считывателям получать доступ к одному и тому же файлу на множестве узлов кластера. В дополнительных вариантах осуществления блокировки записи могут также поддерживаться кластером 106 серверов.
[0027] Как описано в данном документе, специалист в данной области техники поймет, что масштабируемые кластеры серверов предоставляют дополнительную функциональность, которая недоступна в немасштабируемом кластере серверов. Хотя конкретные примеры дополнительной функциональности были предоставлены относительно фиг.1, специалист в данной области техники поймет, что они являются неограничивающими примерами преимуществ и функциональности, предоставляемых масштабируемым кластером серверов.
[0028] Фиг.2 является вариантом осуществления способа 200, который клиент может выполнять при соединении с кластерным окружением. Например, клиент, такой как клиент 102 (фиг.1), может применять способ 200, чтобы определять, с каким узлом (например, 106A, 106B и/или 106C) устанавливать соединение при подключении к кластерному окружению. Процесс начинается на этапе 202, когда клиент принимает список адресов от механизма разрешения имен, такого как DNS-сервер. Как обсуждалось относительно фиг.1, в вариантах осуществления каждый узел в кластерном окружении может иметь возможность предоставлять аналогичную функциональность клиенту. Таким образом, клиент может успешно выполнять желаемую операцию или осуществлять доступ к желаемому ресурсу в кластерном окружении, независимо от того, с каким узлом клиент соединяется.
[0029] Процесс продолжается на этапе 204, где клиент пытается соединиться с первым узлом, идентифицированным посредством первого адреса в списке адресов, принятом на этапе 202. Клиент может пытаться соединиться с первым узлом, отправляя запрос первоначального соединения узлу, идентифицированному посредством первого адреса на этапе 204. Однако специалист в данной области техники поймет, что может быть любой способ попытки соединения с узлом (например, сервером) на этапе 203. В вариантах осуществления клиент может ожидать в течение предварительно определенного периода времени, как указано посредством этапа 206, чтобы первая попытка была успешной. Однако, поскольку любой узел в кластерном окружении способен осуществлять доступ к любому ресурсу в пользу клиента, клиент может выдавать запросы попыток соединения с другими кластерами серверов, если первая попытка заканчивается неудачей или занимает длительное время. В то время как операция 206 описывает ожидание клиентом в течение предварительно определенного периода времени, время может также динамически определяться клиентом.
[0030] В другом варианте осуществления первая попытка соединения с сервером может быть успешной, однако узел может не иметь доступа к ресурсам кластерного окружения. Например, список адресов может содержать некорректный адрес или адрес узла, который больше не является частью кластерного окружения. В дополнительном варианте осуществления ошибка может запрещать узлу доступ к ресурсам кластерного окружения. Клиент может использовать необходимую логику, чтобы идентифицировать такие ситуации. В таких ситуациях клиент может интерпретировать успешную попытку как неудачную и продолжать выполнять способ 200.
[0031] При неудаче первой попытки или после истечения периода времени процесс продолжается на этапе 208, где клиент случайным образом выбирает подмножество адресов из списка адресов. В вариантах осуществления случайный выбор подмножества адресов предоставляет преимущества балансировки нагрузки кластерному окружению, которое может иметь множество клиентов, пытающихся соединиться с его узлами в одно время. Если каждый клиент случайным образом выбирает подмножество узлов для соединения, более хороший баланс соединений может быть установлен в кластерном окружении. В других вариантах осуществления, однако, клиент может не выбирать случайное подмножество, а может выбирать адреса в порядке, в котором они появляются в списке. В дополнительных вариантах осуществления вместо выбора подмножества списка адресов на этапе 208 клиент может выбирать все адреса в списке.
[0032] Процесс продолжается на этапе 210, где клиент пытается соединиться с одним или более узлами, идентифицированными посредством адресов в выбранном подмножестве. В одном варианте осуществления клиент может пытаться соединиться с множеством узлов параллельно на этапе 210, тем самым ускоряя процесс соединения. В вариантах осуществления клиент может отправлять один или более дополнительных запросов соединения различным узлам на этапе 210, однако, как описано относительно этапа 204, любой способ попытки соединения может быть использован с вариантами осуществления, описанными в данном документе.
[0033] Процесс продолжается на этапе 212, где клиент принимает указание успешного соединения. В вариантах осуществления указание может быть сообщением, которое клиент принимает от узла, указывающим, что клиент имеет возможность соединиться с узлом. В вариантах осуществления, если клиент выполняет параллельные попытки на этапе 210, клиент может решить присоединиться к первому узлу, который успешно отвечает клиенту на этапе 212. В других вариантах осуществления клиент может принимать множественные указания успешных попыток от различных узлов в кластерном окружении. В таких вариантах осуществления клиент может выбирать, с каким узлом соединяться. В дополнительных вариантах осуществления указания могут предоставлять характеристики производительности узла, такие как текущая нагрузка узла. Клиент может использовать такую информацию, чтобы определять, с каким узлом устанавливать соединение. Например, клиент может выбирать соединение с узлом с более легкой нагрузкой, конкретной конфигурацией аппаратных средств и т.д. После того как клиент выбрал узел, процесс переходит к этапу 214, и клиент соединяется с узлом.
[0034] После того как клиент соединяется с узлом, клиент устанавливает сеанс с узлом и способен осуществлять доступ к ресурсам в кластерном окружении. Как описано относительно фиг.1, после того как клиент устанавливает соединение с узлом, клиент пытается поддерживать свое соединение с одним и тем же узлом. Это уменьшает передачу информации о состоянии, которая может иметь место, когда клиент переносит соединения с одного узла на другой. В таких вариантах осуществления, если клиент отсоединяется от узла, например, вследствие ошибки, такой как ошибка сети или авария клиента, клиент может пытаться повторно соединиться с тем же самым узлом после восстановления от ошибки.
[0035] Однако, не всегда может быть возможно для клиента повторно соединяться с тем же самым узлом. Например, если узел отказывает, если клиент теряет связь с узлом или если узел недоступен в административных целях (например, вследствие требований балансировки нагрузки, ремонта узла или т.п.), клиент может повторно устанавливать свое соединение с кластерным окружением через другой узел. Фиг.3 является вариантом осуществления способа 300, который клиент может выполнять при переносе соединений между узлами в кластерном окружении.
[0036] Процесс начинается с этапа 302, где клиент определяет, что требуется соединение с новым узлом. Например, при потере соединения с узлом, вследствие отказа сети или узла, клиент может определять, что он не может повторно соединиться с тем же узлом в кластерном окружении. В другом варианте осуществления клиент может принимать информацию о производительности от узла. На основе информации о производительности клиент может решить перенести соединение на другой узел, который может предоставлять лучшее обслуживание клиенту. Например, клиент может принимать информацию, указывающую, что узел испытывает интенсивный трафик. В таких ситуациях клиенту может не требоваться повторно соединяться с другим узлом, но он может необязательно решить сделать это по причинам производительности. Аналогично, клиент может определять эту информацию у самого себя без приема информации о производительности от узла, например, наблюдая, сколько времени занимает у узла выполнение запроса.
[0037] В другом варианте осуществления узел может требовать, чтобы клиент переносил свое соединение на другой узел в кластере. Например, если планируется перевод узла в оффлайн-режим в целях установки исправлений или для балансировки нагрузки, узел может требовать, чтобы клиент переносил свое соединение на другой узел. В таких вариантах осуществления узел может передавать сообщение клиенту, которое указывает, что клиент должен перенести свое соединение. Варианты осуществления выполнения таких передач данных описываются в переуступленной и находящейся одновременно на рассмотрении патентной заявке, озаглавленной "Providing a Witness Service" (патентная заявка США порядковый № 13/074920), поданной 29 марта 2011 года, которая, таким образом, включена сюда по ссылке во всей своей полноте.
[0038] После определения, что требуется перенос соединения между узлами, процесс продолжается на этапе 304. На этапе 304 клиент пытается соединиться с другим узлом в кластерном окружении. Например, клиент может отправлять запрос соединения одному или более узлам в кластерном окружении. В вариантах осуществления клиент может соединяться со вторым узлом в кластерном окружении, выполняя все или подмножество этапов, описанных относительно способа 200. В другом варианте осуществления клиент может направляться, чтобы соединяться с конкретным узлом посредством кластерного окружения. При успешной попытке процесс продолжается на этапе 306, и клиент соединяется со вторым узлом в кластерном окружении.
[0039] Однако, поскольку клиент ранее установил сеанс, сеанс может быть перенесен на другой узел. На этапе 308 клиент отправляет запрос установки сеанса второму узлу. В вариантах осуществления запрос установки сеанса может быть сообщением, содержащим идентификатор сеанса, который идентифицирует клиентов, ранее установивших соединение. Как будет обсуждено дополнительно со ссылкой на фиг.5, в ответ на прием запроса установки сеанса второй узел может принимать право владения ранее установленным соединением. В то время как способ 300 описывает отправку запроса установки сеанса как отдельный этап, специалист в данной области техники поймет, что клиент может отправлять запрос установки сеанса или идентификатор сеанса с запросом на соединение со вторым узлом на этапе 304.
[0040] Имея теперь описанные способы, которые клиент может применять при соединении с масштабируемым кластерным окружением, настоящее раскрытие теперь будет описывать функциональность, которая может быть использована одним или более узлами в таком окружении. Фиг.4 является вариантом осуществления способа 400, выполняемого узлом в кластерном окружении, чтобы поддерживать и переносить устойчивые дескрипторы в кластерном серверном окружении. Например, способ 400 может выполняться посредством сервера, такого как серверы 106A, 106B и 106C, который является частью кластерного серверного окружения (например, кластера 106 серверов). Процесс начинается с этапа 402, где принимается запрос соединения от клиента, таким образом устанавливая соединение между узлом и клиентом. Первоначальное соединение указывает, что клиент ранее не устанавливал соединения с узлом или с другим узлом в кластерном окружении. В вариантах осуществления узел может определять, что он устанавливает соединение с клиентом, когда он не принимает запрос установки сеанса от клиента как часть клиентского запроса соединения или вскоре после установления соединения с клиентом.
[0041] Процесс продолжается на этапе 404, где узел создает сеанс с клиентом. На этапе 404 узел может назначать идентификатор сеанса сеансу. Идентификатор сеанса может быть глобально уникальным идентификатором (GUID) между всеми узлами в кластерном окружении. После создания сеанса узел может распределять ресурсы и/или выполнять операцию над ресурсами в интересах клиента. При этом может быть создана информация о сеансе, такая как, например, информация о состоянии. Узел может хранить информацию о сеансе. В дополнение к информации о состоянии узел может хранить один или более дескрипторов. Например, если клиент открывает файл, дескриптор файла может быть предоставлен клиенту. Узел может хранить дескрипторы вместе с или в дополнение к информации о сеансе.
[0042] Процесс продолжается на этапе 406, где узел теряет свое соединение с клиентом. Например, клиент может подвергаться ошибке (например, аварии или потере сетевого соединения). В предвидении того, что клиент может соединяться повторно, сервер будет поддерживать сеанс и/или информацию на этапе 408. Например, узел может записывать информацию о сеансе и/или состоянии в локальную память, централизованное устойчивое хранилище или в распределенное хранилище состояния. Как описано ранее, клиент будет пытаться поддерживать соединение с одним узлом. В вариантах осуществления, после того как клиент восстанавливается после ошибки, клиент может повторно соединяться с узлом. После повторного соединения узел может идентифицировать, что клиент имеет ранее установленное состояние, например, принимая идентификатор сеанса от клиента. В таких вариантах осуществления поддерживаемое состояние сеанса предоставляет возможность клиенту продолжать его ранее установленный сеанс.
[0043] Однако, в определенных обстоятельствах, клиент может не иметь возможности повторно соединяться с узлом. Вместо этого, клиент может повторно соединяться с другим узлом в кластерном окружении. В таких обстоятельствах процесс продолжается на этапе 410, где узел принимает запрос на передачу информации о сеансе от другого узла в кластерном окружении. В вариантах осуществления другой узел запрашивает право владения информацией о сеансе для того, чтобы повторно устанавливать сеанс для клиента, который теперь соединяется с узлом, запросившим право владения. Запрос права владения сеансом может включать в себя идентификатор сеанса, который узел, выполняющий способ 400, может использовать, чтобы идентифицировать ранее установленный сеанс, которым он владеет и/или поддерживает.
[0044] При приеме запроса права владения сеансом процесс продолжается на этапе 412, где узел гарантирует, что не существуют ожидающие выполнения операции ввода/вывода (I/O), выполняемые по ресурсам, ассоциированным с ранее установленным сеансом. В вариантах осуществления, если существуют ожидающие выполнения I/O-операции, узел ожидает завершения операций перед переходом к этапу 414. В других вариантах осуществления узел может отменять незаконченные I/O-операции по ресурсам сеанса на этапе 410. Узел, который может ожидать и/или отменять незаконченные I/O-операции, поддерживает целостность ресурса.
[0045] После того как узел гарантирует, что все I/O-операции завершены (или отменены), процесс продолжается на этапе 414. На этапе 414 узел признает недействительным предыдущий установленный сеанс. Признание недействительности сеанса может содержать закрытие любых открытых дескрипторов, которые являются частью сеанса. В других вариантах осуществления признание недействительным сеанса может включать в себя освобождение любых блокировок, которые могут быть на ресурсе. В вариантах осуществления признание недействительности сеанса может также включать в себя логику признания недействительности, описанную относительно фиг.1. Кроме того, в вариантах осуществления может выполняться один этап признания недействительности, в котором узел признает недействительными все дескрипторы и/или блокировки для ранее установленного сеанса, чтобы устранять необходимость для узла индивидуально признавать недействительными каждый дескриптор файла.
[0046] После того как ранее установленный сеанс признан недействительным, процесс продолжается на этапе 416, где узел передает право владения сеансом запрашивающему узлу. В вариантах осуществления передача права владения сеансом может включать в себя передачу права владения всех ассоциированных ресурсов, связанных с сеансом. Примерным ресурсом, который может быть передан на этапе 416, является дескриптор файла; однако, право владения другими ресурсами также может быть передано на этапе 416. В дополнительных вариантах осуществления передача права владения ресурсами, связанными с сеансом, может включать в себя передачу ресурса от одного узла другому. Для лучшей эффективности вся информация о сеансе может передаваться целиком на этапе 416, таким образом уменьшая число передач данных, требуемых между узлами.
[0047] Фиг.5 является вариантом осуществления способа 500, выполняемого узлом в кластерном окружении, чтобы запрашивать право владения ранее установленным сеансом. Например, способ 400 может выполняться посредством сервера, такого как серверы 106A, 106B и 106C, который является частью кластерного серверного окружения (например, кластера 106 серверов). Процесс начинается с этапа 502, где узел устанавливает соединение с клиентом. Например, узел может принимать запрос для запроса соединения от клиента на этапе 502. Узел может одобрять запрос соединения и соединяться с клиентом.
[0048] Процесс продолжается на этапе 504, где узел идентифицирует, что клиент ранее установил сеанс с другим узлом в кластерном окружении. В вариантах осуществления узел может принимать запрос установки сеанса от клиента. Запрос установки сеанса может быть принят с запросом соединения или после соединения с клиентом. В вариантах осуществления запрос установки соединения содержит идентификатор сеанса, который идентифицирует ранее установленное соединение.
[0049] Процесс продолжается на этапе 506, где узел отправляет запрос права владения второму узлу в кластерном окружении, который в настоящий момент владеет клиентским ранее установленным сеансом. Запрос права владения может содержать инструкции, чтобы признавать недействительными дескрипторы, ассоциированные с предыдущим сеансом, и передавать информацию о сеансе узлу. В вариантах осуществления запрос права владения может включать в себя запрос установки сеанса и/или id сеанса, принятый на этапе 504.
[0050] Процесс продолжается на этапе 508, где узел принимает информацию о сеансе и/или состоянии для ранее установленного сеанса. В вариантах осуществления информация о сеансе и/или состоянии может быть принята от второго узла, из центрального репозитория или из другого местоположения в кластерном окружении. В другом варианте осуществления, вместо приема информации о сеансе и/или состоянии на этапе 508, узлу может быть разрешен доступ к информации о сеансе и/или состоянии, которая находится в централизованном репозитории на этапе 508. Процесс затем продолжается на этапе 510, где узел использует принятую, и/или к которой осуществлен доступ, информацию о сеансе или состоянии, чтобы повторно устанавливать клиентский сеанс и предоставлять возможность клиенту продолжать осуществлять доступ к ресурсам в кластерном окружении.
[0051] Способы 300-500 являются просто некоторыми примерами рабочих процессов, которые могут быть выполнены в соответствии с вариантами осуществления. Варианты осуществления не ограничиваются конкретным описанием, предоставленным выше относительно фиг.3-5, и могут включать в себя дополнительные этапы. Дополнительно, показанные рабочие этапы могут быть объединены в другие этапы и/или переупорядочены. Дополнительно, меньшее количество или дополнительные этапы могут быть использованы, применены со способами, описанными на фиг.3-5.
[0052] Фиг.6 иллюстрирует систему 600 компьютера общего назначения, которая может быть использована, чтобы реализовывать варианты осуществления, описанные в данном документе. Компьютерная система 600 является только одним примером вычислительного окружения и не имеет намерением накладывать какое-либо ограничение в отношении рамок использования или функциональности компьютерной и сетевой архитектур. Компьютерная система 600 не должна интерпретироваться в качестве имеющей какую бы то ни было зависимость или требование, относящееся к любому одному или сочетанию компонентов, проиллюстрированных в примерной компьютерной системе 600. В вариантах осуществления система 600 может быть использована в качестве клиентов и/или серверов, описанных выше относительно фиг.1.
[0053] В своей наиболее обобщенной конфигурации система 600 типично включает в себя по меньшей мере один процессор 602 и память 604. В зависимости от точной конфигурации и типа вычислительного устройства память 604 может быть энергозависимой (такой как RAM), энергонезависимой (такой как ROM, флеш-память и т.д.) или некоторой комбинацией. Эта наиболее обобщенная конфигурация иллюстрирована на фиг.6 прерывистой линией 606. Системная память 604 хранит инструкции 620, такие как инструкции, чтобы соединяться с масштабируемым кластерным окружением, способы, раскрытые в данном документе, и данные 622, такие как информация о состоянии сеанса, которая может храниться в файловой системе хранения с помощью хранилища, такого как хранилище 608.
[0054] Термин "машиночитаемый носитель" при использовании в данном документе может включать в себя компьютерные носители данных. Компьютерные носители данных могут включать в себя как энергозависимые, так и энергонезависимые, как съемные, так и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Системная память 604, съемное запоминающее устройство и несъемное запоминающее устройство 608 являются примерами компьютерных носителей данных (т.е. запоминающего устройства). Компьютерные носители данных могут включать в себя, но не только, RAM, ROM, электрически-стираемое постоянное запоминающее устройство (EEPROM), флэш-память или другую технологию памяти, CD-ROM, цифровые многофункциональные диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован, чтобы хранить информацию, и к которому может быть осуществлен доступ посредством вычислительного устройства 600. Любые такие компьютерные носители для хранения данных могут быть частью устройства 600. Вычислительное устройство 600 может также иметь устройство(а) 614 ввода, такое как клавиатура, мышь, перо, устройство звукового ввода, сенсорное устройство ввода и т.д. Устройство(а) 616 вывода, такое как дисплей, динамики, принтер и т.д., может также быть включено. Вышеуказанные устройства являются примерами, и могут использоваться другие устройства.
[0055] Термин "машиночитаемый носитель" при использовании в данном документе также может включать в себя среды связи. Среды связи могут в типичном варианте воплощать машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущее колебание или другой механизм распространения, и включают в себя любые среды для доставки информации. Термин "модулированный информационный сигнал" может описывать сигнал, который имеет одну или более своих характеристик, задаваемых или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды связи включают в себя проводные среды, такие как проводная сеть или непосредственное проводное соединение, и беспроводные среды, такие как акустические, радиочастотные (RF), инфракрасные и другие беспроводные среды.
[0056] Варианты осуществления изобретения могут быть применены на практике посредством интегральной системы (SOC), где каждый или множество компонентов, иллюстрированных на фиг.6, могут быть интегрированы в одну интегральную схему. Такое SOC-устройство может включать в себя один или более процессоров, графических модулей, модулей связи, модулей виртуализации систем и функциональность различных приложений, все из которых интегрируются (или "записываются") на подложку кристалла в качестве одной интегральной схемы. Когда работает посредством SOC, функциональность, описанная в данном документе, в отношении предоставления непрерывного доступа к ресурсу, может работать через логику специализированного применения, интегрированную с другими компонентами вычислительного устройства/системы 600 на одной интегральной схеме (кристалле).
[0057] На всем протяжении этого описания делалась ссылка на "один вариант осуществления" или "вариант осуществления", означающая, что конкретный описанный признак, структура или характеристика включены по меньшей мере в один вариант осуществления. Таким образом, использование таких фраз может относиться более чем только к одному варианту осуществления. Помимо этого, описанные признаки, структуры или характеристики могут быть комбинированы любым надлежащим образом в одном или более вариантах осуществления.
[0058] Тем не менее, специалисты в данной области техники могут признавать, что варианты осуществления могут быть использованы на практике без одной или более конкретных подробностей или с другими способами, ресурсами, материалами и т.д. В других случаях, широко распространенные структуры, ресурсы или операции не показаны или описаны подробно просто для того, чтобы избежать затруднений в понимании аспектов вариантов осуществления.
[0059] Хотя проиллюстрированы и описаны примерные варианты осуществления и применения, следует понимать, что варианты осуществления не ограничены точной конфигурацией и ресурсами, описанными выше. Различные модификации, изменения и вариации, очевидные специалистам в данной области техники, могут быть выполнены в структуре, работе и деталях способов и систем, раскрытых в данном документе, без отклонения от объема заявленных вариантов осуществления.

Claims (57)

1. Способ установления сеанса с кластерным серверным окружением, содержащий этапы, на которых:
принимают в клиенте множество адресов, идентифицирующих множество серверов в кластерном серверном окружении;
отправляют с клиента первоначальный запрос соединения с первым сервером, идентифицированным посредством первого адреса из множества адресов;
после отправки первоначального запроса соединения выбирают посредством клиента подмножество из множества адресов, каковое подмножество из множества адресов содержит по меньшей мере второй адрес из множества адресов, причем второй адрес отличается от первого адреса;
перед соединением с первым сервером отправляют с клиента один или более дополнительных запросов в упомянутое подмножество из множества адресов, при этом второй адрес идентифицирует по меньшей мере второй сервер в кластерном серверном окружении, причем эти один или более дополнительных запросов посылаются в то время, как обработка первоначального запроса не закончена;
принимают от второго сервера указание успешного соединения и
соединяются со вторым сервером.
2. Способ по п. 1, в котором упомянутое подмножество из множества адресов выбирается случайным образом.
3. Способ по п. 1, в котором упомянутые один или более дополнительных запросов отправляются после предварительно определенного периода времени после отправки первоначального запроса.
4. Способ по п. 1, в котором упомянутое множество адресов содержит IP адреса.
5. Способ по п. 1, в котором упомянутое множество адресов принимается от службы разрешения имен.
6. Способ по п. 5, в котором служба разрешения имен представляет собой DNS сервер.
7. Способ по п. 1, дополнительно содержащий этапы, на которых:
теряют соединение со вторым сервером;
отправляют запрос повторного соединения второму серверу и
соединяются со вторым сервером.
8. Способ по п. 1, в котором второй сервер идентифицируется посредством адреса в упомянутом множестве адресов, отличающегося от второго адреса.
9. Способ по п. 1, дополнительно содержащий этапы, на которых:
принимают от второго сервера сообщение о состоянии, связанное с производительностью сервера;
в ответ на прием сообщения о состоянии отправляют с клиента новый запрос соединения по меньшей мере третьему серверу, при этом третий сервер является частью кластерного окружения; и
соединяются с третьим сервером.
10. Способ по п. 9, дополнительно содержащий этап, на котором посылают в третий сервер идентификатор сеанса, причем идентификатор сеанса указывает прежде установленный сеанс со вторым сервером.
11. Способ по п. 10, в котором идентификатор сеанса посылается с упомянутым новым запросом соединения.
12. Способ по п. 1, в котором сеанс устанавливается в соответствии с протоколом SMB2.
13. Компьютерный носитель данных, на котором закодированы машиноисполняемые инструкции, которыми при их исполнении по меньшей мере одним процессором выполняется способ установления сеанса с кластерным серверным окружением, содержащий этапы, на которых:
принимают множество адресов, идентифицирующих множество серверов в кластерном серверном окружении;
отправляют первоначальный запрос соединения с первым сервером, идентифицированным посредством первого адреса из множества адресов;
после отправки первоначального запроса соединения выбирают подмножество из множества адресов, каковое подмножество из множества адресов содержит, по меньшей мере, второй адрес из множества адресов, причем второй адрес отличается от первого адреса;
перед соединением с первым сервером отправляют один или более дополнительных запросов в упомянутое подмножество из множества адресов, при этом второй адрес идентифицирует по меньшей мере второй сервер в кластерном серверном окружении, причем эти один или более дополнительных запросов посылаются в то время, как обработка первоначального запроса не закончена;
принимают от второго сервера указание успешного соединения и
соединяются со вторым сервером.
14. Компьютерный носитель данных по п. 13, при этом упомянутое подмножество множества адресов выбирает из упомянутого множества адресов случайным образом.
15. Компьютерный носитель данных по п. 13, при этом упомянутые один или более дополнительных запросов отправляются после предварительно определенного периода времени после отправки первоначального запроса.
16. Компьютерный носитель данных по п. 13, при этом упомянутое множество адресов содержит IP адреса.
17. Компьютерный носитель данных по п. 13, в котором способ дополнительно содержит этапы, на которых:
принимают сообщение о состоянии от второго сервера, связанное с производительностью сервера;
в ответ на прием сообщения о состоянии отправляют новый запрос соединения по меньшей мере третьему серверу, при этом третий сервер является частью кластерного окружения; и
соединяются с третьим сервером.
18. Компьютерный носитель данных по п. 17, в котором способ дополнительно содержит этап, на котором посылают в третий сервер идентификатор сеанса, причем идентификатор сеанса указывает прежде установленный сеанс со вторым сервером.
19. Компьютерный носитель данных по п. 18, при этом идентификатор сеанса посылается с упомянутым новым запросом соединения.
20. Компьютерная система, выполненная с возможностью установления сеанса с кластерным серверным окружением, содержащая:
по меньшей мере один процессор и
память, в которой закодированы машиноисполняемые инструкции, которые при их исполнении по меньшей мере одним процессором предписывают компьютерной системе:
принимать в клиенте множество адресов, идентифицирующих множество серверов в кластерном серверном окружении;
отправлять с клиента первоначальный запрос соединения с первым сервером, идентифицированным посредством первого адреса из множества адресов;
после отправки первоначального запроса соединения выбирать посредством клиента подмножество из множества адресов, каковое подмножество из множества адресов содержит по меньшей мере второй адрес из множества адресов, причем второй адрес отличается от первого адреса;
перед соединением с первым сервером отправлять с клиента один или более дополнительных запросов в упомянутое подмножество из множества адресов, при этом второй адрес идентифицирует по меньшей мере второй сервер в кластерном серверном окружении, причем эти один или более дополнительных запросов посылаются в то время, как обработка первоначального запроса не закончена;
принимать от второго сервера указание успешного соединения и
соединяться со вторым сервером.
21. Компьютерная система для предоставления устойчивых дескрипторов, содержащая:
по меньшей мере первый сервер и второй сервер, причем первый сервер и второй сервер являются частью серверного кластера;
при этом первый сервер сконфигурирован:
принимать запрос соединения от клиента, при этом запрос соединения содержит запрос установки соединения, который идентифицирует ранее установленный сеанс со вторым сервером,
отправлять второму серверу запрос права владения этим ранее установленным сеансом; при этом второй сервер сконфигурирован:
принимать упомянутый запрос от первого сервера,
гарантировать, что нет незаконченных операций в отношении одного или более ресурсов, связанных с упомянутым ранее установленным сеансом, и
признавать недействительным упомянутый ранее установленный сеанс.
RU2014108994A 2011-09-09 2012-09-07 Smb2-масштабирование RU2613040C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/228,818 US20130067095A1 (en) 2011-09-09 2011-09-09 Smb2 scaleout
US13/228,818 2011-09-09
PCT/US2012/054039 WO2013036698A2 (en) 2011-09-09 2012-09-07 Smb2 scaleout

Publications (2)

Publication Number Publication Date
RU2014108994A RU2014108994A (ru) 2015-09-20
RU2613040C2 true RU2613040C2 (ru) 2017-03-14

Family

ID=47729311

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014108994A RU2613040C2 (ru) 2011-09-09 2012-09-07 Smb2-масштабирование

Country Status (11)

Country Link
US (3) US20130067095A1 (ru)
EP (2) EP3206378B1 (ru)
JP (2) JP2014532210A (ru)
KR (1) KR101947851B1 (ru)
CN (2) CN102946405A (ru)
AU (1) AU2012304550B2 (ru)
BR (1) BR112014005315A2 (ru)
CA (1) CA2847735A1 (ru)
MX (1) MX2014002782A (ru)
RU (1) RU2613040C2 (ru)
WO (1) WO2013036698A2 (ru)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
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
US9253144B2 (en) * 2011-12-22 2016-02-02 International Business Machines Corporation Client-driven load balancing of dynamic IP address allocation
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
GB2531341B (en) 2014-10-17 2016-10-12 Ibm Reconnection of a client to a server in a transaction processing server cluster
CN106059986A (zh) * 2015-04-22 2016-10-26 阿里巴巴集团控股有限公司 Ssl会话重用的方法和服务器
CN106161404A (zh) * 2015-04-22 2016-11-23 阿里巴巴集团控股有限公司 Ssl会话重用的方法、服务器和系统
US10303660B2 (en) 2015-11-12 2019-05-28 Microsoft Technology Licensing, Llc File system with distributed entity state
CN106534328B (zh) * 2016-11-28 2020-01-31 网宿科技股份有限公司 节点连接方法及分布式计算系统
CN113766035B (zh) * 2017-03-28 2023-05-23 创新先进技术有限公司 一种业务受理及共识的方法及装置
JP6838707B2 (ja) * 2017-06-30 2021-03-03 京セラドキュメントソリューションズ株式会社 リモート通信制御システム、セッション管理システムおよびセッション管理プログラム
US11553046B1 (en) * 2017-09-27 2023-01-10 Amazon Technologies, Inc. Seamless scaling via proxy replay of session state
US11349937B2 (en) * 2020-09-18 2022-05-31 EMC IP Holding Company LLC Passive management of network connections
US12003586B2 (en) * 2020-12-22 2024-06-04 Texas Instruments Incorporated Distributed session owner across multiple entities

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018927A1 (en) * 2001-07-23 2003-01-23 Gadir Omar M.A. High-availability cluster virtual server system
US20040225952A1 (en) * 2003-03-06 2004-11-11 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20070150558A1 (en) * 2005-12-22 2007-06-28 Microsoft Corporation Methodology and system for file replication based on a peergroup
US20100042715A1 (en) * 2008-08-18 2010-02-18 Jeffrey Tai-Sang Tham Method and systems for redundant server automatic failover

Family Cites Families (277)

* Cited by examiner, † Cited by third party
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
JPS6019341A (ja) 1983-07-13 1985-01-31 Usac Electronics Ind Co Ltd 回線制御方式
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
US4736369A (en) 1986-06-13 1988-04-05 International Business Machines Corp. Adaptive session-level pacing
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
JPH076917B2 (ja) 1986-09-01 1995-01-30 富士写真フイルム株式会社 乾式分析方法における検量線の補正方法
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
JPS63205747A (ja) 1987-02-13 1988-08-25 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 通信方法及びデータ処理システム
US4791566A (en) 1987-03-27 1988-12-13 Digital Equipment Corporation Terminal device session management protocol
JPS63256165A (ja) 1987-04-14 1988-10-24 Seiko Epson Corp 嫌気性液体の定量吐出方法
JPS6461148A (en) 1987-08-31 1989-03-08 Nec Corp Flow control system
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
JPH0821969B2 (ja) 1988-09-13 1996-03-04 日本電気株式会社 伝送制御方法
JPH02101847A (ja) 1988-10-11 1990-04-13 Nec Corp 通信制御方式
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
US5560008A (en) 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5113519A (en) 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes 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
JPH0374745A (ja) 1989-08-15 1991-03-29 Oki Electric Ind Co Ltd データ処理装置
JPH03245939A (ja) 1990-02-20 1991-11-01 Fudoo Kk 工具ホルダー把持装置
JP2575543B2 (ja) 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
US5130986A (en) 1990-04-27 1992-07-14 At&T Bell Laboratories High speed transport protocol with two windows
JPH04172039A (ja) 1990-11-05 1992-06-19 Matsushita Electric Ind Co Ltd パケット通信装置
JPH0589048A (ja) 1991-09-25 1993-04-09 Nec Corp コマンド処理方式
JPH05143488A (ja) 1991-11-18 1993-06-11 Nippon Telegr & Teleph Corp <Ntt> 複数コマンドの転送方法
JPH0619771A (ja) 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
KR0123773B1 (ko) 1992-06-27 1997-11-26 강진구 Pip 신호의 pop 신호로의 위치변환회로
JPH0675890A (ja) 1992-08-26 1994-03-18 Chugoku Nippon Denki Software Kk クライアント・サーバ間の要求データ応答データ授受方式
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
JPH08314784A (ja) 1995-05-19 1996-11-29 Toshiba Corp ファイル管理装置
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
US5633899A (en) 1996-02-02 1997-05-27 Lsi Logic Corporation Phase locked loop for high speed data capture of a serial data stream
US6343313B1 (en) 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
EP0891663A1 (en) 1996-04-01 1999-01-20 Hewlett-Packard Company Transmitting messages over a network
RU2118051C1 (ru) 1996-04-30 1998-08-20 Лихачев Александр Геннадьевич Способ доступа к ресурсам "всемирной паутины" через шлюзы-представители
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
FR2759518B1 (fr) 1997-02-07 1999-04-23 France Telecom Procede et dispositif d'allocation de ressources dans un reseau numerique de transmission par paquets
US5987621A (en) 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
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
JP3341637B2 (ja) 1997-06-20 2002-11-05 日本電気株式会社 トランザクション処理システムにおける端末状態管理方法及びコンピュータ読み取り可能な記録媒体
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
JPH1155314A (ja) 1997-07-30 1999-02-26 Nippon Telegr & Teleph Corp <Ntt> データ転送制御方法
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
KR100272567B1 (ko) 1997-12-31 2000-11-15 서평원 이동통신 네트워크를 이용한 이동 인터넷
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次記憶装置への格納競合防止方法
WO2000020950A1 (en) 1998-10-07 2000-04-13 Adobe Systems, Inc. Distributing access to a data item
US6230190B1 (en) 1998-10-09 2001-05-08 Openwave Systems Inc. Shared-everything file storage for clustered system
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
JP2000163369A (ja) 1998-11-30 2000-06-16 Nippon Telegr & Teleph Corp <Ntt> 処理結果分散管理方法及びシステム及び処理結果分散管理サーバ装置及び処理結果分散管理プログラムを格納した記憶媒体
US6347337B1 (en) 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
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
US7437305B1 (en) 1999-05-11 2008-10-14 Christopher Angel Kantarjiev Scheduling delivery of products via the internet
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
JP2001077844A (ja) 1999-09-06 2001-03-23 Axle Linkage Labo Inc ネットワーク制御方法、サーバ装置、クライアント装置、遊技台装置用ネットワーク制御方法、ホールサーバコンピュータ装置、遊技台装置
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
US7050984B1 (en) 1999-12-22 2006-05-23 Ge Medical Systems, Inc. Integrated interactive service to a plurality of medical diagnostic systems
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
WO2001077844A1 (fr) 2000-04-10 2001-10-18 Fujitsu Limited Systeme de traitement d'informations et serveur associe
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
DE60103331T2 (de) 2000-07-05 2004-09-23 Roke Manor Research Ltd., Romsey Verfahren zum Betreiben eines Puffers für das Wiederzusammenstellen von Paketen und Netzwerk-Router
US7693976B2 (en) 2000-07-11 2010-04-06 Ciena Corporation Granular management of network resources
US6732289B1 (en) 2000-08-31 2004-05-04 Sun Microsystems, Inc. Fault tolerant data storage system
US6349250B1 (en) 2000-10-26 2002-02-19 Detroit Diesel Corporation Clear historic data from a vehicle data recorder
US20020062379A1 (en) 2000-11-06 2002-05-23 Widegren Ina B. Method and apparatus for coordinating quality of service requirements for media flows in a multimedia session with IP bearer services
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
US6862692B2 (en) 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
KR100750735B1 (ko) 2001-02-03 2007-08-22 삼성전자주식회사 홈네트워크내의 기기 제어장치 및 방법 및 이를 적용한홈네트워크 시스템
US7493391B2 (en) * 2001-02-12 2009-02-17 International Business Machines Corporation System for automated session resource clean-up by determining whether server resources have been held by client longer than preset thresholds
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
US7287079B2 (en) 2001-06-29 2007-10-23 Qualcomm Incorporated Implementing and coordinating configuration of protocol processes
JP4249915B2 (ja) 2001-07-13 2009-04-08 株式会社バンダイ 配信システム、そのサーバ及び収容装置と、携帯端末システムと、プログラム
US7409420B2 (en) 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US7870258B2 (en) * 2001-08-08 2011-01-11 Microsoft Corporation Seamless fail-over support for virtual interface architecture (VIA) or the like
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
CA2469513C (en) * 2001-12-07 2007-08-21 Research In Motion Limited System and method of managing information distribution to mobile stations
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
US20030154398A1 (en) 2002-02-08 2003-08-14 Eaton Eric Thomas System for providing continuity between session clients and method therefor
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 富士通株式会社 ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法
CA2385344A1 (en) 2002-05-08 2003-11-08 Bell Globemedia Inc. Data transfer method and apparatus
JP4000905B2 (ja) 2002-05-22 2007-10-31 ソニー株式会社 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
JP2003337717A (ja) 2002-05-22 2003-11-28 Nec Corp オンライントランザクション処理の障害時復旧同期システム
EP1512261A1 (en) * 2002-06-10 2005-03-09 Caplin Systems Limited Resource management
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
US7290141B2 (en) 2002-06-27 2007-10-30 Nokia, Inc. Authentication of remotely originating network messages
WO2004003765A1 (ja) 2002-07-01 2004-01-08 Kabushiki Kaisha Toshiba シームレスシステム及び記録媒体並びにコンピュータシステムの処理継続方法
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
US7386855B2 (en) 2002-08-12 2008-06-10 Ntt Docomo, Inc. Application mobility service
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
JP3938002B2 (ja) 2002-10-18 2007-06-27 キヤノン株式会社 印刷システムの制御方法
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
US7475142B2 (en) * 2002-12-06 2009-01-06 Cisco Technology, Inc. CIFS for scalable NAS architecture
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
US20040153700A1 (en) 2003-01-02 2004-08-05 Nixon Mark J. Redundant application stations for process control systems
US7290051B2 (en) 2003-01-09 2007-10-30 Sun Microsystems, Inc. Method and apparatus for hardware implementation independent verification of network layers
JP3999135B2 (ja) 2003-01-24 2007-10-31 株式会社エヌ・ティ・ティ・ドコモ 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体
US7526658B1 (en) 2003-01-24 2009-04-28 Nortel Networks Limited Scalable, distributed method and apparatus for transforming packets to enable secure communication between two stations
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
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
US20040255202A1 (en) 2003-06-13 2004-12-16 Alcatel Intelligent fault recovery in a line card with control plane and data plane separation
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
US7693998B2 (en) 2003-06-30 2010-04-06 Microsoft Corporation System and method for message-based scalable data transport
US20050015511A1 (en) 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
JP4229774B2 (ja) 2003-07-11 2009-02-25 日本電信電話株式会社 セッション制御プログラムと通信端末装置
US7296264B2 (en) 2003-07-18 2007-11-13 Bea Systems, Inc. System and method for performing code completion in an integrated development environment
EP1650665B1 (en) 2003-07-24 2012-07-11 Panasonic Corporation File management method and information 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
US7231397B2 (en) 2003-10-24 2007-06-12 Microsoft Corporation Method and system for transacted file operations over a network
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
WO2005048025A2 (en) 2003-11-07 2005-05-26 Sony Electronics Inc. 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
US7730489B1 (en) 2003-12-10 2010-06-01 Oracle America, Inc. Horizontally scalable and reliable distributed transaction management in a clustered application server environment
US7177941B2 (en) 2003-12-11 2007-02-13 International Business Machines Corporation Increasing TCP re-transmission process speed
US7243284B2 (en) 2003-12-11 2007-07-10 International Business Machines Corporation Limiting number of retransmission attempts for data transfer via network interface controller
US7383483B2 (en) 2003-12-11 2008-06-03 International Business Machines Corporation Data transfer error checking
US7478381B2 (en) 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US20050177635A1 (en) 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7493394B2 (en) 2003-12-31 2009-02-17 Cisco Technology, Inc. Dynamic timeout in a client-server system
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
KR20060123773A (ko) 2004-03-17 2006-12-04 코닌클리케 필립스 일렉트로닉스 엔.브이. 디스크 형상 정보 기억 매체를 주사하기 위한 방법 및장치
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
US7487353B2 (en) 2004-05-20 2009-02-03 International Business Machines Corporation System, method and program for protecting communication
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
US7620687B2 (en) * 2004-06-25 2009-11-17 Telcordia Technologies, Inc. Distributed request routing
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
US7428655B2 (en) * 2004-09-08 2008-09-23 Hewlett-Packard Development Company, L.P. Smart card for high-availability clustering
KR20060025100A (ko) 2004-09-15 2006-03-20 삼성전자주식회사 다국어를 지원하는 메타 데이터를 기록한 정보저장매체 및메타 데이터 처리방법
US20060067244A1 (en) 2004-09-30 2006-03-30 Microsoft Corporation Registration identifier reuse
US7451347B2 (en) * 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
JP4398843B2 (ja) * 2004-10-13 2010-01-13 日本放送協会 配信サーバ及び配信プログラム
CN1767472A (zh) 2004-10-27 2006-05-03 乐金电子(天津)电器有限公司 家庭网络系统
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
JP4451293B2 (ja) 2004-12-10 2010-04-14 株式会社日立製作所 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
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
US8515490B2 (en) 2004-12-30 2013-08-20 Alcatel Lucent Method and apparatus for providing same session switchover between end-user terminals
EP1847087A1 (en) 2005-02-08 2007-10-24 Telefonaktiebolaget LM Ericsson (publ) On-demand multi-channel streaming session over packet-switched networks
US7685312B1 (en) * 2005-02-10 2010-03-23 Sun Microsystems, Inc. Resource location by address space allocation
US7743245B2 (en) 2005-03-10 2010-06-22 Intel Corporation Security protocols on incompatible transports
JP4516458B2 (ja) 2005-03-18 2010-08-04 株式会社日立製作所 フェイルオーバークラスタシステム及びフェイルオーバー方法
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
JP2006333433A (ja) 2005-05-25 2006-12-07 Microsoft Corp データ通信プロトコル
EP1727055B1 (en) 2005-05-25 2016-09-07 Microsoft Technology Licensing, LLC Data communication coordination with sequence numbers
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
JP2007058506A (ja) 2005-08-24 2007-03-08 Ricoh Co Ltd 文書管理サーバ、文書管理システム、及び、文書管理プログラムとその記録媒体
GB0519246D0 (en) * 2005-09-21 2005-10-26 Ibm A method, apparatus and computer program for handling web server failure
RU2313824C2 (ru) 2005-09-26 2007-12-27 Михаил Васильевич Беляев Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса
US20070150602A1 (en) * 2005-10-04 2007-06-28 Peter Yared Distributed and Replicated Sessions on Computing Grids
US7962129B2 (en) 2005-10-24 2011-06-14 At&T Intellectual Property I, L.P. Method and system of creating customized ringtones
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
US7685227B2 (en) * 2006-11-10 2010-03-23 Gerber Robert H Message forwarding backup manager in a distributed server system
US7774544B1 (en) 2006-11-15 2010-08-10 Netapp, Inc. Reliable disk ownership changes
US7743039B2 (en) * 2006-12-11 2010-06-22 Simdesk Technologies, Inc. File operations with multiple level file locking techniques
KR20080057483A (ko) * 2006-12-20 2008-06-25 삼성전자주식회사 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법
US7809828B2 (en) 2007-04-11 2010-10-05 International Business Machines Corporation Method for maintaining state consistency among multiple state-driven file system entities when entities become disconnected
WO2008130983A1 (en) 2007-04-16 2008-10-30 Attune Systems, Inc. File aggregation in a switched file system
US8271669B2 (en) 2007-05-30 2012-09-18 Broadcom Corporation Method and system for extended steering tags (STAGS) to minimize memory bandwidth for content delivery servers
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
KR101501174B1 (ko) 2007-09-28 2015-03-19 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
EP2066101B1 (en) 2007-11-28 2012-10-17 Alcatel Lucent System and method for an improved high availability component implementation
US20090158221A1 (en) 2007-12-17 2009-06-18 Nokia Corporation Device feature manipulation based on presented content
CN101217483A (zh) * 2008-01-21 2008-07-09 中兴通讯股份有限公司 用于实现集群服务器内负载分担代理的方法
US7930427B2 (en) * 2008-03-03 2011-04-19 Microsoft Corporation Client-side load balancing
US8458298B2 (en) * 2008-03-03 2013-06-04 Microsoft Corporation Failover in an internet location coordinate enhanced domain name system
JP5054618B2 (ja) * 2008-06-10 2012-10-24 京セラドキュメントソリューションズ株式会社 ネットワークファイル処理システム
JP4549408B2 (ja) 2008-06-24 2010-09-22 富士通株式会社 ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置
US7840730B2 (en) * 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8275815B2 (en) * 2008-08-25 2012-09-25 International Business Machines Corporation Transactional processing for clustered file systems
US8271996B1 (en) * 2008-09-29 2012-09-18 Emc Corporation Event queues
US8185566B2 (en) 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
CN101594320B (zh) 2009-06-23 2012-05-09 中兴通讯股份有限公司 一种基于snmp协议的消息交互方法
US9749387B2 (en) 2009-08-13 2017-08-29 Sap Se Transparently stateful execution of stateless applications
US8751533B1 (en) * 2009-11-25 2014-06-10 Netapp, Inc. Method and system for transparently migrating storage objects between nodes in a clustered storage system
JP2011119794A (ja) * 2009-11-30 2011-06-16 Toshiba Corp 電子機器及び通信制御方法
US20110280247A1 (en) * 2010-05-17 2011-11-17 Google Inc. System and method for reducing latency via multiple network connections
US8806030B2 (en) 2010-12-06 2014-08-12 Microsoft Corporation Multichannel connections in file system sessions
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
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
US9896870B2 (en) 2012-03-05 2018-02-20 Gator Kennels Llc Enclosure having ribbed stanchions
US9888068B2 (en) * 2013-04-06 2018-02-06 Citrix Systems, Inc. Systems and methods for maintaining session persistence in a cluster system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018927A1 (en) * 2001-07-23 2003-01-23 Gadir Omar M.A. High-availability cluster virtual server system
US20040225952A1 (en) * 2003-03-06 2004-11-11 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20070150558A1 (en) * 2005-12-22 2007-06-28 Microsoft Corporation Methodology and system for file replication based on a peergroup
US20100042715A1 (en) * 2008-08-18 2010-02-18 Jeffrey Tai-Sang Tham Method and systems for redundant server automatic failover

Also Published As

Publication number Publication date
US20200204633A1 (en) 2020-06-25
CA2847735A1 (en) 2013-03-14
AU2012304550B2 (en) 2017-02-02
KR20140064844A (ko) 2014-05-28
BR112014005315A2 (pt) 2017-03-28
US20130067095A1 (en) 2013-03-14
EP3206378B1 (en) 2019-12-25
CN102946405A (zh) 2013-02-27
WO2013036698A3 (en) 2013-05-10
EP2754063A4 (en) 2015-08-05
US10630781B2 (en) 2020-04-21
MX2014002782A (es) 2014-06-05
EP3206378A1 (en) 2017-08-16
US11570255B2 (en) 2023-01-31
WO2013036698A2 (en) 2013-03-14
CN105743996A (zh) 2016-07-06
RU2014108994A (ru) 2015-09-20
AU2012304550A1 (en) 2014-03-20
JP6334643B2 (ja) 2018-05-30
US20150365482A1 (en) 2015-12-17
EP2754063A2 (en) 2014-07-16
KR101947851B1 (ko) 2019-02-13
JP2014532210A (ja) 2014-12-04
JP2017079064A (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
RU2613040C2 (ru) Smb2-масштабирование
US10482102B2 (en) Conditional master election in distributed databases
JP4722973B2 (ja) リクエスト処理方法及び計算機システム
US9069835B2 (en) Organizing data in a distributed storage system
US20170344443A1 (en) Dynamically changing members of a consensus group in a distributed self-healing coordination service
EP2815323A1 (en) Method for controlling access of clients to a service in a cluster environment
CA2916261C (en) Managing client access to a plurality of computing systems
US20140115028A1 (en) Method and system for sharded resource brokering
US11128698B2 (en) Producer system registration
US20150019727A1 (en) Managing client access to a plurality of computing systems
US9780993B2 (en) Producer computing system leasing on behalf of consumer computing system
US8230086B2 (en) Hidden group membership in clustered computer system
CN112671554A (zh) 一种节点故障处理方法及相关装置
US20220345445A1 (en) Generation and use of micro-pools to assign an ip address to a requesting computing device
WO2021008709A1 (en) Device and method for managing connections