Способ и устройство для записи сохраненных данных на носитель данных на основе флэш-памяти

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

 

Область техники, к которой относится изобретение

Настоящая заявка относится к области техники компьютерных и сетевых технологий и, в частности, к способу и к устройству для записи данных для хранения на носитель данных на основе флэш-памяти.

Уровень техники

SSD (полупроводниковые накопители), которые используют флэш-память в качестве носителя данных и приспосабливают электронное считывание/запись, имеют превосходную производительность считывания/записи и становятся доминирующими аппаратными средствами хранения для персональных компьютеров и серверов. Носитель хранения данных SSD представляет собой ячейку NAND-флэш-памяти, каждый бит которой имеет такую физическую характеристику, что значение бита может изменяться с 1 на 0 путем заряда транзистора, тогда как его значение может сбрасываться с 0 на 1 только через стирание. Операция стирания выполняется в единицах блоков.

Срок жизни ячейки NAND-флэш-памяти измеряется числом стираний и записей в ячейке. Когда блок достигает этого числа стираний и записей, невозможно использовать блок для сохранения данных, и блок становится плохим блоком. По мере того, как число плохих блоков увеличивается, срок службы SSD резко снижается.

Следовательно, алгоритм сбалансированного стирания и записи на FTL (на уровне флэш-трансляции) или уровень файловой системы, имеющий функции сбалансированного стирания и записи, используется в современных технологиях для того, чтобы достигать, в максимально возможной степени, сбалансированного стирания и записи для всех блоков на одном SSD таким образом, чтобы продлевать срок службы отдельного SSD. Примеры включают в себя стратегию динамической балансировки на FTL-уровне, стратегию статической балансировки на FTL-уровне, JAFF2 (журналируемую файловую флэш-систему версии 2), YAFFS (еще одну файловую флэш-систему) и т.п.

Тем не менее, для системы, имеющей множество доступных SSD, один или более SSD зачастую могут подвергаться слишком большому количеству стираний и записей, которое составляет гораздо больше по сравнению со стираниями на одном или более других SSD. Как результат, чрезмерно используемый SSD преждевременно повреждается. Если решение с высокой готовностью не применяется к данным, сохраненным на SSD, можно в результате получать потери данных; для системы, которая приспосабливает решение по хранению данных с высокой готовностью, стабильность системы должна ослабляться вследствие дополнительной миграции данных.

Сущность изобретения

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

- получение общего кумулятивного количества стираний всех блоков в каждой из физических единиц хранения данных; и

- запись данных для хранения в по меньшей мере одну физическую единицу хранения данных, имеющую наименьшее общее кумулятивное количество стираний, из физических единиц хранения данных, удовлетворяющих предварительно установленному условию записи.

Настоящая заявка дополнительно предоставляет устройство для записи данных для хранения на носитель данных на основе флэш-памяти, причем устройство применяется к центральному функциональному модулю управления для выполнения управления записью для по меньшей мере двух физических единиц хранения данных, и причем устройство содержит:

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

- элемент обработки физических единиц хранения данных, выполненный с возможностью записывать данные для хранения в по меньшей мере одну физическую единицу хранения данных, имеющую наименьшее общее кумулятивное количество стираний, из физических единиц хранения данных, удовлетворяющих предварительно установленному условию записи.

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

Краткое описание чертежей

Фиг. 1 является принципиальной структурной схемой составных частей хост-машины в первом примере варианта применения согласно некоторым вариантам осуществления настоящей заявки;

Фиг. 2 является принципиальной структурной схемой составных частей кластера во втором примере варианта применения согласно некоторым вариантам осуществления настоящей заявки;

Фиг. 3 является блок-схемой последовательности операций способа для записи данных для хранения согласно варианту I осуществления настоящей заявки;

Фиг. 4 является блок-схемой последовательности операций способа для записи данных для хранения в кластере согласно варианту II осуществления настоящей заявки;

Фиг. 5 является аппаратной структурной схемой устройства согласно некоторым вариантам осуществления настоящей заявки;

Фиг. 6 является логической структурной схемой устройства для записи данных для хранения согласно некоторым вариантам осуществления настоящей заявки;

Фиг. 7 является логической структурной схемой кластера согласно некоторым вариантам осуществления настоящей заявки.

Подробное описание изобретения

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

В вариантах осуществления настоящей заявки, две или более физических единиц хранения данных управляются центральным функциональным модулем управления для управления записью, а именно, центральный функциональный модуль управления определяет то, в какую физическую единица(ы) хранения данных следует записывать данные для хранения. Здесь, физическая единица хранения данных представляет собой объект, который является физически независимым от других физических единиц хранения данных и использует носитель данных на основе флэш-памяти. Она может представлять собой независимый физический компонент хранения данных на основе флэш-памяти (например, флэш-микросхему, жесткий диск и т.п.), хост-машину, содержащую по меньшей мере один независимый физический компонент хранения данных на основе флэш-памяти (например, стойку дискового массива, персональный компьютер, сервер), и т.п.; центральный функциональный модуль управления реализуется программным обеспечением или комбинацией программного обеспечения и аппаратных средств, может выполняться в физической единице хранения данных или может выполняться на другой хост-машине, которая является независимой от всех физических единиц хранения данных, управляемых центральным функциональным модулем управления.

Фиг. 1 иллюстрирует пример сценария применения согласно некоторым вариантам осуществления настоящей заявки, в котором в хост-машину устанавливается определенное число жестких дисков (физических единиц хранения данных в настоящем сценарии применения), и модуль управления хранением данных (центральный функциональный модуль управления в настоящем сценарии применения) выполняется на хост-машине для выполнения управления считыванием/записью на всех жестких дисках, включающего в себя определение того, какие данные следует сохранять на каком жестком диске.

