МАСШТАБИРУЕМЫЕ ПУЛЫ ХРАНЕНИЯ ДАННЫХ
SCALABLE DATA STORAGE POOLS

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[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] Хотя иллюстративные варианты осуществления были описаны на специализированном языке структурных признаков и/или методологических действий, нужно подразумевать, что варианты осуществления, определяемые в прилагаемой формуле изобретения, не обязательно ограничиваются этими специализированными признаками или описанными действиями. Скорее, специализированные признаки и действия раскрываются в виде иллюстративных форм воплощений признаков из пунктов формулы изобретения.