RU2702268C2 - Масштабируемые пулы хранения данных - Google Patents

Масштабируемые пулы хранения данных Download PDF

Info

Publication number
RU2702268C2
RU2702268C2 RU2017107276A RU2017107276A RU2702268C2 RU 2702268 C2 RU2702268 C2 RU 2702268C2 RU 2017107276 A RU2017107276 A RU 2017107276A RU 2017107276 A RU2017107276 A RU 2017107276A RU 2702268 C2 RU2702268 C2 RU 2702268C2
Authority
RU
Russia
Prior art keywords
storage
devices
data storage
pool
storage pool
Prior art date
Application number
RU2017107276A
Other languages
English (en)
Other versions
RU2017107276A3 (ru
RU2017107276A (ru
Inventor
Эшли П. ВЕНТУРА
Тарун РАМАНИ
Каран МЕХРА
Шив Кумар РАДЖПАЛ
Сарош К. ХАВЕВАЛА
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2017107276A publication Critical patent/RU2017107276A/ru
Publication of RU2017107276A3 publication Critical patent/RU2017107276A3/ru
Application granted granted Critical
Publication of RU2702268C2 publication Critical patent/RU2702268C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

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

Description

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0001] Повсеместная применимость хранения данных ʺв облакеʺ центром хранения и обработки данных (датацентром) продолжает увеличиваться. Web-услуги, например, могут оснащаться так, чтобы хранить данные удаленно в качестве части работы сети, так что к этим данным могут без труда обращаться многочисленные различные устройства, с тем, чтобы поддерживать действия Web-услуги и даже выступать в качестве единственного предназначения для Web-услуги.
[0002] Методики были разработаны, чтобы управлять данными в центрах обработки данных, посредством использования пулов хранения данных. Пулы хранения данных, как правило, формируются в виде множества устройств хранения данных, которые выполняются с возможностями специализированных задач хранения данных, например, для конкретного потребителя центра обработки данных. Традиционные методики, задействованные, чтобы формировать и управлять этими пулами хранения данных, однако, не являются масштабируемыми, основанные на традиционных ограничениях хранения метаданных, как части работы пула хранения данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Методики масштабируемого хранения данных описываются. В одном или нескольких вариантах осуществления, данные получаются, при помощи одного или нескольких вычислительных устройств, данные, которые описывают области неисправностей, в иерархии хранения, и имеющиеся в наличии ресурсы хранения в пуле хранения данных. Рабочие характеристики определяются упомянутыми одним или более вычислительными устройствами, причем это характеристики устройств, ассоциированных с имеющимися в наличии ресурсами хранения, в пределах одного или более уровней иерархии хранения. Распределение метаданных назначается упомянутыми одним или более вычислительными устройствами на одно или более конкретных устройств хранения данных в пределах пула хранения данных, основываясь на описанных областях неисправностей и определенных рабочих характеристиках устройств в пределах одного или нескольких уровней иерархии хранения.
[0004] В одном или нескольких вариантах осуществления, система включает в себя один или несколько модулей, осуществляемых, по меньшей мере, частично как аппаратное обеспечение. Упомянутые один или несколько модулей выполняются с возможностью выполнять действия, которые включают в себя добавление множества устройств хранения данных к пулу хранения данных с помощью разовой транзакции. В качестве реакции на это добавление, распределение метаданных назначается в пределах пула хранения данных, основываясь на рабочих характеристиках каждого устройства хранения данных в пуле хранения данных.
[0005] В одном или нескольких вариантах осуществления, система включает в себя один или несколько модулей, осуществляемых, по меньшей мере, частично как аппаратное обеспечение. Упомянутые один или несколько модулей выполняются с возможностью выполнять действия, которые включают в себя: принимают указание перебалансировать распределение метаданных в пуле хранения данных, и получают данные, которые описывают ограничительные условия способности к восстановлению, задаваемые для пула хранения данных. Перераспределение метаданных назначается, на одно или несколько конкретных устройств хранения данных в пределах пула хранения данных, оно основано на описанных ограничительных условиях способности к восстановлению.
[0006] Этот раздел Сущность Изобретения предоставляется для того, чтобы внести для рассмотрения выбор концепций в упрощенной форме, которые дополнительно описываются дальше в разделе Подробное Описание. Этот раздел Сущность Изобретения не предназначается для того, чтобы идентифицировать главные особенности или существенные особенности заявляемого изобретения, и при этом он не предназначается для того, чтобы использоваться в качестве средства при определении объема заявляемого изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0007] Подробное описание описывается со ссылкой на сопроводительные чертежи. На чертежах крайняя левая цифра(ы) ссылочной позиции идентифицирует чертеж, в котором впервые появляется эта ссылочная позиция. Использование одинаковых ссылочных позиций в различных случаях в описании и на чертежах может указывать аналогичные или идентичные элементы. Компоненты, представляемые на чертежах, могут быть указывающими на одну или несколько компонент, и таким образом в обсуждении ссылка может быть сделана взаимозаменяемо на эти компоненты в форме единственного или множественного числа.
[0008] Фиг. 1 представляет собой демонстрацию окружения в иллюстративном варианте осуществления, который вводят в действие, чтобы применять масштабируемые методики пула хранения данных.
[0009] Фиг. 2 изображает систему в иллюстративном варианте осуществления, показывая иерархию хранения, в которой может быть осуществлен пул хранения данных Фиг. 1.
[0010] Фиг. 3 представляет собой схему последовательных действий, изображающую процедуру в иллюстративном варианте осуществления, в котором методики описываются, чтобы назначать метаданные на устройства хранения в пределах иерархии хранения, эффективно используя сведения об областях неисправностей в пределах пула хранения данных
[0011] Фиг. 4 изображает систему в иллюстративном варианте осуществления, в котором распараллеливание применяется модулем диспетчера пула при управлении устройствами хранения данных в пределах пула хранения данных.
[0012] Фиг. 5 изображает систему в примере, в котором метаданные назначаются, и устройства хранения данных добавляются к пулу хранения данных.
[0013] Фиг. 6 представляет собой схему последовательных действий, изображающую процедуру в иллюстративном варианте осуществления, в котором метаданные назначаются, и устройства хранения данных добавляются к пулу хранения данных.
[0014] Фиг. 7 изображает систему в примере, в котором метаданные перебалансируются в пуле хранения данных в качестве реакции на указание.
[0015] Фиг. 8 представляет собой схему последовательных действий, изображающую процедуру в иллюстративном варианте осуществления, в котором метаданные перебалансируются в пуле хранения данных.
[0016] Фиг. 9 демонстрирует иллюстративную систему, включающую в свой состав разнообразные компоненты иллюстративного устройства, которое может быть осуществлено в виде вычислительного устройства любого типа, как это описано со ссылкой на чертежи, от Фиг. 1 до Фиг. 8, чтобы осуществлять варианты воплощения методик, описываемых в настоящем документе.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ВОПЛОЩЕНИЯ
Обзор
[0017] Методики масштабируемого хранения данных описываются. В одном или нескольких вариантах осуществления, описываются методики, при которых максимальное количество устройств хранения данных (например, это аппаратно-реализованные накопители) в пуле хранения данных может быть увеличено, путем размещения метаданных, которые описывают, "где" данные могут быть найдены в пуле хранения данных на подмножестве устройств хранения данных.
[0018] Назначение того, какое из устройств хранения данных должно принимать метаданные, может быть основанным на многообразии учитываемых факторов. Например, назначение может быть основанным на степени исправности, типе информационных соединений, типе носителей, способе использования в пределах пула хранения данных, или текущем статусе метаданных для устройств хранения данных. Дополнительно, области неисправностей в пределах иерархии хранения данных могут также учитываться, в том числе то, каким образом данные хранятся устройствами хранения данных, и распределение устройств хранения данных среди всех центров хранения и обработки данных, стоек и оболочек. Действуя таким образом, пул хранения данных может защищать от выходов из строя устройств на разных уровнях в пределах иерархии хранения пула хранения данных. Дополнительно, количество устройств хранения данных, так же как и учитываемые факторы, такие как количество областей неисправностей, которые следует использовать, могут быть заданы с учетом ограничительных условий способности к восстановлению, задаваемых для пула хранения данных.
[0019] Еще дополнительно, управление пулом хранения данных может задействовать методики, при которых распараллеливание применяется в качестве части работы добавления или удаления устройств хранения данных из пула хранения данных. Например, множество устройств хранения данных может быть отформатирована, в режиме параллельного выполнения, используя множество программных потоков, и затем добавлена к пулу хранения данных, в виде разовой транзакции. Аналогичные методики могут также быть применены для того, чтобы удалять устройства хранения данных из пула хранения данных.
[0020] Методики перебалансировки для назначения метаданных могут также быть применены пулами хранения данных. Например, указание может быть принято, что должно быть произведено изменение в распределении метаданных, такое указание, как от пользователя, вследствие добавления, удаления, выхода из строя устройств хранения данных или других устройств в иерархии хранения, и так далее. В качестве отклика, метаданные могут быть перебалансированы на основе ограничительных условий способности к восстановлению пула хранения данных, а также и других ранее описанных учитываемых факторов, таких как рабочие характеристики, области неисправностей и так далее. Дополнительное обсуждение этих и других методик может быть найдено по отношению к следующим разделам.
[0021] В последующем обсуждении иллюстративное окружение сначала описывается, которое может применять масштабируемые методики пула хранения данных, описываемые в настоящем документе. Иллюстративные процедуры затем описываются, которые могут быть выполнены в иллюстративном окружении, так же как и в других окружениях. Следовательно, функционирование иллюстративных процедур не является ограничиваемым иллюстративным окружением, и иллюстративное окружение не является ограничиваемым функционированием иллюстративных процедур.
[0022] Последующее обсуждение описывает масштабируемые методики пула хранения данных, которые могут быть осуществлены, задействовав ранее описанные системы и устройства. Аспекты каждой из процедур могут быть осуществлены как аппаратное обеспечение, аппаратно-реализованное программное обеспечение, или программное обеспечение, или как комбинации этого. Процедуры показываются в виде набора блоков, которые задают действия, выполняемые одним или несколькими устройствами, и они не обязательно ограничиваются распоряжениями, показанными для того, чтобы выполнять действия соответствующими блоками. В частях последующего обсуждения ссылка будет сделана на чертежи, описанные ранее.
[0023] Функциональные возможности, признаки, и концепции, описываемые по отношению к примерам на чертежах, от Фиг. 1 до Фиг. 8, могут быть применены в контексте процедур, описанных в настоящем документе. Дополнительно, функциональные возможности, признаки, и концепции, описываемые дальше по отношению к различным процедурам, могут взаимно заменяться между всеми различными процедурами, и они не являются ограничиваемыми вариантом осуществления в контексте индивидуальной процедуры. Более того, блоки, связанные с различными представительными процедурами, и соответствующие чертежи в настоящем документе, могут быть применены совместно и/или скомбинированы различными способами. Таким образом, индивидуальные функциональные возможности, признаки и концепции, описываемые по отношению к различным иллюстративным окружениям, устройствам, компонентам и процедурам в настоящем документе, могут использоваться в любых подходящих комбинациях и они не являются ограничиваемыми этими конкретными комбинациями, представляемыми посредством перечисленных примеров.
Иллюстративное Окружение
[0024] Фиг. 1 представляет собой демонстрацию окружения 100 в иллюстративном варианте осуществления, который вводят в действие, чтобы применять методики, описываемые в настоящем документе. Демонстрируемое окружение 100 включает в себя поставщика 102 услуг хранения и потребителя 104, которые коммуникативно сцепляются с помощью сети 106. Вычислительные устройства 108, 110, которые могут осуществлять поставщика 102 услуг хранения и потребителя 104, могут оснащаться разнообразными способами.
[0025] Например, вычислительные устройства 110 могут быть выполненными в виде компьютера, который способен обмениваться информацией по сети 106, такого как настольный компьютер, мобильный терминал, развлекательное приспособление, телевизионная приставка, коммуникативно сцепляемая с устройством отображения, беспроводным телефоном, игровой приставкой, и т. д. Таким образом, вычислительное устройство 110 может относиться к диапазону от полнофункциональных устройств со значительными памятью и ресурсами процессора (например, это персональные компьютеры, игровые приставки) до ограниченно функциональных устройств с незначительными памятью и/или ресурсами обработки (например, это традиционные телевизионные приставки, портативные игровые приставки). Дополнительно, вычислительное устройство может являться представителем множества различных устройств, таких как многочисленные специализированные станции, задействованные на предприятиях, чтобы выполнять действия, такие как действия вычислительных устройств 108 поставщика услуг хранения, и так далее.
[0026] Хотя сеть 106 демонстрируется в виде сети Интернет, сеть может допускать большое многообразие конфигураций. Например, сеть 106 может включать в себя глобальную сеть (WAN), локальную сеть (LAN), беспроводную сеть, общедоступную телефонную сеть, внутрикорпоративную сеть по стандартам сети Интернет, и так далее. Дополнительно, хотя единственная сеть 106 показывается, сеть 106 может оснащаться так, чтобы включать в свой состав многочисленные сети.
[0027] Поставщик 102 услуг хранения демонстрируется, как включающий в свой состав множество пулов 112 хранения данных, которые могут быть задействованы, чтобы хранить данные потребителей 104 и/или самого поставщика 102 услуг хранения, например, когда он осуществляется в качестве части работы Web-услуги, такой как хранение фотографий в услуге социальной сети. Функциональные возможности, подразумевающие управление пулами хранения данных, представляются модулем 114 диспетчера пула. Как это описано ранее, это управление может включать в себя выбор того, какие устройства хранения данных в пуле 112 хранения данных должны включать в себя метаданные, дополнительное обсуждение которого может быть найдено по отношению к Фиг. 2 и Фиг.3. Управление пулом 112 хранения данных может также применять распараллеливание с тем, чтобы форматировать и переформатировать устройства хранения данных одновременно, дополнительное обсуждение которого может быть найдено по отношению к чертежам, от Фиг. 4 до Фиг. 6. Дополнительно, модуль 114 диспетчера пула может поддерживать методики перебалансировки метаданных, в том числе в качестве реакции на пользовательский ввод данных, выход из строя устройств в иерархии хранения данных, добавление или удаление устройств хранения данных и так далее, как дополнительно описано по отношению к чертежам Фиг. 7 и Фиг. 8.
[0028] Фиг. 2 изображает систему 200 в иллюстративном варианте осуществления, показывая иерархию хранения, в которой пул 112 хранения данных на Фиг. 1 может осуществляться. Модуль 114 диспетчера пула в этом примере демонстрируется как включающий в свой состав модуль 202 управления метаданными, который является представителем функциональных возможностей выбирать способ того, каким образом метаданные назначаются на пул хранения данных.
[0029] Система 200 включает в свой состав пример иерархии хранения, которая включает в себя один или несколько центров 204 хранения и обработки данных, которые могут быть расположенными в различных географических местоположениях, и таким образом каждый центр 204 хранения и обработки данных предоставляет область неисправностей, в которой выход из строя устройств центра обработки данных 204 (например, нарушение электроснабжения оборудования в целом) в одном географическом местоположении может быть преодолен посредством возможности использования центра хранения и обработки данных в другом географическом местоположении.
[0030] Каждый из центров 204 хранения и обработки данных включает в себя множество стоек 206. Стойки 206, например, могут оснащаться так, чтобы включать в свой состав систему электроснабжения и переключающие устройства, чтобы размещать оболочки 208, которые также могут включать в себя систему электроснабжения и переключающие устройства, чтобы размещать устройства 210 хранения данных. Таким образом, стойки 206 могут также предоставлять область неисправностей, в которой выход из строя в одной из стоек 206 (например, переключателя в стойке) может быть преодолен с помощью другой стойки. Аналогично, оболочки 208 в пределах стоек могут также предоставлять область неисправностей в том смысле, что, выход из строя одной оболочки может быть преодолен с помощью другой, так что, если данные предоставляются с помощью многочисленных оболочек, эти копии могут использоваться, чтобы вытерпеть выход из строя. Еще дополнительно, устройства 210 хранения данных могут также предоставлять области неисправностей, аналогичным образом, посредством копирования данных на многочисленных устройствах 210 хранения данных. Другие уровни в иерархии хранения также предусматриваются, которые могут предоставлять области неисправностей, такие как блоки хранения, например, узлы.
[0031] Таким образом, устройства в пределах иерархии хранения могут предоставлять области неисправностей, которые являются используемыми, чтобы защищать от выхода из строя устройств, в пределах таких областей. Дополнительно, области неисправностей могут также являться задействованными иерархически, чтобы дополнительно защищать от выхода из строя устройств. В соответствии с этим, модуль 202 управления метаданными может эффективно использовать сведения об областях неисправностей в пределах иерархии хранения пула 112 хранения данных на Фиг. 2, чтобы выбирать, какие устройства должны принимать метаданные, которые описывают, где данные хранятся в пуле 112 хранения данных. Например, модуль 202 управления метаданными может использовать задаваемое ограничительное условие способности к восстановлению (например, это количество выходов из строя, которое требуется вытерпеть), чтобы распространять метаданные среди некоторого количества устройств, которые удовлетворяют требованиям этого задаваемого ограничительного условия способности к восстановлению, и максимально увеличивают для области неисправностей использование имеющихся в наличии ресурсов в пределах иерархии хранения. Дополнительное обсуждение этой методики может быть найдено по отношению к следующей процедуре.
[0032] Фиг. 3 изображает процедуру 300 в иллюстративном варианте осуществления, в котором методики описываются, чтобы назначать метаданные на устройства хранения в пределах иерархии хранения, эффективно используя сведения об областях неисправностей в пределах пула хранения данных. Данные получаются модулем 114 диспетчера пула, которые описывают области неисправностей, в иерархии хранения, и имеющиеся в наличии ресурсы хранения в пуле хранения данных (блок 302). Модуль 114 диспетчера пула, например, в качестве части работы управления пулом 112 хранения данных на Фиг. 1, может определять, какие устройства 210 хранения данных используются, чтобы хранить данные в пуле 112 хранения данных. Модуль 114 диспетчера пула может также определять другие устройства в иерархии хранения, которые применяются в качестве части пула 112 хранения данных, и из этих соответствующих областей неисправностей, таких как оболочки 208, стойки 206 и даже различные центры 204 хранения и обработки данных, которые могут быть применены, чтобы осуществлять пул 112 хранения данных.
[0033] Модуль 114 диспетчера пула может также определять рабочие характеристики устройств, ассоциированных с имеющимися в наличии ресурсами хранения, в пределах одного или более уровней иерархии хранения (блок 304). Это может включать в себя то, что определяются рабочие характеристики устройств 210 хранения данных, а так же устройств, ассоциированных с другими уровнями иерархии хранения, то есть среди всех различных границ неисправностей, таких как на уровне оболочек 208, стоек 206 и центров 204 хранения и обработки данных.
[0034] Многообразие различных рабочих характеристик может быть выявлено модулем 114 диспетчера пула. Например, степень исправности устройств (блок 306) может быть выявлена, так что эти сведения могут быть эффективно использованы, чтобы отдавать предпочтение работоспособным устройствам по сравнению с неработоспособными устройствами. Тип информационных соединений (блок 308) может также быть выявлен, чтобы придавать больший вес шинам устройств 210 хранения данных конкретного типа (например, NVMe по сравнению с другими типами шин), типам информационного соединения между оболочками 208 и стойкой 206, между стойками 206 и центром 204 хранения и обработки данных, и так далее. Тип носителя (блок 310) может также быть выявлен для устройств 210 хранения данных, например, с тем чтобы придавать больший вес и, следовательно, вероятность выбора SSD по сравнению с HDD.
[0035] Модуль 114 диспетчера пула может также определять то, каким образом используется устройство в иерархии хранения (блок 312). Для устройств 210 хранения данных, например, типы использования могут включать в себя авто-выделение, при котором устройство 210 хранения данных является доступным, чтобы принимать и хранить данные, в качестве части работы пула 112 хранения данных в общем смысле, в противоположность типам с управлением вручную, типам с протоколированием, типам с горячим резервированием, и так далее. В одном или нескольких вариантах осуществления, любому другому типу придают предпочтение по сравнению с типами изъятых из эксплуатации, например, по сравнению с устройством хранения данных 210, которое промаркировано для удаления из пула 112 хранения данных. Текущий статус метаданных (блок 314) может также быть выявлен, так что модуль 114 диспетчера пула может придавать больший вес (и таким образом предпочтение) устройствам 210 хранения данных и ассоциированным устройствам в иерархии хранения, которые в настоящий момент используются для хранения метаданных.
[0036] Распределение метаданных назначается на одно или более конкретных устройств хранения данных в пределах пула хранения данных, основываясь на описанных областях неисправностей и определенных рабочих характеристиках устройств в пределах одного или более уровней иерархии хранения (блок 316). Модуль 114 диспетчера пула, например, может оснащаться так, чтобы придавать больший вес этим рабочим характеристикам в порядке согласно составленному списку, например, степень исправности, затем тип информационных соединений, затем тип носителей, затем способ использования, и затем текущий статус метаданных. Если каждая из этих рабочих характеристик одинаковая для устройств 210 хранения данных, назначение того, какое устройства 210 хранения данных следует использовать для метаданных, может быть выбрано в произвольном порядке из этого набора. Дополнительно, области неисправностей могут также учитываться, так что границы неисправностей количества увеличиваются максимально, основываясь на имеющихся в наличии ресурсах пула 122 хранения данных, например, задействовав устройства 210 хранения данных в различных оболочках 208, стойках 206, центрах 204 хранения и обработки данных, и так далее, когда они имеются в наличии.
[0037] Количество устройств 210 хранения данных, которое следует использовать для хранения метаданных, может быть определено разнообразными способами. Например, ограничительные условия способности к восстановлению могут быть заданы, такие как количество выходов из строя, которое требуется вытерпеть, и количество устройств 210 хранения данных может быть выбрано, основываясь на этих ограничительных условиях, которые могут также быть основанными на иерархии хранения, описанной выше. Например, для одной оболочки шесть накопителей метаданных могут быть заданы для оболочки, для оболочек в количестве от двух до четырех три накопителя метаданных могут быть заданными для каждой оболочки, для оболочек в количестве от пяти до шестнадцати два накопителя метаданных могут быть заданными для каждой оболочки, для оболочек в количестве превышающем шестнадцать, один накопитель метаданных может быть заданным для каждой оболочки, и так далее. В каждой оболочке (или в более высокой области неисправностей) подходящие устройства 210 хранения данных могут быть выбраны, чтобы иметь метаданные, исходящие с самого приемлемого устройства. Если требуемое количество приемлемых устройств не находится, то выбор может быть сделан, чтобы включать в состав настолько много приемлемых устройств, насколько это возможно. Дополнительно, эти методики могут быть устойчивыми в том смысле, что, если у устройства 210 хранения данных уже есть метаданные, оно может продолжать это делать.
[0038] Действуя таким образом, сведения о топологии хранения, как это отображено в иерархии хранения и рабочих характеристиках устройств в иерархии, могут использоваться, чтобы причислять хранения метаданных к конкретному подмножеству устройств 210 хранения данных таким путем, который не оказывает воздействия на гарантии надежности, как это задается ограничительными условиями способности к восстановлению пула 112 хранения данных. Эти признаки могут также быть применены в качестве части работы добавления, удаления устройств 210 хранения данных, включая в себя перебалансировку метаданных, как это дополнительно описывается дальше.
[0039] Фиг. 4 изображает систему 400 в иллюстративном варианте осуществления, в котором распараллеливание применяется модулем 114 диспетчера пула при управлении устройствами хранения данных в пределах пула хранения данных. Когда создается пул 112 хранения данных, или добавляются устройства 210 хранения данных к существующему пулу хранения данных, используя традиционные методики, большая часть времени затрачивается на форматирование устройств 210 хранения данных и выполнение транзакции, чтобы добавлять каждое из устройств 210 хранения данных к пулу 112 хранения данных. В этом примере, однако, распараллеливание может быть применено, чтобы выполнять форматирование в режиме параллельного выполнения для совокупностей устройств хранения данных и затем добавлять такие устройства к пулу хранения данных с помощью разовой транзакции, таким образом, сокращая количество времени, которое требуется, чтобы создавать или добавлять устройства 210 хранения данных к пулу 112 хранения данных.
[0040] Например, система 400 на Фиг. 4 демонстрируется, используя первую, вторую и третью стадии 402, 404, 406. На первой стадии 402, запрос 408 принимается модулем 114 диспетчера пула поставщика 102 услуг хранения. Запрос 406, например, может исходить от потребителя 104, применяющего коммуникационный модуль 116 для обращения с помощью сети 106, от технического специалиста, связанного с поставщиком 102 услуг хранения, и так далее. Дополнительно, запрос 406 может оснащаться так, чтобы повлечь за собой создание пула 112 хранения данных, добавление устройств 210 хранения данных к существующему пулу 112 хранения данных, и так далее.
[0041] На второй стадии 404, модуль 114 диспетчера пула применяет распараллеливание, чтобы отформатировать множество устройств 210(1)-210(N) хранения данных в режиме параллельного выполнения. Например, диспетчер 114 пула может применять множество программных потоков 410(1)-410(N) так, чтобы каждый программный поток задействовался для форматирования соответствующего устройства 210(1)-210(N) хранения данных одновременно. Это может включать в себя форматирование безопасных разделов и так далее для каждого из устройств. Если количество устройств хранения данных, которое нужно отформатировать, меньше количества имеющихся в наличии программных потоков, это может быть выполнено за один проход.
[0042] В противном случае, рабочая очередность может быть применена, так что, как только форматирование программным потоком завершается, другое устройство хранения данных выбирается из очереди для форматирования. Например, если тридцать два программных потока имеются в наличии, но шестьдесят четыре устройства хранения данных должны быть отформатированы, каждый из этих тридцати двух программных потоков может быть задействован одновременно и последовательно выполнять форматирование. Однако если программный поток завершает форматирование досрочно, он может также выбирать устройство хранения данных из очереди безотлагательно, так что ни один из программных потоков не бездействует, если должны выполняться задачи форматирования. Действуя таким образом, группы программных потоков могут повторять форматирование сколько это требуется.
[0043] На третьей стадии 406, отформатированные устройства 210(1)-210(N) хранения данных из второй стадии 404 добавляются к пулу 112 хранения данных, в виде разовой транзакции, вместо того, чтобы применять отдельную транзакцию для каждого индивидуального устройства 210(1)-210(N) хранения данных, как это выполняется при использовании традиционных методик. Таким образом, в этом примере распараллеливание и использование разовой транзакции могут быть применены, чтобы сокращать количество времени, которое занимает создание или добавление устройств 210 хранения данных к пулу 112 хранения данных. Это распараллеливание может также быть выполнено в сочетании с назначениями метаданных, дополнительное обсуждение которых может быть найдено в последующем, и оно показывается на соответствующих чертежах.
[0044] Фиг. 5 изображает систему 500 в примере, в котором метаданные назначаются, и устройства хранения данных добавляются к пулу хранения данных. Фиг. 6 изображает процедуру 600 в иллюстративном варианте осуществления, в котором метаданные назначаются, и устройства хранения данных добавляются к пулу хранения данных. В соответствии с этим, последующее обсуждение ссылается как на Фиг. 5, так и на Фиг. 6, взаимозаменяемо. Множество устройств хранения данных форматируется, используя множество программных потоков одновременно, при помощи одного или нескольких вычислительных устройств (блок 602). Вычислительное устройство, осуществляющее модуль 114 диспетчера пула, например, может применять множество программных потоков, чтобы отформатировать множество устройств 210(1)-210(N) хранения данных, как это описано ранее по отношению к Фиг. 3.
[0045] Первая, вторая, третья и четвертая стадии 502, 504, 506, 508 демонстрируются в системе 500 на Фиг. 5. На первой стадии 502, в случае, когда создается новый пул хранения данных, одно или несколько устройств хранения данных пула хранения данных выбираются для использования при хранении метаданных для пула 112 хранения данных. Например, запрос может быть сделан, добавить сто устройств хранения данных к пулу 112 хранения данных. В соответствии с этим, одно или несколько таких устройств могут оснащаться так, чтобы сохранять метаданные для этих дополнительных устройств и добавляются к пулу 112 хранения данных.
[0046] Затем, на второй стадии 504, множество устройств 210(2)-210(100) хранения данных добавляется к пулу хранения данных с помощью разовой транзакции при помощи упомянутых одного или нескольких вычислительных устройств (блок 606). Продолжая с помощью предшествующего примера, упомянутая разовая транзакция может использоваться, чтобы создавать пул и сохранять метаданные на выбранных накопителях.
[0047] В другом примере, в котором устройства хранения данных добавляются к существующему пулу хранения данных, упомянутая разовая транзакция может пойти в существующие устройства хранения данных, которые используются для хранения метаданных, чтобы добавлять эти устройства к пулу хранения данных. В соответствии с этим, в такой ситуации на третьей стадии 506 обновление 512 метаданных предоставляется для устройства 508 хранения метаданных из пула 112 хранения данных, в виде разовой транзакции, так что эти дополнительные устройства 210(2)-210(100) хранения данных, так же как и само устройство 508 хранения метаданных включаются в состав как часть пула 112 хранения данных.
[0048] На четвертой стадии 508, обновленное назначение 514 метаданных выполняется для пула 112 хранения данных, чтобы обращаться к этим дополнительным устройствам хранения данных и ассоциированным устройствам в иерархии хранения. Например, распределение метаданных на одно или несколько конкретных устройств хранения данных в пределах пула 112 хранения данных может быть назначено, основываясь на определенных рабочих характеристиках устройств хранения данных в пределах пула хранения данных (блок 610). Для сценария, в котором устройства хранения данных добавляются к существующему пулу, это может включать в себя рабочие характеристики устройств хранения данных, ранее включенных в пул 112 хранения данных, так же как и дополнительных устройств хранения данных, добавляемых к пулу 112 хранения данных. Это назначение может быть выполнено разнообразными способами, такими как при использовании методики, ранее описанной по отношению к Фиг. 2 и 3.
[0049] Метаданные затем распределяются на упомянутые один или несколько конкретных устройств хранения данных, согласно назначенному распределению, последовательно, по одному (блок 612). Следуя предшествующему сценарию, если устройства хранения данных добавляются к существующему пулу хранения данных, это распределение может быть выполненным последовательно для назначенных конкретных устройств хранения данных, чтобы защищать от выхода из строя.
[0050] Например, при подходе "большинство выигрывает", если неожиданно сталкиваются с выходом из строя во время распределения метаданных, методика голосования может быть выполнена, чтобы определять состояние, в котором можно помещать устройства хранения данных в пул хранения данных, например, "откатываться назад" или продвигаться к новому назначению. Действуя таким образом, большинство может быть сохранено, путем добавления устройств последовательно. В сценарии, в котором пул хранения данных 114 создается, однако, такие проблемы не являются существенными, и, вследствие этого, назначенные конкретные устройства хранения данных могут принимать распределения метаданных одновременно, например, посредством распараллеливания, как это описано ранее.
[0051] Хотя добавление устройств 210 хранения данных к пулу 112 хранения данных было описано, это должно представляться как очевидно вытекающее, что эти методики, подразумевающие распараллеливание и разовые транзакции, в равной степени являются применимыми к удалению множества устройств хранения данных из пула хранения данных. Продолжая с помощью предшествующего примера, добавляемые устройства хранения данных могут быть задействованы, чтобы заменять существующие устройства хранения данных в пуле 112 хранения данных. Следовательно, сначала новые устройства добавляются, и метаданные перераспределяются. Устройства, которые следует удалять, могут затем быть промаркированы, как изъятые из эксплуатации, затем назначение метаданных может быть выполнено, так что метаданные удаляются из этих маркированных устройств, и распараллеливание посредством использования программных потоков может быть применено, чтобы удалять изъятые из эксплуатации устройства из пула 112 хранения данных, переформатирование устройств, и так далее. Таким образом, использование распараллеливания и разовой транзакции может использоваться, чтобы улучшать эффективность и употребление ресурсов пулом 112 хранения данных и модулем 114 диспетчера пула, по сравнению с традиционными методиками.
[0052] Фиг. 7 изображает систему 700 в примере, в котором метаданные перебалансируются в пуле хранения данных в качестве реакции на указание. Фиг. 8 изображает процедуру 800 в иллюстративном варианте осуществления, в которой метаданные перебалансируются в пуле хранения данных. В соответствии с этим, последующее обсуждение ссылается как на Фиг. 7, так и на Фиг. 8, взаимозаменяемо.
[0053] Одним или более вычислительными устройствами принимается указание перебалансировать распределение метаданных в пуле хранения данных (блок 802). На первой стадии 702, например, указание 708 перебалансировки принимается модулем 114 диспетчера пула на поставщике 112 услуг хранения. Указание 708 перебалансировки может исходить от потребителя 104 или технического специалиста, как это описано ранее, может автоматически генерироваться в качестве реакции на регистрирование выхода из строя, добавление или удаление устройств в пределах иерархии хранения пула 112 хранения данных, модулем 114 диспетчера пула и так далее.
[0054] Данные получаются, которые описывают ограничительные условия способности к восстановлению, задаваемые для пула хранения данных (блок 804), такие как разрешенное количество выходов из строя, задаваемое, используя значение по умолчанию, и так далее. В соответствии с этим, перераспределение метаданных может быть назначено на одно или несколько конкретных устройств хранения данных, в пределах пула хранения данных, основываясь на описанных ограничительных условиях способности к восстановлению (блок 806). Как это описано ранее по отношению к чертежам, от Фиг. 2 до Фиг. 6, например, методики выбора 710 метаданных могут быть применены, чтобы назначать метаданные на хранение на конкретных устройствах 210(1)-210(N) хранения данных в пределах пула 112 хранения данных, основываясь на рабочих характеристиках, границах неисправностей, и так далее. Дополнительно, ограничительные условия 712 способности к восстановлению могут также быть применены, в качестве части работы этого назначения, например, чтобы задавать количество устройств хранения данных для поддержки количества выходов из строя.
[0055] На третьей стадии 706, выполняется действие 714 перебалансировки, которое может включать в себя использование транзакций, распараллеливания и так далее, как это описано ранее, оно переназначает метаданные в пуле 112 хранения данных. Действуя таким образом, при управлении пулом 112 хранения данных со стороны модуля 114 диспетчера пула могут приниматься во внимание одна или более совокупностей различных учитываемых факторов, чтобы поддерживать целевые показатели масштабируемости и эффективности.
Иллюстративные Система и Устройство
[0056] Фиг. 9 демонстрирует иллюстративную систему в 900 в общем смысле, которая включает в свой состав иллюстративное вычислительное устройство 902, которое является представителем одного или нескольких вычислительных систем и/или устройств, которые могут осуществлять разнообразные методики, описываемые в настоящем документе. Это демонстрируется посредством включения в состав модуля 114 диспетчера пула, в качестве части ресурсов, абстрагируемых платформой. Вычислительное устройство 902 может представлять собой, например, специализированную станцию поставщика услуг, устройство, ассоциированное с клиентом (например, клиентское устройство), систему на микросхеме и/или любое другое подходящее вычислительное устройство, или вычислительную систему.
[0057] Иллюстративное вычислительное устройство 902, как это демонстрируется, включает в свой состав систему 904 обработки, один или несколько считываемых компьютером носителей 906, и один или несколько интерфейсов 908 ввода-вывода, которые коммуникативно сцепляются, один с другим. Хотя это не показано, вычислительное устройство 902 может дополнительно включать в свой состав системную шину, или другую систему передач команд и данных, которая сцепляет разнообразные компоненты, одну с другой. Системная шина может включать в себя любую одну или комбинацию из различных шинных структур, таких как шина памяти или контроллер памяти, периферийная шина, универсальная последовательная шина, и/или шина процессора или локальная шина, которая задействует любое многообразие шинных архитектур. Многообразие других примеров также предусматривается, таких как линии управления и передачи данных.
[0058] Система 904 обработки является представителем функциональных возможностей выполнять одно или несколько действий, используя аппаратное обеспечение. В соответствии с этим, система 904 обработки демонстрируется, как включающая в свой состав элемент 910 аппаратного обеспечения, который может быть выполнен в виде процессоров, функциональных блоков, и т. д. Это может включать в себя вариант осуществления как аппаратное обеспечение в виде интегральной микросхемы, зависящей от типа приложения, или другого логического устройства, сформированного с использованием одного или нескольких полупроводников. Элементы аппаратного обеспечения 910 не являются ограничиваемыми материалами, из которых они формируются, или механизмами обработки, применяемыми в них. Например, процессоры могут состоять из полупроводника(ов) и/или транзисторов (например, это электронные интегральные микросхемы (IC)). В таком контексте, исполняемые процессором предписания могут представлять собой предписания с электронным исполнением.
[0059] Считываемые компьютером носители 906 хранения демонстрируются как включающие в свой состав память/хранение 912. Память/хранение 912 представляет собой объем памяти/хранения, связанный с одним или несколькими считываемыми компьютером носителями. Компонента 912 памяти/хранения может включать в свой состав энергозависимые носители (такие как запоминающее устройство с произвольной выборкой (RAM)) и/или энергонезависимые носители (такие как постоянное запоминающее устройство (ROM), флэш-память, оптические диски, магнитные диски, и т. д.). Компонента 912 памяти/хранения может включать в себя встроенные носители (например, RAM, ROM, встроенный аппаратно-реализованный накопитель, и так далее), так же как и съемные носители (например, флэш-память, съемный аппаратно-реализованный накопитель, оптический диск, и т. д.). Считываемые компьютером носители 906 могут оснащаться и другими разнообразными способами, как это дополнительно описывается дальше.
[0060] Интерфейс(ы) 908 ввода/вывода данных являются представителями функциональных возможностей позволять пользователю вводить команды и информацию на вычислительное устройство 902, и также позволять информации быть представленной для пользователя и/или для других компонент или устройств, используя разнообразные устройства ввода/вывода данных. Примеры устройств ввода данных включают в себя клавиатуру, устройство управления курсором (например, мышь), микрофон, сканирующее устройство, сенсорные функциональные возможности (например, емкостные или другие датчики, которые выполняются с возможностью регистрировать физическое соприкосновение), съемочную камеру (например, которая может применять видимые или невидимые длины волн, такие как инфракрасные частоты, чтобы распознавать передвижения, такие как жесты, которые не подразумевают соприкосновение), и т. д. Примеры устройств вывода данных включают в себя устройство отображения (например, монитор или проектор), акустические системы, принтер, сетевую плату, устройство тактильного отклика, и т. д. Таким образом, вычислительное устройство 902 может оснащаться разнообразными способами, как это дополнительно описывается дальше, чтобы поддерживать пользовательское перекрестное взаимодействие.
[0061] Разнообразные методики могут быть описаны в настоящем документе в общем контексте программного обеспечения, элементов аппаратного обеспечения, или программных модулей. В общем смысле, такие модули включают в себя стандартные подпрограммы, программы, объекты, элементы, компоненты, структуры данных, и т.д., которые выполняют конкретные задачи или осуществляют конкретные абстрактные типы данных. Термины "модуль", "функциональные возможности", и "компонента", как это используется в настоящем документе в общем смысле, представляют собой программное обеспечение, аппаратно-реализованное программное обеспечение, аппаратное обеспечение, или комбинацию этого. Признаки методик, описываемых в настоящем документе, являются независимыми от платформы, имея в виду, что методики могут быть осуществлены на многообразии коммерческих вычислительных платформ, обладающих многообразием процессоров.
[0062] Вариант осуществления описанных модулей и методик может сохраняться на некоторой форме считываемых компьютером носителей (или передаваться с ее помощью). Считываемые компьютером носители могут включать в себя многообразие носителей, к которым может обращаться вычислительное устройство 902. В качестве примера, но не в качестве ограничения, считываемые компьютером носители могут включать в свой состав "считываемые компьютером носители хранения" и ʺсчитываемые компьютером носители сигналовʺ.
[0063] Термин "Считываемые компьютером носители хранения" может ссылаться на носители и/или устройства, которые создают возможности постоянного и/или энергонезависимого хранения информации, в отличие от простой передачи сигналов, несущих волн, или сигналов как таковых. Таким образом, термин считываемые компьютером носители хранения ссылается на носители, переносящие не сигналы. Считываемые компьютером носители хранения включают в свой состав аппаратное обеспечение, такое как энергозависимые и энергонезависимые, сменяемые и несъемные носители и/или устройства хранения, осуществляемые в способе или в техническом оснащении, подходящем для хранения информации, таком как считываемые компьютером предписания, структуры данных, программные модули, логические элементы/схемы, или другие данные. Примеры считываемых компьютером носителей хранения могут включать в свой состав, но не ограничиваются этим, RAM, ROM, EEPROM, флэш-память или другое техническое оснащение памяти, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, накопители на жестких дисках, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие устройства магнитного хранения, или другое устройство хранения, материальные носители данных, или готовое изделие, подходящее для того, чтобы хранить требуемую информацию, и к которому может обращаться компьютер.
[0064] Термин ʺСчитываемые компьютером носители сигналовʺ может ссылаться на носитель, переносящий сигнал, который выполняется с возможностью передавать предписания к аппаратному обеспечению вычислительного устройства 902, например, с помощью сети. Носители сигналов, как правило, могут воплощать считываемые компьютером предписания, структуры данных, программные модули, или другие данные как модулируемый сигнал данных, такой как несущие волны, сигналы данных, или другой транспортный механизм. Носители сигналов также включают в себя любые носители доставки данных. Термин "модулируемый сигнал данных" означает сигнал, у которого одну или больше из его характеристик изменили или видоизменили таким образом, чтобы закодировать информацию как сигнал. В качестве примера, и не в качестве ограничения, носители обменов данными включают в себя проводные носители, такие как проводное сетевое или непосредственно-проводное соединение, и беспроводные носители, такие как акустические, RF, в диапазоне инфракрасного излучения, и другие беспроводные носители.
[0065] Как это описано ранее, элементы 910 аппаратного обеспечения и считываемые компьютером носители 906 являются представителями модулей, логической схемы программируемых устройств и/или логической схемы встроенных устройств, осуществляемой как форма аппаратного обеспечения, которая может быть применена в некоторых вариантах воплощения, чтобы осуществлять, по меньшей мере, некоторые аспекты методик, описываемых в настоящем документе, таких как выполнение одного или нескольких предписаний. Аппаратное обеспечение может включать в себя компоненты интегральной микросхемы или системы на микросхеме, интегральной микросхемы, зависящей от типа приложения (ASIC, application-specific integrated circuit), матрицы логических элементов, программируемой в условиях эксплуатации (FPGA, field-programmable gate array), сложной программируемой логической интегральной схемы (CPLD, complex programmable logic device), и других вариантов осуществления в виде аппаратного оборудования на микросхемах или другого аппаратного обеспечения. В этом контексте аппаратное обеспечение может действовать в виде устройства обработки, которое выполняет программные задачи, определяемые предписаниями и/или логической схемой, воплощаемой аппаратным обеспечением, так же как и аппаратным обеспечением, задействованным, чтобы сохранять предписания для исполнения, например, считываемые компьютером носители хранения, описанные ранее.
[0066] Комбинации из вышеупомянутого могут также быть применены, чтобы осуществлять разнообразные методики, описываемые в настоящем документе. В соответствии с этим, программное обеспечение, аппаратное обеспечение, или исполняемые модули могут быть осуществлены в виде одного или нескольких предписаний и/или логических схем, воплощаемых на некоторой форме считываемых компьютером носителей хранения, и/или посредством одного или нескольких элементов 910 аппаратного обеспечения. Вычислительное устройство 902 может оснащаться так, чтобы осуществлять конкретные предписания и/или функциональные средства, соответствующие модулям программного и/или аппаратного обеспечения. В соответствии с этим, вариант осуществления модуля, который представляет собой исполняемое вычислительное устройство 902 в виде программного обеспечения, может быть реализован, по меньшей мере, частично как аппаратное обеспечение, например, посредством использования считываемых компьютером носителей хранения и/или элементов 910 аппаратного обеспечения из системы 904 обработки. Предписания и/или функциональные средства могут быть исполняемыми/задействованными при помощи одного или нескольких готовых изделий (например, это один или несколько вычислительных устройств 902 и/или систем 904 обработки), чтобы осуществлять методики, модули, и примеры, описываемые в настоящем документе.
[0067] Как это дополнительно продемонстрировано на Фиг. 9, примерная система 900 создает возможности для повсеместно распространенных окружений для беспрепятственного пользовательского взаимодействия в случае, когда пользователь управляет действиями приложений на персональном компьютере (PC), на устройстве телевизионного приемника, и/или на мобильном устройстве. Услуги и приложения действуют, в значительной степени, аналогично во всех трех окружениях для пользовательского взаимодействия, когда пользователь переходит от одного устройства к следующему, при этом задействовав приложение, играя в видеоигру, смотря видеофильм, и так далее.
[0068] В примерной системе 900 многочисленные устройства являются взаимно соединенными посредством центрального вычислительного устройства. Центральное вычислительное устройство может являться локальным для многочисленных устройств или оно может быть расположено удаленно от многочисленных устройств. В одном варианте воплощения, центральное вычислительное устройство может представлять собой облако из одного или нескольких компьютеров на специализированных станциях, которые соединяются с многочисленными устройствами посредством сети, сети Интернет, или другого потока обмена данными.
[0069] В одном варианте воплощения, эта архитектура взаимных соединений допускает, что функциональные возможности могут доставляться на любые из многочисленных устройств, чтобы предоставлять общеупотребительное и беспрепятственное взаимодействие для пользователя многочисленных устройств. Каждое из многочисленных устройств может обладать различными физическими требованиями и техническими возможностями, и центральное вычислительное устройство использует платформу, чтобы создавать возможность для доставки к устройству взаимодействия, которое с одной стороны специально разрабатывается в соответствии с устройством, а с другой стороны все же является общеупотребительным для всех устройств. В одном варианте воплощения, класс целевых устройств создается, и взаимодействия специально разрабатываются в соответствии с типическим классом устройств. Класс устройств может быть определен посредством физических признаков, типов использования, или других общих характеристик устройств.
[0070] В разнообразных вариантах осуществления, вычислительное устройство 902 может допускать многообразие различных конфигураций, таких как конфигурации для использований компьютером 914, мобильным оборудованием 916 и телевизионным оборудованием 918. Каждая из этих конфигураций включает в себя устройства, которые могут обладать, в общем смысле, различными конструкциями и техническими возможностями, и таким образом вычислительное устройство 902 может оснащаться в соответствии с одним или несколькими различными классами устройства. Например, вычислительное устройство 902 может быть осуществлено в виде устройства класса компьютер 914, которое включает в себя персональный компьютер, настольный компьютер, компьютер с несколькими экранами, ноутбук, нетбук, и так далее.
[0071] Вычислительное устройство 902 может также быть осуществлено в виде устройства класса мобильное оборудование 916, которое включает в себя мобильные устройства, такие как мобильный телефон, переносной аудио-плеер, переносное игровое устройство, планшетный компьютер, компьютер с несколькими экранами и так далее. Вычислительное устройство 902 может также быть осуществлено в виде устройства класса телевизионное оборудование 918, которое включает в себя устройства, обладающие со значительными экранами (или соединенные с ними), в общем смысле, в повседневных окружениях просмотра. Эти устройства включают в себя телевизионные приемники, телевизионные приставки, игровые консоли, и так далее.
[0072] Методики, описываемые в настоящем документе, могут быть поддержаны этими разнообразными конфигурациями вычислительного устройства 902 и не ограничиваются этими специализированными примерами методик, описываемых в настоящем документе. Эти функциональные возможности могут также быть осуществлены полностью или частично, посредством использования распределенной системы, такой как посредством "облака" 920 с помощью платформы 922, как это описывается дальше.
[0073] Облако 920 включает в себя и/или является представителем платформы 922 для ресурсов 924. Платформа 922 абстрагирует основополагающие функциональные возможности аппаратного обеспечения (например, специализированных станций) и ресурсы программного обеспечения облака 920. Ресурсы 924 могут включать в себя приложения и/или данные, которые могут быть задействованы во время осуществления компьютерной обработки на специализированных станциях, которые являются удаленными по отношению к вычислительному устройству 902. Ресурсы 924 могут также включать в себя услуги, предоставляемые по сети Интернет и/или посредством абонентской сети, такой как сотовая связь или сеть Wi-Fi.
[0074] Платформа 922 может абстрагировать ресурсы и функциональные средства, чтобы соединять вычислительное устройство 902 с другими вычислительными устройствами. Платформа 922 может также способствовать абстрактному масштабированию ресурсов, чтобы предоставлять соответствующий уровень масштаба для неожиданно возникающей потребности в ресурсах 924, что осуществляется с помощью платформы 922. В соответствии с этим, в варианте воплощения взаимно соединенных устройств, вариант осуществления функциональных возможностей, описываемых в настоящем документе, может быть распределен повсюду в системе 900. Например, функциональные возможности могут быть осуществлены частично на вычислительном устройстве 902, так же как и с помощью платформы 922, которая абстрагирует функциональные возможности облака 920.
Заключение
[0075] Хотя иллюстративные варианты осуществления были описаны на специализированном языке структурных признаков и/или методологических действий, нужно подразумевать, что варианты осуществления, определяемые в прилагаемой формуле изобретения, не обязательно ограничиваются этими специализированными признаками или описанными действиями. Скорее, специализированные признаки и действия раскрываются в виде иллюстративных форм воплощений признаков из пунктов формулы изобретения.