Фиг. 2 иллюстрирует другой пример сценария применения согласно некоторым вариантам осуществления настоящей заявки, в котором одна хост-машина в кластере, сформированном множеством хост-машин (физических единиц хранения данных в настоящем сценарии применения), представляет собой основной управляющий узел, в то время как другие хост-машины представляют собой рабочие узлы. Модуль кластерного управления (центральный функциональный модуль управления в настоящем сценарии применения) кластера выполняется на основном управляющем узле, чтобы выполнять выделение и управление для хранения данных для определенного числа хост-машин. Когда отказ возникает в хост-машине, функционирующей в качестве основного управляющего узла, другая хост-машина может модернизироваться до основного управляющего узла, чтобы продолжать операции кластера.

Центральный функциональный модуль управления в варианте применения согласно некоторым вариантам осуществления настоящей заявки может выполняться на любом устройстве, допускающем вычисление и хранение, например, на планшетном компьютере, PC (персональном компьютере), переносном компьютере и сервере.

В варианте I осуществления настоящей заявки, процесс способа для записи данных для хранения показан на фиг. 3.

Этап 310, получение общего кумулятивного количества стираний всех блоков в каждой физической единице хранения данных.

Блок представляет собой наименьшую единицу выделения пространства для хранения при хранении данных. Когда блок выделяется, операция стирания должна выполняться для блока таким образом, что приложение (или подпроцесс, процесс и т.п.), получающее пространство блока, может использовать блок для записи данных. Следовательно, количество раз, когда блок выделяется, представляет собой кумулятивное количество раз, когда блок стирается.

Для физически независимого компонента хранения данных (например, жесткого диска, флэш-микросхемы и т.п.), разделение на блоки типично выполняется, когда компонент хранения данных инициализируется. Для жесткого диска в качестве примера, в большинстве файловых систем, администратор может указывать размер блока при инициализации жесткого диска. При условии, что модуль управления хранением данных хост-машины, в которой расположен жесткий диск, выполняет управление хранением данных на жестком диске, модуль управления хранением данных может использовать уникальный идентификатор блока для всех блоков на жестком диске для того, чтобы представлять каждый блок на жестком диске, и поддерживать взаимосвязь соответствия между каждым идентификатором блока жесткого диска и кумулятивным количеством стираний. Кумулятивное количество стираний идентификатора блока для блока постепенно увеличивается на 1 каждый раз, когда блок выделяется; когда жесткий диск функционирует в качестве физической единицы хранения данных в сценарии применения, кумулятивные количества стираний всех блоков могут суммироваться, чтобы получать общее кумулятивное количество жесткого диска. Альтернативно, модуль управления хранением данных также может поддерживать общее кумулятивное количество стираний всех блоков в суперблоке жесткого диска. Общее кумулятивное количество стираний постепенно увеличивается на число блоков, выделяемых каждый раз, когда блоки выделяются; другими словами, общее кумулятивное количество стираний постепенно увеличивается на 1 каждый раз, когда блок выделяется. Как описано выше, общее кумулятивное количество стираний всех блоков физически независимого компонента хранения данных может получаться.

В случае если физическая единица хранения данных представляет собой хост-машину, содержащую по меньшей мере один независимый физический компонент хранения данных, модуль управления хранением данных на каждой хост-машине может подсчитывать общее кумулятивное количество стираний физического компонента хранения данных, управляемого модулем управления хранением данных, и сообщать общее кумулятивное количество стираний в центральный функциональный модуль управления. Примерный способ формирования сообщений может определяться согласно реализации сценария применения. Например, при условии, что все хост-машины формируют кластер, модуль кластерного управления для кластера представляет собой центральный функциональный модуль управления в сценарии применения. Каждая хост-машина может превентивно сообщать общее кумулятивное количество стираний всех блоков на хост-машине в модуль кластерного управления в предварительно установленный период; альтернативно, модуль кластерного управления может опрашивать все хост-машины в предварительно установленный период на предмет общего кумулятивного количества стираний всех блоков, и затем модуль кластерного управления может принимать общее кумулятивное количество стираний всех блоков на каждой хост-машине в предварительно установленный период.

Этап 320, запись данных для хранения в по меньшей мере одну физическую единицу хранения данных, имеющую наименьшее общее кумулятивное количество стираний, из физических единиц хранения данных, удовлетворяющих предварительно установленному условию записи.

При условии, что данные для хранения подлежат записи в N (N является натуральным числом) физических единиц хранения данных, одно или более условий используются в современных технологиях для того, чтобы определять то, в какую физическую единицу(ы) хранения данных следует записывать данные для хранения, когда предусмотрено две или более физических единиц хранения данных, которые могут использоваться для записи данных для хранения. Например, условия, которые должны удовлетворяться, типично включают в себя то, что оставшееся пространство для хранения является достаточным для того, чтобы размещать данные для хранения, которые подлежат записи. В некоторых вариантах осуществления настоящей заявки, предварительно установленное условие записи может формироваться согласно приемлемым диапазонам одного или более вышеуказанных условий, которые описываются ниже с двумя примерами:

В первом примере, из множества жестких дисков, N жестких дисков, имеющих самое большое оставшееся пространство для хранения, используются в качестве жестких дисков для записи данных для хранения. Затем в некоторых вариантах осуществления настоящей заявки, предварительно установленное условие записи может заключаться в том, что оставшееся пространство для хранения не меньше предварительно установленного значения или не ниже предварительно установленного процента емкости жесткого диска.

