СПОСОБ ОПРЕДЕЛЕНИЯ ПОТЕНЦИАЛЬНОЙ НЕИСПРАВНОСТИ ЗАПОМИНАЮЩЕГО УСТРОЙСТВА
METHOD FOR DETERMINING A POTENTIAL FAULT OF A STORAGE DEVICE

Область техники
Данная технология относится к способам контроля запоминающего устройства и, в частности, к способам и системам для определения потенциальной неисправности запоминающего устройства.
Уровень техники
Запоминающие устройства, такие как накопители на жестких дисках (HDD, Hard Disk Drive), твердотельные накопители (SSD, Solid State Drive) и карты флэш-памяти, получили повсеместное распространение. Эти запоминающие устройства используются в серверах, центрах обработки данных, ноутбуках, планшетных компьютерах, смартфонах и во многих других устройствах.
Целостность данных, хранящихся в запоминающих устройствах, зависит от физического состояния этих устройств, а именно, от того, функционируют ли они надлежащим образом или, например, по меньшей мере до некоторой степени неисправны.
Неправильное функционирование запоминающего устройства может не только повлиять на его производительность, например, на скорость считывания и записи, но также может вызвать искажение или утрату некоторых или даже всех данных, хранящихся в этом устройстве.
Поэтому обычно желательно знать об изменениях физического состояния запоминающего устройства, чтобы иметь возможность отремонтировать или заменить это устройство до того, как данные могут быть искажены или утрачены.
Известны способы и системы, используемые для обнаружения и сообщения различных показателей надежности накопителя с целью предупреждения приближающихся отказов оборудования, например, технология самоконтроля, анализа и составления диагностических отчетов (SMART™, Self-Monitoring, Analysis and Reporting Technology).
В качестве другого примера можно привести патентную заявку US 20130132057 A1, в которой описаны выполняемые с использованием компьютера способы, системы и компьютерные носители информации для регулирования количества запросов от виртуальных машин (VM, Virtual Machine) к накопителю HDD. При поступлении запроса от VM на обмен данными с диском осуществляется доступ к модели дискового накопителя, имитирующей производительность накопителя HDD. При этом моделью дискового накопителя выполняется оценка параметров накопителя HDD и текущего состояния головки диска. Предполагаемое время выполнения запроса рассчитывается в зависимости от оценки параметров накопителя HDD и оценки текущего состояния головки диска. Кроме того, после разрешения передачи запроса в накопитель HDD измеряется фактическое время выполнения запроса. Поток запросов от машин VM регулируется с использованием результата сравнения предполагаемого и фактического времени выполнения запроса.
Раскрытие изобретения
Без связи с какой-либо конкретной теорией, разработчики данной технологии обнаружили, что по меньшей мере в некоторых случаях известные способы и системы для определения производительности запоминающих устройств имеют недостатки и/или непригодны для оценки и контроля физического состояния запоминающих устройств.
Данная технология разработана на основании понимания разработчиками того, что существует по меньшей мере одна проблема, связанная с известными способами и системами для определения производительности запоминающего устройства по меньшей мере для целей определения неправильного функционирования запоминающего устройства в текущий момент времени или в прошлом. Данная технология разработана с целью устранения по меньшей мере одной такой проблемы, известной из уровня техники, или различных сочетаний таких проблем в некоторых не имеющих ограничительного характера вариантах осуществления.
Техническим результатом осуществления данной технологии является выявление потенциальной неисправности в запоминающем устройстве в течение заранее заданного периода времени.
В некоторых не имеющих ограничительного характера вариантах осуществления данная технология позволяет определять и контролировать фактическую производительность запоминающего устройства в реальном времени.
В некоторых не имеющих ограничительного характера вариантах осуществления данная технология позволяет определять и контролировать фактическую производительность запоминающего устройства так, чтобы получать дополнительную информацию о неправильном функционировании запоминающего устройства в текущий момент времени или в прошлом в по меньшей мере некоторых приложениях в определенное время суток и/или в определенные даты в течение заранее заданных периодов времени использования, которые предшествовали определенному времени суток и/или определенным датам определения производительности.
В некоторых не имеющих ограничительного характера вариантах осуществления данная технология позволяет оповещать администратора системы о проблеме с запоминающим устройством до того, как эта проблема приведет к искажению или утрате данных, хранящихся в этом запоминающем устройстве. В некоторых случаях благодаря такому оповещению администратор системы может заменить такое запоминающее устройство и предотвратить искажение или утрату данных.
В связи с вышеизложенным и в соответствии с одним из аспектов данной технологии реализован способ определения потенциальной неисправности запоминающего устройства, предназначенного для обработки множества транзакций. Способ выполняется компьютером надзорного элемента, связанным с запоминающим устройством, и включает в себя выполнение в течение заранее заданного периода времени следующих действий: определение подмножества операций ввода/вывода (I/O, Input/Output), направленных в запоминающее устройство для обработки; применение по меньшей мере одного счетчика для определения фактического времени активности запоминающего устройства в течение заранее заданного периода времени, причем фактическое время активности приблизительно соответствует времени обработки в запоминающем устройстве по меньшей мере части подмножества операций I/O; применение заранее определенной модели для формирования оценки контрольного времени обработки для каждой транзакции из подмножеств транзакций; расчет контрольного времени обработки для подмножества операций I/O; формирование параметра производительности на основе фактического времени активности и контрольного времени обработки; определение наличия потенциальной неисправности запоминающего устройства на основе анализа параметра производительности.
В некоторых не имеющих ограничительного характера вариантах осуществления запоминающее устройство представляет собой накопитель HDD.
В некоторых не имеющих ограничительного характера вариантах осуществления применение заранее определенной модели для каждой следующей операции из подмножества операций I/O включает в себя: определение времени выполнения следующей операции из подмножества операций I/O на основе размера следующей операции из подмножества операций I/O и заранее определенной скорости выполнения следующей операции определенного вида из подмножества операций I/O; определение необходимости полного цикла перемещения записывающей головки запоминающего устройства в новое положение из положения, в котором зарегистрировано прекращение выполнения предыдущей операции из подмножества операций I/O, для выполнения следующей операции из подмножества операций I/O; добавление заранее определенного времени полного цикла изменения положения ко времени выполнения для получения контрольного времени обработки, если требуется полный цикл изменения положения.
В некоторых не имеющих ограничительного характера вариантах осуществления заранее определенная скорость выполнения и заранее определенное время полного цикла изменения положения заранее определяются для данного запоминающего устройств или для вида устройств, включающего данное запоминающее устройство.
В некоторых не имеющих ограничительного характера вариантах осуществления способ дополнительно включает в себя построение заранее определенной модели для запоминающего устройств или для вида устройств, включающего это запоминающее устройство.
В некоторых не имеющих ограничительного характера вариантах осуществления построение заранее определенной модели включает в себя: определение для контрольного запоминающего устройства скорости выполнения множества контрольных операций I/O, включая операции вида, связанного с подмножеством операций I/O, направленных в запоминающее устройство, причем скорость выполнения определяется по меньшей мере (а) на внешней дорожке и (б) на внутренней дорожке контрольного запоминающего устройства; определение скорости вращения диска контрольного запоминающего устройства; определение минимальной задержки между прекращением выполнения одной операции из множества контрольных операций I/O и началом выполнения следующей операции из множества контрольных операций I/O, необходимой для выполнения контрольным запоминающим устройством следующей операции из множества контрольных операций I/O без полного цикла изменения положения жесткого диска контрольного запоминающего устройства.
В некоторых не имеющих ограничительного характера вариантах осуществления построение заранее определенной модели выполняется путем отправки в контрольное запоминающее устройство заранее заданного количества контрольных операций I/O до начала эксплуатации контрольного запоминающего устройства.
В некоторых не имеющих ограничительного характера вариантах осуществления построение заранее определенной модели дополнительно включает в себя учет указанных производителем характеристик производительности контрольного запоминающего устройства.
В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере один счетчик включает в себя первый счетчик для подсчета количества операций I/O, направленных в запоминающее устройство, и второй счетчик для подсчета количества полученных от запоминающего устройства подтверждений завершения операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления определение фактического времени активности включает в себя: определение общего времени простоя путем суммирования всех  интервалов, в течение которых значения первого и второго счетчиков равны; вычитание общего времени простоя из заранее заданного периода времени.
В некоторых не имеющих ограничительного характера вариантах осуществления способ дополнительно включает в себя анализ параметра производительности.
В некоторых не имеющих ограничительного характера вариантах осуществления этот анализ включает в себя сравнение параметра производительности с пороговым значением 1 и определение наличия потенциальной неисправности, если параметр производительности превышает 1.
В некоторых не имеющих ограничительного характера вариантах осуществления запоминающее устройство представляет собой одно из множества запоминающих устройств, а анализ включает в себя определение подмножества запоминающих устройств, которые имеют: усредненный в течение второго заранее заданного  интервала параметр производительности, превышающий другой усредненный параметр производительности других запоминающих устройств из множества запоминающих устройств; и максимальный параметр производительности в течение второго заранее заданного  интервала, превышающий другой максимальный параметр производительности других запоминающих устройств из множества запоминающих устройств.
В некоторых не имеющих ограничительного характера вариантах осуществления параметр производительности представляет собой отношение (пропорцию).
В некоторых не имеющих ограничительного характера вариантах осуществления анализ включает в себя сравнение параметра производительности с пороговым значением и определение наличия потенциальной неисправности, если параметр производительности превышает пороговое значение.
В некоторых не имеющих ограничительного характера вариантах осуществления пороговое значение равно 1.
В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере один счетчик содержит единый счетчик, формирующий показатель фактического времени обработки для по меньшей мере части подмножества операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления анализ включает в себя сравнение параметра производительности с пороговым значением и определение наличия потенциальной аномалии в виде избыточной производительности запоминающего устройства, если параметр производительности меньше порогового значения.
В некоторых не имеющих ограничительного характера вариантах осуществления пороговое значение равно 1.
В некоторых не имеющих ограничительного характера вариантах осуществления запоминающее устройство представляет собой накопитель SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления способ дополнительно включает в себя определение параметра производительности для каждого запоминающего устройства из множества запоминающих устройств, включающего в себя накопитель SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления накопитель SSD имеет номер модели и/или номер изделия, а формирование параметра производительности дополнительно основано на минимальной задержке, заранее определенной для контрольного накопителя SSD, имеющего тот же номер модели и/или номер изделия, что и данный накопитель SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере один счетчик включает в себя первый счетчик для контроля операций I/O, направленных в накопитель SSD для обработки, и второй счетчик для контроля полученных от накопителя SSD подтверждений завершения операций I/O; а применение по меньшей мере одного счетчика для определения фактического времени активности накопителя SSD в течение заранее заданного периода времени включает в себя: выполнение первого счетчика для контроля операций I/O, направленных в накопитель SSD для обработки в течение заранее заданного периода времени; выполнение второго счетчика для контроля подтверждений завершения операций I/O, полученных от накопителя SSD в течение заранее заданного периода времени; определение суммарной продолжительности всех  интервалов в течение заранее заданного периода времени, когда значения первого и второго счетчиков были равны.
В некоторых не имеющих ограничительного характера вариантах осуществления применение по меньшей мере одного счетчика для определения фактического времени активности накопителя SSD в течение заранее заданного периода времени дополнительно включает в себя вычитание из заранее заданного периода времени суммарной продолжительности всех  интервалов, в течение которых значения первого и второго счетчиков были равны.
В некоторых не имеющих ограничительного характера вариантах осуществления заранее определенная модель дополнительно основана на минимальной задержке, заранее определенной для контрольного накопителя SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления заранее определенная модель основана на эмпирической проверке контрольного накопителя SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления эмпирическая проверка включает в себя отправку в контрольный накопитель SSD заранее заданного количества контрольных операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления способ дополнительно включает в себя построение заранее определенной модели, включая полную очистку контрольного накопителя SSD перед эмпирической проверкой контрольного накопителя SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления способ дополнительно включает в себя построение заранее определенной модели до начала эксплуатации накопителя SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления построение заранее определенной модели включает в себя учет указанных производителем характеристик производительности контрольного накопителя SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления способ дополнительно включает в себя анализ параметра производительности.
В некоторых не имеющих ограничительного характера вариантах осуществления этот анализ включает в себя сравнение параметра производительности с пороговым значением и определение наличия потенциальной аномалии в виде потенциальной неисправности накопителя SSD, если параметр производительности превышает пороговое значение.
В некоторых не имеющих ограничительного характера вариантах осуществления накопитель SSD представляет собой одно из множества запоминающих устройств, а анализ включает в себя определение подмножества запоминающих устройств, которые имеют: усредненный в течение второго заранее заданного  интервала параметр производительности, превышающий другой усредненный параметр производительности других запоминающих устройств из множества запоминающих устройств; и максимальный параметр производительности в течение второго заранее заданного  интервала, превышающий другой максимальный параметр производительности других запоминающих устройств из множества запоминающих устройств.
В некоторых не имеющих ограничительного характера вариантах осуществления анализ включает в себя сравнение параметра производительности с пороговым значением и определение наличия потенциальной аномалии в виде избыточной производительности накопителя SSD, если параметр производительности меньше порогового значения.
В некоторых не имеющих ограничительного характера вариантах осуществления применение заранее определенной модели для одной операции из подмножества операций I/O включает в себя: определение времени выполнения этой операции из подмножества операций I/O на основе размера этой операции из подмножества операций I/O и заранее определенной скорости выполнения этой операции из подмножества операций I/O; определение суммарного времени выполнения подмножества операций I/O на основе времени выполнения каждой операции из подмножества операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления суммарное время выполнения для подмножества операций I/O включает в себя минимальную задержку накопителя SSD, связанную с каждой операцией из подмножества операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере один счетчик представляет собой единый счетчик, формирующий показатель фактического времени активности накопителя SSD в течение заранее заданного периода времени.
В некоторых не имеющих ограничительного характера вариантах осуществления минимальная задержка накопителя SSD заранее определена для контрольного накопителя SSD.
В связи с вышеизложенным и в соответствии с другим аспектом данной технологии реализован способ обнаружения потенциальной аномалии фактической производительности запоминающего устройства, выполняемый компьютером надзорного элемента, связанным с запоминающим устройством. Способ включает в себя выполнение в течение заранее заданного периода времени следующих действий: определение подмножества операций ввода/вывода (I/O), направленных в запоминающее устройство для обработки; применение по меньшей мере одного счетчика для определения фактического времени активности запоминающего устройства в течение заранее заданного периода времени, причем фактическое время активности соответствует времени обработки в запоминающем устройстве по меньшей мере некоторых операций из подмножества операций I/O; применение заранее определенной модели для формирования контрольного времени обработки для по меньшей мере некоторых операций из подмножества операций I/O; расчет контрольного времени обработки для по меньшей мере некоторых операций из подмножества операций I/O; формирование параметра производительности на основе фактического времени активности и контрольного времени обработки; определение наличия потенциальной аномалии фактической производительности запоминающего устройства на основе анализа параметра производительности.
В соответствии с другим аспектом данной технологии реализована компьютерная система для обнаружения потенциальной аномалии в запоминающем устройстве, содержащая компьютер надзорного элемента, связанный с запоминающим устройством и содержащий процессор и физическую память, связанную с процессором и хранящую команды, при выполнении которых процессором компьютер надзорного элемента выполняет в течение заранее заданного периода времени следующие действия: определение подмножества операций ввода/вывода (I/O), направленных в запоминающее устройство для обработки; применение по меньшей мере одного счетчика для определения фактического времени активности запоминающего устройства в течение заранее заданного периода времени, причем фактическое время активности приблизительно соответствует времени обработки в запоминающем устройстве по меньшей мере части подмножества операций I/O; применение заранее определенной модели для формирования оценки контрольного времени обработки для каждой транзакции из подмножества транзакций; расчет контрольного времени обработки для подмножества операций I/O; формирование параметра производительности на основе фактического времени активности и контрольного времени обработки; определение наличия потенциальной аномалии запоминающего устройства на основе анализа параметра производительности.
В контексте настоящего описания термин «сервер» означает компьютерную программу, выполняемую соответствующими аппаратными средствами и способную принимать запросы (например, от клиентских устройств) через сеть и выполнять эти запросы или инициировать их выполнение. Аппаратные средства могут представлять собой один физический компьютер или одну компьютерную систему и это не существенно для данной технологии. В настоящем контексте выражение «сервер» не означает, что каждая задача (например, принятая команда или запрос) или некоторая определенная задача принимается, выполняется или запускается одним и тем же сервером (т.е. одними и теми же программными и/или аппаратными средствами); это выражение означает, что любое количество программных средств или аппаратных средств может принимать, направлять, выполнять или запускать выполнение любой задачи или запроса либо результатов любых задач или запросов; все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем оба эти случая подразумеваются в выражении «по меньшей мере один сервер».
В контексте настоящего описания термин «клиентское устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения данной задачи. Таким образом, некоторые (не имеющие ограничительного характера) примеры клиентских устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что в данном контексте устройство, функционирующее как клиентское устройство, также может функционировать как сервер для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов, либо шагов любого описанного здесь способа.
В контексте настоящего описания выражение «информация» включает в себя информацию любого рода или вида, допускающую хранение в базе данных. Таким образом, информация включает в себя аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные о местоположении, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы, списки слов и т.д., но не ограничивается ими.
В контексте настоящего описания выражение «компонент» включает в себя программное обеспечение (подходящее для определенных аппаратных средств), необходимое и достаточное для выполнения соответствующей определенной функции (функций).
В контексте настоящего описания выражение «пригодный для использования в компьютере носитель информации» означает носители любого типа и вида, включая ОЗУ, ПЗУ, диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, твердотельные накопители, накопители на магнитных лентах и т.д.
В контексте настоящего описания числительные «первый» «второй», «третий» и т.д. используются только для указания различия между существительными, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Например, должно быть понятно, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо определенного порядка, вида, хронологии, иерархии или классификации, в данном случае, серверов, и что их использование (само по себе) не подразумевает обязательного наличия «второго сервера» в любой ситуации. Кроме того, как встречается в настоящем описании в другом контексте, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента могут быть одним и тем же реальным элементом. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой одно и то же программное и/или аппаратное средство, а в других случаях - различные программные и/или аппаратные средства.
Каждый вариант осуществления данной технологии имеет отношение к по меньшей мере одной или одного из вышеупомянутых целей и/или аспектов, но не обязательно ко всем ним. Должно быть понятно, что некоторые аспекты данной технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.
Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления данной технологии содержатся в дальнейшем описании, приложенных чертежах и формуле изобретения.
Краткое описание чертежей
Эти и другие признаки, аспекты и преимущества данной технологии должны быть понятны из дальнейшего описания, приложенной формулы изобретения и следующих чертежей.
На фиг. 1 приведена схема распределенной системы компьютерной обработки информации, пригодной для реализации вариантов данной технологии, не имеющих ограничительного характера.
На фиг. 2 приведена схема устройства для хранения данных распределенной системы компьютерной обработки информации, представленной на фиг. 1.
На фиг. 3 приведена схема накопителя HDD устройства хранения данных, представленного на фиг. 2.
На фиг. 4 приведена схема контрольного накопителя HDD, имеющего тот же номер модели, что и накопитель HDD, представленный на фиг 3.
На фиг. 5 приведена блок-схема способа построения модели прогнозирования для контрольного накопителя HDD, представленного на фиг. 4.
На фиг. 6 приведена блок-схема способа определения потенциальной неисправности или потенциальной избыточности производительности накопителя HDD, представленного на фиг. 3.
На фиг. 7 приведен график  ряда рабочих параметров, определенных для некоторого набора периодов времени на основе производительности накопителя HDD, представленного на фиг. 3.
На фиг. 8 приведена схема накопителя SSD устройства хранения данных распределенной системы компьютерной обработки информации, представленной на фиг. 2.
На фиг. 9 приведена схема контрольного накопителя SSD, имеющего тот же номер модели, что и SSD, представленный на фиг 8.
На фиг. 10 приведена блок-схема способа построения модели прогнозирования для контрольного накопителя SSD, представленного на фиг. 9.
На фиг. 11 приведен график временного ряда рабочих параметров, определенных для некоторого набора периодов времени на основе производительности накопителя SSD, представленного на фиг. 8.
На фиг. 12 приведен график временного ряда рабочих параметров, определенных для некоторого набора периодов времени на основе производительности накопителя HDD, представленного на фиг. 3, накопителя SSD, представленного на фиг. 8, и другого запоминающего устройства распределенной системы компьютерной обработки информации, представленной на фиг. 1.
На фиг. 13 схематически представлены значения первого и второго счетчиков в течение заранее заданного периода времени, причем первый и второй счетчики выполняются компьютером надзорного элемента распределенной системы компьютерной обработки информации в отношении работы накопителя HDD, представленного на фиг. 3.
Осуществление изобретения
Дальнейшее подробное описание представляет собой лишь описание примеров, иллюстрирующих данную технологию. Это описание не предназначено для определения объема или границ данной технологии. В некоторых случаях приводятся полезные примеры модификаций, которые способствуют пониманию, но не определяют объем или границы данной технологии. Эти модификации не составляют исчерпывающего списка, возможны и другие модификации.
Кроме того, если в некоторых случаях примеры модификаций не описаны, это не означает, что модификации невозможны и/или что описание содержит единственный вариант осуществления определенного аспекта данной технологии. Кроме того, следует понимать, что настоящее подробное описание в некоторых случаях касается упрощенных вариантов осуществления данной технологии, и что такие варианты представлены для того, чтобы способствовать лучшему ее пониманию. Различные варианты осуществления данной технологии могут быть значительно сложнее.
На фиг. 1 представлена распределенная система 100 компьютерной обработки информации или сокращенно распределенная система 100 обработки информации. Распределенная система 100 обработки информации позволяет реализовать не имеющие ограничительного характера варианты осуществления данной технологии. Очевидно, что распределенная система 100 обработки информации приведена только в качестве иллюстративного варианта осуществления данной технологии. Таким образом, дальнейшее описание системы представляет собой описание примеров, иллюстрирующих настоящую технологию. Это описание не предназначено для определения объема или границ данной технологии.
В некоторых случаях также приводятся полезные примеры модификаций распределенной системы 100 обработки информации. Они способствуют пониманию, но также не определяют объема или границ данной технологии. Эти модификации не составляют исчерпывающего списка. Специалисту в данной области должно быть понятно, что возможны и другие модификации. Кроме того, если в некоторых случаях примеры модификаций не описаны, это не означает, что модификации невозможны и/или что описание содержит единственный вариант осуществления данного элемента данной технологии. Специалисту в данной области должно быть понятно, что это не так. Кроме того, следует понимать, что распределенная система 100 обработки информации в некоторых случаях может представлять собой упрощенную реализацию данной технологии, и что такие варианты представлены, чтобы способствовать лучшему ее пониманию. Специалисту в данной области должно быть понятно, что различные варианты осуществления данной технологии могут быть значительно сложнее.
Распределенная система 100 обработки информации содержит источник 102 запросов, сеть 103 связи, подсистему 104 предварительной обработки запросов, подсистему 105 обработки транзакций, подсистему 106 маршрутизации транзакций, распределенную подсистему 108 хранения данных, подсистему 110 базы данных и операционную подсистему 111.
Далее описана реализация указанных выше компонентов распределенной системы 100 обработки информации в соответствии с различными не имеющими ограничительного характера вариантами осуществления данной технологии.
Источник запросов
Источник 102 запросов может представлять собой электронное устройство, связанное с конечным пользователем (например, клиентское устройство), или любую другую подсистему распределенной системы 100 обработки информации, способную обеспечивать пользовательские запросы к распределенной системе 100 обработки информации. Несмотря на то, что на фиг. 1 показан только один источник 102 запросов, очевидно, что распределенная система 100 обработки информации может содержать несколько источников 102 запросов. Как показано в данном документе, источник 102 запросов входит в состав распределенной системы 100 обработки информации. Тем не менее, в некоторых вариантах осуществления данной технологии источник 102 запросов может быть внешним по отношению к распределенной системе 100 обработки информации и может подключаться с использованием линии связи (не обозначена).
Фактически, типичный вариант осуществления распределенной системы 100 обработки информации может включать в себя большое количество источников 102 запросов (сотни, тысячи, миллионы и т.д.).
В некоторых вариантах осуществления данной технологии, когда распределенная система 100 обработки информации используется в среде бизнес-потребитель (В2С, business-to-customer), источник 102 запросов может представлять собой клиентское устройство, такое как смартфон, связанное с пользователем распределенной системы 100 обработки информации. Например, распределенная система 100 обработки информации может обеспечивать услуги удаленного хранилища данных для клиентского устройства определенного пользователя.
В некоторых вариантах осуществления данной технологии, когда распределенная система 100 обработки информации используется в среде бизнес-бизнес (В2В, business-to-business), источник 102 запросов может представлять собой подсистему, такую как удаленный сервер, обеспечивающую пользовательские запросы к распределенной системе 100 обработки информации. Например, в некоторых вариантах осуществления данной технологии распределенная система 100 обработки информации может обеспечивать услуги отказоустойчивой обработки и/или хранения данных для оператора такой подсистемы.
В целом, независимо от реализации распределенной системы 100 обработки данных в виде системы В2С или В2В (или любого другого варианта системы), источник 102 запросов может представлять собой клиентское устройство или другую подсистему, которые могут быть внутренними или внешними по отношению к распределенной системе 100 обработки данных.
Как указано выше, источник 102 запросов способен выдавать множество запросов 180, каждый из которых далее называется запросом 180. Характер запроса 180 зависит от вида источника 102 запросов. В частности, один из примеров запроса 180 представляет собой запрос, сформированный на языке структурированных запросов (SQL, Structured Query Language). Поэтому предполагается, что в некоторых вариантах осуществления данной технологии запрос 180 может быть сформирован на языке декларативного программирования, т.е. запрос 180 может представлять собой запрос декларативного вида.
В общем случае декларативное программирование относится к построению структуры и элементов компьютерных программ, которые отражают логику вычислений без описания потока управления. Распространенные языки декларативного программирования включают SQL, XQuery и другие языки запросов к базе данных. В целом, запрос декларативного вида определяет действие в выражениях «что требуется выполнить», а не «как это требуется выполнить».
Это означает, что запрос декларативного вида может быть связан с условием выполнения определенного действия. В качестве условия, например, может быть указано, в каком элементе должно выполняться это действие или где следует получать значения для выполнения этого действия.
В качестве не имеющих ограничительного характера примеров можно привести следующие запросы декларативного вида: «Вставить значение 5 в ячейку, связанную с ключом, который равен значению ячейки, связанной с ключом А» и «Для всех ключей, связанных с ячейкой, имеющих значение 5, заменить это значение на значение 10». Тем не менее, должно быть понятно, что представленные выше примеры декларативных языков и примеры запросов декларативного вида приведены исключительно для лучшего понимания, и что другие декларативные языки и другие запросы декларативного вида могут использоваться источником 102 запросов в пределах объема данной технологии.
В некоторых вариантах осуществления данной технологии источник 102 запросов также способен принимать множество ответов 181, каждый из которых далее называется ответом 181. В общем случае в ответ на запрос 180, обработанный или не обработанный распределенной системой 100 обработки информации, распределенная система 100 обработки информации может формировать ответ 181, предназначенный для источника 102 запросов, связанного с соответствующим запросом 180. Характер ответа 181, среди прочего, зависит от вида источника 102 запроса, вида соответствующего запроса 180 и от того, обработала или не обработала распределенная система 100 обработки информации соответствующий запрос 180. В некоторых вариантах осуществления данной технологии распределенная система 100 обработки информации может формировать ответ 181, только если не удалось обработать запрос, или только в случае успешной обработки запроса, или в обоих случаях.
Например, во время обработки запроса 180 распределенная система 100 обработки информации может быть способна запрашивать дополнительные данные от источника 102 запроса для продолжения или завершения обработки запроса 180. В этом случае распределенная система 100 обработки информации может быть способна формировать ответ 181 в виде сообщения с запросом данных, в котором указываются дополнительные данные, запрашиваемые распределенной системой 100 обработки информации для продолжения или завершения обработки запроса 180.
В другом примере, если распределенная система 100 обработки информации успешно обработала соответствующий запрос 180, распределенная система 100 обработки информации может быть способна формировать ответ 181 в виде сообщения об успешном завершении, оповещающего об успешной обработке соответствующего запроса 180.
В другом примере, если распределенной системе 100 обработки информации не удалось успешно обработать соответствующий запрос 180, распределенная система 100 обработки информации может быть способна формировать ответ 181 в виде сообщения о неудачном завершении, оповещающего о том, что не удалось обработать соответствующий запрос 180. В этом случае источник 102 запроса может быть способен выполнять дополнительные действия, такие как повторное направление запроса 180, выполнение диагностического контроля для определения причины неудачного завершения обработки запроса 180 распределенной системой 100 обработки информации, направление нового запроса, предназначенного для распределенной системы 100 обработки информации, и т.д.
Сеть связи
Источник 102 запросов связан с сетью 103 связи для направления запроса 180 в распределенную систему 100 обработки информации и для приема ответа 181 от распределенной системы 100 обработки информации. В некоторых не имеющих ограничительного характера вариантах осуществления данной технологии в качестве сети 103 связи может использоваться сеть Интернет. В других не имеющих ограничительного характера вариантах осуществления данной технологии сеть 103 связи может быть реализована иначе, например, в виде любой глобальной сети связи, локальной сети связи, частной сети связи и т.п. Реализация линии связи (отдельно не обозначена) между источником 102 запросов и сетью 103 связи зависит, среди прочего, от реализации источника 102 запросов.