Claims (26)

1. Способ управления ресурсами хранения пула хранения данных посредством вычислительного устройства, содержащий этапы, на которых:
получают данные, которые описывают области неисправностей в иерархии хранения и имеющиеся в наличии ресурсы хранения в пуле хранения данных;
назначают распределение метаданных на одно или более конкретных устройств хранения данных в пуле хранения данных, основываясь на описанных областях неисправностей; и
определяют рабочие характеристики устройств, ассоциированных с упомянутыми имеющимися в наличии ресурсами хранения, в пределах одного или более уровней иерархии хранения, причем рабочие характеристики включают в себя степень исправности, тип информационного соединения, тип носителя, типы использования в пределах пула хранения данных или то, используются ли эти устройства в настоящий момент для хранения метаданных,
при этом упомянутое назначение осуществляется дополнительно на основе упомянутых определенных рабочих характеристик устройств в пределах одного или более уровней иерархии хранения.
2. Способ по п. 1, в котором метаданные являются используемыми для нахождения соответствующих местоположений, в которых данные хранятся в пуле хранения данных.
3. Способ по п. 1, в котором некоторые из рабочих характеристик учитываются с большим весом в определенном порядке.
4. Способ по п. 1, в котором количество упомянутых одного или более конкретных устройств хранения данных в пуле хранения данных, которое должно использоваться для приема назначенных метаданных, основывается по меньшей мере отчасти на одном или более ограничительных условиях способности к восстановлению, заданных для пула хранения данных, при этом ограничительные условия способности к восстановлению задают количество выходов из строя устройств, которое разрешено при условии, что пул хранения данных все еще остается рабочим.
5. Способ по п. 1, в котором области неисправностей включают в себя уровни центров хранения и обработки данных, стоек, оболочек, устройств хранения данных и блоков хранения в иерархии хранения.
6. Способ по п. 1, в котором упомянутое назначение выполняется, чтобы максимально увеличивать использование количества областей неисправностей для заданного количества устройств хранения данных в пуле хранения данных, которые должны принимать по меньшей мере часть метаданных.
7. Способ по п. 6, в котором упомянутое заданное количество устройств хранения данных основывается по меньшей мере отчасти на одном или более ограничительных условиях способности к восстановлению, заданных для пула хранения данных.
8. Способ по п. 1, дополнительно содержащий этапы, на которых:
добавляют множество устройств хранения данных к пулу хранения данных посредством одной транзакции; и
в качестве реакции на это добавление назначают распределение метаданных в пуле хранения данных, основываясь на рабочих характеристиках каждого устройства хранения данных в пуле хранения данных.
9. Способ по п. 8, дополнительно содержащий этап, на котором форматируют упомянутое множество устройств хранения данных, используя совокупность программных потоков одновременно, при этом упомянутое добавление выполняется с использованием отформатированного множества устройств хранения данных.
10. Способ по п. 8, дополнительно содержащий этап, на котором обновляют метаданные в пуле хранения данных в качестве реакции на упомянутое добавление множества устройств хранения данных к пулу хранения данных.
11. Способ по п. 8, дополнительно содержащий этап, на котором удаляют другое множество устройств хранения данных из пула хранения данных, используя упомянутое множество программных потоков.
12. Способ по п. 1, дополнительно содержащий этапы, на которых:
принимают указание перебалансировать распределение метаданных в пуле хранения данных;
получают данные, которые описывают ограничительные условия способности к восстановлению, заданные для пула хранения данных; и
назначают перераспределение метаданных на одно или более конкретных устройств хранения данных в пуле хранения данных, основываясь на описанных ограничительных условиях способности к восстановлению.
13. Система управления ресурсами хранения пула хранения данных, содержащая один или более модулей, реализованных по меньшей мере отчасти в аппаратном обеспечении вычислительного устройства, каковые один или более модулей выполнены с возможностью осуществлять операции, содержащие:
получение данных, которые описывают области неисправностей в иерархии хранения и имеющиеся в наличии ресурсы хранения в пуле хранения данных;
назначение распределения метаданных на одно или более конкретных устройств хранения данных в пуле хранения данных, основываясь на описанных областях неисправностей; и
определение рабочих характеристик устройств, ассоциированных с имеющимися в наличии ресурсами хранения, в пределах одного или более уровней иерархии хранения, причем рабочие характеристики включают в себя степень исправности, тип информационного соединения, тип носителя, типы использования в пределах пула хранения данных или то, используются ли эти устройства в настоящий момент для хранения метаданных,
при этом упомянутое назначение осуществляется дополнительно на основе упомянутых определенных рабочих характеристик устройств в пределах одного или более уровней иерархии хранения.
RU2017107276A 2014-09-12 2015-09-11 Масштабируемые пулы хранения данных RU2702268C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/485,497 2014-09-12
US14/485,497 US9678839B2 (en) 2014-09-12 2014-09-12 Scalable data storage pools
PCT/US2015/049548 WO2016040722A1 (en) 2014-09-12 2015-09-11 Scalable data storage pools