Во втором примере, из числа хост-машин, выбираются N хост-машин, имеющих оставшееся пространство для хранения, которое является достаточным для того, чтобы размещать данные для хранения, которые подлежат записи, и имеющих наименьшее число доступов к данным, уже сохраненным на хост-машинах. Затем в некоторых вариантах осуществления настоящей заявки, предварительно установленные условия записи могут заключаться в том, что оставшееся пространство для хранения является достаточным для того, чтобы размещать данные для хранения, которые подлежат записи, и в том, что число доступов к данным, уже сохраненным на хост-машине, не превышает пороговое значение.

Данные для хранения, которые подлежат записи в физическую единицу хранения данных, могут представлять собой данные для хранения, которые подлежат записи при сохранении файла, или могут представлять собой данные для хранения, которые подлежат записи при миграции файла. Для центрального функционального модуля управления, данные для хранения, которые подлежат записи при сохранении файла, типично представляют собой новые добавленные данные для хранения, тогда как данные для хранения, которые подлежат записи при миграции файла, означают поддержание данных для хранения, которые уже сохранены. Согласно примерной реализации сценария применения, может быть предусмотрена одна копия данных для хранения, которые подлежат записи при сохранении файла, либо может быть предусмотрено две или более копий данных для хранения, которые подлежат записи при сохранении файла, причем в этом случае типично необходимо записывать каждую копию в различную физическую единицу хранения данных. Миграция файлов включает в себя два случая. В одном случае, физическая единица хранения данных, которая сохраняет файл, заменяется, т.е. сохраненный файл записывается в новую физическую единицу хранения данных и удаляется из физической единицы хранения данных, которая первоначально сохраняет файл; в другом случае, в котором сценарий применения сохраняет более двух копий файлов, когда один из файлов поврежден, или физическая единица хранения данных, в которой расположен один из файлов, разрушается, необходимо выполнять копирование файла в физическую единицу хранения данных, которая функционирует нормально, чтобы удовлетворять требованию высокой готовности всей системы. Во время миграции файлов, предварительно установленное условие записи может использоваться для того, чтобы исключать физические единицы хранения данных, которые уже сохраняют копию файла, и/или физические единицы хранения данных, которые разрушаются.

Следовательно, возможно то, что более одной физической единицы хранения данных требуется для записи данных для хранения либо для хранения файлов, либо для миграции файлов. В силу этого, после получения общего кумулятивного количества стираний всех блоков для каждой физической единицы хранения данных, центральный функциональный модуль управления определяет, согласно предварительно установленному условию записи, число физических единиц хранения данных, доступных для выбора, когда имеется потребность в операции записи для данных для хранения, и выбирает, из физических единиц хранения данных, N (N является натуральным числом) физических единиц хранения данных, имеющих наименьшие общие кумулятивные количества стираний, для записи данных для хранения. В связи с этим, сбалансированное стирание и запись может достигаться между различными физическими единицами хранения данных.

В вариантах осуществления настоящей заявки, в дополнение к выполнению сбалансированного стирания и записи между физическими единицами хранения данных при записи данных для хранения, центральный функциональный модуль управления также может превентивно выполнять миграцию файлов, когда имеется значительная разница в стирании и записи между физическими единицами хранения данных, с тем чтобы балансировать использование физических единиц хранения данных. Например, центральный функциональный модуль управления может отслеживать стирание и запись каждой физической единицы хранения данных. Когда разность между общими кумулятивными количествами стираний двух физических единиц хранения данных превышает предварительно установленный диапазон отклонения, данные для хранения мигрируют из одной из двух физических единиц хранения данных, которая имеет более высокое общее кумулятивное количество стираний, в физическую единицу хранения данных, имеющую более низкое общее кумулятивное количество стираний.

Предварительно установленный диапазон отклонения может определяться согласно таким факторам, как размер файла для хранения и требования для сбалансированного стирания и записи в примерном сценарии применения. В сценарии применения, предварительно установленный диапазон отклонения может определяться на основе среднего значения общих кумулятивных количеств стираний всех физических единиц хранения данных. Например, 20% от среднего могут использоваться в качестве предварительно установленного диапазона отклонения.

Следовательно, в варианте I осуществления настоящей заявки, центральный функциональный модуль управления выбирает, на основе статистических данных по общему кумулятивному количеству стираний всех блоков в каждой физической единице хранения данных, физическую единицу хранения данных, имеющую наименьшее общее кумулятивное количество стираний, из физических единиц хранения данных, удовлетворяющих предварительно установленному условию записи для записи данных для хранения, за счет этого достигая сбалансированного стирания и записи между различными физическими единицами хранения данных и недопущения преждевременного повреждения одной физической единицы хранения данных вследствие слишком большого количества стираний и записей в физической единице хранения данных, так что сроки службы различных физических единиц хранения данных составляют ближе друг к другу, что позволяет снижать вероятность потерь данных в сценарии без высокой готовности и повышать стабильность системы, в которой расположена физическая единица хранения данных в сценарии с высокой готовностью.

Следует отметить, что, если, по меньшей мере, некоторые хост-машины имеют более двух жестких дисков или других независимых физических компонентов хранения данных в кластере, состоящем из определенного числа хост-машин, варианты осуществления настоящей заявки могут применяться к уровню кластера и уровню хост-машины, соответственно. А именно, сбалансированное стирание и запись между различными хост-машинами достигается на уровне кластера, и сбалансированное стирание и запись между различными жесткими дисками или другими физическими компонентами хранения данных на одной хост-машине достигается на уровне хост-машины. Помимо этого, FTL-алгоритм сбалансированного стирания и записи или уровень файловой системы, имеющий функции сбалансированного стирания и записи в современных технологиях, может использоваться на одной хост-машине или в других физических компонентах хранения данных, чтобы достигать сбалансированного стирания и записи на уровне физических компонентов хранения данных, за счет этого достигая сбалансированного стирания и записи на всех уровнях всей кластерной системы, продления срока службы устройств хранения данных в кластерной системе, а также повышения стабильности кластерной системы.

