Защита распределенной системы хранения в кластере
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении уровня защиты запоминающих устройств от несанкционированного доступа. Технический результат достигается за счет отправления запоминающему устройству ключа регистрации, который должен быть записан в таблицу регистрации запоминающего устройства, причем запоминающее устройство подключается к узлу в кластере узлов; установки таймера регистрации, причем таймер регистрации является периодом времени, в течение которого каждый узел в кластере имеет возможность определить, должен ли запрошенный доступ быть предоставлен запрашивающему узлу, и вычистить ключ регистрации запоминающего устройства из таблицы регистрации, если определено, что доступ к запоминающему устройству не должен быть предоставлен запрашивающему устройству; приема таблицы регистрации от запоминающего устройства по истечении срока действия таймера регистрации; и определения, хранится ли ключ регистрации в таблице регистрации, причем, если ключ регистрации хранится в таблице регистрации, доступ с правом записи к запоминающему устройству разрешен запрашивающему узлу. 3 н. и 6 з.п. ф-лы, 9 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
[0001] В типичных ситуациях совместно используемого запоминающего устройства, в которых кластер узлов имеет доступ к запоминающему устройству, по меньшей мере, один узел в кластере подключен к запоминающему устройству. В результате, узел, который подключен к запоминающему устройству, отвечает за выполнение операций по защите запоминающего устройства. Однако, в ситуациях, когда кластер имеет доступ к нескольким запоминающим устройствам, один узел в кластере может не подключаться к другому запоминающему устройству. В результате, некоторые из запоминающих устройств могут быть незащищенными.
[0002] Относительно этих и других общих соображений, были выполнены варианты осуществления. Кроме того, хотя были обсуждены достаточно конкретные проблемы, следует иметь в виду, что варианты осуществления не должны ограничиваться решением конкретных проблем, обозначенных в уровне техники.
СУЩНОСТЬ
[0003] Это описание сущности изобретения дано для того, чтобы в упрощенной форме представить выбор концепций, которые далее описаны в разделе Подробное описании. Это описание сущности изобретения не предназначено для выявления ключевых признаков или основных признаков заявленного предмета, а также не предназначено для использования в качестве помощи в определении объема заявленного предмета.
[0004] Варианты осуществления настоящего раскрытия представляют способ и систему для обеспечения доступа к запоминающему устройству и для защиты одного или более запоминающих устройств, которые доступны различным узлам в кластере. В частности, один или более вариантов осуществления описывают, как узел может быть допущен в кластер и, таким образом, получить доступ с правом считывания и записи к запоминающему устройству, которое подключено к по меньшей мере одному узлу в кластере узлов. Кроме того, один или более вариантов осуществления предусматривают, что узлы могут контролировать таблицу регистрации, связанную с кластером, и удалять записи (в системе управления доступом) от нераспознанных узлов. Что касается тех узлов, которые были удалены, узел может попытаться повторно зарегистрироваться в таблице регистрации для того, чтобы запросить повторный доступ в кластер.
[0005] Как будет показано ниже узел, запрашивающий доступ к запоминающему устройству, использует протоколы передачи данных кластера для того, чтобы войти в кластер. Будучи допущенным в кластер, узел может иметь право получить доступ к одному или более запоминающим устройствам, используемым кластером. Чтобы получить доступ к запоминающему устройству, узел, запрашивающий доступ к запоминающему устройству, отправляет ключ регистрации запоминающему устройству. После регистрации в запоминающем устройстве, узел устанавливает таймер регистрации. В вариантах осуществления, таймер регистрации эквивалентен периоду времени, в течение которого каждый узел в кластере имеет возможность определить, должен ли запрошенный доступ быть предоставлен узлу, запрашивающему доступ к запоминающему устройству. По истечении срока действия таймера регистрации, узел, запрашивающий доступ к запоминающему устройству, принимает таблицу регистрации от запоминающего устройства. После того, как таблица регистрации получена, узел определяет, хранится ли его ключ регистрации в таблице регистрации. Если ключ регистрации хранится в таблице регистрации, узлу разрешается доступ к запоминающему устройству. Более конкретно, узлу предоставляется доступ с правом записи к запоминающему устройству.
[0006] Варианты осуществления могут быть реализованы как вычислительный процесс, вычислительная система или как готовое изделие, такое как компьютерный программный продукт или машиночитаемый носитель. Компьютерный программный продукт может быть компьютерным носителем хранения, который доступен для считывания компьютерной системе, и кодирующий ее компьютерными инструкциями для исполнения вычислительного процесса. Компьютерный программный продукт может также представлять собой распространяемый сигнал на носителе, который доступен для считывания компьютерной системе, и кодирующий ее компьютерными инструкциями для исполнения вычислительного процесса.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0007] Не имеющие ограничительного и исчерпывающего характера варианты осуществления описываются со ссылкой на следующие Фигуры:
[0008] На Фиг. 1 представлена система, в которой множество узлов в кластере подключены с соответствующими запоминающими устройствами в соответствии с одним или более вариантами осуществления настоящего раскрытия.
[0009] На Фиг. 2 представлен способ запроса членства в кластере в соответствии с одним или более вариантами осуществления настоящего раскрытия.
[0010] На Фиг. 3 представлен способ определения доступа к запоминающему устройству, связанному с кластером узлов, в соответствии с одним или более вариантами осуществления настоящего раскрытия.
[0011] На Фиг. 4 представлен способ запроса на повторный допуск в кластер в соответствии с одним или более вариантами осуществления настоящего раскрытия.
[0012] Фиг. 5 представляет собой блок-схему, показывающую, как различные узлы в кластере могут быть подключены к физическому запоминающему устройству в соответствии с одним или более вариантами осуществления настоящего раскрытия.
[0013] Фиг. 6 представляет собой блок-схему, показывающую типовые физические компоненты вычислительного устройства, которые можно использовать в одном или более вариантах осуществления настоящего раскрытия.
[0014] Фиг. 7A и 7B представляют собой упрощенные блок-схемы мобильного вычислительного устройства, которые можно использовать в одном или более вариантах осуществления настоящего раскрытия.
[0015] Фиг. 8 представляют собой упрощенную блок-схему распределенной вычислительной системы, которую можно использовать в одном или более вариантах осуществления настоящего раскрытия.
ПОДРОБНОЕ ОПИСАНИЕ
[0016] Ниже более подробно описываются различные варианты осуществления со ссылкой на прилагаемые чертежи, которые составляют часть данного описания, и которые показывают конкретные примерные варианты осуществления. Однако варианты осуществления могут быть реализованы во многих различных формах и не должны быть истолкованы в качестве ограничения набора вариантов осуществления, изложенных в данном документе; скорее, эти варианты осуществления предоставляются таким образом, что это раскрытие будет тщательные и полным, и полностью доносят объем вариантов осуществления специалистам в данной области. Варианты осуществления могут быть осуществлены, как способы, системы или устройства. Таким образом, варианты осуществления могут принимать форму аппаратной реализации, только программного обеспечения или реализации объединения программного обеспечения и аппаратных аспектов. Таким образом, следующее подробное описание не следует понимать в ограничительном смысле.
[0017] На Фиг. 1 представлена система 100, в которой множество узлов в кластере 102 подключены с соответствующими запоминающими устройствами в соответствии с одним или более вариантами осуществления настоящего раскрытия. Как показано на Фиг. 1, кластер 102 может включать в себя множество узлов 102A-102D. Хотя показаны четыре узла, предполагается, что кластер 102 может иметь более четырех узлов или менее четырех узлов. В определенных вариантах осуществления узел может быть вычислительным устройством, таким как, например, персональный компьютер, планшетный ПК, портативный компьютер, смартфон, карманный персональный компьютер и т.п. В других вариантах осуществления узел может быть серверным вычислительным устройством.
[0018] На Фиг. 1 также показано, что каждый узел в кластере 102 подключен к одному или более запоминающим устройствам. В определенных вариантах осуществления запоминающее устройство может быть запоминающим устройством с прямым подключением (т.е., запоминающим устройством, которое напрямую подключено к хост-системе или устройству). Также предполагается, что запоминающее устройство может быть доступно нескольким узлам в кластере с помощью одного или более путей доступа. Например, один или более узлов могут быть физически подключены к запоминающему устройству, тогда как другие узлы в кластере могут использовать путь для удаленного доступа для подключения к запоминающему устройству. Кроме того, один узел может иметь несколько физических соединений с различными запоминающими устройствами и одно или более удаленных подключений к различным запоминающим устройствам. Также предполагается, что каждый узел в кластере может быть в состоянии увидеть активность и соединения каждого из других узлов в кластере. В целом система 100 может быть асимметричной в том, что некоторые запоминающие устройства доступны некоторым узлам, тогда как другие запоминающие устройства не доступны для этих узлов.
[0019] Например, как показано на Фиг. 1, узлы 102А и 102В подключены к запоминающему устройству 104, узел 102C подключен к запоминающему устройству 104 и запоминающему устройству 106, и узел 102D подключен к запоминающему устройству 106 и запоминающему устройству 108. В определенных вариантах осуществления запоминающие устройства 104-108 образуют пул хранения. Так как не существует ни одного узла в кластере 102, который имеет доступ к каждому запоминающему устройству в пуле хранения, каждый узел в кластере 102 отвечает за запуск алгоритма защиты для того, чтобы гарантировать, что только те узлы, которые являются частью кластера, имеют доступ с правом считывания и записи к запоминающим устройствам. Таким образом, каждый узел в кластере 102 одновременно защищает запоминающие устройства, те, что подсоединены к пулу хранения.
[0020] Обратимся снова к Фиг. 1, каждый из узлов 102A, 102B и 102C подключены к запоминающему устройству 104. Как обсуждалось, каждый из узлов может иметь физическое соединение с запоминающим устройством 104 или удаленное подключение (т.е., подключение к запоминающему устройству 104 через узел, имеющий физическое соединение с запоминающим устройством 104). Так как узлы 102A, 102B и 102C подключены к запоминающему устройству 104, каждый узел имеет доступ с правом считывания и записи к запоминающему устройству 104. Кроме того, каждый из узлов 102A, 102B и 102C в кластере 102 может обнаружить присутствие других узлов в кластере 102 и определить активность каждого из других узлов в кластере.
[0021] В вариантах осуществления, права на определенное запоминающее устройство определяются постоянным резервированием. То есть, запоминающее устройство, такое как, например, запоминающее устройство 104, поддерживает резервирование конкретного узла, даже если запоминающее устройство находится в режиме офлайн или было перезагружено. Для целей обсуждения, резервирование конкретного узла имеет место, когда узел резервирует конкретное запоминающее устройство и предотвращает доступ другого неавторизованного узла к запоминающему устройству.
[0022] Обратимся снова к вышеприведенному примеру, каждый из узлов 102A, 102B и 102C имеет доступ с правом считывания и записи к запоминающему устройству 104, так как каждый из узлов 102A, 102B и 102C являются частью кластера 102. Как будет объяснено подробно ниже, каждый узел в кластере 102 запускает алгоритм защиты в момент времени t, чтобы определить, потерял ли возможность подключения любой другой узел в кластере 102 либо к: (i) другим узлам в кластере, либо (ii) к запоминающему устройству 104.
[0023] Если например, узел 102A теряет возможность подключения к узлам 102В и 102С или к запоминающему устройству 104, узел 102В или узел 102С независимо определяют, что узел 102А больше не имеет (по меньшей мере) доступа с правом записи к запоминающему устройству 104 и таким образом ему запрещается доступ к запоминающему устройству. Если соединение было потеряно, узлы 102B и 102C берут рабочую нагрузку узла 102А и также принимают меры для обеспечения того, чтобы узел 102А больше не мог записывать в запоминающее устройство 104, так как разрешение узлу 102A записывать в запоминающее устройство может привести к повреждению данных на запоминающем устройстве 104. Предполагается, что, хотя узел 102А может потерять возможность подключения к узлам 102b и 102с, узел 102А еще может иметь возможность подключения к запоминающему устройству 104. Кроме того, предполагается, что, если узел 102A потерял возможность подключения к запоминающему устройству 104, узел 102А-прежнему может быть подключен к узлу 102В и/или узлу 102C.
[0024] Обратимся к вышеприведенному примеру, для того, чтобы запретить узлу 102А запись в запоминающее устройство 104, узлы 102B или 102C отправляют запрос запоминающему устройству 104 вычеркнуть узел 102А из таблицы регистрации узлов. Более конкретно, запрос отправляется запоминающему устройству вычеркнуть ключ регистрации, связанный с узлом 102А в таблице регистрации узлов. В результате, запоминающее устройство 104 больше не будет принимать команды записи по физическому пути доступа или пути для удаленного доступа, связанному с узлом 102A. В определенных вариантах осуществления, хотя узел 102А не будет иметь доступ с правом записи к запоминающему устройству 104, узел 102А еще будет иметь доступ на считывание к запоминающему устройству 104.
[0025] В определенных вариантах осуществления любой из узлов 102В или 102С может отправить запрос на вычеркивание независимо друг от друга. В другом варианте осуществления узлы кластера могут быть запрошены для достижения консенсуса о том, следует ли затереть конкретный узел. В еще одном варианте осуществления, сам узел может определить, что он должен быть удален из кластера. Например, если узел 102A определяет, что он потерял соединение с одним из других узлов или с запоминающим устройством 104, узел 102А может удалить один или более путей доступа от себя к запоминающему устройству, или предписать запоминающему устройству 104 удаление его ключа регистрации из таблицы регистрации узлов.
[0026] Обратимся к таблице регистрации узлов, в определенных вариантах осуществления таблица регистрации узлов поддерживается запоминающим устройством 104 и списков узлов, которые имеют доступ с правом записи к запоминающему устройству 104. В вариантах осуществления, таблица регистрации узлов включает в себя ключ регистрации для каждого узла, который имеет доступ с правом записи к запоминающему устройству. В определенных вариантах осуществления ключ регистрации содержит 64 разрядное целое число, имеющее следующий формат: (i) 32-битовое хеш-значение глобального уникального идентификатора кластера (которое одинаково для всех узлов в кластере); (ii) 8- битный ключ версии; (iii) 8-битный номер узла; и (iv) 16- битная подпись. Хотя конкретный размер и конфигурация и ключа регистрации описывается, предполагается, что ключ регистрации может иметь любое число битов и также иметь различные конфигурации при условии, что ключ регистрации является уникальным для каждого узла.
[0027] Как будет объяснено более подробно ниже, как только узел вычеркивается, узел может запросить повторный допуск к кластеру. Чтобы запросить повторный допуск, узел, который был вычеркнут, может отправить обновленный ключ регистрации запоминающему устройству. После того, как узел перерегистрирован в запоминающем устройстве, каждый из других узлов в кластере принимает решение, должен ли узел снова быть допущенным в кластер. На основании определения узлов в кластере, узлу, запрашивающему повторный допуск, может быть предоставлен повторный допуск или отказано в повторном допуске. В вариантах осуществления, узлы в кластере могут основывать свое определение на любом количестве факторов, включая, скорость соединения узла, запрашивающего повторный допуск, надежность узла, запрашивающего повторный допуск, доступ, который узел, запрашивающий повторный допуск, имеет в других запоминающий устройствах в пуле хранения и т.п.
[0028] На Фиг. 2 представлен способ 200 запроса членства в кластере в соответствии с одним или более вариантами осуществления настоящего раскрытия. В определенных вариантах осуществления способ 200 может использоваться узлом для того, чтобы запросить членство в кластере, таком как кластер 102, показанный на Фиг. 1. Как указано выше, как только узел был допущен к кластеру, узел может иметь доступ на запись к этому конкретному запоминающему устройству.
[0029] В частности, присоединяющийся узел может попытаться использовать протоколы передачи данных кластера для того, чтобы взаимодействовать с другими узлами для получения допуска к активному кластеру. В этом случае, как только присоединяющийся узел входит в активное состояние, он будет выполнять способ 200 с тем, чтобы получить доступ к системе хранения. Если присоединяющийся узел не может взаимодействовать с другими присоединяющимися или активными узлами по протоколам кластера, присоединяющийся узел проверяет, что возможно активный кластер отсутствует, присоединяющийся узел может выполнить способ 200 для того, чтобы получить доступ к системе хранения и таким образом стать первым активным узлом. В контексте обсуждения, когда узел запрашивает доступ и получает допуск к кластеру, узел рассматривается как активный узел или входящий в активное состояние. Например, все узлы, которые выполняют протоколы передачи данных кластера и на данный момент участвуют в составе кластера, считаются активными узлами. Кроме того, узлы, имеющие доступ к одному или более запоминающим устройствам, связанным с кластером, считаются запоминающими узлами. В вариантах осуществления, запоминающие узлы являются подмножеством наборов активных узлов.
[0030] Как показано на Фиг. 2, способ 200 начинает, после того, как узел был допущен к кластеру, использовать протоколы передачи данных кластера. После допуска в кластер, один или более вариантов осуществления предусматривают, что узел запрашивает доступ к одному или более запоминающим устройствам, связанным с кластером, таким как, например, запоминающее устройство 104 (Фиг. 1), путем регистрации 210 в запоминающем устройстве, используя ключ регистрации. Как уже обсуждалось, ключ регистрации может содержать 64 разрядное целое число, имеющее различные компоненты, описанные выше.
[0031] После того, как ключ регистрации был отправлен запоминающему устройству, процесс переходит к операции 220, в которой устанавливается таймер регистрации. В определенных вариантах осуществления этот таймер регистрации может поддерживаться узлом, который запрашивает доступ к запоминающему устройству или к пулу хранения. Однако предполагается, что запоминающее устройство или другой узел в кластере также может поддерживать таймер регистрации. В вариантах осуществления, продолжительность таймера регистрации равняется периоду времени t. В определенных вариантах осуществления период времени t составляет 3 секунды. Более конкретно, период времени t равняется времени для любого другого узла в кластере для выполнения вычищения, которое должно происходить через каждые 3 секунды (с учетом каких-либо задержек, которые могут возникнуть из-за нагрузок на ЦП, латентности ввода/вывода и т. п.
[0032] По истечении срока действия таймера, процесс переходит к операции 230, в которой таблица регистрации узлов считывается из запоминающего устройства. Как указано выше, таблица регистрации узлов поддерживается запоминающим устройством (или по, по меньшей мере, одним запоминающим устройством в пуле хранения) и содержит реестр каждого ключа регистрации, связанного с каждым узлом в кластере.
[0033] После того, как таблица регистрации принята и считана, процесс переходит к операции 240, в которой определяется, содержится ли ключ регистрации этого узла в таблице регистрации узлов. Если ключ регистрации узла содержится в таблице регистрации узлов, каждый из узлов в кластере запускает алгоритм защиты и запоминающее устройство утверждает запрос узла на доступ к запоминающему устройству. В результате, процесс переходит к операции 250, в которой узлу разрешен доступ к запоминающему устройству, и более конкретно, доступ с правом записи к запоминающему устройству.
[0034] Однако, если в операции 240 определено, что запрашиваемого ключа регистрации узла нет в таблице регистрации узлов, процесс переходит обратно к операции 210 и узел пытается зарегистрироваться в запоминающем устройстве во второй раз. Способ повторяется и в узел, запрашивающий доступ к запоминающему устройству, снова запрашивает и считывает таблицу регистрации для того, чтобы определить, хранится ли его ключ регистрации в таблице регистрации узлов.
[0035] На Фиг. 3 представлен способ 300 определения доступа к запоминающему устройству, связанному с кластером узлов, в соответствии с одним или более вариантами осуществления настоящего раскрытия. В определенных вариантах осуществления способ 300 выполняется каждым узлом в кластере, который рассматривается как активный узел (т.е., все узлы, которые выполняют протоколы передачи данных кластера и на данный момент участвуют в составе кластера). Способ 300 может также быть выполнен узлом, который рассматривается как узел хранения (т.е. любой узел, который имеет доступ к одному или более запоминающим устройствам, связанным с кластером).
[0036] Способ 300 начинается, когда узел «вычищает» 310 ключи регистрации из таблицы регистрации узлов. В частности, узел запрашивает другие узлы, которые не являются частью активного кластера. Когда ключ регистрации вычищен из таблицы регистрации диска, узел, связанный с вычищенным ключом регистрации, уже не имеет (по меньшей мере) доступа на запись к конкретному запоминающему устройству или пулу хранения, связанному с кластером. В определенных вариантах осуществления ключ регистрации вычищается, когда один узел в кластере проверяет, что другой узел в кластере больше не имеет доступа на запись к конкретному запоминающему устройству или пулу хранения. Это может быть результатом одного из: потери одним из узлов связи с другим узлом в кластере, удаления узлом себя из кластера или узлом, теряющим связь с запоминающим устройством. В ситуациях, в которых узел удалил себя из кластера, этот узел может отправить запрос запоминающему устройству, указывающий, что его ключ регистрации должен быть удален из таблицы регистрации узлов. В другом варианте осуществления один из других узлов в кластере может запросить, чтобы узел был вычеркнут (т.е., удален) из кластера в процессе вычищения. В определенных вариантах осуществления, когда узел вычеркнут из кластера, другие узлы могут быть сконфигурированы с возможностью предотвращать достижение запоминающего устройства командами из удаленного узла.
[0037] Как показано на Фиг. 3, процесс вычищения имеет различные суб-операции. Процесс вычищения начинается с суб-операции 311, в которой узел считывает таблицу регистрации узлов, поддерживаемую запоминающим устройством. Как указано выше, таблица регистрации узлов содержит список всех ключей регистрации, связанных с каждым узлом в кластере.
[0038] Процесс затем переходит к суб-операции 312, в которой один или более узлов, которые не являются активными членами кластера, вычеркиваются из кластера. В вариантах осуществления, каждый узел в кластере просматривается каждым другим узлом в кластере и может быть подключен к одному или более запоминающим устройствам либо посредством удаленного подключения или физического соединения. Поскольку каждый узел в кластере имеет представление любого другого узла в кластере, узел, который считывает таблицу регистрации узлов, может определить, какие узлы в кластере имеют связанные ключи регистрации в таблице регистрации узлов. Таким образом, узел вычищает таблицу регистрации, принятую от запоминающего устройства. Если ключ регистрации находится в таблице, но узел не является активным, узел вычеркивается.
[0039] В определенных вариантах осуществления узел не может быть вычеркнут до тех пор, пока несколько узлов в кластере не достигнут аналогичного определения (т.е., что узел, который вычеркивается, не имеет ключа регистрации в таблице регистрации узлов). В других вариантах осуществления узел может быть вычеркнут, когда один узел достигает определения того, что узел, который должен быть вычеркнут, не имеет связанного ключа регистрации в таблиц регистрации узлов.
[0040] После того, как был отправлен запрос для вычеркивания узла, узел, запускающий алгоритм, определяет 313, был ли узел успешно вычеркнут. Если узел не был успешно вычеркнут, узел, запускающий алгоритм, выполняет самопроверку, чтобы определить, присутствует ли его собственный ключ регистрации в таблице регистрации узлов. Если его собственный ключ регистрации не присутствует в таблице регистрации узлов, процесс переходит к суб-операции 314 и узел входит в «состояние гостя» и обращается за повторным допуском к кластеру, используя один или более протоколов кластера. Если узел был успешно вычеркнут, процесс переходит к операции 315 и узел резервирует запоминающее устройство, если запоминающее устройство еще не зарезервировано. То есть, узел становится владельцем запоминающего устройства и затем делит доступ к этому запоминающему устройству с другими узлами, которые находятся в том же кластере.
[0041] Когда ключи регистрации в таблице регистрации узлов были вычищены, процесс переходит к операции 320, в которой устанавливается второй таймер. В вариантах осуществления, второй таймер пропорционален таймеру регистрации, который обсуждается по отношению к Фиг. 2. Например, алгоритм вычищения запускается параллельно на всех узлах (например, каждый узел вычищает ключи каждые 3 секунды независимо от всех других узлов. В определенных вариантах осуществления алгоритм вычищения запускается параллельно, потому что один узел может и не быть в состоянии надежно указать, вычищается ли также другой узел из таблицы регистрации или потерял ли один из узлов соединение с системой хранения и, следовательно, не может вычистить таблицу регистрации.
[0042] Когда узел присоединяется к кластеру, узел регистрируется в кластере и ждет, допуска. Если узел допускается, один из вариантов осуществления предусматривает, что узел вычищает и выявляет диск, как только это станет возможно. Таймер устанавливает три секунды на вычищение, и узел может подтвердить свою регистрацию в системе хранения.
[0043] По истечении срока действия таймера, процесс переходит к операции 330, в которой узел выявляет один или более путей доступа к запоминающему устройству. То есть, узел может определить, какие пути доступа, физические или удаленные, должны быть подключены к другим узлам и/или запоминающим устройствам в кластере. Например, обращаясь к Фиг. 1, если узел 102В, присоединенный к кластеру 102, и узел 102А установили или имеют физическое соединение с запоминающим устройством 104, физический путь доступа объявляется другим узлам в кластере, и другие узлы в кластере, например, 102D, могут установить путь для удаленного доступа к узлу 102A и воспользоваться физическим соединением между узлом 102A и запоминающим устройством 104.
[0044] На Фиг. 4 представлен способ 400 запроса на повторный допуск в кластер в соответствии с одним или более вариантами осуществления настоящего раскрытия. В определенных вариантах осуществления узел, запрашивающий повторный допуск в кластер, возможно, удалил себя из кластера или, возможно, был удален другим узлом в кластере, как указано выше по отношению к Фиг. 3. В вариантах осуществления, способ 400 начинается, когда узел в кластере посылает команду на запись запоминающему устройству и уведомляется о том, что запись не была успешной. Если запись не была успешной, узел может запросить, чтобы команда была отправлена по другому пути доступа. Кроме того или альтернативно, узел может запросить, чтобы все другие ожидающие обработки команды, которые выполняются, были отменены. После получения уведомления, узел запрашивает 410 таблицу регистрации узлов из запоминающего устройства. Как указано выше, таблица регистрации узлов поддерживается запоминающим устройством и включает в себя различные ключи регистрации, связанные с соответствующими узлами в кластере.
[0045] Когда таблица регистрации узлов был принята запрашивающим узлом, узел считывает 420 таблицу регистрации для того, чтобы определить, содержится ли его собственный ключ регистрации в таблице регистрации. Если определено, что ключ регистрации для этого узла отсутствует в таблице регистрации узлов, узел регистрируется 430 в запоминающем устройстве, используя другой ключ регистрации. Как указано выше, ключ регистрации может быть 64 битым целым числом, имеющим 32-битовое хеш-значение глобального уникального идентификатора кластера, 8- битный ключ обновления, 8-битный номер узла и 16-битную подпись. В определенных вариантах осуществления, так как узел должен перерегистрироваться, узел может генерировать новый ключ регистрации, в котором, по меньшей мере, часть ключа регистрации увеличивается или изменяется. Таким образом, узел, запоминающее устройство или другие узлы в кластере могут отслеживать, какое количество раз новый путь доступа должен устанавливаться для узла. В некоторых вариантах осуществления количество раз, которое узел запросил повторный допуск, может влиять на получение узлом повторного допуска к кластеру. Кроме того, изменение в ключе регистрации помогает гарантировать то, что команды записи, поступающие от узла и/или от путей доступа, связанных с узлом (когда узел вновь принят в кластер), отличаются от устаревших команд записи от узла, которые возможно еще ждут того, чтобы быть записанными в запоминающее устройство.
[0046] После того, как узел зарегистрировал свой вновь сгенерированный ключ регистрации в запоминающем устройстве, устанавливается 440 таймер регистрации. Как обсуждалось ранее, продолжительность таймера регистрации равняется приблизительно 2,5 периодам времени t. То есть, период времени t равен времени, которое требуется каждому узлу в кластере, чтобы запустить алгоритм защиты, описываемый в настоящем документе.
[0047] По истечении срока действия таймера, процесс переходит к операции 450 и узел, запрашивающий доступ с правом записи к запоминающему устройству, считывает таблицу регистрации, поддерживаемую запоминающим устройством. Если определено 460 что вновь сгенерированный ключ регистрации находится в таблице регистрации узлов, узлу предоставляется доступ с правом записи к запоминающему устройству.
[0048] Однако, если в операции 460 определено, что вновь сгенерированный ключ регистрации узла не находится в таблице регистрации узлов, процесс переходит обратно к операции 430, узел повторного регистрируется и время регистрации возвращается в исходное положение. В определенных вариантах осуществления, если узел был отвергнут определенное число раз, узел больше не будет искать доступ с правом записи к запоминающему устройству. В определенных вариантах осуществления узел может вновь искать допуск в кластер или доступ к запоминающему устройству после того, как пройдет определенный период времени.
[0049] Фиг. 5 представляет собой блок-схему, показывающую систему 500, с помощью которой два узла в кластере могут получить доступ к физическому диску, используя пути для удаленного доступа и/или физические пути доступа в соответствии с одним или более вариантами осуществления настоящего раскрытия. Как указано выше со ссылкой на фигуры с 1 по 4, различные узлы в кластере могут быть подключены к одному или более запоминающим устройствам в пуле хранения. Эти подключения (или шпиндели) могут быть физическими соединениями или удаленными подключениями. Как будет объяснено ниже, узел может использовать различные пути доступа для подключения к одному или более запоминающим устройствам.
[0050] В примерном варианте осуществления, показанном на Фиг. 5, кластер может иметь два узла, Узел A 510 и Узел В 520. Каждый узел может иметь физическое соединение с физическим Диском 530. Хотя показаны только два узла, предполагается, что кластер может состоять более чем из двух узлов. Кроме того, предполагается, что каждый узел может иметь физическое соединение с одним или более запоминающими устройствами. Как показано на Фиг. 5, узел может иметь доступ к физическому диску через ряд различных путей доступа. Например, Узел A 510 имеет физический путь доступа к физическому диску 530 и также имеет путь для удаленного доступа к физическому диску 530 через объект 524 назначения Узла B 520. В определенных вариантах осуществления один узел может иметь несколько физических путей доступа к тому же диску. В таких вариантах осуществления, узел будет предоставлять все эти физические пути доступа ко всем другим узлам в кластере.
[0051] Как показано на Фиг. 5, узел А имеет доступ к виртуальному диску 511, объекту 512 со многими путями доступа, который объединяет несколько физических путей доступа и путей для удаленного доступа к физическому диску 530, объекту 513 с путем для удаленного доступа, который реализует один или более путей для удаленного доступа к физическому диску 530 через другой узел, такой как, например, узел B 520, объект 514 назначения, который служит объявлению одного или более физических соединений между узлом А 510 и физическим диском 530 и который позволяет другим узлам в кластере получить возможность подключения (например, через путь для удаленного доступа) к физическому диску 530 через Узел А 510, и объект 515 с физическим путем доступа реализует одно или более физических соединений или путей доступа к физическому диску 530.
[0052] Аналогично, Узел B 520 имеет доступ к виртуальному диску 521, объекту 522 со многими путями доступа, который объединяет несколько физических путей доступа и путей для удаленного доступа от Узла B 520 к физическому диску 530, объекту 523 с путями для удаленного доступа, который реализует один или более путей для удаленного доступа к физическому диску 530 через другой узел, такой как, например, Узел A 510, объект 524 назначения, который объявляет физический путь доступа к физическому диску 530 другим узлам в кластере, и объект 525 с физическим путем доступа, который создает один или более физических соединений или путей доступа к физическому диску 530. Хотя один путь для удаленного доступа показан как для Узла А 510, так и Узла B 520, предполагается, что один узел может иметь несколько путей для удаленного доступа. Также предполагается, что каждый узел может иметь несколько физических путей доступа.
[0053] В вариантах осуществления, предпочтительный путь доступа, через который различные команды отправляются к физическому диску 530, является физическим путем доступа. Например, когда новый диск обнаружен, один или более узлов кластера будут регистрировать или резервировать диск. Как указано выше, этот процесс включает в себя запуск алгоритма защиты, описанного выше со ссылкой на Фиг. 2, и вслед за этим создание физического пути доступа от узла к физическому диску. В определенных вариантах осуществления каждый физический путь доступа или каждый новый экземпляр физического пути доступа имеет ключ регистрации, который включает в себя идентификатор кластера, идентификатор узла и идентификатор реинкарнации (уникальный номер для физического пути, который увеличивается каждый раз, когда реализуется физический путь доступа). В вариантах осуществления, ключ регистрации пути доступа может быть эквивалентен ключу регистрации связанного узла. После того, как физическое соединение установлено, и узел регистрируется на диске, используя ключ регистрации, объект со многими путями доступа и объект назначения узла уведомляются о вновь созданном физическом пути доступа. Эта информация затем передается к другим узлам в кластере, так что другие узлы могут быть установить путь для удаленного доступа через объект назначения узла, имеющего физическое соединение с физическим диском.
[0054] Как указано выше, предполагается, что один или более узлов могут потерять соединение с одним или более другими узлами в кластере или с физическим диском. В таком случае, один из подключенных узлов в кластере будут запрашивать, чтобы один или более путей доступа от отключенного узла были удалены, и также запрашивать, чтобы запоминающее устройство прекратило прием запроса на запись от одного или более путей доступа (например, физических путей доступа или путей для удаленного доступа), связанных с отключенными узлами. Кроме того, объекты назначения, связа