Publications (3)

Publication Number Publication Date
RU2017107276A RU2017107276A (ru) 2018-09-07
RU2017107276A3 RU2017107276A3 (ru) 2019-04-11
RU2702268C2 true RU2702268C2 (ru) 2019-10-07

Family

ID=54251725

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017107276A RU2702268C2 (ru) 2014-09-12 2015-09-11 Масштабируемые пулы хранения данных

Country Status (7)

Country Link
US (2) US9678839B2 (ru)
EP (1) EP3191959B1 (ru)
JP (1) JP6616827B2 (ru)
CN (1) CN106663042B (ru)
BR (1) BR112017003660B1 (ru)
RU (1) RU2702268C2 (ru)
WO (1) WO2016040722A1 (ru)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9934389B2 (en) * 2015-12-18 2018-04-03 Amazon Technologies, Inc. Provisioning of a shippable storage device and ingesting data from the shippable storage device
US11188564B1 (en) * 2016-06-27 2021-11-30 Amazon Technologies, Inc. Shippable storage devices for bulk data transfer, storage, and remote synchronization
JP7053399B2 (ja) 2018-07-31 2022-04-12 キオクシア株式会社 情報処理システム
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US11442642B2 (en) 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US11023324B2 (en) * 2019-01-31 2021-06-01 EMC IP Holding Company LLC Harmonization of failure domains in a distributed system
US11157482B2 (en) * 2019-02-05 2021-10-26 Seagate Technology Llc Data distribution within a failure domain tree
CN112068976A (zh) * 2019-06-10 2020-12-11 北京京东尚科信息技术有限公司 数据备份存储方法及装置、电子设备和存储介质
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
US11301327B2 (en) 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11416357B2 (en) * 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster
EP4384895A1 (en) * 2021-08-13 2024-06-19 Micron Technology, Inc. Undo capability for memory devices
CN114564307B (zh) * 2022-02-28 2024-10-15 苏州浪潮智能科技有限公司 一种内存分配方法、装置、设备和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156957A1 (en) * 2006-01-03 2007-07-05 Emc Corporation Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment
US20080052293A1 (en) * 2006-08-24 2008-02-28 Sun Microsystems, Inc. File system with distributed components
US20080059731A1 (en) * 2006-08-31 2008-03-06 International Business Machines Corporation Backup of hierarchically structured storage pools
RU108662U1 (ru) * 2011-04-27 2011-09-20 Учреждение Российской академии наук Институт программных систем им. А.К. Айламазяна РАН (ИПС им. А.К. Айламазяна РАН) Система хранения данных с параллельным доступом
US8495111B1 (en) * 2007-09-28 2013-07-23 Symantec Corporation System and method of hierarchical space management for storage systems

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865596B2 (en) 2000-11-02 2011-01-04 Oracle America, Inc. Switching system for managing storage in digital networks
US8671132B2 (en) 2003-03-14 2014-03-11 International Business Machines Corporation System, method, and apparatus for policy-based data management
JP2007511820A (ja) * 2003-10-27 2007-05-10 アーカイヴァス インコーポレイテッド 独立ノード冗長アレイに対するポリシーに基づく管理
JP4483342B2 (ja) * 2004-02-27 2010-06-16 株式会社日立製作所 システム復旧方法
US7657581B2 (en) * 2004-07-29 2010-02-02 Archivas, Inc. Metadata management for fixed content distributed data storage
US7444360B2 (en) * 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
US8495010B2 (en) 2005-11-04 2013-07-23 Oracle America, Inc. Method and system for adaptive metadata replication
US20070214105A1 (en) * 2006-03-08 2007-09-13 Omneon Video Networks Network topology for a scalable data storage system
US7640278B2 (en) * 2006-06-28 2009-12-29 International Business Machines Corporation System and method for implementing a partial-blocking consistency point in a database
US8090792B2 (en) * 2007-03-08 2012-01-03 Nec Laboratories America, Inc. Method and system for a self managing and scalable grid storage
JP2009163664A (ja) * 2008-01-10 2009-07-23 Nippon Telegr & Teleph Corp <Ntt> 障害耐性を備えた情報検索装置、障害耐性を備えた情報検索方法、障害耐性を備えた情報検索プログラムおよびそのプログラムを記録した記録媒体
US8583893B2 (en) 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes
US8589554B2 (en) 2009-12-30 2013-11-19 Bmc Software, Inc. Intelligent and elastic resource pools for heterogeneous datacenter environments
US8793290B1 (en) 2010-02-24 2014-07-29 Toshiba Corporation Metadata management for pools of storage disks
US8595184B2 (en) * 2010-05-19 2013-11-26 Microsoft Corporation Scaleable fault-tolerant metadata service
US9244976B1 (en) * 2010-12-16 2016-01-26 The George Washington University and Board of Regents Just-in-time analytics on large file systems and hidden databases
US8706946B2 (en) 2011-02-11 2014-04-22 International Business Machines Corporation Extender storage pool system
US8806154B1 (en) 2011-05-06 2014-08-12 Chelsio Communications, Inc. Thin provisioning row snapshot with reference count map
US20130067346A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Content User Experience
CN102521063B (zh) * 2011-11-30 2013-12-25 广东电子工业研究院有限公司 一种适用于虚拟机迁移和容错的共享存储方法
US9015411B2 (en) * 2011-12-02 2015-04-21 Compellent Technologies System and method for unbalanced raid management
US20140149663A1 (en) 2012-11-25 2014-05-29 Tonian Inc. Storage pools management and/or presentation
US9152642B2 (en) * 2012-12-21 2015-10-06 Zetta, Inc. Systems and methods for on-demand data storage
US8949655B2 (en) * 2013-01-31 2015-02-03 Alcatel Lucent Preventing extreme coresidency hazards in cloud computing
US10671500B2 (en) * 2014-06-09 2020-06-02 Oracle International Corporation Sequential resilvering of storage devices with reduced restarts

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156957A1 (en) * 2006-01-03 2007-07-05 Emc Corporation Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment
US20080052293A1 (en) * 2006-08-24 2008-02-28 Sun Microsystems, Inc. File system with distributed components
US20080059731A1 (en) * 2006-08-31 2008-03-06 International Business Machines Corporation Backup of hierarchically structured storage pools
US8495111B1 (en) * 2007-09-28 2013-07-23 Symantec Corporation System and method of hierarchical space management for storage systems
RU108662U1 (ru) * 2011-04-27 2011-09-20 Учреждение Российской академии наук Институт программных систем им. А.К. Айламазяна РАН (ИПС им. А.К. Айламазяна РАН) Система хранения данных с параллельным доступом