В варианте II осуществления настоящей заявки, блок-схема последовательности операций способа для записи данных для хранения в кластере показана на фиг. 4. Кластер в этом варианте осуществления содержит по меньшей мере две хост-машины, и хост-машины подвергаются управлению хранением данных модулем кластерного управления; каждая хост-машина содержит по меньшей мере два жестких диска с использованием флэш-памяти в качестве носителя данных, и модуль управления хранением данных на каждой хост-машине выполняет управление хранением данных на жестких дисках хост-машины. Вариант II осуществления предоставляет примерную реализацию одновременного применения варианта I осуществления на двух уровнях (на уровне кластера и на уровне хост-машины), и к описанию в варианте I осуществления можно обращаться на предмет подробного описания всех этапов, которые не повторяются.

Этап 410, модуль кластерного управления получает общее кумулятивное количество стираний всех блоков на каждой хост-машине.

Этап 420, модуль управления хранением данных каждой хост-машины получает общее кумулятивное количество стираний каждого жесткого диска на хост-машине, соответственно.

Этап 430, кластерный контроллер выбирает по меньшей мере одну хост-машину, имеющую наименьшее общее кумулятивное количество стираний для хост-машины, из хост-машин, удовлетворяющих предварительно установленному условию записи для хост-машины, в качестве целевой хост-машины.

Когда кластер имеет данные для хранения, которые подлежат записи, например, данные для хранения, которые подлежат записи во время миграции файлов и/или хранения файлов, при условии, что данные для хранения подлежат записи в N хост-машин, кластерный контроллер выбирает, по меньшей мере, N хост-машин, имеющих наименьшее общее кумулятивное количество стираний для хост-машины, из хост-машин, удовлетворяющих предварительно установленному условию записи для хост-машины, в качестве целевых хост-машин, т.е. хост-машин, в которые подлежат записи данные для хранения, которые подлежат записи.

Этап 440, на каждой целевой хост-машине, контроллер хранения данных хост-машины записывает данные для хранения, по меньшей мере, на один жесткий диск, который удовлетворяет предварительно установленному условию записи для жесткого диска и имеет наименьшее общее кумулятивное количество стираний для жесткого диска.

Когда хост-машина выбирается в качестве целевой хост-машины, при условии, что данные для хранения подлежат записи в M (является натуральным числом M) жестких дисков на хост-машине, контроллер хранения данных хост-машины выбирает M жестких дисков, имеющих наименьшее общее кумулятивное количество стираний для жесткого диска, из жестких дисков, удовлетворяющих предварительно установленному условию записи для жесткого диска, в качестве целевых жестких дисков и записывает данные для хранения на целевые жесткие диски.

Кластерный контроллер может отслеживать разности между общими кумулятивными количествами стираний хост-машин. Когда разность между общими кумулятивными количествами стираний двух хост-машин превышает предварительно установленный диапазон отклонения для хост-машины, кластерный контроллер выполняет миграцию данных для хранения из одной из двух хост-машин, которая имеет более высокое общее кумулятивное количество стираний, в хост-машину, имеющую более низкое общее кумулятивное количество стираний. Относительно хост-машины, в которую подлежат записи мигрировавшие данные для хранения, контроллер хранения данных хост-машины может записывать данные на жесткий диск, который удовлетворяет предварительно установленному условию записи для жесткого диска и имеет наименьшее общее кумулятивное количество стираний для жесткого диска.

Контроллер хранения данных каждой хост-машины может отслеживать разности между общими кумулятивными количествами стираний жестких дисков на хост-машине. Когда разность между общими кумулятивными количествами стираний двух жестких дисков на хост-машине превышает предварительно установленный диапазон отклонения для жесткого диска, контроллер хранения данных хост-машины может выполнять миграцию данных для хранения из одного из двух жестких дисков, который имеет более высокое общее кумулятивное количество стираний, на жесткий диск, имеющий более низкое общее кумулятивное количество стираний.

Следовательно, путем применения способа в варианте I осуществления на уровне кластера (между хост-машинами) и на уровне хост-машины (между жесткими дисками на каждой хост-машине), соответственно, вариант II осуществления настоящей заявки достигает сбалансированного стирания и записи для всех физических компонентов хранения данных во всей кластерной системе, продлевает срок службы устройств хранения данных в кластерной системе, а также повышает стабильность кластерной системы.

В примере варианта применения настоящей заявки, кластерная система с высокой готовностью содержит K (K является натуральным числом, большим 3) хост-машин, причем каждая хост-машина содержит, по меньшей мере, 3 жестких диска с использованием флэш-памяти в качестве носителя данных. Одна копия каждого файла, сохраненного в кластере, должна сохраняться на 3 различных хост-машинах, соответственно. Кластерный контроллер кластера выполняется на основном управляющем узле (на одной из хост-машин) кластера и используется для того, чтобы управлять тем, какие 3 хост-машины должны сохранять файл; контроллер хранения данных выполняется на каждой хост-машине и используется для того, чтобы управлять тем, какой жесткий диск должен сохранять файл.

На каждой хост-машине, контроллер хранения данных поддерживает, в суперблоке каждого жесткого диска, кумулятивное количество block_wear_count стираний для каждого блока жесткого диска и общее кумулятивное количество disk_wear_count стираний для всех блоков жесткого диска. Когда блок на жестком диске выделяется, кумулятивное количество block_wear_count стираний, соответствующее идентификатору block_num блока для блока, постепенно увеличивается на 1, и общее кумулятивное количество disk_wear_count стираний для всех блоков жесткого диска постепенно увеличивается на 1.