Только в качестве примера, не имеющего ограничительного характера, в тех вариантах осуществления данной технологии, где источник 102 запросов реализован как беспроводное устройство связи (такое как смартфон), линия связи может быть реализована как беспроводная линия связи (такая как канал сети связи 3G, канал сети связи 4G, Wireless Fidelity или сокращенно WiFi, Bluetooth и т.п.). В тех примерах, где источник 102 запросов реализован как удаленный сервер, линия связи может быть беспроводной (такой как Wireless Fidelity или сокращенно WiFi, Bluetooth и т.д.) или проводной (такой как соединение по сети Ethernet).
Следует отметить, что сеть 103 связи, среди прочего, способна передавать пакет данных запроса, содержащий запрос 180, из источника 102 запросов в подсистему 104 предварительной обработки запросов распределенной системы 100 обработки информации. Например, этот пакет данных запроса может содержать выполняемые компьютером команды, составленные на языке программирования декларативного вида, на котором представлен запрос 180. Сеть 103 связи, среди прочего, способна также передавать пакет данных ответа, содержащий ответ 181, из распределенной системы 100 обработки информации в источник 102 запросов. Например, этот пакет данных ответа может содержать выполняемые компьютером команды, представляющие ответ 181.
Тем не менее, предполагается, что в некоторых вариантах осуществления данной технологии, когда источник 102 запросов представляет собой, например, подсистему распределенной системы 100 обработки информации, сеть 103 связи может быть реализована способом, отличным от описанного выше, или в некоторых случаях может даже отсутствовать в пределах объема данной технологии.
Операционная подсистема (улей)
Как указано выше, распределенная система 100 обработки информации содержит операционную подсистему 111 или сокращенно улей. В общем случае улей 111 представляет собой программное приложение (например, конечный автомат), способное управлять по меньшей мере некоторыми подсистемами распределенной системы 100 обработки информации, такими как подсистема 104 предварительной обработки запросов и подсистема 105 обработки транзакций. Можно сказать, что улей 111 может быть реализован как конечный автомат (SM, state machine), способный формировать, удалять и/или выравнивать нагрузку других автоматов SM, образующих по меньшей мере некоторые подсистемы распределенной системы 100 обработки информации.
Должно быть понятно, что автомат SM представляет собой вычислительную модель, реализованную в виде компьютерной системы и определяемую списком состояний. Автомат SM может изменять свое текущее состояние в ответ на некоторую внешнюю входную информацию и может в конкретный момент времени находиться только в одном состоянии. Переход автомата SM из одного состояния в другое состояние называется изменением состояния.
Следует отметить, что в контексте данной технологии автоматы SM, образующие по меньшей мере некоторые подсистемы распределенной системы 100 обработки информации, являются детерминированными по свое природе, т.е. каждое изменение состояния каждого автомата SM однозначно определено (а) текущим состоянием соответствующего автомата SM и (б) внешней входной информацией соответствующего автомата SM. Иными словами, для текущего состояния автомата SM и для внешней входной информации существует единственное следующее состояние этого автомата. Этот детерминированный характер изменения состояния не зависит от того, у какого автомата SM распределенной системы 100 обработки информации происходит изменение состояния.
Поэтому, как описано ниже, в некоторых вариантах осуществления данной технологии распределенная система 100 обработки информации должна принимать внешние входные данные определенного вида, соответствующие свойству детерминированности конечных автоматов, от по меньшей мере некоторых подсистем распределенной системы 100 обработки информации.
Распределенная подсистема хранения данных
Как упомянуто ранее, распределенная система 100 обработки информации также содержит распределенную подсистему 108 хранения данных. В общем случае распределенная подсистема 108 хранения данных способна, среди прочего, хранить системные данные, указывающие состояния, изменения состояний, внешние входные и/или выходные данные по меньшей мере некоторых автоматов SM распределенной системы 100 обработки информации. Например, системные данные, связанные с автоматом SM распределенной системы 100 обработки информации, могут храниться в виде журнала, содержащего хронологический список состояний, изменений состояний, внешних входных и/или выходных данных данного автомата SM.
Распределенная подсистема 108 хранения данных также способна хранить клиентские данные, т.е. данные, связанные с внешней входной информацией, обрабатываемой распределенной системой 100 обработки информации. Например, в некоторых вариантах осуществления данной технологии клиентские данные могут храниться как часть системных данных в распределенной подсистеме 108 хранения данных в пределах объема данной технологии.
Для хранения системных и/или клиентских данных распределенная подсистема 108 хранения данных содержит множество устройств 112 хранения данных, каждое из которых далее называется устройством 112 хранения данных. Согласно различным вариантам осуществления данной технологии, некоторые или все устройства из множества устройств 112 хранения данных могут располагаться в одном или в различных местах. Например, некоторые или все устройства из множества устройств 112 хранения данных могут располагаться в одной серверной стойке, и/или в одном центре обработки данных, и/или могут быть распределены среди множества серверных стоек в одном или нескольких центрах обработки данных.
В некоторых вариантах осуществления данной технологии системные и/или клиентские данные, хранящиеся в одном устройстве 112 хранения данных, могут дублироваться и храниться в одном или нескольких других устройствах 112 хранения данных. В некоторых вариантах осуществления такое дублирование и хранение системных и/или клиентских данных может обеспечивать отказоустойчивое хранение системных и/или клиентских данных в распределенной системе 100 обработки информации. Отказоустойчивое хранение системных и/или клиентских данных способно предотвратить потерю данных, когда устройство 112 хранения данных распределенной подсистемы 108 хранения данных становится временно или постоянно недоступным для хранения и извлечения данных. Такое отказоустойчивое хранение системных и/или клиентских данных также может предотвратить потерю данных, когда автомат SM распределенной подсистемы 100 обработки информации становится временно или постоянно недоступным.
Предполагается, что устройство 112 может быть реализовано в виде компьютерного сервера. Компьютерный сервер содержит по меньше мере одно физическое запоминающее устройство (т.е. накопитель 126) и одно или несколько программных приложений, способных выполнять машиночитаемые команды. Накопитель 126 может представлять собой накопитель SSD, накопитель HDD и т.п. Поэтому можно сказать, что по меньшей мере одно физическое запоминающее устройство может быть реализовано как устройство с подвижным или неподвижным диском.
Например, как показано на фиг. 1, данное устройство 112 хранения данных способно хранить, среди прочего, следующие программные приложения: приложение 114 виртуального накопителя (Vdrive), приложение 116 физического накопителя (Pdrive), по меньшей мере одно приложение 118 моделирования накопителя, по меньшей мере одно приложение 120 планирования работы, приложение 122 обеспечения работы в реальном времени и по меньшей мере один прокси-сервер 124 автомата SM. Функции указанных выше программных приложений и накопителя 126, обеспечивающие хранение по меньшей мере некоторых системных и/или клиентских данных, более подробно описаны ниже со ссылками на фиг. 2.
Подсистема предварительной обработки запросов
Как указано выше, подсистема 105 обработки транзакций может содержать несколько детерминированных автоматов SM, которые должны получать входные данные определенного вида и которые соответствуют свойству детерминированности детерминированных конечных автоматов. Также следует еще раз отметить, что источник 102 запросов выдает запрос 180 в виде запроса декларативного вида.
Соответственно, подсистема 104 предварительной обработки запросов способна принимать запрос 180 декларативного вида от источника 102 запросов и предварительно обрабатывать или преобразовывать запрос 180 во множество детерминированных транзакций 182, которые соответствуют свойству детерминированности нескольких детерминированных автоматов SM, образующих подсистему 105 обработки транзакций.
В целом, подсистема 104 предварительной обработки запросов предназначена для предварительной обработки или преобразования запроса 180 во множество детерминированных транзакций 182, которые могут быть обработаны детерминированными автоматами SM из подсистемы 105 обработки транзакций.
Следует отметить, что подсистема 104 предварительной обработки запросов также способна формировать ответ 181 для передачи в источник 102 запросов. Разумеется, что подсистема 104 предварительной обработки запросов связана с подсистемой 105 обработки транзакций не только для передачи множества детерминированных транзакций 182, но и для приема информации об обработке множества детерминированных транзакций 182. В некоторых не имеющих ограничительного характера вариантах осуществления данной технологии множество детерминированных транзакций 182 может содержать одну или несколько транзакций вида «считывание» или «запись».
В некоторых вариантах осуществления данной технологии подсистема 104 предварительной обработки запросов реализована в виде по меньшей мере одного автомата SM в пределах объема данной технологии.
В некоторых вариантах осуществления данной технологии предполагается, что представленная на фиг. 1 распределенная система 100 обработки информации способна поддерживать транзакции ACID (Atomicity, Consistency, Isolation and Durability). В целом, ACID - это аббревиатура для набора свойств транзакции (атомарность, согласованность, изолированность, долговечность), которые обеспечивают надежность базы данных при выполнении транзакций. Поэтому в некоторых вариантах осуществления данной технологии предполагается, что транзакции, предназначенные для подсистемы 105 обработки транзакций, могут быть атомарными, согласованными, изолированными и долговечными в пределах объема данной технологии.
Подсистема обработки транзакций
В общем случае подсистема 105 обработки транзакций способна принимать и обрабатывать множество детерминированных транзакций 182 и, таким образом, обрабатывать запрос 180 от источника 102 запросов. Подсистема 105 обработки транзакций содержит (а) подсистему 106 маршрутизации транзакций и (б) подсистему 110 базы данных, которые описаны ниже.
Подсистема 110 базы данных содержит множество мест назначения транзакции (TDL, transaction destination location) и разделяется на множество сегментов 109, каждый из которых далее называется сегментом 109. В не имеющем ограничительного характера примере подсистема 110 базы данных может содержать базу данных, включающую в себя одну или несколько таблиц базы данных. Таблица базы данных может состоять из по меньшей мере двух столбцов, таких как первый столбец, содержащий ключи, и второй столбец, содержащий записи, в которых хранятся данные, связанные с соответствующими ключами. В этом не имеющем ограничительного характера примере место TDL может соответствовать строке таблицы базы данных, т.е. место TDL может соответствовать ключу и соответствующей записи в таблице базы данных.
В этом не имеющем ограничительного характера примере каждый сегмент 109 подсистемы 110 базы данных содержит часть таблицы базы данных. Следовательно, множество мест TDL, сопоставленных с соответствующими строками таблицы базы данных, разделяется между множеством сегментов 109 так, чтобы каждый сегмент 109 содержал соответствующее подмножество (например, диапазон) множества мест TDL.
В некоторых вариантах осуществления данной технологии предполагается, что каждый сегмент из множества сегментов 109 может быть реализован с использованием соответствующего детерминированного автомата SM. Это означает, что после приема транзакции, предназначенной для места TDL сегмента 109, реализованного с использованием автомата SM, этот автомат SM может обработать транзакцию и перейти из текущего состояния в новое состояние в соответствии с транзакцией, как описано выше.
Подсистема 106 маршрутизации транзакций способна маршрутизировать транзакции из множества детерминированных транзакций 182 в соответствующие места TDL и, таким образом, в соответствующие сегменты 109 подсистемы 110 базы данных. С этой целью подсистема 106 маршрутизации транзакций может включать в себя множество портов, который обычно способны (а) принимать множество детерминированных транзакций 182 из подсистемы 104 предварительной обработки запросов, (б) разделять множество детерминированных транзакций 182 на подмножества детерминированных транзакций, предназначенных для соответствующих сегментов 109, и (в) формировать для каждого сегмента централизованный порядок выполнения соответствующими сегментами 109 детерминированных транзакций.
Следует отметить, что каждый порт из множества портов, образующих подсистему 106 маршрутизации транзакций, может быть реализован как соответствующий автомат SM. В некоторых вариантах осуществления предполагается, что множество портов может включать в себя порты двух различных видов для маршрутизации транзакций из множества детерминированных транзакций 182 в соответствующие сегменты 109. В других вариантах осуществления по меньшей мере некоторые функции множества портов могут выполняться автоматами SM, соответствующими множеству сегментов 109.
Кроме того, как показано на фиг. 1, по меньшей мере некоторые из автоматов SM подсистемы 105 обработки транзакций могут быть связаны с распределенной подсистемой 108 хранения данных с использованием соответствующей линии 160 связи. В целом, линия 160 связи предназначена для передачи системных данных, таких как информация о состояниях, изменениях состояний, внешних входах и/или выходах соответствующих автоматов SM и т.д., в распределенную подсистему 108 хранения данных для хранения. Далее со ссылками на фиг. 2 более подробно описана реализация линий 160 связи и порядок конфигурирования распределенной подсистемы 108 хранения данных для хранения системных данных.
На фиг. 2 представлено устройство 112 хранения данных, входящее в состав распределенной подсистемы 108 хранения данных. Как описано выше, устройство 112 хранения данных содержит по меньшей мере один прокси-сервер 124 автомата SM. Прокси-сервер автомата SM предназначен для управления связью между автоматом SM и распределенной подсистемой 108 хранения данных. В некоторых вариантах осуществления данной технологии предполагается, что по меньшей мере один прокси-сервер 124 автомата SM устройства 112 хранения данных может представлять собой прикладной программный интерфейс (API, Application Programing Interface), управляющий связью между автоматом SM и устройством 112 хранения данных. В других вариантах осуществления данной технологии по меньшей мере один прокси-сервер 124 автомата SM сам может быть реализован как автомат SM. В других вариантах осуществления данной технологии по меньшей мере один прокси-сервер 124 автомата SM может быть реализован как программный модуль (не как автомат SM) для выполнения описанных выше функций.
В некоторых вариантах осуществления данной технологии прокси-сервер 124 автомата SM может быть способен (а) принимать системные данные обновления журнала данного SM с использованием линии 160 связи, (б) обрабатывать системные данные и (в) передавать обработанные системные данные соответствующему приложению 114 для дальнейшей обработки.
По меньшей мере один прокси-сервер 124 автомата SM может быть способен обрабатывать системные данные, например, для обеспечения целостности и отказоустойчивости системных данных. В некоторых вариантах осуществления данной технологии предполагается, что по меньшей мере один прокси-сервер 124 автомата SM может быть способен выполнять стойкое к потере кодирование (erasure coding) системных данных. В целом, такое кодирование представляет собой способ кодирования, предусматривающий получение данных с избыточностью и разделение их на несколько фрагментов. Такая избыточность и фрагментация способны упростить восстановление данных в случае потери одного или нескольких фрагментов вследствие отказов в системе.
Предполагается, что обработанные таким образом по меньшей мере одним прокси-сервером 124 автомата SM системные данные принимаются по меньшей мере одним соответствующим приложением 114 Vdrive устройства 112 хранения данных. Приложение 114 Vdrive предназначено для обработки системных данных, полученных от по меньшей мере одного прокси-сервера 124 автомата SM, и ответного формирования соответствующих операций I/O, которые должны выполняться накопителем 126 для сохранения системных данных в накопителе 126 устройства 112 хранения данных. После формирования по меньшей мере одним приложением 114 Vdrive операций I/O, соответствующих принятым системным данным, по меньшей мере одно приложение 114 Vdrive передает операции I/O приложению 116 Pdrive.
Иными словами, предполагается, что устройство 112 хранения данных может содержать несколько прокси-серверов 124 автомата SM для обработки и передачи системных данных нескольким соответствующим приложениям 114 Vdrive, которые обрабатывают системные данные, формируют соответствующие операции I/O и передают соответствующие операции I/O в единое приложение 116 Pdrive устройства 112 хранения данных.
В целом, приложение 116 Pdrive предназначено для управления работой накопителя 126. Например, приложение 116 Pdrive может быть способным выполнять кодирование операций I/O, которые должны выполняться в накопителе 126, и различные другие функции, способствующие надежному хранению данных в накопителе 126.
Приложение 116 Pdrive связано с приложением 120 планирования работы для передачи операций I/O. Приложение 120 планирования работы способно планировать передачу операций I/O в накопитель 126. Предполагается, что приложение 120 планирования работы или сокращенно планировщик может использовать различные схемы планирования для определения порядка передачи операций I/O в накопитель 126 для дальнейшего выполнения.
Предполагается, что в некоторых вариантах осуществления данной технологии планировщик 120 может быть реализован как часть приложения 116 Pdrive. Иными словами, приложением 116 Pdrive могут выполняться различные схемы планирования в пределах объема данной технологии.
В одном случае планировщик 120 может реализовывать схему «справедливого» планирования. Должно быть понятно, что для данного устройства 112 хранения данных может потребоваться хранение операций I/O, соответствующих системным данным, связанным с несколькими автоматами SM. Кроме того, каждый из нескольких автоматов SM связан с заранее заданной долей полосы пропускания накопителя, которую накопитель 126 может выделить для выполнения операций I/O, связанных с соответствующим автоматом SM. В целом, схемы «справедливого» планирования способны упорядочивать операции I/O, передаваемые в накопитель 126, так, чтобы полоса пропускания накопителя 126, предназначенная для выполнения упорядоченных операций I/O, использовалась согласно заранее заданным долям, связанным с несколькими автоматами SM.
В другом случае планировщик 120 может обеспечивать схему планирования «в реальном времени». Следует еще раз отметить, что распределенная система 100 обработки информации может использоваться для обеспечения услуг удаленного хранилища данных. Во многих таких вариантах осуществления может быть желательным обрабатывать и сохранять системные данные в реальном времени, т.е. в течение очень короткого интервала времени. Чтобы обеспечить требования к режиму реального времени распределенной системы 100 обработки информации, операции I/O могут связываться с соответствующими предельными сроками, которые указывают момент времени, по прошествии которого соответствующие операции I/O уже не попадают в пределы допустимого времени, соответствующие требованиям к режиму реального времени распределенной системы 100 обработки информации. В целом, схемы планирования реального времени способны упорядочивать операции I/O, передаваемые в накопитель 126, так, чтобы операции I/O выполнялись накопителем 126 согласно соответствующим предельным срокам.
В другом случае планировщик 120 может обеспечивать гибридную схему планирования. Иными словами, планировщик 120 может обеспечить схему планирования, позволяющую упорядочивать операции I/O, передаваемые для выполнения в накопитель 126, так, чтобы учитывались и заранее заданные доли полосы пропускания накопителя для каждого соответствующего SM, и соответствующие предельные сроки операций I/O.
Как было упомянуто ранее, накопитель 126 представляет собой носитель информации для выполнения операций I/O и, соответственно, для хранения системных данных, переданных в устройство 112 хранения данных. Например, накопитель 126 может быть реализован в виде накопителя HDD или накопителя SSD. Накопитель 126 включает в себя внутреннее логическое устройство 250 накопителя для выбора операции I/O среди всех переданных в накопитель операций I/O для выполнения в текущий момент времени.
Следует отметить, что операции I/O могут направляться для выполнения в накопитель 126 по одной, но это может приводить к увеличению задержек между накопителем 126 и другими компонентами устройства 112 хранения данных. Поэтому операции I/O могут предаваться в накопитель 126 пакетами или группами. После приема пакета или группы операций I/O накопителем 126 внутреннее логическое устройство 250 накопителя способно выбрать для выполнения наиболее эффективную операцию I/O среди доступных операций I/O в пакете.
Например, наиболее эффективная операция I/O может выбираться на основе различных критериев, таких как место выполнения предыдущей операции I/O в накопителе 126 и место выполнения операций I/O, доступных в накопителе 126. Иными словами, внутреннее логическое устройство 250 накопителя способно выбирать для текущего выполнения наиболее эффективную операцию (с точки зрения накопителя 126) среди всех операций I/O, доступных в накопителе 126 в текущий момент времени.
Поэтому в некоторых случаях, несмотря на то, что планировщик 120 упорядочил операции I/O для передачи определенным образом с учетом требований к режиму реального времени распределенной системы 100 обработки информации, внутреннее логическое устройство 250 накопителя 126 может выдавать в накопитель 126 команды для формирования порядка выполнения операций I/O, отличного от порядка передачи, выбранного планировщиком 120. Поэтому порядок выполнения иногда может не соответствовать требованиям режима реального времени распределенной системы 100 обработки информации (в частности, когда от планировщика 120 принимаются дополнительные операции I/O, которые могут быть более «эффективными» с точки зрения накопителя 126 и могут выбираться среди еще не выполненных операций I/O).
Чтобы обеспечить работу устройства 112 хранения данных в реальном времени и предотвратить описанную выше проблему, также известную как «торможение работы» (operation stagnation), устройство 112 хранения данных может содержать приложение 122 обеспечения работы в реальном времени. В целом, приложение 122 обеспечения работы в реальном времени позволяет управлять тем, какие операции I/O из числа уже упорядоченных планировщиком 120 передаются в текущий момент времени для выполнения в накопитель 126.
Предполагается, что в некоторых вариантах осуществления данной технологии приложение 122 обеспечения работы в реальном времени может быть реализовано как часть приложения 116 Pdrive. Иными словами, вышеупомянутые функции приложения 122 обеспечения работы в реальном времени могут выполняться приложением 116 Pdrive в пределах объема данной технологии.
Устройство 112 хранения данных также может содержать по меньшей мере одно соответствующее приложение 118 моделирования накопителя для каждого накопителя 126 в устройстве 112 хранения данных. В целом, приложение 118 моделирования накопителя способно эмулировать идеальную работу накопителя 126 для контроля накопителя 126 в диагностических целях. Тем не менее, в других вариантах осуществления планировщик 120 также может использовать приложение 118 моделирования накопителя, чтобы упорядочивать операции I/O для передачи в накопитель 126.
Предполагается, что в некоторых вариантах осуществления данной технологии по меньшей мере одно соответствующее приложение 118 моделирования накопителя может быть реализовано как часть приложения 116 Pdrive. Иными словами, вышеупомянутые функции по меньшей мере одного соответствующего приложения 118 моделирования накопителя могут выполняться приложением 116 Pdrive в пределах объема данной технологии.
Обзор способов диагностики в данной технологии
В некоторых вариантах осуществления данной технологии используются один или несколько способов определения потенциальной неисправности запоминающего устройства. В некоторых вариантах осуществления эти способы также позволяют обнаружить избыточную производительность данного запоминающего устройства. В некоторых вариантах осуществления эти способы используются применительно к распределенной системе 100 обработки информации и позволяют выполнять профилактическое техническое обслуживание и/или замену запоминающих устройств, в которых определена неисправность или снижение производительности, и/или повышать надежность системы, и/или повышать производительность системы. Распределенная система 100 обработки информации представляет собой пример среды, в которой могут выполняться способы согласно данной технологии. Эти способы также могут быть реализованы с использованием других компьютерных систем и применительно к запоминающим устройствам, отличным от описанных в этом документе.
В частности, применительно к распределенной подсистеме 108 хранения данных распределенной системы 100 обработки информации способы согласно данной технологии в некоторых случаях позволяют определить или обнаружить потенциальную неисправность одного или нескольких запоминающих устройств, таких как один или несколько накопителей 126 распределенной подсистемы 108 хранения данных, до искажения и/или утраты данных одного или нескольких накопителей 126 вследствие потенциальной неисправности. В некоторых случаях это позволяет администратору системы проводить профилактическое техническое обслуживание одного или нескольких накопителей 126, определенных как потенциально неисправные, например, путем замены или ремонта одного или нескольких накопителей 126.
В представленном на фиг. 1 примере описанной выше распределенной системы 100 обработки информации один или несколько способов диагностики согласно данной технологии могут выполняться в компьютере 200 надзорного элемента. Как показано на фиг. 1, компьютер 200 надзорного элемента содержит процессор 218, физическую память 220, связанную с процессором 218, и в некоторых не имеющих ограничительного характера вариантах осуществления локальное устройство 222 хранения данных, связанное с процессором 218.
В некоторых вариантах осуществления данной технологии к компьютеру 200 надзорного элемента может иметь доступ один или несколько администраторов системы или другой обслуживающий персонал. В некоторых вариантах осуществления данной технологии компьютер 200 надзорного элемента может представлять собой сервер, автоматически выдающий запросы на техническое обслуживание или ремонт при появлении признаков потенциальных неисправностей, обнаруженных с использованием способов согласно данной технологии.
Как схематически показано в примере на фиг. 1, компьютер 200 надзорного элемента с использованием сети 103 связи связан с каждым накопителем 126 распределенной подсистемы 108 хранения данных. Тем не менее, предполагается, что может использоваться любой другой подходящий маршрут соединения, например, прямое соединение с распределенной подсистемой 108 хранения данных.
Далее некоторые не имеющие ограничительного характера варианты осуществления способов диагностики согласно данной технологии описаны применительно к накопителю 126 данного устройства 112 хранения данных распределенной подсистемы 108 хранения данных. В некоторых не имеющих ограничительного характера вариантах осуществления накопитель 126 представляет собой накопитель 201 HDD.
Ниже описаны дополнительные варианты осуществления способов диагностики согласно данной технологии применительно к другому устройству 112 хранения данных распределенной подсистемы 108 хранения данных, содержащему накопитель 801 SSD.
Несмотря на то, что способы согласно данной технологии описаны применительно к накопителю 201 HDD и накопителю 801 SSD, эти способы также могут применяться для устройств 112 хранения данных других видов, включая сочетания устройств 112 хранения данных различных видов. Например, в не имеющем ограничительного характера варианте осуществления способы согласно данной технологии могут использоваться для одновременного контроля множества накопителей HDD и множества накопителей SSD.
Способы диагностики
Согласно одному из аспектов некоторых не имеющих ограничительного характера вариантов осуществления способов диагностики согласно данной технологии, операции I/O, такие как операции считывания и записи, направляемые в данное запоминающее устройство для обработки, контролируются в течение заранее заданного периода времени. При этом определяется время отправки каждой операции в данное запоминающее устройство и время подтверждения обработки этой операции. На основании этих значений времени определяется фактическое время обработки операций I/O в запоминающем устройстве.
Модель прогнозирования, заранее сформированная на основе контрольного запоминающего устройства, идентичного данному запоминающему устройству, используется для формирования оценки контрольного времени обработки операций I/O, которое далее может называться контрольным временем обработки. Для формирования модели прогнозирования используется не бывшее в употреблении нормально функционирующее контрольное запоминающее устройство.
Соответственно, сформированное контрольное время обработки для набора операций I/O представляет собой предсказанное время, требуемое контрольному запоминающему устройству для обработки или выполнения этого набора операций I/O. В более широком плане контрольное время обработки, сформированное моделью прогнозирования для операций I/O, представляет собой ожидаемый уровень производительности любого устройства, идентичного контрольному запоминающему устройству.
Затем способ предусматривает формирование параметра производительности на основе определенного фактического времени обработки конкретных операций I/O и контрольного времени обработки конкретных операций I/O. Затем параметр производительности анализируется для определения наличия потенциальной неисправности в данном запоминающем устройстве в текущий момент времени или в прошлом.
По меньшей мере в некоторых случаях признак потенциальной неисправности в данном запоминающем устройстве формируется, если определено наличие потенциальной неисправности в данном запоминающем устройстве в текущий момент времени или в прошлом. В некоторых не имеющих ограничительного характера вариантах осуществления анализ производительности также используется для оповещения о потенциальной избыточной производительности данного запоминающего устройства по сравнению с контрольным запоминающим устройством.
Разработчики данной технологии обнаружили, что по меньшей мере в некоторых приложениях и по меньшей мере в некоторых случаях определение и замена запоминающего устройства из множества запоминающих устройств, выполненная тотчас или вскоре после повреждения или ухудшения физических характеристик этого запоминающего устройства, обеспечивает значительный рост производительности и повышение надежности всей системы.
В таких приложениях снижение производительности даже одного запоминающего устройства в кластере приводит к снижению производительности всего кластера. Разработчики данной технологии, в частности, обнаружили, что в таких приложениях в некоторых случаях замена запоминающего устройства (или нескольких устройств), определенных согласно данной технологии как имеющие потенциальную неисправность, повышает производительность всего кластера.
Разработчики данной технологии также обнаружили, что способы диагностики согласно данной технологии в некоторых случаях позволяют определить запоминающие устройства со сниженной производительностью, которые в случае использования известных способов диагностики могли бы рассматриваться как нормально работающие. Соответственно было обнаружено, что в некоторых случаях способы диагностики согласно данной технологии позволяют избежать искажения данных и/или улучшить производительность системы, когда известные способы диагностики оказываются неэффективными.
Способы диагностики: варианты реализации для накопителя на жестких дисках
Не имеющий ограничительного характера вариант осуществления способа 600 определения потенциальной неисправности запоминающего устройства описан ниже применительно к накопителю 201 HDD одного из устройств 112 хранения данных распределенной подсистемы 108 хранения данных. Способ 600 выполняется в показанном на фиг. 1 компьютере 200 надзорного элемента, который связан с накопителем 201 HDD одного из устройств 112 хранения данных распределенной подсистемы 108 хранения данных. Устройство 112 хранения данных, содержащее накопитель 201 HDD, показано на фиг. 1 и 2. Накопитель 201 HDD представляет собой один конкретный не имеющий ограничительного характера пример накопителя 126, в отношении которого может применяться способ 600.
В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере некоторые из описанных здесь способов по меньшей мере частично могут выполняться в устройстве 112 хранения данных, содержащем накопитель 201 HDD. В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере некоторые из описанных в здесь способов могут полностью выполняться в устройстве 112 хранения данных, содержащем накопитель 201 HDD. В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере некоторые из описанных здесь способов по меньшей мере частично могут выполняться в источнике 102 запросов. В некоторых не имеющих ограничительного характера вариантах осуществления по меньшей мере некоторые из описанных здесь способов могут полностью выполняться в источнике 102 запросов. Предполагается, что описанные здесь способы могут также выполняться в одном или нескольких других местах.
В качестве примера, в некоторых не имеющих ограничительного характера вариантах осуществления накопитель 201 HDD представляет собой изготовленный компанией Seagate Technology Company 3,5-дюймовый накопитель на жестких дисках Barracuda™ емкостью 2 терабайта с интерфейсом SATA и номером изделия ST2000DM006, который совпадает с номером модели.
Для этого конкретного накопителя 201 HDD указана максимальная скорость непрерывной передачи данных 220 мегабайтов в секунду (МБ/с). В других вариантах осуществления накопитель 201 HDD имеет другие номера изделия и модели, а также другие компоновки и уровни производительности жестких дисков и головок считывания/записи.
Как показано на фиг. 3, пример накопителя 201 HDD содержит жесткий диск, вращающийся в направлении, показанном стрелкой 208, и головку 210 считывания/записи, которой управляет контроллер 209 накопителя 201 HDD. Контроллер 209 накопителя 201 HDD хорошо известен, и поэтому его подробное описание опущено. Для простоты некоторые операции, принимаемые, управляемые и/или выполняемые контроллером 209 накопителя 201 HDD, описаны как принимаемые, управляемые и/или выполняемые накопителем 201 HDD. Для целей настоящего описания каждая головка 210 считывания/записи накопителя 201 HDD также может называться записывающей головкой накопителя 201 HDD.
Головка 210 считывания/записи способна перемещаться относительно жесткого диска 206 в направлении, показанном стрелкой 207, для считывания данных с жесткого диска 206 и записи данных на жесткий диск 206.
Жесткий диск 206 содержит множество дорожек 224, включая внешнюю дорожку 226 и внутреннюю дорожку 228. Каждая из дорожек 224 содержит множество секторов. Например, внешняя дорожка 226 содержит множество секторов 221, а внутренняя дорожка 228 содержит множество секторов 223. Головка 210 считывания/записи записывает и считывает данные из определенных секторов жесткого диска 206.
Во время использования накопитель 201 HDD принимает для обработки операции I/O, такие как операции считывания и операции записи, показанные в виде треугольников 212, от источника 102 запросов с использованием соответствующих компонентов распределенной системы 100 обработки информации, описанной выше. Накопитель 201 HDD обрабатывает операции 212 I/O.
Например, головка 210 считывания/записи накопителя 126 выполняет операцию записи из множества операций 212 I/O в определенном секторе или месте на жестком диске 206, как указано в операции записи. Аналогично, головка 210 считывания/записи накопителя 201 HDD выполняет операцию считывания из множества операций 212 I/O в определенном секторе или месте на жестком диске 206, как указано в операции считывания.
Для каждой обработанной операции 212 I/O накопитель 201 HDD передает или выдает подтверждение завершения или обработки операции 212 I/O накопителем 201 HDD. Эти подтверждения могут называться подтверждениями завершения операции I/O и показаны треугольниками 214.
Компьютер 200 надзорного элемента контролирует операции 2121/0, направляемые в накопитель 201 HDD, и подтверждения 214 завершения операций I/O, передаваемые накопителем 201 HDD.
В некоторых не имеющих ограничительного характера вариантах осуществления, компьютер 200 надзорного элемента осуществляет контроль в течение множества заранее заданных периодов времени, продолжительность которых составляет, например 15 секунд. В некоторых не имеющих ограничительного характера вариантах осуществления заранее заданные периоды времени распределяются по заранее заданным интервалам времени в течение суток. Например, в некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента непрерывно осуществляет контроль в течение последовательных заранее заданных периодов продолжительностью 15 секунд ежедневно и круглосуточно.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента хранит различные выходные данные способа 600 в одной или нескольких структурах 216 данных. В настоящем варианте осуществления одна или несколько структур 216 данных (фиг. 1) хранятся локально в компьютере 200 надзорного элемента. Тем не менее, одна или несколько структур 216 данных могут храниться в любом подходящем или требуемом месте.
Как показано на фиг. 2, в некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента с целью контроля выполняет первый счетчик 202, который контролирует операции 212 I/O, направляемые для обработки в накопитель 201 HDD, и второй счетчик 204, который контролирует подтверждения 214 завершения операций I/O, передаваемые или выдаваемые накопителем 201 HDD.
В некоторых не имеющих ограничительного характера вариантах осуществления первый счетчик 202 содержит целое значение, представляющее собой количество операций 212 I/O, направленных в 201 HDD, которое равно нулю, когда операции I/O еще не направлены в 201 HDD. В некоторых не имеющих ограничительного характера вариантах осуществления используется суммирующий первый счетчик 202.
В некоторых не имеющих ограничительного характера вариантах осуществления второй счетчик 204 содержит целое значение, представляющее собой количество подтверждений 214 завершения операций I/O, переданных или выданных накопителем 201 HDD, которое равно нулю, когда подтверждения завершения операций I/O еще не переданы или не выданы накопителем 201 HDD. В некоторых не имеющих ограничительного характера вариантах осуществления используется суммирующий второй счетчик 204.
Значения первого счетчика 202 и второго счетчика 204, которые также могут называться выходными данными, контролируются, как более подробно описано ниже.
В некоторых не имеющих ограничительного характера вариантах осуществления используется единый счетчик. Например, в некоторых не имеющих ограничительного характера вариантах осуществления единый счетчик способен выполнять обе функции, выполняемые первым счетчиком 202 и вторым счетчиком 204.
На фиг. 4 представлено контрольное запоминающее устройство 400, представляющее собой накопитель HDD. Как более подробно описано ниже, контрольный накопитель 400 HDD используется как образцовое устройство, относительно которого анализируется работа накопителя 201 HDD с целью определения или обнаружения потенциальных неисправностей и/или потенциальной избыточной производительности накопителя 201 HDD. Поэтому в качестве контрольного накопителя 400 HDD используется новое устройство, о котором известно, что оно находится в «идеальном» или другом требуемом физическом состоянии или иным образом работает с требуемым уровнем производительности.
Контрольный накопитель 400 HDD идентичен накопителю 201 HDD. Иными словами, контрольный накопитель 400 HDD также представляет собой изготовленный компанией Seagate Technology Company 3,5-дюймовый накопитель на жестких дисках Barracuda™ емкостью 2 терабайта с интерфейсом SATA, с номером изделия ST2000DM006, совпадающим с номером модели, и с указанной максимальной скоростью непрерывной передачи данных 220 МБ/с. Следует отметить, что в некоторых не имеющих ограничительного характера вариантах осуществления в качестве контрольного накопителя 400 HDD используется новый накопитель 201 HDD.
Как показано на фиг. 4, контрольный накопитель 400 HDD содержит те же составные части, что и накопитель 201 HDD. Поэтому составные части контрольного накопителя 400 HDD имеет те же позиционные обозначения, что и соответствующие составные части накопителя 201 HDD и их подробное описание опущено.
Разработчики данной технологии обнаружили, что хотя запоминающее устройство, такое как накопитель 201 HDD и контрольный накопитель 400 HDD, обычно поставляются производителем с техническим описанием, в котором указана производительность запоминающего устройства, эти технические описания в некоторых случаях оказываются недостаточно точными и в некоторых случаях не могут использоваться в качестве контрольных или образцовых значений для определения производительности.
Разработчики данной технологии также обнаружили, что типичные значения производительности для запоминающих устройств указываются в виде среднего стабильного уровня производительности, максимального стабильного уровня производительности, уровня производительности при определенных рабочих условиях и т.д., в то время как их фактическая производительность разнится в зависимости от конкретных рабочих условий в каждый момент времени.
Например, разработчики данной технологии обнаружили, что производительность накопителя HDD при считывании/записи изменяется в зависимости от того, работает ли данная головка считывания/записи накопителя HDD на внутренней дорожке 228 или на внешней дорожке 226 соответствующего жесткого диска накопителя HDD. Например, разработчики данной технологии обнаружили, что производительность накопителя 201 HDD при считывания/записи изменяется в зависимости от того, работает ли головка 210 считывания/записи накопителя 201 HDD на внутренней дорожке 228 или на внешней дорожке 226 жесткого диска 206.
Поэтому данная технология предусматривает использование контрольного накопителя 400 HDD для построения или задания модели прогнозирования до начала эксплуатации накопителя 201 HDD. Заранее определенная модель позволяет прогнозировать производительность контрольного накопителя 400 HDD в различных рабочих условиях. В некоторых не имеющих ограничительного характера вариантах осуществления заранее определенная модель для накопителя 201 HDD реализована в соответствующем приложении 118 моделирования накопителя (фиг. 1). В некоторых не имеющих ограничительного характера вариантах осуществления заранее определенная модель для накопителя 201 HDD хранится и выполняется в компьютере 200 надзорного элемента.
Заранее определенная модель для накопителя 201 HDD определяет образцовую производительность, относительно которой анализируется рабочая производительность накопителя 201 HDD для определения или обнаружения потенциальных неисправностей или потенциальной избыточной производительности накопителя 201 HDD.
Иными словами, как это более подробно описано ниже, заранее определенная модель применяется, чтобы сформировать контрольное время обработки для набора операций 212 I/O, обработанных накопителем 201 HDD, на основе по меньшей мере некоторых особенностей набора операций 212 I/O и/или мест на жестком диске, где обработан или выполнен или должен быть обработан или выполнен набор операций 212 I/O.
Контрольное время обработки представляет собой оценку времени, требуемое контрольному накопителю 400 HDD для обработки или выполнения набора операций 212 I/O.
Накопитель HDD: способ построения модели прогнозирования
Далее описан не имеющий ограничительного характера вариант осуществления способа 500 построения модели прогнозирования согласно фиг. 4 и 5.
Шаг 502 - определение скорости записи контрольного запоминающего устройства на внутренней дорожке.
На шаге 502 множество последовательных операций 504 записи одного или нескольких определенных размеров (измеряются, например, в байтах), показанных на фиг. 4 треугольниками, направляется в контрольный накопитель 400 HDD для обработки или выполнения на внутренней дорожке 228. Головка 210 считывания/записи контрольного накопителя 400 HDD обрабатывает или выполняет множество операций 504 записи. В результате определяется скорость записи контрольного накопителя 400 HDD на внутренней дорожке 228.
Шаг 504 - определение скорости записи контрольного запоминающего устройства на внешней дорожке.
На шаге 504 множество операций 504 записи направляется в контрольный накопитель 400 HDD для обработки или выполнения на внешней дорожке 226. Головка 210 считывания/записи контрольного накопителя 400 HDD обрабатывает или выполняет множество операций 504 записи. В результате получается скорость записи контрольного накопителя 400 HDD на внешней дорожке 226.
Шаг 506 - определение радиусов, соответствующих дорожкам контрольного запоминающего устройства.
На шаге 506 путем измерений жесткого диска 206 или с использованием технического описания от производителя определяются радиус 404 жесткого диска 206, соответствующий внешней дорожке 226, и радиус 402 жесткого диска 206, соответствующий внутренней дорожке 228. Кроме того, путем измерений жесткого диска 206, или с использованием технического описания от производителя, или путем интерполяции на основе радиуса 404 и радиуса 402 определяются радиусы каждой дорожки между внешней дорожкой 226 и внутренней дорожкой 228 и заранее определенное расстояние между каждыми двумя соседними дорожками, расположенными между внешней дорожкой 226 и внутренней дорожкой 228.
Дорожки, расположенные между внешней дорожкой 226 и внутренней дорожкой 228, в дальнейшем называются промежуточными дорожками. Радиусы, соответствующие дорожкам, расположенным между внешней дорожкой 226 и внутренней дорожкой 228, в дальнейшем называются промежуточными радиусами.
Предполагается, что могут использоваться другие способы определения радиуса 404, радиуса 402 и промежуточных радиусов. Как показано на фиг. 4, радиус 404, радиус 402 и промежуточные радиусы измеряются от центра вращения жесткого диска 206 контрольного накопителя 400 HDD.
Шаг 508 - формирование алгоритма определения скорости записи для контрольного запоминающего устройства на основе скорости записи на внутренней дорожке, радиуса внутренней дорожки, скорости записи на внешней дорожке, радиуса внешней дорожки и радиусов, соответствующих промежуточным дорожкам контрольного запоминающего устройства.
На шаге 508 формируется алгоритм определения скорости записи на основе определенной скорости записи на внешней дорожке 226, радиуса 404 внешней дорожки 226, определенной скорости записи на внутренней дорожке 228, радиуса 402 внутренней дорожки 228 и радиусов, соответствующих промежуточным дорожкам.
Алгоритм скорости записи определяет или предсказывает скорость последовательной записи контрольного накопителя 400 HDD на каждой промежуточной дорожке на основе промежуточного радиуса, соответствующего промежуточной дорожке. В настоящем не имеющем ограничительного характера варианте осуществления в алгоритме скорости записи используется функция линейной интерполяции. Алгоритм скорости записи представляет собой один из базовых компонентов модели для прогнозирования контрольного времени обработки, формируемой на описанных ниже шагах.
Шаг 511 - определение скорости считывания контрольного запоминающего устройства на внутренней дорожке.
На шаге 511 множество последовательных операций 518 считывания одного или нескольких определенных размеров (измеряются, например, в байтах), показанных на фиг. 4 треугольниками, направляется в контрольный накопитель 400 HDD для обработки или выполнения на внутренней дорожке 228. Головка 210 считывания/записи контрольного накопителя 400 HDD обрабатывает или выполняет множество операций 518 считывания. В результате определяется скорость считывания контрольного накопителя 400 HDD на внутренней дорожке 228.
Шаг 513 - определение скорости считывания контрольного запоминающего устройства на внешней дорожке.
На шаге 513 множество операций 518 считывания направляется в контрольный накопитель 400 HDD для обработки или выполнения на внешней дорожке 226. Головка 210 считывания/записи контрольного накопителя 400 HDD обрабатывает или выполняет множество операций 518 считывания. В результате определяется скорость считывания контрольного накопителя 400 HDD на внешней дорожке 226.
Шаг 515 - формирование алгоритма определения скорости считывания для контрольного запоминающего устройства на основе скорости считывания на внутренней дорожке, радиуса внутренней дорожки, скорости считывания на внешней дорожке, радиуса внешней дорожки и радиусов, соответствующих промежуточным дорожкам контрольного запоминающего устройства.
На шаге 515 формируется алгоритм определения скорости считывания на основе определенной скорости считывания на внешней дорожке 226, радиуса 404 внешней дорожки 226, определенной скорости считывания на внутренней дорожке 228, радиуса 402 внутренней дорожки 228 и радиусов, соответствующих промежуточным дорожкам. Алгоритм скорости считывания определяет или предсказывает скорость последовательного считывания контрольного накопителя 400 HDD на каждой промежуточной дорожке на основе промежуточного радиуса, соответствующего этой промежуточной дорожке. В настоящем не имеющем ограничительного характера варианте осуществления в алгоритме скорости считывания используется функция линейной интерполяции. Алгоритм скорости считывания представляет собой один из базовых компонентов модели для прогнозирования контрольного времени обработки, формируемой на описанных ниже шагах.
Шаг 517 - формирование алгоритма определения полного цикла изменения положения для определения необходимости полного цикла изменения положения жесткого диска контрольного запоминающего устройства для пары последовательных операций I/O.
На шаге 517 множество операций 520 I/O направляется в контрольный накопитель 400 HDD для обработки или выполнения на различных дорожках и в различных секторах жесткого диска 206. В некоторых не имеющих ограничительного характера вариантах осуществления операции 520 I/O включают в себя операции последовательного и непоследовательного считывания на одних и тех же и/или на различных дорожках жесткого диска 206 и операции последовательной и непоследовательной записи на одних и тех же и/или на различных дорожках жесткого диска 206.
Для каждой пары последовательных операций 520 I/O, которые могут выполняться на одной и той же дорожке или на различных дорожках жесткого диска 206, с использованием подходящего способа определяется, требуется ли полный цикл изменения положения жесткого диска.
Для такой пары последовательных операций 520 I/O полный цикл изменения положения жесткого диска 206 представляет собой поворот жесткого диска 206, требуемый для перемещения головки 210 считывания/записи контрольного накопителя 400 HDD из положения, в котором головка 210 считывания/записи завершила первую операцию из пары операций 520 I/O, в положение, в котором головка 210 считывания/записи должна находиться, чтобы начать следующую операцию из пары операций 520 I/O.
С другой стороны, если положение, в котором головка 210 считывания/записи должна находиться, чтобы начать выполнение следующей операции из пары операций 520 I/O, находится достаточно «далеко» в направлении 208 от положения на жестком диске 206, в котором головка 210 считывания/записи завершает выполнение первой операции из пары операций 520 I/O, а затем головка 210 считывания/записи перемещается в надлежащее положение и готова к началу выполнения следующей операции из пары операций 520 I/O до того, как головка 210 считывания/записи достигает места выполнения следующей операции из пары операций 520 I/O, то полный цикл изменения положения жесткого диска 206 не требуется.
В некоторых случаях для подготовки к выполнению следующей операции из пары операций 520 I/O контроллер 209 накопителя 400 HDD должен выполнить «обработку» или другие «вспомогательные шаги». В таких случаях положение, в котором головка 210 считывания/записи должна находиться, чтобы начать выполнение следующей операции из пары операций 520 I/O, должно находится достаточно «далеко» в направлении 208 от положения на жестком диске 206, в котором головка 210 считывания/записи завершает выполнение первой операции из пары операций 520 I/O, чтобы имелось достаточно времени для перемещения головки 210 считывания/записи и для подготовки контроллера 209 к выполнению следующей операции из пары операций 520 I/O до того, как головка 210 считывания/записи достигает начального положения, связанного со следующей операцией из пары операций 520 I/O.
Как показано в примере на фиг. 4, если первая операция I/O должна выполняться головкой 210 считывания/записи в секторе 406 (жесткий диск 206 вращается в направлении 208), а следующая операция I/O должна выполняться головкой 210 считывания/записи в секторе 408, то головка 210 считывания/записи перемещается с промежуточной дорожки, содержащей сектор 406, на промежуточную дорожку, содержащую сектор 408, то того, как жесткий диск 206 повернется достаточно для помещения головки 210 считывания/записи в начало сектора 408. Иными словами, с момента времени завершения головкой 210 считывания/записи первой операции I/O в секторе 406 до момента времени начала выполнения головкой 210 считывания/записи следующей операции I/O в секторе 408 жесткий диск поворачивается в направлении 208 приблизительно на 30°, поэтому не требуется выполнять полный цикл изменения положения.
С другой стороны, как также показано в примере на фиг. 4, если первая операция I/O должна выполняться головкой 210 считывания/записи в секторе 410, а следующая операция I/O должна выполняться головкой 210 считывания/записи в секторе 408, жесткий диск 206 должен выполнить полный цикл изменения положения до того, как головка 210 считывания/записи переместится от конца сектора 410 к началу сектора 408. В этом не имеющем ограничительного характера примере полный цикл изменения положения означает, что жесткий диск 206 должен повернуться на 360° и дополнительно на угол между концом сектора 410 и началом сектора 408 до того, как головка 210 считывания/записи переместится от конца сектора 410 до начала сектора 408.
В некоторых не имеющих ограничительного характера вариантах осуществления такие операции 520 I/O и необходимость полного цикла изменения положения для каждой пары последовательных операций 520 I/O записываются в структуре данных для полного цикла изменения положения.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения полного цикла изменения положения формируется с использованием данных из структуры данных для полного цикла изменения положения и подходящего эмпирического способа. Алгоритм определения полного цикла изменения положения предсказывает или определяет необходимость полного цикла изменения положения жесткого диска 206 контрольного накопителя 400 HDD для данной пары последовательных операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения полного цикла изменения положения определяет необходимость полного цикла изменения положения жесткого диска 206 контрольного накопителя 400 HDD для пары последовательных операций I/O на основе по меньшей мере одного из следующих значений: конкретный размер (измеряется, например, в байтах или мегабайтах) пары последовательных операций I/O, скорость вращения жесткого диска 206 и относительное положение и/или расстояние между дорожками жесткого диска 206, соответствующее данной паре последовательных операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения полного цикла изменения положения также определяет значения времени полного цикла изменения положения, связанные с необходимыми случаями использования полного цикла изменения положения. В некоторых не имеющих ограничительного характера вариантах осуществления время полного цикла изменения положения заранее определяется для данного контрольного накопителя 400 HDD и для накопителя 201 HDD на основе измерения или проверки, включая в некоторых не имеющих ограничительного характера вариантах осуществления эмпирические или аналитические способы получения результатов измерения или проверки.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения полного цикла изменения положения также определяет минимальную задержку между прекращением выполнения первой операции из пары последовательных операций I/O и началом выполнения следующей операции из пары последовательных операций I/O, которая требуется, чтобы контрольное запоминающее устройство могло выполнить следующую операцию из данной пары последовательных операций I/O без полного цикла изменения положения жесткого диска 206 контрольного накопителя 400 HDD.
Шаг 521 - построение модели прогнозирования на основе алгоритма определения скорости записи, алгоритма определения скорости считывания и алгоритма определения полного цикла изменения положения.
На шаге 521 модель прогнозирования строится или определяется на основе алгоритма определения скорости записи, алгоритма определения скорости считывания и алгоритма определения полного цикла изменения положения. Иными словами, в некоторых не имеющих ограничительного характера вариантах осуществления модель прогнозирования включает в себя по меньше мере некоторые из следующих алгоритмов (или их производные): алгоритм определения скорости записи, алгоритм определения скорости считывания и алгоритм определения полного цикла изменения положения. Предполагается, что могут использоваться другие способы и/или другие структуры модели прогнозирования.
Полученная в результате модель прогнозирования (т.е. заранее определенная модель) определяет для подмножества операций I/O, которые обработаны и/или должны быть обработаны контрольным накопителем 400 HDD или накопителем 201 HDD, контрольное время обработки, связанное с данным подмножеством операций I/O.
Иными словами, подмножество операций I/O может вводиться в модель прогнозирования, которая выдает контрольное время обработки, представляющее собой время, требуемое контрольному накопителю 400 HDD для обработки или выполнения подмножества операций I/O.
Подобным образом, поскольку контрольный накопитель 400 HDD идентичен накопителю 201 HDD, контрольное время обработки представляет собой время, требуемое накопителю 201 HDD для обработки или выполнения подмножества операций I/O.
Как видно из различных шагов описанного выше способа 500, модель прогнозирования учитывает фактическую производительность (в отличие от указанных производителем характеристик) контрольного накопителя 400 HDD. Предполагается, что модель прогнозирования может строиться или заранее задаваться на основе контрольного накопителя 400 HDD с использованием различных способов и может учитывать набор переменных и констант, отличающийся от описанного выше набора переменных и констант.
На опциональном шаге фактические скорости считывания и записи контрольного накопителя 400 HDD для различных видов и/или последовательностей операций I/O, которые определены на основе описанных выше шагов, сравниваются с описанными выше указанными производителем характеристиками производительности контрольного накопителя 400 HDD. На основе этого сравнения определяется, могла ли быть допущена ошибка на любом из описанных выше этапов. В случае ошибки выполняется один или несколько шагов проверки.
Например, если скорость считывания или скорость записи контрольного накопителя 400 HDD, предсказанная для подмножества операций I/O, отличается от указанной производителем скорости считывания или скорости записи более чем на некоторое пороговое значение, то шаги получения или расчета или определения скорости считывания или скорости записи проверяются, чтобы убедиться в отсутствии ошибок.
Кроме того, если скорость считывания или скорость записи контрольного накопителя 400 HDD отличается от указанной производителем скорости считывания или скорости записи более чем на некоторое пороговое значение, контрольный накопитель 400 HDD может проверяться применимыми в данной ситуации способами, чтобы убедиться в том, что он «новый», находится в «идеальном» или «требуемом» физическом состоянии. Предполагается, что эти шаги проверки могут быть опущены.
Далее со ссылками на фиг. 6 описан не имеющий ограничительного характера вариант осуществления способа 600 определения потенциальной неисправности накопителя 201 HDD с использованием сформированной модели прогнозирования.
Накопитель HDD: способ определения потенциальной неисправности или избыточной производительности
Шаг 602 - определение в течение заранее заданного периода времени подмножества операций I/O, направленных в запоминающее устройство для обработки.
Как показано на фиг. 6, в течение одного из множества заранее заданных периодов времени, когда компьютер 200 надзорного элемента контролирует работу накопителя 201 HDD, компьютер 200 надзорного элемента определяет подмножество операций 212 I/O, направленных в накопитель 201 HDD для обработки.
В частности, в некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента определяет для каждой из операций 212 I/O, направленных в накопитель 201 HDD в течение заранее заданного периода времени, связанные с ней размер (например, в байтах или мегабайтах) и конкретный сектор (или несколько секторов) жесткого диска. В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента записывает эту информацию, например, в одной или нескольких структурах 216 данных, описанных выше.
Шаг 604 - применение в течение заранее заданного периода времени по меньшей мере одного счетчика для определения фактического времени активности запоминающего устройства, которое приблизительно соответствует времени обработки в запоминающем устройстве по меньшей мере части подмножества операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента в течение заранее заданного периода времени применяет или выполняет первый счетчик 202 для подсчета количества операций 212 I/O, направленных в накопитель 201 HDD.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента в течение данного заранее заданного периода времени также применяет или выполняет второй счетчик 204 для подсчета количества подтверждений 214 завершения операций I/O, переданных или выданных накопителем 201 HDD.
Разработчики данной технологии обнаружили, что периоды времени, в течение которых значение первого счетчика 202 равно значению второго счетчика 204, указывают на простой накопителя 201 HDD (т.е. 201 HDD не обрабатывает операций I/O).
На представленном на фиг. 13 не имеющем ограничительного характера примере схематически показаны значения первого счетчика 202 и второго счетчика 204 в течение заранее заданного периода времени длительностью 15,0 с. Как видно, значение первого счетчика 202 равно значению второго счетчика 204 приблизительно в интервале между моментами времени 7,0 с и 9,0 с (всего 2,0 с) и приблизительно в интервале между моментами времени 11,1 си 12,6 с (всего 1,5 с). В этом примере считается, что накопитель 201 HDD находился в состоянии простоя (не обрабатывал операций I/O) в течение этих двух интервалов времени, всего в течение 3,5 с из 15,0 с.
Поэтому в некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента определяет фактическое время активности накопителя 201 HDD путем выполнения следующих действий: определение общего времени простоя накопителя 201 HDD путем суммирования в течение заранее заданного периода времени всех  интервалов, в течение которых значения первого счетчика 202 и второго счетчика 204 равны; вычитание общего времени простоя из заранее заданного периода времени. В представленном на фиг. 13 не имеющем ограничительного характера примере фактическое время активности накопителя 201 HDD определяются следующим образом: 15,0 с - 3,5 с = 11,5 с.
Шаг 606 - применение заранее определенной модели для формирования оценки контрольного времени обработки для каждой операции из подмножества операций I/O.
Компьютер 200 надзорного элемента применяет описанную выше заранее определенную модель, чтобы сформировать оценку контрольного времени обработки для подмножества операций 212 I/O, направленных в накопитель 201 HDD в течение заранее заданного периода времени.
В некоторых не имеющих ограничительного характера вариантах осуществления заранее определенной модели на шаге 606 способа 600 компьютер 200 надзорного элемента вводит в заранее определенную модель размеры и сектор (или несколько секторов) назначения, связанные с подмножеством операций 212 I/O, определенных как направленные в накопитель 201 HDD в течение заранее заданного периода времени.
В ответ заранее определенная модель передает оценку контрольного времени обработки для каждой операции из подмножества операций 212 I/O путем использования частей заранее определенной модели, соответствующих алгоритму скорости записи и/или алгоритму скорости считывания, в зависимости от конкретных сочетаний операций считывания и/или записи, содержащихся в подмножестве операций 212 I/O.
В частности, в некоторых не имеющих ограничительного характера вариантах осуществления заранее определенная модель определяет время выполнения для каждой следующей операции из подмножества операций I/O на основе размера следующей операции из подмножества операций I/O и заранее определенной скорости выполнения следующей операции из подмножества операций I/O определенного вида.
В частности, размер и сектор (или несколько секторов) назначения каждой из операций считывания (если имеются) из подмножества операций 212 I/O используются в качестве входных данных для алгоритма определения скорости считывания, который выдает оценку контрольного времени обработки для каждой из операций считывания.
Подобным образом, размер и сектор (или несколько секторов) назначения каждой из операций записи (если имеются) из подмножества операций 212 I/O используются в качестве входных данных для алгоритма определения скорости записи, который выдает оценку контрольного времени обработки для каждой из операций записи.
Кроме того, в некоторых не имеющих ограничительного характера вариантах осуществления заранее определенная модель определяет, требуется ли для выполнения следующей операции из подмножества операций 212 I/O полный цикл перемещения головки 210 считывания/записи (записывающей головки) накопителя 201 HDD из положения, в котором прекращено выполнение предыдущей операции из подмножества операций 212 I/O.
В частности, это выполняется путем ввода размера и сектора (или нескольких секторов) назначения каждой пары последовательных операций из подмножества операций 212 I/O в качестве входных данных в алгоритм определения полного цикла изменения положения, который формирует признак необходимости выполнения полного цикла изменения положения соответствующей головки 210 считывания/записи (записывающей головки) накопителя 201 HDD для следующей (второй) операции из пары операций в подмножестве операций 212 I/O.
Если требуется полный цикл изменения положения, заранее определенное для контрольного накопителя 400 HDD время полного цикла изменения положения добавляется ко времени выполнения следующей операции из подмножества операций 212 I/O, чтобы получить контрольное время обработки для этой следующей операции из подмножества операций 212 I/O.
Шаг 608 - расчет контрольного времени обработки для подмножества операций I/O.
В не имеющих ограничительного характера вариантах осуществления на шаге 608 компьютер 200 надзорного элемента суммирует определенные на шаге 606 значения контрольного времени обработки каждой операции считывания и значения контрольного времени обработки каждой операции записи из подмножества операций 212 I/O, чтобы получить контрольное время обработки для подмножества операций 212 I/O.
Шаг 608а - расчет контрольного времени обработки для подмножества операций I/O.
В некоторых не имеющих ограничительного характера вариантах осуществления шаги 606 и 608 заменяются одним альтернативным шагом 608а. В таких не имеющих ограничительного характера вариантах осуществления строится заранее определенная модель для приема в качестве входных данных вышеупомянутых данных, связанных с подмножеством операций 212 I/O, и вывода контрольного времени обработки для подмножества операций 212 I/O.
Шаг 610 - формирование параметра производительности на основе фактического времени активности и контрольного времени обработки.
После определения или оценки контрольного времени обработки для подмножества операций 212 I/O, способ 600 предусматривает переход к шагу 610, на котором компьютер 200 надзорного элемента формирует параметр производительности на основе фактического времени активности накопителя 201 HDD и контрольного времени обработки, определенного для подмножества операций 212 I/O.
В настоящем не имеющем ограничительного характера варианте осуществления параметр производительности представляет собой отношение фактического времени активности накопителя 201 HDD, связанного с подмножеством операций 212 I/O, к контрольному времени обработки, связанному с подмножеством операций 212 I/O. В частности, компьютер 200 надзорного элемента делит фактическое время активности на контрольное время обработки для определения этого отношения.
Подразумевается, что в некоторых не имеющих ограничительного характера вариантах осуществления может использоваться другой параметр производительности.
Шаг 612 - определение наличия потенциальной неисправности запоминающего устройства на основе анализа параметра производительности.
На шаге 612 способа 600 компьютер 200 надзорного элемента анализирует параметр производительности (в настоящем не имеющем ограничительного характера варианте осуществления параметр производительности представляет собой отношение) и на основе этого анализа определяет наличие потенциальной неисправности в накопителе 201 HDD.
В настоящем не имеющем ограничительного характера варианте осуществления компьютер 200 надзорного элемента сравнивает параметр производительности с пороговым значением и определяет наличие потенциальной неисправности в накопителе 201 HDD, если параметр производительности превышает пороговое значение.
В некоторых случаях потенциальная неисправность может указывать на снижение производительности накопителя 201 HDD. В некоторых случаях потенциальная неисправность может указывать на сомнительную надежность накопителя 201 HDD.
В настоящем не имеющем ограничительного характера варианте осуществления пороговое значение равно 1. Предполагается, что в вариантах осуществления, где используется другой параметр производительности, соответственно, может использоваться другой анализ и/или другое пороговое значение.
Шаг 612а - определение наличия потенциальной аномалии в запоминающем устройстве на основе анализа параметра производительности.
Дополнительно и/или вместо шага 612, на котором определяется наличие неисправности, способ 600 может включать в себя шаг 612а, на котором компьютер 200 надзорного элемента анализирует параметр производительности (в настоящем не имеющем ограничительного характера варианте осуществления параметр производительности представляет собой отношение) и на основе этого анализа определяет наличие потенциальной аномалии в накопителе 201 HDD.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента также сравнивает параметр производительности с пороговым значением и определяет потенциальную избыточность производительности накопителя 201 HDD, если параметр производительности меньше порогового значения.
Предполагается, что потенциальная неисправность и потенциальная избыточная производительность представляют собой примеры потенциальной аномалии, связанной с накопителем 201 HDD.
Контроль накопителя HDD
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента контролирует накопитель 201 HDD и, как описано выше, записывает получаемые в результате данные о работе накопителя 201 HDD в одной или нескольких структурах 216 данных, описанных выше, либо в других журналах или структурах данных в реальном или в почти реальном времени во время работы накопителя 201 HDD. В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента контролирует накопитель 201 HDD и записывает контролируемые данные непрерывно и круглосуточно в течение всего года.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента формирует параметр производительности для накопителя 201 HDD для каждого из множества заранее заданных периодов времени, в течение которых компьютер 200 надзорного элемента контролирует работу накопителя 201 HDD. В не имеющем ограничительного характера примере множество заранее заданных периодов времени является последовательным и используется для контроля работы накопителя HDD201 круглосуточно в течение всего года.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента записывает параметры производительности накопителя 201 HDD в одной или нескольких структурах 216 данных, описанных выше, либо в других журналах или структурах данных для каждого из множества заранее заданных периодов времени.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента графически отображает параметры производительности накопителя 201 HDD для множества заранее заданных периодов времени на графике  ряда.
На фиг. 7 представлен пример такого графика  ряда для подмножества из множества заранее заданных периодов времени. Каждое подмножество из множества заранее заданных периодов времени может определяться пользователем компьютера 200 надзорного элемента, например, администратором системы.
В представленном на фиг. 7 примере 24-часовой период работы накопителя 201 HDD (дата выбирается администратором системы) разделен на некоторое количество последовательных заранее заданных периодов времени, таких как последовательные 15-секундные интервалы, и графически представлен на графике 712  ряда.
В некоторых не имеющих ограничительного характера вариантах осуществления график 712 позволяет пользователю, например, администратору системы, оценить физическое состояние накопителя 201 HDD в течение некоторого количества заранее заданных периодов времени (которые могут выбираться пользователем или определяться иным образом). В некоторых не имеющих ограничительного характера вариантах осуществления, таких как описанный ниже и представленный на фиг. 12 вариант, производительность нескольких накопителей HDD и/или других устройств может отображаться совместно на одном графике.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента дополнительно или в качестве альтернативы формирует сигнал тревоги или другое уведомление относительно накопителя 201 HDD, когда связанный с последним параметр производительности превышает пороговое значение.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента способен формировать сигнал тревоги или уведомление, если отдельный экземпляр параметра производительности превышает пороговое значение.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента способен формировать сигнал тревоги или уведомление, если заранее заданное количество экземпляров параметра производительности превышает пороговое значение.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента способен формировать сигнал тревоги или уведомление, если заранее заданное количество экземпляров параметра производительности превышает пороговое значение (или заранее заданное сочетание пороговых значений в некоторых не имеющих ограничительного характера вариантах осуществления) и данные события произошли в течение заранее заданного интервала времени и/или с заранее заданной пороговой частотой.
Способы диагностики твердотельного накопителя
В некоторых не имеющих ограничительного характера вариантах осуществления описанный выше для накопителя 201 HDD способ 600 определения потенциальной неисправности и/или потенциальной аномалии запоминающего устройства, например, избыточной производительности, также может использоваться для запоминающих устройств других видов, таких как накопитель 801 SSD из другого устройства 112 хранения данных распределенной подсистемы 108 хранения данных. Накопитель 801 SSD схематически представлен на фиг 8.
Как описано ниже, способы согласно данной технологии для контроля производительности накопителя 801 SSD позволяют осуществлять контроль используемого накопителя 801 SSD в реальном времени или в некоторый момент времени после завершения каждого периода использования накопителя 801 SSD.
Например, в некоторых не имеющих ограничительного характера вариантах осуществления накопитель 801 SSD представляет собой изготовленный компанией Seagate Technology Company 2,5-дюймовый твердотельный накопитель Barracuda™ емкостью 2 терабайта с интерфейсом SATA III и номером модели STGS2000401.
Для этого конкретного накопителя 801 SSD указана максимальная скорость непрерывного считывания 560 МБ/с и максимальная скорость непрерывной записи 540 МБ/с. В других вариантах осуществления накопитель 801 SSD имеет другие номера изделий, и/или номера моделей, и/или уровни производительности.
Как схематически показано на фиг. 8, пример накопителя 801 SSD содержит контроллер 802 и множество интегральных схем 804 памяти, связанных с контроллером 802.
Во время использования накопитель 801 SSD принимает для обработки операции I/O, такие как операции считывания и операции записи, показанные в виде треугольников 806, от источника 102 запросов с использованием соответствующих компонентов распределенной системы 100 обработки информации, описанной выше. В частности, операции 806 I/O принимаются контроллером 802 накопителя 801 SSD, который затем распределяет операции 806 I/O в выбранные интегральные схемы 804 памяти для обработки или выполнения.
Для каждой обработанной или выполненной операции 806 I/O накопитель 801 SSD, точнее, контроллер 802, передает или выдает подтверждение выполнения или обработки операции 806 I/O накопителем 801 SSD. Эти подтверждения могут называться подтверждениями завершения операции I/O и показаны треугольниками 808. В некоторых не имеющих ограничительного характера вариантах осуществления подтверждения 808 завершения операций I/O принимаются источником 102 запросов с использованием соответствующих компонентов описанной выше распределенной системы 100 обработки информации для различных применений источником 102 запросов.
Компьютер 200 надзорного элемента контролирует операции 806 I/O, направляемые в накопитель 801 SSD, и подтверждения 808 завершения операций I/O, передаваемые накопителем 801 SSD, подобно вариантам осуществления накопителя 201 HDD и накопителя 400 HDD.
В некоторых не имеющих ограничительного характера вариантах осуществления, компьютер 200 надзорного элемента осуществляет контроль в течение множества заранее заданных периодов времени, продолжительность которых составляет, например 15 секунд. В некоторых не имеющих ограничительного характера вариантах осуществления заранее заданные периоды времени распределяются по заранее заданным интервалам времени в течение суток. Например, в некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента непрерывно осуществляет контроль в течение последовательных заранее заданных периодов продолжительностью 15 секунд ежедневно и круглосуточно. В некоторых не имеющих ограничительного характера вариантах осуществления этот контроль может выполняться в течение тех же периодов времени, что и для другого контролируемого устройства (или нескольких устройств), такого как описанный выше накопитель 201 HDD.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента с целью контроля выполняет первый счетчик 810, который контролирует операции 806 I/O, направленные для обработки в накопитель 801 SSD, и второй счетчик 812, который контролирует подтверждения 808 завершения операций I/O, переданные или выданные накопителем 801 SSD. Эти аспекты аналогичны описанным выше вариантам осуществления накопителя 201 HDD и накопителя 400 HDD.
На фиг. 9 представлен контрольный накопитель 901 SSD. Контрольный накопитель 901 SSD идентичен накопителю 801 SSD и используется как образцовое устройство, относительно которого анализируется работа накопителя 801 SSD с целью определения или обнаружения потенциальных неисправностей и/или потенциальной избыточности производительности накопителя 801 SSD, подобно тому, как накопитель 400 HDD используется для определения производительности накопителя 201 HDD, как описано выше.
Накопитель SSD: способ построения модели прогнозирования
Далее описан не имеющий ограничительного характера вариант осуществления способа 1000 построения модели прогнозирования согласно фиг. 10.
Шаг 1002 - очистка и тримминг контрольного накопителя SSD.
Как показано на фиг. 10, способ 1000 построения модели прогнозирования начинается на шаге 1002, на котором весь контрольный накопитель 901 SSD очищается путем таких операций как форматирование и тримминг. Используемая для накопителей SSD команда очистки неиспользуемых блоков памяти (TRIM) хорошо известна и поэтому ее подробное описание опущено.
Шаг 1004 - определение скоростей записи контрольного накопителя SSD для различных операций записи.
На шаге 1004 множество операций 902 записи одного или нескольких определенных размеров (измеряются, например, в байтах), показанных на фиг. 9 треугольниками, направляется в контрольный накопитель 901 SSD для обработки или выполнения.
Контрольный накопитель 901 SSD, представленный на фиг. 9, обрабатывает или выполняет множество операций 902 записи. В результате определяется или измеряется скорость записи контрольного накопителя 901 SSD для каждой из множества операций 902 записи.
В некоторых не имеющих ограничительного характера вариантах осуществления полученные в результате данные хранятся в одной или нескольких структурах 216 данных (см. фиг. 1), например, для формирования или построения алгоритма определения скорости записи.
Шаг 1006 - формирование алгоритма определения скорости записи для контрольного накопителя SSD на основе значений скорости записи для множества операций записи.
Как показано на фиг. 10, на шаге 1006 алгоритм определения скорости записи формируется на основе значений скорости записи, определенных для множества операций 902 записи с использованием подходящих математических или эмпирических способов.
В некоторых не имеющих ограничительного характера вариантах осуществления к зафиксированным точкам данных скорости записи применяется линейная функция, чтобы соотнести размер данной операции записи со скоростью записи, с которой данная операция записи выполняется или будет выполняться (т.е. со скоростью выполнения данной операции записи).
В некоторых не имеющих ограничительного характера вариантах осуществления к зафиксированным точкам данных скорости записи применяется одна или несколько нелинейных функций, чтобы соотнести размер данной операции записи со скоростью записи, с которой данная операция записи выполняется или будет выполняться (т.е. со скоростью выполнения данной операции записи).
В некоторых не имеющих ограничительного характера вариантах осуществления в алгоритм определения скорости записи добавляются дополнительные функции и переменные, чтобы учесть, что данная операция записи должна выполняться в конкретной интегральной схеме 804 памяти и/или в конкретном суперблоке (или нескольких суперблоках) конкретной интегральной схемы 804 памяти.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения скорости записи определяет или предсказывает скорость записи контрольного накопителя 901 SSD на основе конкретных размеров операций записи, направляемых в используемый накопитель для обработки.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения скорости записи определяет или предсказывает скорость записи контрольного накопителя 901 SSD, дополнительно основываясь на том, что данные операции записи должны выполняться в конкретной интегральной схеме 804 памяти и/или в конкретном суперблоке (или нескольких суперблоках) конкретной интегральной схемы 804 памяти.
Шаг 1008 - определение скоростей считывания контрольного накопителя SSD для различных операций считывания.
На шаге 1008 множество операций 904 считывания одного или нескольких определенных размеров (измеряются, например, в байтах) (т.е. соответствующих запросов), показанных на фиг. 9 треугольниками, направляется в контрольный накопитель 901 SSD для обработки или выполнения.
Контрольный накопитель 901 SSD обрабатывает или выполняет множество операций 904 считывания. В результате определяется или измеряется скорость считывания контрольного накопителя 901 SSD для каждой из множества операций 904 считывания.
В некоторых не имеющих ограничительного характера вариантах осуществления полученные в результате данные хранятся в одной или нескольких структурах 216 данных, например, для формирования или построения алгоритма определения скорости считывания.
Шаг 1010 - формирование алгоритма определения скорости считывания для контрольного накопителя SSD на основе скоростей считывания для множества операций считывания.
На шаге 1010 алгоритм определения скорости считывания формируется на основе скоростей считывания, определенных для множества операций 904 считывания с использованием подходящих математических или эмпирических способов.
В некоторых не имеющих ограничительного характера вариантах осуществления к зафиксированным точкам данных скорости считывания применяется линейная функция, чтобы соотнести размер данной операции считывания со скоростью считывания, с которой данная операция считывания выполняется или будет выполняться (т.е. со скоростью выполнения данной операции считывания).
В некоторых не имеющих ограничительного характера вариантах осуществления к зафиксированным точкам данных скорости считывания применяется одна или несколько нелинейных функций, чтобы соотнести размер данной операции считывания со скоростью считывания, при которой данная операция записи выполняется или будет выполняться (т.е. со скоростью выполнения данной операции считывания).
В некоторых не имеющих ограничительного характера вариантах осуществления дополнительные функции и переменные добавляются в алгоритм определения скорости считывания, чтобы учесть, что данная операция считывания должна выполняться в конкретной интегральной схеме 804 памяти и/или в конкретном суперблоке (или нескольких суперблоках) конкретной интегральной схемы 804 памяти.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения скорости считывания определяет или предсказывает скорость считывания контрольного накопителя 901 SSD на основе конкретных размеров операций считывания, направляемых в используемый накопитель для обработки.
В некоторых не имеющих ограничительного характера вариантах осуществления алгоритм определения скорости считывания определяет или предсказывает скорость считывания контрольного накопителя 901 SSD, дополнительно основываясь на том, что данные операции считывания должны выполняться в конкретной интегральной схеме 804 памяти и/или в конкретном суперблоке (или нескольких суперблоках) конкретной интегральной схемы 804 памяти.
Шаг 1012 - построение или определение модели прогнозирования на основе заранее определенных для накопителя SSD алгоритмов определения скорости записи и скорости считывания.
На шаге 1012 модель прогнозирования строится или определяется на основе алгоритма определения скорости записи и алгоритма определения скорости считывания. Иными словами, в некоторых не имеющих ограничительного характера вариантах осуществления модель прогнозирования включает в себя по меньше мере некоторые из следующих алгоритмов (или их производные): алгоритм определения скорости записи и алгоритм определения скорости считывания. Предполагается, что могут использоваться другие способы и/или другие структуры модели прогнозирования.
Полученная в результате модель прогнозирования (т.е. заранее определенная модель) формирует для подмножества операций I/O, которые обработаны и/или должны быть обработаны контрольным накопителем 901 SSD или накопителем 801 SSD, контрольное время обработки, связанное с данным подмножеством операций I/O.
С этой целью данное подмножество операций I/O вводится в модель прогнозирования, которая выдает контрольное время обработки, представляющее собой время, требуемое контрольному накопителю 901 SSD или накопителю 801 SSD для обработки или выполнения подмножества операций I/O, когда контрольный накопитель 901 SSD или накопитель 801 SSD находится в «идеальном» или другом требуемом физическом состоянии.
Как видно из различных шагов описанного выше способа 1000, модель прогнозирования учитывает фактические рабочие условия контрольного накопителя 901 SSD и накопителя 801 SSD. Как описано выше, рабочие условия включают в себя размер, вид и в некоторых не имеющих ограничительного характера вариантах осуществления место (или несколько мест), связанное с конкретными операциями I/O, которые должны выполняться.
Предполагается, что модель прогнозирования может строиться или заранее задаваться на основе контрольного накопителя 901 SSD с использованием различных способов и может учитывать набор констант, переменных и функций, отличающийся от описанного выше набора.
Несмотря на то, что модель прогнозирования согласно настоящему варианту осуществления не прогнозирует и не учитывает время выполнения команды TRIM, которое может быть связано с работой контрольного накопителя 901 SSD, предполагается, что возможно построение соответствующей модели.
Шаг 1014 - определение времени задержки выполнения (минимальной задержки) для контрольного накопителя SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления на опциональном шаге 1014 время задержки выполнения (минимальная задержка) для контрольного накопителя 901 SSD определяется из представленного производителем технического описания контрольного накопителя 901 SSD или путем его измерения.
Время задержки выполнения представляет собой время между приемом контроллером 802 контрольного накопителя 901 SSD операции I/O и началом обработки этой операции I/O контрольным накопителем 901 SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления время задержки выполнения для контрольного накопителя 901 SSD учитывается в модели прогнозирования при расчете контрольных значений времени обработки для операций I/O, которые должны выполняться контрольным накопителем 901 SSD.
Накопитель SSD: способ определения потенциальной неисправности или избыточной производительности
Способ 600 определения потенциальной неисправности запоминающего устройства, описанный выше и представленный на блок-схеме на фиг. 6, применяемый для накопителя 201 HDD, может применяться для накопителя 801 SSD, также как и для накопителя 201 HDD.
В случае применения способа 600 для накопителя 801 SSD одно отличие может применяться на шаге 604 (см. фиг. 6). В частности, в некоторых не имеющих ограничительного характера вариантах осуществления, когда команды TRIM, выполняемые накопителем 801 SSD, могут повлиять на производительность при считывании или записи, в дополнение к применению первого счетчика 810 и второго счетчика 812 компьютер 200 надзорного элемента применяет или выполняет третий счетчик 814, подсчитывающий команды 816 TRIM, направляемые в накопитель 801 SSD, и соответствующие значения времени их выполнения накопителем 801 SSD.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента определяет фактическое время активности накопителя 801 SSD при выполнении подмножества операций 806 I/O путем выполнения следующих действий: определение общего времени простоя накопителя 801 SSD путем суммирования в течение заранее заданного периода времени всех  интервалов, в течение которых значения первого счетчика 810 и второго счетчика 812 равны; вычитание из этих всех  интервалов тех субинтервалов времени, в течение которых счетчик 814 указывает на выполнение команд TRIM накопителем 801 SSD, чтобы получить фактическое время простоя накопителя 801 SSD; вычитание фактического времени простоя из заранее заданного периода времени.
В случае применения способа 600 для накопителя 801 SSD другое отличие может применяться на шаге 608 (см. фиг. 6). В частности, в некоторых не имеющих ограничительного характера вариантах осуществления сумма всех субинтервалов времени в течение заранее заданного периода времени, когда третий счетчик 814 указывает на выполнение команды TRIM накопителем 801 SSD, добавляется к контрольному времени обработки, рассчитанному заранее определенной моделью для накопителя 801 SSD, перед формированием параметра производительности на шаге 610.
Иными словами, в некоторых не имеющих ограничительного характера вариантах осуществления способ 600, применяемый для накопителя 801 SSD, учитывает время выполнения накопителем 801 SSD команд TRIM в течение заранее заданного периода времени, для которого выполняется способ 600.
Контроль накопителя SSD
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента контролирует накопитель 801 SSD и записывает полученные в результате данные так же, как и для накопителя HDD 210, как описано выше.
На фиг. 11 представлен пример полученного в результате графика 1100 временного ряда для подмножества из множества заранее заданных периодов времени, в течение которых накопитель 801 SSD работал и контролировался.
Глобальная система контроля
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента выполняет способ 600 для каждого из множества запоминающих устройств, чтобы определить аномалию в работе одного или нескольких из множества запоминающих устройств.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента выполняет способ 600 для каждого запоминающего устройства из каждого устройства 112 хранения данных распределенной подсистемы 108 хранения данных.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента записывает полученные в результате данные производительности и параметры производительности, связанные с каждым контролируемым запоминающим устройством, в одной или нескольких структурах 216 данных или в других подходящих структурах данных.
В некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента способен на едином графике отображать для пользователя, например, для администратора системы, производительность любого одного или нескольких контролируемых запоминающих устройств в течение промежутка времени, определенного пользователем. Один из примеров такого графика представлен на фиг. 12.
В представленном на фиг. 12 не имеющем ограничительного характера примере компьютер 200 надзорного элемента сформировал (с использованием соответствующего приложения из способа 600) и отобразил для 24-часового периода суток параметры производительности, сформированные по результатам работы накопителя 201 HDD (график 1202  ряда), накопителя 801 SSD (график 1204  ряда) и запоминающего устройства 128 (см. фиг. 1) (график 1206  ряда), причем запоминающее устройство 128 является одним из устройств 112 хранения данных от распределенной подсистемы 108 хранения данных.
Как видно их этого примера, накопители 201 HDD и 801 SSD работали при контрольном отношении, близком к 1,0, при этом в накопителе 201 HDD присутствовала потенциальная неисправность в течение некоторого периода времени приблизительно в 16:00. Как видно из графика 1202 временного ряда, в течение этого периода времени приблизительно в 16:00 параметры производительности, сформированные для накопителя 201 HDD, превышали пороговое значение 1,0, а в течение всего остального 24-часового периода параметры производительности, сформированные для накопителя 201 HDD, были ниже порогового значения 1,0.
Как видно из графика 1204  ряда, связанного с накопителем 801 SSD, параметры производительности, сформированные для накопителя 801 SSD, были ниже порогового значения 1,0 в течение всего данного 24-часового периода, что указывает на потенциальную избыточность производительности накопителя 801 SSD по сравнению с контрольным накопителем 901 SSD.
Как видно из графика 1206  ряда, связанного с запоминающим устройством 128, параметры производительности, сформированные для запоминающего устройства 128, колебались вокруг значения 3,0. Это относительно высокий показатель влияющей на производительность потенциальной неисправности запоминающего устройства 128.
Например, в некоторых не имеющих ограничительного характера вариантах осуществления параметр (или несколько параметров) производительности для данного запоминающего устройства сравнивается с пороговым значением, которое отличается от 1,0.
В одном не имеющем ограничительного характера примере параметры производительности для данного запоминающего устройства сравниваются с пороговым значением 1,2, чтобы определить потенциальную неисправность в данном запоминающем устройстве. В этом примере добавление 0,2 представляет собой «фильтр» помех, которые могут возникать во время работы алгоритмов, используемых в способе 600. Этот «фильтр» способствует устранению ложных обнаружений потенциальных неисправностей.
В другом не имеющем ограничительного характера примере параметры производительности для данного запоминающего устройства сравниваются с пороговым значением 0,9, чтобы определить потенциальную избыточную производительность данного запоминающего устройства. В этом примере вычитание 0,1 представляет собой «фильтр» помех, которые могут возникать во время работы алгоритмов, используемых в способе 600. Этот «фильтр» способствует устранению ложных обнаружений потенциальной избыточности производительности.
В другом не имеющем ограничительного характера примере в некоторых не имеющих ограничительного характера вариантах осуществления может определяться параметр производительности одного из запоминающих устройств, усредненный в течение заранее заданного интервала времени, включающего в себя множество заранее заданных  интервалов, в течение которых контролировалось данное запоминающее устройство.
Например, применительно к фиг. 12, компьютер 200 надзорного элемента может на основании данных, представленных в виде графика 1204  ряда, рассчитать параметр производительности накопителя 201 HDD, усредненный в течение периода времени с 15:45 до 16:30, для суток, показанных на фиг. 12. В этом примере параметр производительности, усредненный для этого периода времени, может быть равен 1,17.
В соответствии с одним из способов контроля компьютер 200 надзорного элемента может затем сравнить этот усредненный параметр производительности с пороговым значением, которое, например, может быть равно 1,20, и определить, что накопитель 201 HDD находится в приемлемом физическом состоянии и не имеет потенциальной неисправности, поскольку значение 1,17 меньше 1,20.
В другом не имеющем ограничительного характера примере в некоторых не имеющих ограничительного характера вариантах осуществления компьютер 200 надзорного элемента может на основании данных, представленных в виде графика 1204 временного ряда, связанного с накопителем 201 HDD, рассчитать максимальный параметр производительности для заранее заданного интервала времени, включающего в себя множество заранее заданных временных интервалов, в течение которых контролировался накопитель 201 HDD. В этом примере максимальный параметр производительности для этого периода времени может быть равен 1,21.
В соответствии с одним из способов контроля компьютер 200 надзорного элемента может сравнить этот максимальный параметр производительности с соответствующим пороговым значением, которое, например, может быть равно 1,25, и определить, что накопитель 201 HDD находится в приемлемом физическом состоянии и не имеет потенциальной неисправности, поскольку значение 1,21 меньше 1,25.
В некоторых не имеющих ограничительного характера вариантах осуществления способов контроля данной технологии контроль усредненного параметра производительности согласно представленному выше описанию выполняется в дополнение к описанному выше контролю максимального параметра производительности так, чтобы в случае указания на наличие потенциальной неисправности, сформированного любым из этих способов, компьютер 200 надзорного элемента формировал оповещение о наличии потенциальной неисправности.
Помимо способов контроля для интерпретации сформированных данных параметра производительности, описанных выше, предполагается, что другие способы контроля также могут использоваться в дополнение, в сочетании или в качестве альтернативы.
Несмотря на то, что для описанных выше способов указан определенный порядок шагов, предполагается, что при выполнении описанных способов может использоваться другой порядок шагов.
Для специалиста в данной области могут быть очевидными изменения и усовершенствования описанных выше вариантов осуществления данной технологии. Приведенное выше описание предназначено для демонстрации конкретных не имеющих ограничительного характера вариантов осуществления данной технологии.