Also Published As

Publication number Publication date
JP6616827B2 (ja) 2019-12-04
BR112017003660A2 (pt) 2017-12-12
JP2017527911A (ja) 2017-09-21
US20180067829A1 (en) 2018-03-08
US20160077933A1 (en) 2016-03-17
CN106663042A (zh) 2017-05-10
US10409696B2 (en) 2019-09-10
CN106663042B (zh) 2019-11-22
RU2017107276A3 (ru) 2019-04-11
RU2017107276A (ru) 2018-09-07
WO2016040722A1 (en) 2016-03-17
EP3191959A1 (en) 2017-07-19
EP3191959B1 (en) 2018-07-25
US9678839B2 (en) 2017-06-13
BR112017003660B1 (pt) 2022-12-20

Similar Documents

Publication Publication Date Title
RU2702268C2 (ru) Масштабируемые пулы хранения данных
US9710321B2 (en) Atypical reboot data collection and analysis
US20170024285A1 (en) Automatic serial starting of resource groups on failover
WO2016040211A1 (en) Modified matrix factorization of content-based model for recommendation system
US20180331973A1 (en) Increasing virtual machine availability during server updates
US9916215B2 (en) System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines
JP2014522052A (ja) ハードウェア故障の軽減
CN109656646B (zh) 一种远程桌面控制方法、装置、设备及虚拟化芯片
US10402014B2 (en) Input control assignment
CN109873714B (zh) 云计算节点配置更新方法及终端设备
US20170149864A1 (en) Distributed applications management with dependent resilient distributed services
US11442763B2 (en) Virtual machine deployment system using configurable communication couplings
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
US9372816B2 (en) Advanced programmable interrupt controller identifier (APIC ID) assignment for a multi-core processing unit
JP2011070464A (ja) 計算機システム及び計算機システムの性能管理方法
US11048523B2 (en) Enabling software sensor power operation requests via baseboard management controller (BMC)
US10860078B2 (en) Managing power request during cluster operations
US20160070320A1 (en) Individual Device Reset and Recovery in a Computer
US20140316539A1 (en) Drivers and controllers
CN105378675B (zh) 经由来自运行系统的存储器写入的存储器图像捕获
US20240357006A1 (en) Orchestrated node removal to reduce cluster capacity in a clustered file system
US10545989B1 (en) Selective data replication
Bolander et al. vSphere Design Best Practices
CN107851033A (zh) 减轻远程存储装置的间歇不可用性对虚拟机的影响