Помимо этого, контроллер хранения данных поддерживает общее кумулятивное количество server_wear_count стираний для всех блоков хост-машины, и server_wear_count равно сумме disk_wear_count всех жестких дисков на хост-машине. Каждый рабочий узел в кластере должен периодически отправлять сигнал подтверждения работоспособности в основной управляющий узел, и server_wear_count хост-машины, в которой расположен рабочий узел, может сообщаться в кластерный контроллер в периодическом сигнале подтверждения работоспособности. Контроллер хранения данных на основном управляющем узле также может сообщать server_wear_count хост-машины, в которой расположен основной управляющий узел, в кластерный контроллер в период, который является идентичным периоду сигналов подтверждения работоспособности.

Когда новый файл записывается в кластер, кластерный контроллер определяет число хост-машин, удовлетворяющих предварительно установленному условию записи для хост-машины, из хост-машин K. Предварительно установленное условие записи для хост-машины для записи нового файла в настоящем примере варианта применения заключается в том, что оставшаяся емкость хранения превышает 15% от общей емкости хранения хост-машины, и число доступов к данным для хранения не превышает заданное пороговое значение. Из хост-машин, удовлетворяющих предварительно установленному условию записи для хост-машины для записи нового файла, кластерный контроллер выбирает 3 хост-машины, имеющие наименьшие значения server_wear_count, в качестве хост-машин для записи нового файла.

На выбранных 3 хост-машинах, контроллер хранения данных каждой хост-машины определяет число жестких дисков, удовлетворяющих предварительно установленному условию записи для жесткого диска, из жестких дисков хост-машины. Предварительно установленное условие записи для жесткого диска в настоящем примере варианта применения заключается в том, что оставшаяся емкость хранения превышает 10% от общей емкости хранения жесткого диска. Из жестких дисков, удовлетворяющих условию записи для жесткого диска, контроллер хранения данных выбирает жесткий диск, имеющий наименьшее disk_wear_count, для записи нового файла.

Когда хост-машина или жесткий диск на хост-машине в кластере разрушается, кластерный контроллер считает файлы, сохраненные на хост-машине или жестком диске, более не применимыми. Как результат, сохраненные копии этих файлов в кластере составляют менее 3 копий. При условии, что предварительно установленное условие записи для хост-машины для миграции файла заключается в том, что оставшаяся емкость хранения превышает 15% от общей емкости хранения хост-машины, число доступов к данным для хранения не превышает заданное пороговое значение, и файл, который должен записываться, не сохранен, в таком случае кластерный контроллер выбирает, из хост-машин, удовлетворяющих предварительно установленному условию записи для хост-машины для миграции файла, хост-машины, имеющие наименьшее server_wear_count, в качестве хост-машин для записи мигрировавших файлов. На выбранных хост-машинах, контроллер хранения данных выбирает, из жестких дисков, удовлетворяющих условию записи для жесткого диска, жесткий диск, имеющий наименьшее disk_wear_count, для записи мигрировавшего файла.

Кластерный контроллер отслеживает разность между общими кумулятивными количествами server_wear_count стираний хост-машин в определенный период мониторинга хост-машины. Если разность между максимальным значением и минимальным значением server_wear_count в кластере превышает 20% от среднего всех server_wear_count, файлы на хост-машине, имеющей максимальный server_wear_count, мигрируют на хост-машину, имеющую минимальный server_wear_count, до тех пор, пока разность между максимальным значением и минимальным значением server_wear_count в кластере не составит в пределах 20% от среднего всех server_wear_count. Выбор файлов миграции может реализовываться со ссылкой на современные технологии, которые не повторяются.

На каждой хост-машине, контроллер хранения данных отслеживает разность между общими кумулятивными количествами disk_wear_count стираний жестких дисков на хост-машине в определенный период мониторинга жесткого диска. Если разность между максимальным значением и минимальным значением disk_wear_count на хост-машине превышает 15% от среднего всех disk_wear_count, файлы на жестком диске, имеющем максимальный disk_wear_count, мигрируют на жесткий диск, имеющий минимальный disk_wear_count, до тех пор, пока разность между максимальным значением и минимальным значением disk_wear_count на хост-машине не составит в пределах 15% от среднего всех disk_wear_count. Выбор файлов миграции может аналогично реализовываться со ссылкой на современные технологии.

Согласно вышеприведенным процессам, варианты осуществления настоящей заявки дополнительно предоставляют устройство для записи данных для хранения. Устройство может реализовываться программным обеспечением, аппаратными средствами или комбинацией программного обеспечения и аппаратных средств. Для программной реализации в качестве примера, устройство в смысле логики формируется посредством CPU (центрального процессора) оборудования, в котором находится устройство при считывании соответствующих компьютерных программных инструкций в запоминающее устройство для выполнения. С аппаратной точки зрения, в дополнение к CPU, запоминающему устройству и энергонезависимому запоминающему устройству, показанным на фиг. 5, оборудование, в котором типично находится устройство для записи данных для хранения, дополнительно содержит другие аппаратные средства, такие как микросхема для приема и передачи беспроводных сигналов, и/или другие аппаратные средства, такие как плата для осуществления функций сетевой связи.

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

В некоторых примерах, устройство дополнительно содержит элемент миграции на основе отклонения, выполненный с возможностью выполнять миграцию, когда разность между общими кумулятивными количествами стираний двух физических единиц хранения данных, превышает предварительно установленный диапазон отклонения, данных для хранения из одной из двух физических единиц хранения данных, которая имеет более высокое общее кумулятивное количество стираний, в физическую единицу хранения данных, имеющую более низкое общее кумулятивное количество стираний.

