ЗАЩИТА РАСПРЕДЕЛЕННОЙ СИСТЕМЫ ХРАНЕНИЯ В КЛАСТЕРЕ
DISTRIBUTED STORAGE DEFENSE IN A CLUSTER

УРОВЕНЬ ТЕХНИКИ
[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] Как указано выше, предполагается, что один или более узлов могут потерять соединение с одним или более другими узлами в кластере или с физическим диском. В таком случае, один из подключенных узлов в кластере будут запрашивать, чтобы один или более путей доступа от отключенного узла были удалены, и также запрашивать, чтобы запоминающее устройство прекратило прием запроса на запись от одного или более путей доступа (например, физических путей доступа или путей для удаленного доступа), связанных с отключенными узлами. Кроме того, объекты назначения, связанные с каждым узлом, которые имеют удаленное соединение с отключенным узлом, могут также остановить прием команд от отключенного узла. Такие действия предотвращают отправку отключенным узлом дополнительных и/или дублирующих записей запоминающему устройству, которые могут быть передаваемыми по проводам, но еще не завершены. То есть, удаление ключей регистрации из запоминающего устройство и блокировка команды записи через объект назначения помогает гарантировать то, что отключенные узлы не могут писать на диск, используя физические пути доступа или пути для удаленного доступа.
[0055] Например, обратимся к Фиг. 5, Узел A 510 возможно потерял свое физическое соединение через свой объект 515 с физическим путем доступа к физическому диску 530. Однако, как показано, Узел A 510 также имеет путь для удаленного доступа 513 к физическому диску 530 через объект 524 назначения Узла B 520. Кроме того, до потери соединения с физическим диском 530, Узел A 510 мог отправить команды на запись на физический диск 530, которые еще не завершены. Так как Узел A 510 потерял возможность подключения к физическому диску 530, Узел A 510 может не иметь никаких данных о том, были ли его команды записи выполнены или отклонены.
[0056] Однако если Узлу A 510 было разрешено немедленно восстановить связь с физическим диском 530 и либо повторно инициализировать выполнение команд, которые возможно были или не были выполнены, либо, если Узлу A 510 было разрешено отправить дополнительные команды физическому диску 530 (который возможно не действует из-за того, что Узел А 510 теряет соединение), такие действия могут привести к тому, что данные на физическом диске 530 повредятся. Для предотвращения такого повреждения, Узел B 520 прерывает обслуживание физических путей доступа и/или всех путей для удаленного доступа, связанных с узлом A 510.
[0057] После того, как физические и/или пути для удаленного доступа, связанные с Узлом A 510 прерываются, физический диск 530 не будет принимать команды по путям доступа, связанным с Узлом А 510. Поскольку каждый путь доступа для каждого узла имеет собственный идентификатор, физический диск 530 может определить, какие команды связанны с узлом на основе идентификатора каждого из путей доступа. В определенных вариантах осуществления физический диск 530 проводит различие между физическими путями доступа. Таким образом, если ввод/вывод идет через удаленный путь доступа, то с точки зрения физического диска, ввод/вывод представляется таким, как если бы он шел от узла, который возлагает функции ведущего узла на объект назначения, к которому подсоединен путь для удаленного доступа. Вкратце, ограждение ввода/вывода пути для удаленного доступа выполняется на объекте назначения, а ограждение ввода/вывода физического пути доступа выполняется на уровне физического диска 530.
[0058] Для еще одного примера, каждый узел в кластере может обнаруживать каждый шпиндель или путь доступа любого другого узла. Таким образом, узел B 520 может обнаружить, что Узел A 510 потерял соединение с физическим диском 530. В результате Узел B 520 будет сбрасывать путь для удаленного доступа 523. Однако если Узел A 510 не может взаимодействовать с другими узлами в кластере, Узел B 520 может предписать физическому диску 530 отклонить команды записи от Узла 510.
[0059] В определенных вариантах осуществления, как только физический диск 530 начинает отклонять команды из физического пути доступа Узла 510, объект 512 со многими путями доступа Узла A 510 обнаруживает отклонение команд. В результате, объект 512 со многими путями доступа может запросить все другие существующие физические пути доступа для того, чтобы определить, есть ли допустимые. Если один физический путь доступа по-прежнему допустим, допустимый физический путь доступа добавляется к объекту 512 со многими путями доступа. Однако если нет допустимых объектов с физическим путем доступа, создается новый объект со многими путями доступа и объект 515 с физическим путем доступа реализует новый физический путь доступа с новым ключом регистрации. После генерации новый физический путь доступа и связанный с ним ключ регистрации будет иметь новый идентификатор реинкарнации, который устанавливает его независимо от бывшего идентификатора, связанного со старым физическим путем доступа.
[0060] Кроме того, когда узел, такой как, например, Узел A 510 запрашивает повторный допуск к кластеру, используя новый идентификатор, новый идентификатор, объявляется другим узлам в кластере. Таким образом, объекты с путем для удаленного доступа других узлов могут использовать новый идентификатор физического пути доступа Узла A 510 для подключения к физическому диску 530. Как указано выше, поскольку физический диск 530 знает, что не следует принимать команды от старого физического пути доступа, физический диск принимает команды от нового физического пути доступа и его собственный идентификатор, когда Узел A 510 запрашивает повторный допуск к кластеру с помощью способов, описанных выше со ссылками на Фигуры 2-4.
[0061] Возвратимся снова к Фиг. 5, если Узел A 510 и Узел B 520 теряют возможность подключения друг к другу, в кэше приложения могут быть данные, которые не были записаны на виртуальный диск, или на виртуальном диске могут быть данные, которые не были записаны на физический диск. Таким образом, варианты осуществления предусматривают, что все остальные команды на пути доступа от отключенного узла исчерпались, и что дальнейшие команды не будут приниматься от путей доступа, связанных с отключенным узлом.
[0062] Варианты осуществления и функциональные возможности, описываемые в настоящем документе, могут работать с помощью множества вычислительных систем, включающих в себя, без ограничения, системы настольных ПК, проводные и беспроводные вычислительные системы, мобильные вычислительные системы (например, мобильные телефоны, нетбуки, компьютеры планшетного или планшетного PC-совместимого типа, компьютеры типа «ноутбук» и переносные компьютеры), мобильные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, миникомпьютеры и мейнфреймы.
[0063] Кроме того, варианты осуществления и функциональные возможности, описываемые в настоящем документе, могут работать на распределенных системах (например, облачных вычислительных системах), где функциональность приложения, память, хранение и поиск и извлечение данных, и различные функции обработки могут работать удаленно друг от друга в распределенной вычислительной сети, такой как Интернет или интранет. Пользовательские интерфейсы и информация различных типов может отображаться посредством дисплеев встроенных вычислительных устройств или посредством удаленных блоков отображения, связанных с одним или более вычислительными устройствами. Например, пользовательские интерфейсы и информация различных типов могут отображаться и взаимодействовать с настенной поверхностью, на которую проектируются пользовательские интерфейсы и информация различных типов. Взаимодействие с множеством вычислительных систем, с которыми могут быть реализованы варианты осуществления изобретения, включает в себя ввод посредством нажатия клавиш, ввод посредством сенсорного экрана, ввод посредством голоса или другого звука, ввод посредством жеста, когда сопоставленное вычислительное устройство оснащено функциональными возможностями обнаружения (например, камерой) для фиксации и интерпретации жестов пользователя для управления функциональными возможностями вычислительного устройства и т.п.
[0064] Фигуры 6-8 и связанные описания представляют обсуждение различных операционных сред, в которых можно реализовать варианты осуществления изобретения. Однако устройства и системы, показанные и описанные со ссылкой на Фигуры 6-8, представлены для целей примера и иллюстрации и не ограничивают огромного количества конфигураций вычислительных устройств, которые могут использоваться для практической реализации вариантов осуществления изобретения, описываемого в настоящем документе.
[0065] Фиг. 6 представляет собой блок-схему, показывающую физические компоненты (т.е., аппаратное обеспечение) вычислительного устройства 105, с которыми можно практически реализовать варианты осуществления изобретения. Компоненты вычислительного устройства, описанные ниже, могут быть пригодны для узлов или вычислительных устройств, описанных выше. В базовой конфигурации вычислительное устройство 105 может включать в себя, по меньшей мере, один блок 602 обработки и системную память 604. В зависимости от конфигурации и типа вычислительного устройства, системная память 604 может включать в себя, но не в ограничительном смысле, энергозависимое запоминающее устройство (например, оперативное запоминающее устройство), энергонезависимое запоминающее устройство (например, постоянную память), флэш-память или любую комбинацию таких накопителей. Системная память 604 может включать в себя операционную систему 605 и один или более программных модулей 606, предназначенных для выполнения различных приложений 620 программного обеспечения. Операционная система 605, например, может годиться для управления работой вычислительного устройства 105. Кроме того, варианты осуществления изобретения могут быть практически реализованы в сочетании с графической библиотекой, другими операционными системами или любой другой прикладной программы и не ограничиваются каким-либо конкретным приложением или системой. Эта базовая конфигурация показана на Фиг. 6 с помощью этих компонентов внутри штриховой линии 608. Вычислительное устройство 105 может иметь дополнительные признаки или функциональные возможности. Например, вычислительное устройство 105 также может включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или лента. Такое дополнительное запоминающее устройство показано на Фиг. 6 посредством съемного запоминающего устройства 609 и несъемного запоминающего устройства 610.
[0066] Как указано выше, несколько программных модулей и файлов данных могут храниться в системной памяти 604. При выполнении на устройстве 602 обработки, программные модули 606 могут выполнять процессы, включающие в себя, но не в ограничительном смысле, один или более этапов способов, показанных на Фигурах 1-4. Другие программные модули, которые можно использовать в соответствии с вариантами осуществления настоящего изобретения, могут включать в себя электронную почту и приложения для работы с контактами, приложения текстового редактора, приложения для работы с электронными таблицами, приложения для работы с базой данных, приложения для презентаций слайдов, программы создания изображений или автоматизированные прикладные программы, и т.д.
[0067] Кроме того, варианты осуществления изобретения могут быть практически реализованы в электрической схеме, содержащей дискретные электронные элементы, микросхемы в корпусе или интегральные микросхемы, содержащие логические вентили, схеме с использованием микропроцессора, или на однокристальной схеме, содержащей электронные элементы или микропроцессоры. Например, варианты осуществления изобретения могут быть практически реализованы с помощью системы на кристалле (SOC), где каждый или многие из компонентов, показанных на Фиг. 6, могут быть интегрированы в одной микросхеме. Такое устройство SOC может включать в себя один или более блоков обработки, графических блоков, блоков связи, блоков виртуализации систем и различные функциональные возможности приложений, каждая из которых интегрирована (или «записана») на подложке схемы в одной интегральной микросхеме. При работе через SOC, функциональными возможностями, описываемыми в настоящем документе, можно управлять через логику конкретного приложения, интегрированную с другими компонентами вычислительного устройства 105 в одной микросхеме (схеме). Варианты осуществления изобретения также могут быть практически реализованы использованием других технологий, способных осуществлять логические операции, такие как, например, И, ИЛИ и НЕТ, включающие в себя но, не ограничивающиеся механическими, оптическими струйными и квантовыми технологиями. Кроме того, варианты осуществления изобретения могут быть практически реализованы в компьютере общего назначения или в любых других схемах или системах.
[0068] Вычислительное устройство 105 может также иметь одно или более устройств 612 ввода, таких как клавиатура, манипулятор типа «мышь», перо, устройство для ввода звуковых данных, сенсорное устройство ввода и т.д. Также может входить в состав устройство(устройства) 614 вывода, такое как дисплей, динамики, принтер и т.д. Указанные выше устройства приведены в качестве примера и могут использоваться другие устройства. Вычислительное устройство 104 может включать в себя одно или более коммуникационных соединений 616, делающих возможным взаимодействие с другими вычислительными устройствами 618. Примеры подходящих коммуникационных соединений 616 включают в себя, но не в ограничительном смысле, РЧ передатчик, приемник и/или схему приемопередатчика; универсальную последовательную шину (USB), параллельные и/или последовательные порты.
[0069] Термин считываемые компьютером носители как применяют в настоящем документе, может включать в себя компьютерные носители хранения. Компьютерные носители хранения могут включать в себя энергонезависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как считываемые компьютером инструкции, структуры данных или программные модули. Системная память 604, съемное запоминающее устройство 609 и несъемное запоминающее устройство 610 все являются примерами компьютерных носителей хранения (т.е., устройств памяти.) Компьютерные носители хранения могут включать в себя ОЗУ, ПЗУ, электрически стираемую программируемую постоянную память (EEPROM), флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любое другое промышленное изделие, которое может использоваться для хранения информации и к которому может обращаться вычислительное устройство 105. Любые такие компьютерные носители хранения могут быть частью вычислительного устройства 105. Компьютерные носители хранения не включают в себя несущую волну или другой распространяющийся или модулированный сигнал данных.
[0070] Коммуникационная среда может быть реализована посредством считываемых компьютером инструкций, структур данных, программных модулей или других данных в модулированном сигнале передачи данных, таком как несущая или другом транспортном механизме, и включают в себя любые среды доставки информации. Термин «модулированный сигнал передачи данных» может описывать сигнал, который имеет одну или более характеристик, устанавливаемых или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, коммуникационная среда может включать в себя проводные носители, такие как проводная сеть или непосредственное проводное соединение, и беспроводные носители, такие как акустические, радиочастотные (РЧ), инфракрасные и другие беспроводные носители.
[0071] На фигурах 7A и 7B показано мобильное вычислительное устройство 700, например, мобильный телефон, смартфон, планшетный персональный компьютер, портативный компьютер и т.п., с которым можно реализовать варианты осуществления изобретения. В отношении Фиг. 7A, показан один из вариантов осуществления мобильного вычислительного устройства 700 для реализации вариантов осуществления. В базовой конфигурации мобильное вычислительное устройство 700 является карманным компьютером, имеющим как элементы ввода, так и элементы вывода. Мобильное вычислительное устройство 700 обычно включает в себя дисплей 705 и одну или более кнопок 710 ввода, которые позволяют пользователю вводить информацию в мобильное вычислительное устройство 700. Дисплей 705 мобильного вычислительного устройства 700 может также функционировать в качестве устройства ввода (например, сенсорный экран). Дополнительный боковой элемент 715 ввода, если входит в состав, делает возможным дополнительный пользовательский ввод. Боковой элемент 715 ввода может быть поворотным переключателем, кнопкой или любым элементом ручного ввода другого типа. В альтернативных вариантах осуществления мобильное вычислительное устройство 700 может включать в себя больше или меньше элементов ввода. Например, дисплей 705 может быть сенсорным экраном в некоторых вариантах осуществления. В еще одном альтернативном варианте осуществления мобильное вычислительное устройство 700 представляет собой портативную телефонную систему, такую как сотовый телефон. Мобильное вычислительное устройство 700 также может включать в себя дополнительную клавиатуру 735. Дополнительная клавиатура 735 может быть физической клавиатурой или «экранной» клавиатурой, генерируемой на дисплее с сенсорным экраном. В различных вариантах осуществления, элементы вывода включают в себя дисплей 705 для отображения графический интерфейса пользователя (ГИП), визуальный индикатор 720 (например, светоизлучающий диод), и/или аудио преобразователь 725 (например, динамик). В некоторых вариантах осуществления мобильное вычислительное устройство 700 включает в себя преобразователь вибрации для предоставления пользователю тактильной обратной связи. В еще одном варианте осуществления мобильное вычислительное устройство 700 включает в себя порты ввода и/или вывода, такие как аудиовход (например, разъем для микрофона), аудио выход (например, разъем для наушников) и видеовыход (например, порт HDMI) для отправки сигналов на внешнее устройство или прием сигналов от него.
[0072] На Фиг. 7В представлена блок-схема, иллюстрирующая архитектуру одного из вариантов осуществления мобильного вычислительного устройства. То есть, мобильное вычислительное устройство 700 может включать в себя систему (т.е., архитектуру) 702 для реализации некоторых вариантов осуществления. В одном из вариантов осуществления система 702 реализована в виде «смартфона», способного запускать одно или более приложений (например, браузер, электронная почта, календарь, диспетчеры контактов, клиенты электронной связи, игры и медиа-клиенты/игроки). В некоторых вариантах осуществления система 702 встроена в виде вычислительного устройства, такого как встроенный карманный персональный компьютер (PDA) и мобильный телефон.
[0073] Одна или более прикладных программ 766 могут загружаться в память 762 и работать в операционной системе 764 или совместно с ней. Примеры прикладных программ включают в себя программы набора номера, программы электронной почты, программы управления личной информацией (PIM), программы обработки текстов, программы для работы с электронными таблицами, программы Интернет-браузера, программы обмена сообщениями и так далее. Система 702 также включает в себя энергонезависимую область 768 хранения в памяти 762. Энергонезависимую область 768 хранения можно использовать для хранения постоянной информации, которая не должна быть потеряна, если у системы 702 отключается питание. Прикладные программы 766 могут использовать и хранить информацию в энергонезависимой области 768 хранения, такую как электронная почта или другие сообщения, используемые в приложении электронной почты и т.п. Приложение синхронизации (не показано) также постоянно хранится в системе 702 и запрограммировано для взаимодействия с соответствующим резидентным приложением синхронизации на главном компьютере для того, чтобы поддерживать информацию, хранящуюся в энергонезависимой области 768 хранения, синхронизированную с соответствующей информацией, хранящейся в компьютере. Следует принимать во внимание, что другие приложения могут быть загружены в память 762 и работать на мобильном вычислительном устройстве 700.
[0074] Система 702 имеет блок 770 питания, который может быть реализован как одна или более батарей. Блок питания 770 может дополнительно включать в себя внешний источник питания, такой как адаптер переменного тока или питаемый док-станцией, которая пополняет или перезаряжает батареи.
[0075] Система 702 также может включать в себя радиоприемник 772, который выполняет функцию передачи и приема радиочастотной связи. Радиоприемник 772 облегчает возможность беспроводного подключения между системой 702 и «внешним миром», с помощью оператора телекоммуникационных услуг или связи. Передачи на радиоприемник 772 и от него проводятся под управлением операционной системы 764. Другими словами, сообщения, принятые по радиоприемнику 772 могут распространяться прикладным программам 766 через операционную систему 764 и наоборот.
[0076] Визуальный индикатор 720 можно использовать для предоставления визуального уведомления и/или аудио интерфейс 774 пользователя можно использовать для производства звуковых уведомлений с помощью аудио преобразователя 725. В показанном варианте осуществления, визуальный индикатор 720 является светодиодом (LED) и аудио преобразователь 725 является динамиком. Эти устройства могут быть непосредственно соединены с блоком 770 электропитания так, что при активации, они остаются включенными в течение отрезка времени, определяемого механизмом уведомления, даже если процессор 760 и другие компоненты могли завершить работу для сохранения заряда батареи. LED может быть запрограммирован для того, чтобы оставаться включенным на неопределенный срок, пока пользователь не примет действие для того, чтобы указать выключенное состояние устройства. Аудио интерфейс 774 пользователя используется для подачи звуковых сигналов пользователю и прием звуковых сигналов от него. Например, в дополнение подсоединению к аудио преобразователю 725, аудио интерфейс 774 пользователя также может подсоединяться к микрофону для приема звукового ввода, такого как обеспечение проведения телефонного разговора. В соответствии с вариантами осуществления настоящего изобретения, микрофон может также служить в качестве аудиосенсора, чтобы облегчить управление уведомлениями, как будет описано ниже. Система 702 может дополнительно включать в себя видео интерфейс 776, который делает возможной операцию встроенной камеры 730 для того, чтобы записать статические изображения, видео поток и т.п.
[0077] Мобильное вычислительное устройство 700, реализующее систему 702, может иметь дополнительные признаки или функциональные возможности. Например, мобильное вычислительное устройство 700 также может включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, магнитные диски, оптические диски или лента. Такое дополнительное запоминающее устройство показано на Фиг. 7В посредством энергонезависимой области 768 хранения.
[0078] Данные/информация, сгенерированные или собранные мобильным вычислительным устройством 700 и сохраненные с помощью системы 702, могут быть сохранены локально в мобильном вычислительном устройстве 700, как описано выше, или данные могут быть сохранены на любом количестве носителей хранения, к которым устройство может обращаться посредством радиоприемника 772 или посредством проводного соединения между мобильным вычислительным устройством 700 и отдельным вычислительным устройством, связанным с мобильным вычислительным устройством 700, например, серверным компьютером в распределенной вычислительной сети, такой как Интернет. Следует принимать во внимание, что такие данные/информация могут быть доступны через мобильное вычислительное устройство 700 через радиоприемник или через 772 распределенную вычислительную сеть. Аналогично, такие данные/информация могут легко передаваться между вычислительными устройствами для сохранения и использования в соответствии с известной передачей данных/информации посредством и способом сохранения, в том числе электронной почты и объединенные системы разделения данных/информации.
[0079] На Фиг. 8 представлен один из вариантов осуществления архитектуры системы для предоставления и поддержания членства в кластере, как описано выше. Например, таблица регистрации узлов, идентификаторы и различные пути доступа между узлами и между узлами и физический диск могут сохраняться в разных каналах подключения или других видов хранения. Например, различные идентификаторы могут быть сохранены с использованием службы 822 каталогов, веб-портала 824, службы 826 почтового ящика, хранилища 828 мгновенных сообщений или сайта 830 социальной сети. Сервер 820 может предоставлять данные и/или типы подключения к одному или более другим серверам или узлам в кластере. В качестве одного примера, сервер 820 может быть веб-сервером, который предоставляет данные по сети клиентам через сеть 815. В качестве примера, вычислительное устройство клиента может быть реализовано как вычислительное устройство 105 и реализовано в персональном компьютере, планшетном вычислительном устройстве 610 и/или мобильном вычислительном устройстве 700 (например, смартфоне). Любой из этих вариантов осуществления вычислительного устройства 105, 610, 700 клиента может получить контент из хранилища 816.
[0080] Варианты осуществления настоящего изобретения, например, описаны выше со ссылкой на функциональные схемы и/или операционные иллюстрации способов, систем и компьютерных программных продуктов согласно вариантам осуществления изобретения. Функции/действия, отмеченные в блоках, могут происходить не в порядке, показанном на любой из блок-схем. Например, два блока, показанные последовательно, на самом деле могут выполняться практически одновременно или блоки могут иногда выполняться в обратном порядке, в зависимости от имеющих место функциональных возможностей/действий.
[0081] Описание и иллюстрации одного или более вариантов осуществления, приведенные в настоящей заявке, не предназначены для того, чтобы каким-либо образом ограничить или сократить объем изобретения, который описан. Варианты осуществления, примеры и детали, представленные в данной заявке, считается достаточными для того, чтобы передать владение и позволить другим сделать и использовать наилучший вариант описываемого в заявке изобретение. Описываемое в заявке изобретение не должно рассматриваться как ограничивающее любым вариантом осуществления, примером или деталью, приведенной в этой заявке. Независимо от того, показаны ли и описаны ли в комбинации или отдельно, различные признаки (как структурные, так и методологические) предназначены для того, чтобы выборочного включить в состав или опустить для производства варианта осуществления с конкретным набором признаков. Будучи снабжен описанием и иллюстрацией настоящей заявки, специалист в данной области может предвидеть изменения, модификации и альтернативные варианты осуществления, подпадающие под сущность более широких аспектов общей идеи изобретения, воплощенной в этой заявке, которая не отходит от более широкого объема описываемого в заявке изобретения.