В примерах, предварительно установленный диапазон отклонения может определяться на основе среднего значения общих кумулятивных количеств стираний всех физических единиц хранения данных.

Необязательно, данные для хранения содержат: данные для хранения, которые подлежат записи при миграции файла, и/или данные для хранения, которые подлежат записи при сохранении файла.

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

Необязательно, физическая единица хранения данных содержит жесткий диск; центральный функциональный модуль управления содержит модуль управления хранением данных хост-машины; и элемент обработки общего кумулятивного количества стираний выполнен с возможностью считывать общее кумулятивное количество стираний, поддерживаемое в суперблоке каждого жесткого диска, причем общее кумулятивное количество стираний постепенно увеличивается на 1 после того, как выделяется каждый блок жесткого диска.

Фиг. 7 иллюстрирует кластер согласно некоторым вариантам осуществления настоящей заявки. Кластер содержит по меньшей мере две хост-машины, и каждая хост-машина содержит по меньшей мере два жестких диска с использованием флэш-памяти в качестве носителя данных. Кластер дополнительно содержит модуль кластерного управления и модуль управления хранением данных на каждой хост-машине, при этом модуль кластерного управления выполнен с возможностью получать общее кумулятивное количество стираний всех блоков на каждой хост-машине, и когда запись данных для хранения требуется, выбирать по меньшей мере одну хост-машину, имеющую наименьшее общее кумулятивное количество стираний для хост-машины, из хост-машин, удовлетворяющих предварительно установленному условию записи для хост-машины, в качестве целевой хост-машины; модуль управления хранением данных на каждой хост-машине выполнен с возможностью получать общее кумулятивное количество стираний каждого жесткого диска на хост-машине, и когда хост-машина выбирается в качестве целевой хост-машины, записывать данные для хранения, по меньшей мере, на один жесткий диск, который удовлетворяет предварительно установленному условию записи для жесткого диска и имеет наименьшее общее кумулятивное количество стираний для жесткого диска.

Необязательно, модуль кластерного управления дополнительно выполнен с возможностью выполнять миграцию, когда разность между общими кумулятивными количествами стираний двух хост-машин превышает предварительно установленный диапазон отклонения для хост-машины, данных для хранения из одной из двух хост-машин, которая имеет более высокое общее кумулятивное количество стираний, в хост-машину, имеющую более низкое общее кумулятивное количество стираний; модуль управления хранением данных на каждой хост-машине дополнительно выполнен с возможностью выполнять миграцию, когда разность между общими кумулятивными количествами стираний двух жестких дисков на хост-машине превышает предварительно установленный диапазон отклонения для жесткого диска, данных для хранения из одного из двух жестких дисков, который имеет более высокое общее кумулятивное количество стираний, на жесткий диск, имеющий более низкое общее кумулятивное количество стираний

Необязательно, данные для хранения содержат: данные для хранения, которые подлежат записи при миграции файла.

Выше описываются только предпочтительные варианты осуществления настоящей заявки, которые не используются для того, чтобы ограничивать настоящую заявку. Все модификации, эквивалентные замены или улучшения, вносимые в пределах сущности и принципа настоящей заявки, должны охватываться объемом охраны настоящей заявки.

В типичной конфигурации, вычислительное устройство включает в себя один или более процессоров (CPU), интерфейсов ввода-вывода, сетевых интерфейсов и запоминающее устройство.

Запоминающее устройство может включать в себя машиночитаемые носители, такие как энергозависимое запоминающее устройство, оперативное запоминающее устройство (RAM) и/или энергонезависимое запоминающее устройство, например, постоянное запоминающее устройство (ROM) или флэш-RAM. Запоминающее устройство представляет собой пример машиночитаемого носителя.

Машиночитаемые носители включают в себя постоянные, энергозависимые, мобильные и стационарные носители, которые могут реализовывать хранение информации через любой способ или технологию. Информация может представлять собой машиночитаемые инструкции, структуры данных, программные модули или другие данные. Примеры носителей хранения данных компьютеров включают в себя, но не только, RAM на фазовых переходах (PRAM), статические RAM (SRAM), динамические RAM (DRAM), другие типы оперативных запоминающих устройств (RAM), постоянные запоминающие устройства (ROM), электрически стираемые программируемые постоянные запоминающие устройства (EEPROM), флэш-память или другие технологии запоминающих устройств, постоянные запоминающие устройства на компакт-дисках (CD-ROM) или другие оптические запоминающие устройства универсальных цифровых дисков (DVD), кассеты, запоминающие устройства на кассетах и на дисках или другие магнитные запоминающие устройства либо любые другие носители, отличные от среды передачи, которые могут использоваться для сохранения информации, доступной для вычислительного устройства. Согласно определениям в данном документе, машиночитаемые носители не включают в себя энергозависимые среды, такие как модулированные сигналы данных и несущие.

Дополнительно следует отметить, что термины "включающий в себя", "содержащий" или любые другие их разновидности имеют намерение охватывать неисключительное включение, так что процесс, способ, изделие или устройство, содержащее последовательность элементов, не только содержит эти элементы, но и содержит другие элементы, которые конкретно не перечисляются, или дополнительно содержит элементы, которые являются внутренне присущими в процессе, способе, изделии или устройстве. Когда отсутствует дополнительное ограничение, элементы, заданные выражением "содержащий один...", не исключают то, что процесс, способ, изделие или устройство, содержащее вышеуказанные элементы, дополнительно содержит дополнительные идентичные элементы.

Специалисты в данной области техники должны понимать, что варианты осуществления настоящей заявки могут предоставляться в качестве способа, системы или компьютерного программного продукта. Следовательно, настоящая заявка может реализовываться как полностью аппаратный вариант осуществления, полностью программный вариант осуществления либо вариант осуществления, комбинирующий программное обеспечение и аппаратные средства. Кроме того, настоящая заявка может иметь форму компьютерного программного продукта, реализованного на одном или более машиноприменимых носителей хранения данных (включающих в себя, но не только, запоминающее устройство на магнитных дисках, CD-ROM, оптическое запоминающее устройство и т.п.), содержащих машиноприменимые программные коды.

1. Способ для записи данных в кластер из множества хост-машин, причем каждая хост-машина содержит множество жестких дисков, причем способ содержит:

получение множества количеств стираний для жестких дисков на каждой хост-машине из упомянутых хост-машин, при этом количество стираний для каждого жесткого диска из упомянутых жестких дисков равно общему количеству операций стирания, которые были выполнены на данном жестком диске;

получение общего количества стираний для каждой хост-машины из упомянутых хост-машин, при этом общее количество стираний равно сумме количеств стираний жестких дисков на данной хост-машине;

получение данных, которые подлежат записи в кластер;

в ответ на получение данных, которые подлежат записи в кластер, идентификацию одной или более хост-машин, каждая из которых удовлетворяет одному или более первым условиям, связанным с записью данных, при этом одно или более первых условий содержат то, что:

оставшаяся емкость хранения хост-машины превышает пороговый процент от общей емкости хранения хост-машины,

число доступов к данным, уже сохраненным на хост-машине, не превышает пороговое значение доступов, и

общее количество стираний хост-машины не превышает пороговое значение;

определение хост-машины, которая имеет наименьшее общее количество стираний среди идентифицированной одной или более хост-машин;

идентификацию одного или более жестких дисков на определенной хост-машине, каждый из которых удовлетворяет одному или более вторым условиям, связанным с записью данных;

определение жесткого диска, который имеет наименьшее количество стираний среди идентифицированных одного или более жестких дисков; и

запись данных на определенный жесткий диск.

2. Способ по п. 1, дополнительно содержащий: когда разность между количествами стираний двух жестких дисков превышает предварительно установленный диапазон отклонения, выполнение миграции данных с одного из упомянутых двух жестких дисков, который имеет более высокое количество стираний, на жесткий диск, который имеет более низкое количество стираний.

3. Способ по п. 2, в котором предварительно установленный диапазон отклонения определяется на основе среднего значения количеств стираний всех жестких дисков соответствующей хост-машины.

4. Способ по п. 1, в котором данные, которые подлежат записи в кластер, содержат: данные, которые подлежат записи для миграции файлов, и/или данные, которые подлежат записи для сохранения файлов.

5. Способ по любому из пп. 1-4, в котором получение общего количества стираний для каждой хост-машины из упомянутых хост-машин содержит получение общего количества стираний из каждой хост-машины за предварительно установленный период.

6. Способ по любому из пп. 1-4, в котором получение множества количеств стираний для жестких дисков на каждой хост-машине из упомянутых хост-машин содержит считывание количества стираний, поддерживаемого в суперблоке каждого жесткого диска, причем количество стираний постепенно увеличивается на 1 после того, как выделяется каждый блок жесткого диска.

7. Устройство для записи данных для хранения в кластер из множества хост-машин, причем каждая хост-машина содержит множество жестких дисков, причем устройство содержит: процессор и машиночитаемый носитель информации, сконфигурированный с инструкциями, исполняемыми процессором для побуждения процессора к выполнению операций, содержащих:

получение множества количеств стираний для жестких дисков на каждой хост-машине из упомянутых хост-машин, при этом количество стираний для каждого жесткого диска из упомянутых жестких дисков равно общему количеству операций стирания, которые были выполнены на данном жестком диске;

получение общего количества стираний для каждой хост-машины из упомянутых хост-машин, при этом общее количество стираний равно сумме количеств стираний жестких дисков на данной хост-машине;

получение данных, которые подлежат записи в кластер;

в ответ на получение данных, которые подлежат записи в кластер, идентификацию одной или более хост-машин, каждая из которых удовлетворяет одному или более первым условиям, связанным с записью данных, при этом одно или более первых условий содержат то, что:

оставшаяся емкость хранения хост-машины превышает пороговый процент от общей емкости хранения хост-машины,

число доступов к данным, уже сохраненным на хост-машине, не превышает пороговое значение доступов, и

общее количество стираний хост-машины не превышает пороговое значение;

определение хост-машины, которая имеет наименьшее общее количество стираний среди идентифицированной одной или более хост-машин;

идентификацию одного или более жестких дисков на определенной хост-машине, каждый из которых удовлетворяет одному или более вторым условиям, связанным с записью данных;

определение жесткого диска, который имеет наименьшее количество стираний среди идентифицированных одного или более жестких дисков; и

запись данных на определенный жесткий диск.

8. Устройство по п. 7, при этом операции дополнительно содержат: когда разность между количествами стираний двух жестких дисков превышает предварительно установленный диапазон отклонения, выполнение миграции данных для сохранения с одного из упомянутых двух жестких дисков, который имеет более высокое количество стираний, на жесткий диск, который имеет более низкое количество стираний.

9. Устройство по п. 8, в котором предварительно установленный диапазон отклонения определяется на основе среднего значения количеств стираний всех жестких дисков соответствующей хост-машины.

10. Устройство по п. 7, в котором данные, которые подлежат записи в кластер, содержат: данные, которые подлежат записи для миграции файлов, и/или данные, которые подлежат записи для сохранения файлов.

11. Устройство по любому из пп. 7-10, в котором получение общего количества стираний для каждой хост-машины из упомянутых хост-машин содержит получение общего количества стираний из каждой хост-машины за предварительно установленный период.

12. Устройство по любому из пп. 7-10, в котором получение множества количеств стираний для жестких дисков на каждой хост-машине из упомянутых хост-машин содержит считывание количества стираний, поддерживаемого в суперблоке каждого жесткого диска, причем количество стираний постепенно увеличивается на 1 после того, как выделяется каждый блок жесткого диска.

13. Долговременный машиночитаемый носитель для записи данных в кластер из множества хост-машин, каждая из которых содержит множество жестких дисков, сконфигурированный с инструкциями, исполняемыми одним или более процессорами для побуждения одного или более процессоров к выполнению операций, содержащих:

получение множества количеств стираний для жестких дисков на каждой хост-машине из упомянутых хост-машин, при этом количество стираний для каждого жесткого диска из упомянутых жестких дисков равно общему количеству операций стирания, которые были выполнены на данном жестком диске;

получение общего количества стираний для каждой хост-машины из упомянутых хост-машин, при этом общее количество стираний равно сумме количеств стираний жестких дисков на данной хост-машине;

получение данных, которые подлежат записи в кластер;

в ответ на получение данных, которые подлежат записи в кластер, идентификацию одной или более хост-машин, каждая из которых удовлетворяет одному или более первым условиям, связанным с записью данных, при этом одно или более первых условий содержат то, что:

оставшаяся емкость хранения хост-машины превышает пороговый процент от общей емкости хранения хост-машины,

число доступов к данным, уже сохраненным на хост-машине, не превышает пороговое значение доступов, и

общее количество стираний хост-машины не превышает пороговое значение;

определение хост-машины, которая имеет наименьшее общее количество стираний среди идентифицированной одной или более хост-машин;

идентификацию одного или более жестких дисков на определенной хост-машине, каждый из которых удовлетворяет одному или более вторым условиям, связанным с записью данных;

определение жесткого диска, который имеет наименьшее количество стираний среди идентифицированных одного или более жестких дисков; и

запись данных на определенный жесткий диск.

14. Долговременный машиночитаемый носитель по п. 13, при этом операции дополнительно содержат: когда разность между количествами стираний двух жестких дисков превышает предварительно установленный диапазон отклонения, выполнение миграции данных для сохранения с одного из упомянутых двух жестких дисков, который имеет более высокое количество стираний, на жесткий диск, который имеет более низкое количество стираний.

15. Долговременный машиночитаемый носитель по п. 14, в котором предварительно установленный диапазон отклонения определяется на основе среднего значения количеств стираний всех жестких дисков соответствующей хост-машины.

16. Долговременный машиночитаемый носитель по п. 13, в котором данные, которые подлежат записи в кластер, содержат: данные, которые подлежат записи для миграции файлов, и/или данные, которые подлежат записи для сохранения файлов.

17. Долговременный машиночитаемый носитель по любому из пп. 13-16, в котором получение общего количества стираний для каждой хост-машины из упомянутых хост-машин содержит получение общего количества стираний из каждой хост-машины в предварительно установленном периоде.

18. Долговременный машиночитаемый носитель по любому из пп. 13-16, в котором получение множества количеств стираний для жестких дисков на каждой хост-машине из упомянутых хост-машин содержит считывание количества стираний, поддерживаемого в суперблоке каждого жесткого диска, причем количество стираний постепенно увеличивается на 1 после выделения каждого блока жесткого диска.



 

Похожие патенты:

Изобретение относится к средствам аудиообработки. Технический результат заключается в повышении эффективности аудиообработки.

Изобретение относится к области автомобильного и архитектурного остекления и касается осветительного многослойного остекления, включающего емкостное сенсорное устройство и светоизлучающий диод, и к способу изготовления указанного остекления.

Изобретение в целом относится к применению интеллектуальных телефонов и, в частности, к способу представления информации, устройству представления информации пользователю и запоминающему носителю информации способа.

Изобретение относится к вычислительной технике и может быть использовано в оптических устройствах обработки информации при выполнении вычислений в системе остаточных классов.

Изобретение относится к области обработки аудиосигналов путем подстраивания диапазона громкости аудиосигнала к желаемому целевому диапазону громкости. Технический результат заключается в обеспечении требуемого целевого диапазона громкости с минимальным ухудшением качества аудиосигнала в широком спектре сценариев.

Изобретение относится к области вычислительной техники. Технический результат заключается в повышении точности определения местоположения и ориентации пользователя или устройства.

Изобретение относится к области приборостроения, в частности к кнопочным пультам управления. Технический результат - обеспечение надежности работы в воздушной и водной среде без ограничений по глубине погружения и высоты над уровнем моря, а также по температуре внешней среды.

Изобретение относится к указательным устройствам, перемещаемым пользователем. Технический результат заключается в уменьшении веса, габаритов и сложности "мыши", обеспечении возможности регулировки "мыши" под толщину и/или форму пальцев человеческой руки; упрощении установки электрического аккумулятора АА, AAA в/на корпус "мыши".

Изобретение относится к области компьютерной техники. Техническим результатом является снижение задержки и повышение точности отображения позиции курсора при транслировании видеопотока за счет сокращения времени между изменением положения устройства ввода и обновлением положения курсора на устройстве отображения пользователя.

Группа изобретений относится к устройствам ввода. Технический результат - обеспечение сенсорного устройства ввода, способного выполнять сенсорный ввод без сбоев даже в случае сложной формы устройства.

Изобретение относится к обработке данных. Технический результат заключается в повышении производительности выполнения задач в рамках вычислительного окружения, включая освобождение динамической памяти, за счет возможности объединения свободной памяти в большие непрерывные блоки, которые являются доступными для их последующего использования.
Наверх