СПОСОБ ПОВЫШЕНИЯ НАДЕЖНОСТИ СИСТЕМ ХРАНЕНИЯ ДАННЫХ И СООТВЕТСТВУЮЩЕЕ УСТРОЙСТВО Российский патент 2023 года по МПК G06F11/14 G06F11/20 G06F12/08 

Описание патента на изобретение RU2810634C2

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

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

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

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

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

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

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

Раскрытие сущности изобретения

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

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

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

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

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

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

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

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

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

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

В соответствии с первым аспектом, в одном из возможных вариантов реализации, N равно 3.

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

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

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

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

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

В соответствии со вторым аспектом, в одном из возможных вариантов реализации, N равно 3.

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

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

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

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

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

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

Фиг. 1A представляет упрощенную схему модели последовательного соединения согласно одному из вариантов настоящей заявки;

Фиг. 1B представляет упрощенную схему модели параллельного соединения согласно одному из вариантов настоящей заявки;

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

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

Фиг. 3 представляет упрощенную структурную схему сценария приложения согласно одному из вариантов настоящей заявки;

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

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

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

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

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

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

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

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

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

Осуществление изобретения

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

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

Шина соединения периферийных компонентов с разъемом типа экспресс (peripheral component interconnect express, PCIe) используется для высокоскоростной последовательной связи по широкополосному двухпунктовому двухканальному соединению. Присоединенному устройству выделена эксклюзивная полоса канала, так что оно не участвует в совместном использовании ширины полосы шины. Поэтому скорость передачи данных является высокой. Соединение между какими-либо двумя PCIe-устройствами называется линией связи и устанавливается из группы из одного или более каналов.

Интерфейс малых компьютерных систем (small computer system interface, SCSI) представляет собой стандарт независимых процессоров, используемый для интерфейса системного уровня между компьютером и интеллектуальным устройством (таким как накопитель на жестком диске, накопитель на CD-ROM, принтер или сканер). Интерфейс SCSI представляет универсальный интерфейс. Шина интерфейса SCSI может быть соединена с адаптером главного устройства и контроллером SCSI периферийных устройств. Нескольких периферийных устройств, установленных на одной шине SCSI, могут работать в одно и то же время. Интерфейс SCSI может передавать данные синхронным или асинхронным способом. Интерфейс SCSI управляет операцией считывания/записи данных с использованием независимой высокоскоростной платы интерфейса SCSI, так что центральному процессору (central processing unit, CPU) не нужно терять время на ожидание. Это может улучшить общее функционирование системы.

Последовательный интерфейс SCSI (serial attached SCSI (SAS)) представляет собой технологию интерфейса SCSI следующего поколения, использующую последовательную технологию для достижения более высокой скорости передачи данных, улучшения внутреннего пространства путем укорочения соединений и при этом совместимую с накопителем на жестком диске с усовершенствованным последовательным соединением (serial advanced technology attachment, SATA). Интерфейс SAS имеет двухпунктовую структуру и может устанавливать прямое соединение между диском и контроллером. В дополнение к этому, структура интерфейса SAS имеет превосходную масштабируемость и может быть соединена максимум с 16384 дисководами (накопителями на дисках). Каждый интерфейс SAS имеет четыре кабеля - два для ввода и два для вывода. Данные можно считывать и записывать в одно и то же время.

Энергонезависимое запоминающее устройство с разъемом типа экспресс (non-volatile memory express, NVMe) представляет собой спецификацию интерфейса логических устройств и использует протокол, аналогичный последовательному ATA интерфейсу контроллера главного устройства (serial ATA advanced host controller interface, AHCI), разработанному для устройств флэш-памяти. Сущность интерфейса NVMe состоит в установлении нескольких путей между компьютером и устройством для хранения данных. Эти несколько путей представляют собой фактически несколько очередей. Протокол NVMe может поддерживать максимум 64k очередей, значительно улучшая параллельность и производительность.

Прямой доступ к памяти (direct memory access, DMA) представляет собой принцип действия, согласно которому коммутация ввода/вывода (I/O) осуществляется аппаратно. При таком подходе, контроллер доступа DMA принимает полное управление шиной от процессора CPU, и осуществляется прямой обмен данными между запоминающим устройством и устройством ввода/вывода (IO) без прохождения через процессор CPU. Принцип доступа DMA может уменьшить издержки процессора CPU при передаче большого объема данных. Контроллер доступа DMA используется для генерации адреса доступа в запоминающее устройство и управления процедурой доступа в запоминающее устройство. Скорость передачи данных при таком подходе является высокой, а процессор CPU в основном не вмешивается и принимает участие только во время инициализации и завершения обмена. Процессор CPU и периферийное устройство работают параллельно, вследствие чего эффективность относительно высока.

Удаленный прямой доступ к памяти (remote direct memory access, RDMA) представляет собой технологию, осуществляющую обход ядра операционной системы удаленного главного компьютера для доступа к данным в запоминающем устройстве удаленного главного компьютера. Поскольку операционная система обходится, система доступа RDMA быстро перемещает данные из системы в запоминающее устройство удаленного компьютера через сеть связи. Поэтому можно сберечь большое количество ресурсов процессора CPU, увеличить пропускную способность, исключить издержки дублирования внешних запоминающих устройств и коммутации контекста и освободить полосу запоминающего устройства для повышения производительности и других характеристик предлагаемой системы.

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

Интенсивность потока отказов (failure rate), также называемая частотой отказов, обозначает, как часто техническая система или ее компоненты выходят из строя. Интенсивность потока отказов обычно измеряют количеством отказов в час и обозначают буквой λ. Среднее время наработки на отказ (mean time between failures, MTBF) обозначает среднее время работы ремонтопригодного устройства от текущего отказа до следующего отказа. λ = 1/MTBF. Среднее время восстановления (mean time to repair, MTTR) обозначает среднее время восстановления (ремонта), за которое устройство переходит из неисправного состояния в рабочее состояние. Доступность (availability, A) или готовность обозначает степень, в которой система, подсистема или устройство находится в специфицированном техническими условиями работоспособном или пригодном к вводу в действие состоянии на момент, когда начнется выполнение задачи. Другими словами, доступность или готовность представляет собой долю времени, в течение которого система находится в работоспособном состоянии. A = MTBF/(MTBF + MTTR). Для вычисления степени доступности или готовности системы вычисляют время MTBF для каждого одиночного блока (подсистемы, устройства и т.п.) системы на основе интенсивности потока отказов этого блока и затем рассчитывают общую доступность или готовность системы на основе моделей последовательного и параллельного соединения. На Фиг. 1A представлена упрощенная схема модели последовательного соединения. В этой схеме блок 1, блок 2, ..., и блок N соединены последовательно. Доступность блока 1 равна A1, доступность блока 2 равна A2, ..., и доступность блока N равна An. Поэтому доступность (готовность) всей системы равна A = A1 * A2 * ... * An. На Фиг. 1B представлена упрощенная схема модели параллельного соединения. Модель параллельного соединения является более сложной, чем модель последовательного соединения. Резервные блоки в модели параллельного соединения классифицируются на первичные и вторичные резервные блоки и резервные блоки с распределением нагрузки. Если блок 1, блок 2, ..., и блок N на Фиг. 1B являются первичными и вторичными резервными блоками и доступность (готовность) каждого из этих блоков равна «a», доступность (готовность всей системы равна A = 1 - {C * {1 - * (N + 1 - N * a)}/N + (1 - C) * (1 - ) /N}. Параметр C представляет частоту переключений, а именно, вероятность успешного переключения от первичного блока на вторичный блок. C=C1*C2. Здесь C1 представляет частоту обнаружения отказов первичного блока, и C2 представляет частоту обнаружения отказов вторичного блока. В частности, если для каждого блока имеется только один резервный блок, иными словами, N=1, эта формула может быть упрощена до A = a + C * a * (1 - a). Если блок 1, блок 2, …, и блок N на Фиг. 1B являются резервными блоками с распределением нагрузки, и доступность (готовность) каждого блока равна «a», тогда доступность (готовность) всей системы равна A = 1 - { * {1 - * (N + 1 - N * a)}/N + (1 - ) * (1 - ) / (N + 1)}. Здесь обозначает частоту обнаружения отказов для каждого блока.

В общем случае, для улучшения масштабируемости системы, система хранения данных предприятия обычно соединяет несколько узлов управления хранением данных для образования объединенной распределенной системы и представляет сервис хранения данных для применения. Конкретнее, обратимся к Фиг. 2A, на этом Фиг. 2A представлена упрощенная структурная схема системы хранения данных. Как показано на Фиг. 2A, устройство 210 является устройством, использующим сервис хранения данных, например, главным компьютером («хостом») или сервером. Компьютер 210 соединено с устройством 220 управления и устройством 230 управления. Устройство 220 управления содержит несколько контроллеров. В рассматриваемом варианте, в качестве примера для описания использованы четыре контроллера. Этими четырьмя контроллерами являются контроллер 221, контроллер 222, контроллер 223 и контроллер 224, так что эти контроллеры соединены одни с другими через интерфейсы PCIe. Устройство 230 управления также содержит несколько контроллеров. В рассматриваемом варианте, в качестве примера для описания также использованы четыре контроллера. Этими четырьмя контроллерами являются контроллер 231, контроллер 232, контроллер 233 и контроллер 234, и они также соединены одни с другими через интерфейсы PCIe. Для повышения надежности системы, эти контроллеры соединены одни с другими по схеме с двухканальным резервированием. Устройство 220 управления также соединено с устройством 230 управления по схеме с двухканальным резервированием через интерфейс PCIe. Устройство 220 управления и устройство 230 управления могут представлять собой массивы для хранения данных. Любой контроллер, входящий в устройство 220 управления и в устройство 230 управления может использовать структуру центрального процессора (CPU) плюс запоминающее устройство. Процессор CPU вызывает из запоминающего устройства программу для осуществления соответствующей функции. В альтернативном варианте, контроллер может быть независимым кристаллом (чипом) интегральной схемы управления, например, программируемой пользователем вентильной матрицей (field-programmable gate array, FPGA), а программа может быть записана в этой матрице FPGA. Устройство 220 управления соединено с запоминающим устройством 240 через интерфейс SAS. Устройство 230 управления соединено с запоминающим устройством 250 через интерфейс SAS. Для повышения надежности системы соединение между устройством 220 управления и запоминающим устройством 240, и соединение между устройством 230 управления и запоминающим устройством 250 реализованы по схеме с двухканальным резервированием. Запоминающее устройство 240 и запоминающее устройство 250 представляют собой устройства для хранения данных, например, массивы для хранения данных. Запоминающее устройство 240 содержит плату 241 расширения, плату 242 расширения и N носителей для хранения информации. Здесь N - положительное целое число больше 1. Плата 241 расширения отвечает за управление запоминающим устройством 240. Плата 242 расширения является резервной платой расширения относительно платы 241 расширения. Когда плата 241 расширения неисправна, плата 242 расширения принимает на себя работу платы 241 расширения для повышения надежности всей системы. Структура запоминающего устройства 250 согласована со структурой запоминающего устройства 240 и содержит плату 251 расширения, плату 252 расширения и N носителей для хранения информации.

В фактическом приложении, для системы хранения данных используется технология двойного копирования памяти для обеспечения надежности системы и производительности и других характеристиках контроллера. Более конкретно, для данных, записанных в запоминающем устройстве каждого контроллера, создают резервную копию в запоминающем устройстве другого контроллера, принадлежащего тому же самому устройству управления. Как показано на Фиг. 2B, данные A сохранены в контроллере 221, и копию A1 этих данных A сохраняют в контроллере 222. Данные B сохранены в контроллере 222, и копию B1 этих данных B сохраняют в контроллере 221. Данные E сохранены в контроллере 231, и копию E1 этих данных E сохраняют в контроллере 232. Данные H сохранены в контроллере 234, и копию H1 этих данных H сохраняют в контроллере 233. Если контроллер 221 выходит из строя из-за неисправности, компьютер 210 не может получить доступ к данным, сохраняемым в контроллере 221. Более конкретно, компьютер 210 не может получить доступ к данным A и данным B1. Поскольку контроллер 222 сохраняет копию A1 данных A, компьютер 210 может получить доступ к данным A1, обратившись и получив доступ к контроллеру 222. При таком подходе предоставление сервиса не прерывается.

Если оба контроллера - контроллер 221 и контроллер 222, являются неисправными или устройство 220 управления неисправно, компьютер 210 не может получить доступ к данным A и данным A1, так что предоставление сервиса может быть прервано.

В дополнение к этому, контроллер в каждом устройстве управления может получить доступ только к запоминающему устройству, соединенному с этим устройством управления. Например, контроллер 221 в устройстве 220 управления может получить доступ только к данным в запоминающем устройстве 240, и не может получить доступ к запоминающему устройству 250, поскольку устройство 220 управления не соединено с запоминающим устройством 250. Аналогично, контроллер 231 в устройстве 230 управления может получить доступ только к данным в запоминающем устройстве 250, и не может получить доступ к данным в запоминающем устройстве 240. Поэтому, когда какое-либо устройство управления выходит из строя из-за отказа питания или неисправности оборудования, доступ к данным в контроллере этого устройства управления и к данным в запоминающем устройстве, соединенном с этим устройством управления, окажется невозможным. Вследствие этого, сервис в главном компьютере прерывается или совсем выходит из строя. Например, Если устройство 220 управления неисправно, компьютер 210 не может получить доступ к данным в устройстве 220 и в запоминающем устройстве 240. Вследствие этого, сервис в компьютер 210 прерывается или совсем выходит из строя.

Следует отметить, что устройство управления и запоминающее устройство могут быть соединены посредством линии интерфейса SAS или линия интерфейса NVMe, и каждое устройство управления может быть далее соединено с несколькими запоминающими устройствами. В дополнение к этому, устройство управления и запоминающее устройство могут быть развернуты на одном и том же физическом устройстве. Например, запоминающее устройство 240 и устройство 220 управления могут быть развернуты на одном и том же физическом устройстве. Естественно, устройство управления и запоминающее устройство могут в альтернативном варианте быть развернуты по отдельности на разных физических устройствах.

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

На Фиг. 3 представлен возможный сценарий применения согласно одному из вариантов настоящей заявки. В этом сценарии приложения, главный компьютер 310 соединен с устройством 320 управления и с устройством 330 управления. Главный компьютер 310 может быть соединен с устройством 320 управления и с устройством 330 управления посредством оптоволоконной линии передачи или может быть соединен с устройством 320 управления и с устройством 330 управления через сеть связи, такую как сеть Этернет (Ethernet). В дополнение к этому, устройство 320 управления и устройство 330 управления имеют две платы коммутаторов (не показаны на Фиг. 3). Одна из этих плат коммутаторов является первичной платой коммутатора, а другая плата коммутатора является вторичной платой коммутатора. Все контроллеры в устройстве 320 управления и в устройстве 330 управления должны быть соединены с первичной платой коммутатора. Эта первичная плата коммутатора конфигурирована для поддержки связи между контроллером в одном устройстве управления и контроллером в другом устройстве управления, и связи между контроллером в устройстве управления и запоминающим устройством 340. Когда первичная плата коммутатора неисправна, вторичная плата коммутатора принимает на себя работу первичной платы коммутатора для обеспечения надежности системы. Устройство 320 управления содержит несколько контроллеров. В рассматриваемом варианте, для описания использован пример, в котором устройство 320 управления содержит четыре контроллера, например, контроллер 321, контроллер 322, контроллер 323 и контроллер 324. Устройство 330 управления также содержит несколько контроллеров. В рассматриваемом варианте, для описания использован пример, в котором устройство 330 управления также содержит четыре контроллера, например, контроллер 331, контроллер 332, контроллер 333 и контроллер 334. Соединения между всеми контроллерами в устройстве 320 управления и в устройстве 330 управления, и соединение между устройством 320 управления и устройством 330 управления реализованы посредством каналов доступа RDMA. Данные между контроллерами можно передавать напрямую одноранговому концу линии без прохождения этих данных через процессор CPU. Безусловно, эти соединения могут в альтернативном варианте быть реализованы через интерфейсы PCIe. Устройство 320 управления и устройство 330 управления соединены по отдельности с запоминающим устройством 340 по каналам доступа RDMA. Другими словами, запоминающее устройство 340 совместно используется устройством 320 управления и устройством 330 управления. Более конкретно, устройство 320 управления и устройство 330 управления могут обращаться и получать доступ к данным в запоминающем устройстве 340 в одно и то же время. Запоминающее устройство 340 может представлять собой сервер для хранения данных (а именно, узел для хранения данных), содержащий процессор CPU 341 и запоминающее устройство 342, и содержать N носителей для хранения данных, конфигурированных для сохранения данных для доступа к ним контроллеров. Здесь N - положительное целое число больше 1. Запоминающее устройство 342 в запоминающем устройстве 340 сохраняет программные команды. Процессор CPU 341 вызывает эти программные команды для управления запоминающим устройством 340, например, осуществляет соответствующее конфигурирование запоминающего устройства 340 или обновление запоминающего устройства 340. Все контроллеры в устройствах управления могут быть конфигурированы для приема данных ввода/вывода, передаваемых главным устройством, и для определения, на основе адреса, передаваемого в этих данных, целевого контроллера, обрабатывающего эти данные ввода/вывода. Если целевой контроллер представляет собой контроллер, принимающий данные ввода/вывода, передаваемыми главным компьютером, этот целевой контроллер непосредственно обрабатывает эти данные ввода/вывода. Если целевой контроллер не является контроллером, принимающим данные ввода/вывода, передаваемые главным компьютером, этот контроллер пересылает эти данные ввода/вывода целевому контроллеру, а целевой контроллер обрабатывает эти данные.

Следует отметить, что для повышения надежности системы, для всех соединений используется двухканальное резервирование. Более конкретно, два канала доступа RDMA используется для каждого соединения между контроллерами, между устройствами управления и между устройством управления и запоминающим устройством. В дополнение к этому, главный компьютер 310 может быть далее соединен с несколькими устройствами управления, и устройства управления могут быть далее соединены с несколькими совместно используемыми запоминающими устройствами. В дополнение к этому, каждый контроллер имеет по меньшей мере один зеркальный контроллер, и этот по меньшей мере один зеркальный контроллер принадлежит другому устройству управления. Более конкретно, для данных, сохраняемых в каждом контроллере, создают резервную копию в другом контроллере, и по меньшей мере один контроллер принадлежит другому устройству управления. Например, совокупность зеркальных контроллеров относительно контроллера 321 содержит контроллер 322 и контроллер 331. Если резервируют данные A, сохраненные в контроллере 321, контроллер 322 и контроллер 331 соответственно сохраняют копию A1 и копию A2 данных A. Контроллер 321 и контроллер 322 принадлежат устройству 320 управления, и контроллер 331 принадлежит устройству 330 управления. При таком подходе, данные A сохранены в нескольких устройствах управления. Зеркальные контроллеры для каждого контроллера задают заранее. Каждый контроллер и зеркальные контроллеры, соответствующие этому контроллеру, образуют резервированную группу контроллеров.

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

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

S410: Целевой контроллер принимает запрос записи.

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

Далее, этот запрос записи содержит данные, которые подлежат записи и которые необходимо записать главным компьютером.

S420: Целевой контроллер записывает данные, подлежащие записи, в запоминающем устройстве этого целевого контроллера.

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

S430: Целевой контроллер записывает данные, подлежащие записи, в запоминающем устройстве зеркального контроллера относительно этого целевого контроллера.

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

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

Например, на Фиг. 5 представлена упрощенная схема записи нескольких копий данных согласно одному из вариантов настоящей заявки. Как показано на Фиг. 5, зеркальными контроллерами для контроллера 521 являются контроллер 522 и контроллер 532. Поэтому, контроллер 521 сначала записывает данные A в запоминающем устройстве этого контроллера 521, и затем соответственно записывает копии A1 и A2 этих данных A в запоминающем устройстве контроллера 522 и в запоминающем устройстве контроллера 532. Зеркальными контроллерами относительно контроллера 523 являются контроллер 524 и контроллер 534. После записи данных B в запоминающем устройстве контроллера 523, этот контроллер 523 записывает копию B1 этих данных B в запоминающем устройстве контроллера 524 и записывает копию B2 данных B в запоминающем устройстве контроллера 534. Аналогично, зеркальными контроллерами относительно контроллера 531 являются контроллер 522 и контроллер 532. После записи данных C в запоминающем устройстве контроллера 531, этот контроллер 531 записывает копию C1 этих данных C в запоминающем устройстве контроллера 532, и записывает копию C2 данных C в запоминающем устройстве контроллера 522. Зеркальными контроллерами относительно контроллера 533 являются контроллер 524 и контроллер 534. После записи данных D в запоминающем устройстве контроллера 533, этот контроллер 533 записывает копию D1 данных D в запоминающем устройстве контроллера 534, и записывает копию D2 данных D в запоминающем устройстве контроллера 524.

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

Например, как показано на Фиг. 5, контроллер 521 представляет собой целевой контроллер. Контроллер 522 и контроллер 532 являются зеркальными контроллерами относительно этого целевого контроллера. После того, как контроллер 521 запишет данные A в запоминающее устройство этого контроллера 521, копии A1 и A2 этих данных A записывают соответственно в запоминающее устройство контроллера 522 и в запоминающее устройство контроллера 532.

S440: Целевой контроллер передает сообщение завершения записи главному компьютеру.

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

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

В частности, каждые два контроллера во всех устройствах управления периодически передают один другому контрольные пакеты для определения соответствующих статусов. Если контроллер не примет контрольный пакет, переданный другим контроллером, в пределах заданного периода времени, он может определить, что указанный другой контроллер является неисправным. В таком случае, первичному контроллеру необходимо заново будет заново отрегулировать соотношения зеркальности для каждого контроллера. Период передачи контрольных пакетов и заданный период времени ожидания приема такого пакета могут быть заданы на основе актуальных требований. В настоящей заявке это не ограничивается. Например, на Фиг. 5, восемь контроллеров в устройстве 520 управления и в устройстве 530 управления передают контрольные пакеты один другому. Если контроллер 521 не примет, в пределах заданного периода времени, контрольный пакет, переданный контроллером 522, контроллер 521 может определить, что контроллер 522 неисправен.

В качестве опции, первичный контроллер может назначить уровни приоритета для зеркальных контроллеров относительно какого-либо управляемого им контроллера. Более конкретно, когда целевой контроллер неисправен, зеркальный контроллер с более высоким приоритетом выбирают из совокупности зеркальных контроллеров относительно указанного целевого контроллера в качестве нового целевого контроллера на основе этого приоритета. В качестве опции, первичный контроллер может установить зеркальный контроллер, входящий в одно устройство управления с целевым контроллером в качестве контроллера с более высоким приоритетом. Безусловно, контроллер с более высоким приоритетом может в альтернативном варианте быть задан на основе другого условия, например, физического статуса и состояния резервного источника питания соответствующего контроллера. В настоящей заявке это не ограничено. Например, на Фиг. 5, оба контроллера - контроллер 522 и контроллер 532, являются зеркальными контроллерами относительно контроллера 521, но приоритет контроллера 522 выше приоритета контроллера 532. Поэтому, когда контроллер 521 выйдет из строя, первичный контроллер выберет контроллер 522 в качестве нового целевого контроллера. В альтернативном варианте, первичный контроллер случайным образом выбирает контроллер из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера. Способ, используемый первичным контроллером для определения нового целевого контроллера, а настоящей заявке не ограничен.

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

В качестве опции, значение N равно 3. Более конкретно, целевой контроллер имеет два зеркальных контроллера, и при этом целевой контроллер и по меньшей мере один из зеркальных контроллеров развернуты в разных устройствах управления.

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

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

В качестве опции, значение N равно 3. Более конкретно, целевой контроллер имеет два зеркальных контроллера, так что целевой контроллер и по меньшей мере один из зеркальных контроллеров развернуты в разных устройствах управления.

Например, обратимся к Фиг. 6A-1 и Фиг. 6A-2. Как показано на Фиг. 6A-1 и Фиг. 6A-2, когда устройство 520 управления и устройство 530 управления работают нормально, контроллер 521, контроллер 522 и контроллер 532 образуют резервированную группу контроллеров и сохраняют соответственно данные A и копии A1 и A2 этих данных A. Контроллер 522, контроллер 531 и контроллер 532 образуют другую резервированную группу контроллеров и сохраняют соответственно данные C и копии C1 и C2 этих данных C. Для данных A, целевым контроллером этих данных A является контроллер 521. Поскольку контроллер 522 и контроллер 532 сохраняют копии A1 и A2 данных A, когда контроллер 521 и контроллер 522 выходят из строя в одно и то же время, первичный контроллер выбирает контроллер 532 в качестве нового целевого контроллера. Другими словами, данные, сохраняемые в контроллере 532, изменяются и превращаются в данные A. Первичный контроллер переустанавливает новое соотношение зеркальности. После того, как контроллер 532 будет определен в качестве нового целевого контроллера, копии A1 и A2 данных A зеркально отражают в контроллер 531 и контроллер 523. Другими словами, контроллер 523 и контроллер 531 являются зеркальными контроллерами относительно контроллера 532. Аналогично, для данных C, целевым контроллером этих данных C является контроллер 531. Поскольку контроллер 522 сохраняет копию C2 данных C, когда этот контроллер 522 выходит из строя, первичный контроллер устанавливает новый зеркальный контроллер для целевого контроллера 531, чтобы установить новое соотношение зеркальности. Первичный контроллер зеркально отражает копию данных C в контроллер 524. Другими словами, контроллер 524 и контроллер 532 являются зеркальными контроллерами относительно целевого контроллера 531.

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

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

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

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

Например, обратимся к Фиг. 6B-1 и Фиг. 6B-2. Как показано на Фиг. 6B-1 и Фиг. 6B-2, когда устройство 520 управления и устройство 530 управления работают нормально, для данных A, целевым контроллером для этих данных A является контроллер 521, а контроллер 532 сохраняет копию A2 этих данных A, так что контроллер 532 является зеркальным контроллером относительно контроллера 521. Для данных B, целевым контроллером для этих данных B является контроллер 523, а контроллер 534 сохраняет копию B2 этих данных B, так что контроллер 534 является зеркальным контроллером относительно контроллера 523. Когда устройство 520 управления выходит из строя, для данных A, первичный контроллер использует контроллер 532 в качестве нового целевого контроллера, данные, сохраняемые в контроллере 532, изменяются до данных A, и первичный контроллер заново устанавливает новое соотношение зеркальности и зеркально отражает копии A1 и A2 данных A в контроллер 531 и контроллер 533 соответственно. Для данных B, первичный контроллер использует контроллер 534 в качестве нового целевого контроллера, заново устанавливает новое соотношение зеркальности и зеркально отражает копии B1 и B2 данных B в контроллер 531 и контроллер 533 соответственно. Для данных C, первичный контроллер напрямую устанавливает новое соотношение зеркальности, и зеркально отражает копию C2 данных C в контроллер 534. Для данных D, первичный контроллер также напрямую устанавливает новое соотношение зеркальности, и зеркально отражает копию D2 данных D в контроллер 532.

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

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

В сценарии, в котором первое устройство управления содержит четыре контроллера и второе устройство управления содержит четыре контроллера, способ, предлагаемый в настоящем изобретении, может поддерживать непрерывность сервиса, когда семь контроллеров оказываются неисправными. Подробнее, см. вариант, показанный на Фиг. 6C-1 - Фиг. 6C-4. Как показано на Фиг. 6C-1 - Фиг. 6C-4, когда устройство 520 управления и устройство 530 управления работают нормально, контроллер 521 сохраняет данные A, а контроллер 522 и контроллер 532 соответственно сохраняют копии A1 и A2 данных A. Контроллер 523 сохраняет данные B, а контроллер 524 и контроллер 534 соответственно сохраняют копии B1 и B2 данных B. Контроллер 531 сохраняет данные C, а контроллер 532 и контроллер 522 соответственно сохраняют копии C1 и C2 данных C. Контроллер 533 сохраняет данные D, а контроллер 534 и контроллер 524 соответственно сохраняют копии D1 и D2 данных D. Когда контроллер 521 неисправен, первичный контроллер устанавливает новое соотношение зеркальности, использует контроллер 522 в качестве целевого контроллера для данных A, и зеркально отражает копию A1 данных A в контроллер 523. Соотношение зеркальности между другими контроллерами остается неизменным. Далее контроллер 522 также выходит из строя. Первичный контроллер использует контроллер 523 в качестве целевого контроллера для данных A, и зеркально отражает копию A1 данных A в контроллере 524. Копию C2 данных C зеркально переотражают в контроллер 524. Соотношение зеркальности между другими контроллерами остается неизменным. Далее, контроллер 523 также выходит из строя. Этот первичный контроллер использует контроллер 524 в качестве целевого контроллера для данных A, и зеркально отражает копию A1 данных A в контроллере 534. Первичный контроллер использует контроллер 524 в качестве целевого контроллера для данных B, и зеркально отражает копию B1 данных B в контроллере 532. Соотношение зеркальности между другими контроллерами остается неизменным. Далее, контроллер 524 также выходит из строя. Первичный контроллер использует контроллер 534 в качестве целевого контроллера для данных A, и зеркально отражает копию A1 данных A в контроллере 531. Первичный контроллер использует контроллер 532 в качестве целевого контроллера для данных B, и зеркально отражает копию B1 данных B в контроллере 531. Первичный контроллер заново зеркально отражает копию C2 данных C в контроллере 534. Первичный контроллер зеркально отражает копию D2 данных D в контроллере 532. Другое соотношение зеркальности остается неизменным. Далее, контроллер 531 также выходит из строя. Первичный контроллер заново зеркально отражает копию A1 данных A в контроллере 533. Первичный контроллер заново зеркально отражает копию B1 данных B в контроллере 533. Первичный контроллер использует контроллер 532 в качестве целевого контроллера для данных C, и зеркально отражает копию C1 данных C в контроллер 533. Другое соотношение зеркальности остается неизменным. Далее, контроллер 532 также выходит из строя. В этом случае остаются только два контроллера, а именно, контроллер 533 и контроллер 534. Поэтому, согласно соотношению зеркальности, управляемому первичным контроллером, каждый целевой контроллер имеет только один зеркальный контроллер. Первичный контроллер использует контроллер 533 в качестве целевого контроллера для данных B. Контроллер 533 также используется в качестве целевого контроллера для данных C и целевого контроллера для данных D. Поскольку контроллер 534 сохраняет копию B1 данных B, копию C1 данных C и копию D1 данных D, первичному контроллеру нет необходимости устанавливать новое соотношение зеркальности. Далее, контроллер 533 также выходит из строя. Из всей совокупности контроллеров остается только контроллер 534. Все данные могут быть сохранены только в контроллере 534, а резервные копии созданы быть не могут. Другими словами, первичный контроллер не может установить новый зеркальный контроллер, а контроллер 534 используется в качестве целевого контроллера для данных A, данных B, данных C и данных D.

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

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

В дополнение к этому, для лучшего описания влияния этой заявки на доступность системы хранения данных используется пример системы хранения данных, содержащий два устройства управления и восемь контроллеров. На Фиг. 7 приведена упрощенная схема модели надежности устройства управления. Как показано на Фиг. 7, модель содержит четыре параллельных контроллера, два параллельных резервных блока питания, два параллельных модуля питания, два параллельных вентилятора, одну объединительную панель и два параллельных модуля управления, которые соединены последовательно. Доступность (готовность) каждого устройства управления в сценариях, показанных на Фиг. 2B и Фиг. 5 вычисляют по отдельности. Следует отметить, что в приведенных выше двух сценариях другие компоненты являются согласованными, и соотношения соединений также являются согласованными. Поэтому доступность (готовность) устройства управления может быть вычислена только на основе соответствующего резервирования контроллеров. В предположении, что доступность (готовность) каждого контроллера равна 0.999989496, доступность каждого устройства управления, показанного на Фиг. 2B, вычисляют с использованием формулы 1. Эта формула 1 имеет следующий вид:

A = (a + C * a * (1 - a)) * (a + C * a * (1 - a)) формула 1

В формуле 1, «a» обозначает доступность каждого контроллера. Параметр C обозначает частоту переключений. Полученная в результате вычислений величина доступности (готовности) равна 0.999998950.

Доступность каждого устройства управления, показанного на Фиг. 5, вычисляют с использованием формула 2. Эта формула 2 имеет следующий вид:

A = 1 - {C * {1 - * (N + 1 - N * a)}/N + (1 - C) * (1 - ) /N} формула 2

В формуле 2, N обозначает количество резервированных контроллеров (а именно, количество зеркальных контроллеров) для каждого контроллера. Доступность (готовность) устройства управления, полученная в результате вычислений, равна 0.999999475.

Можно понять, что доступность устройства управления, показанного на Фиг. 5, выше доступности устройства управления, показанного на Фиг. 2B. Поэтому надежность устройства управления, показанного на Фиг. 5, выше.

Далее, на Фиг. 8 представлена упрощенная схема модели надежности системы хранения данных. Как показано на Фиг. 8, модель содержит два параллельных устройства управления, X последовательных накопителей на жестких дисках и Y последовательных групп дисков. Эти два устройства управления, X накопителей на жестких дисках и Y групп дисков соединены последовательно. Доступность всей системы хранения данных, показанной на Фиг. 2B, и системы, показанной на Фиг. 5, вычисляют с использованием модели, показанной на Фиг. 8. Следует понимать, что в сценариях, показанных на Фиг. 2B и Фиг. 5, могут быть использованы и другие согласованные компоненты и соотношения соединений также согласованы. Поэтому доступность (готовность) всей системы хранения данных может быть вычислена на основе только устройств управления. Следует отметить, что в сценарии, показанном на Фиг. 2B, каждое устройство управления не зависит от других устройств управления. Более конкретно, когда одно из устройств управления выходит из строя, вся система хранения данных работать не может. Поэтому предполагается, что к устройствам управления применима модель последовательного соединения, и доступность системы хранения данных, показанной на Фиг. 2B, вычисляют с использованием формулы 3. Эта формула 3 имеет следующий вид:

A = A1 * A2 формула 3

В формуле 3, величины A1 и A2 обозначают доступность каждого устройства управления. Поскольку все устройства управления являются одинаковыми, величины A1 и A2 являются одинаковыми и равными 0.999998950. Поэтому доступность всей системы хранения данных равна 0.999997900.

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

A = a + C * a * (1 - a) формула 4

В формуле 4, «a» обозначает доступность каждого устройства управления. Параметр C обозначает частоту переключения. Доступности всей системы хранения данных, полученная в результате вычислений равна 0.999999475.

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

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

На Фиг. 9 представлена упрощенная структурная схема системы управления хранением данных согласно одному из вариантов настоящей заявки. Как показано на Фиг. 9, система 900 управления хранением данных содержит первое устройство 9100 управления и второе устройство 9200 управления. Первое устройство 9100 управления содержит целевой контроллер 9110. Этот целевой контроллер 9110 содержит приемный модуль 9111 и процессорный модуль 9112.

Приемный модуль 9111 конфигурирован для приема запроса записи. Запрос записи содержит данные, подлежащие записи.

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

Процессорный модуль 9112 дополнительно конфигурирован для записи данных, подлежащих записи, в запоминающее устройство зеркального контроллера относительно целевого контроллера 9110. По меньшей мере один зеркальный контроллер принадлежит второму устройству управления 9200.

В одном из возможных вариантов реализации, целевой контроллер 9110 и зеркальный контроллер относительно этого целевого контроллера 9110 образуют резервированную группу контроллеров. Эта резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Система 900 управления хранением данных содержит первичный контроллер 9210. Этот первичный контроллер 9210 представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве 9100 управления и втором устройстве 9200 управления и конфигурированный для управления другим контроллером. Первичный контроллер 9210 содержит: модуль 9211 поиска неисправностей, конфигурированный для того, чтобы: когда M контроллеров в резервированной группе контроллеров выходят из строя и совокупность этих M контроллеров содержит целевой контроллер, выбрать контроллер из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера, где этот новый целевой контроллер конфигурирован для приема запроса записи; и модуль 9212 зеркального отражения конфигурирован для установления M новых зеркальных контроллеров для нового целевого контроллера и зеркального отражения данных из запоминающего устройства нового целевого контроллера в M новых зеркальных контроллеров, где M - целое число не меньше 1 и меньше N.

В одном из возможных вариантов реализации, N равно 3.

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

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

На Фиг. 10 представлена упрощенная структурная схема другой системы управления хранением данных согласно одному из вариантов настоящей заявки. Как показано на Фиг. 10, система управления хранением данных 100 содержит первое устройство управления 1100 и второе устройство управления 1200. Первое устройство 1100 управления содержит целевой контроллер 1110. Этот целевой контроллер 1110 содержит процессор 1111, интерфейс 1112 связи и запоминающее устройство 1113. Процессор 1111, интерфейс 1112 связи и запоминающее устройство 1113 соединены посредством внутренней шины 1114.

В одном из возможных вариантов реализации, система 100 управления хранением данных содержит первичный контроллер 1210. Этот первичный контроллер 1210 представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве 1100 управления и во втором устройстве 1200 управления и конфигурированный для управления другим контроллером. Первичный контроллер 1210 содержит процессор 1211, интерфейс 1212 связи и запоминающее устройство 1213. Процессор, интерфейс 1212 связи и запоминающее устройство 1213 соединены посредством внутренней шины 1214.

Следует понимать, что функция, осуществляемая приемным модулем 9111, может быть в частности реализована интерфейсом 1112 связи, функция, осуществляемая процессорным модулем 9112, может быть в частности реализована процессором 1111, и функция, осуществляемая модулем 9211 поиска неисправностей и модулем 9212 зеркального отражения, может быть в частности реализована процессором 1211.

Запоминающее устройство 1113 может быть конфигурировано для сохранения программного кода и данных, так что процессор 1111 вызывает программный код и данные, сохраняемые в запоминающем устройстве 1113, для осуществления функций приемного модуля 9111 и/или процессорного модуля 9112. Процессор 1111 может вызвать программный код и данные, сохраняемые в запоминающем устройстве 1113, для осуществления соответствующего процедуры способа, показанного на Фиг. 4.

Запоминающее устройство 1213 может быть конфигурировано для сохранения программного кода и данных, так что процессор 1211 вызывает программный код и данные, сохраняемые в запоминающем устройстве 1213, для осуществления функций модуля 9211 поиска неисправностей и/или модуля 9212 зеркального отражения. Процессор 1211 может вызвать программный код и данные, сохраняемые в запоминающем устройстве 1213, для осуществления соответствующей процедуры способа, показанного на Фиг. 4.

Следует отметить, что каждый контроллер - целевой контроллер 1110 и первичный контроллер 1210, могут быть реализованы с использованием логического устройства с встроенной процессорной логической схемой, например, матрицы FPGA или цифрового процессора сигнала (digital signal processor, DSP). В дополнение к этому, целевой контроллер 1110 и первичный контроллер 1210 могут содержать больше или меньше компонентов, чем показано на Фиг. 10, или могут иметь разные конфигурации компонентов.

Следует понимать, что процедуры обработки данных для повышения надежности системы управления хранением данных, содержащей целевой контроллер 1110 и первичный контроллер 1210, показанные на Фиг. 10, можно найти в соответствующих описаниях к Фиг. 1 - Фиг. 8. Для краткости, подробности здесь снова описаны не будут.

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

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

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

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

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

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

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

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

название год авторы номер документа
СПОСОБ УПРАВЛЕНИЯ ПРОЦЕССОРОМ И МНОГОПРОЦЕССОРНОЙ СИСТЕМОЙ 2015
  • Цао Ливэй
  • Чэнь Бэнь
  • Лю Ган
RU2658884C1
Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью 2020
  • Дремлюга Антон Анатольевич
  • Фромм Антон Константинович
  • Шетохин Дмитрий Николаевич
  • Пинчук Артур Игоревич
RU2750645C1
ИСПОЛЬЗОВАНИЕ КЭШ-ПАМЯТИ И ПАМЯТИ ДРУГОГО ТИПА В РАСПРЕДЕЛЁННОЙ ЗАПОМИНАЮЩЕЙ СИСТЕМЕ 2013
  • Барнс Томас Дж.
RU2643642C2
Система и способы для дешифрования сетевого трафика в виртуализированной среде 2017
  • Караджа Раду
RU2738021C2
ПАРАЛЛЕЛЬНАЯ ПРОЦЕССОРНАЯ СИСТЕМА 1991
  • Джеймс Уоррен Диффендерфер[Us]
  • Питер Майкл Когге[Us]
  • Пол Амба Уилкинсон[Us]
  • Николас Джером Шуновер[Us]
RU2084953C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ОЧИСТКИ РЕЗЕРВИРОВАНИЯ СЕМАФОРОВ 2006
  • Спейер Томас Филип
  • Диффендерфер Джеймс Норрис
  • Сарториус Томас Эндрю
  • Ганасан Джая Пракаш Субраманиам
RU2380743C1
СИНХРОНИЗАЦИЯ И ОБРАБОТКА СИСТЕМНОЙ ИНФОРМАЦИИ ОПРЕДЕЛЕННОЙ СОТЫ ДЛЯ ПЕРЕДАЧИ ОБСЛУЖИВАНИЯ В Evolved UTRA 2009
  • Чжан Годун
  • Ван Цзинь
  • Ван Питер С.
  • Терри Стефен Э.
RU2489809C2
СИСТЕМА СНИЖЕНИЯ НАГРУЗКИ И СПОСОБ СНИЖЕНИЯ НАГРУЗКИ 2012
  • Торигое Кейсуке
RU2587677C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ЗАПИСИ СОХРАНЕННЫХ ДАННЫХ НА НОСИТЕЛЬ ДАННЫХ НА ОСНОВЕ ФЛЭШ-ПАМЯТИ 2017
  • Чжан, Хайпэн
RU2735407C2
МНОГОКРАТНОЕ ИСПОЛЬЗОВАНИЕ ОРТОГОНАЛЬНЫХ РЕСУРСОВ С ПОМОЩЬЮ ЛУЧЕЙ SDMA 2007
  • Дун Минь
  • Горохов Алексей
  • Цзи Тинфан
RU2406263C2

Иллюстрации к изобретению RU 2 810 634 C2

Реферат патента 2023 года СПОСОБ ПОВЫШЕНИЯ НАДЕЖНОСТИ СИСТЕМ ХРАНЕНИЯ ДАННЫХ И СООТВЕТСТВУЮЩЕЕ УСТРОЙСТВО

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

Формула изобретения RU 2 810 634 C2

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

принимают, с помощью целевого контроллера (221), запрос записи, причем указанный запрос записи содержит данные, подлежащие записи, а целевой контроллер принадлежит первому устройству управления;

записывают, с помощью целевого контроллера, данные, подлежащие записи, в запоминающее устройство целевого контроллера; и

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

когда первое (220) устройство управления и второе устройство (230) управления соединены с устройством (340) хранения данных, способ содержит этап, на котором:

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

2. Способ по п. 1, дополнительно содержащий, когда целевой контроллер (221) и зеркальные контроллеры (231) относительно целевого контроллера образуют резервированную группу контроллеров, причем резервированная группа контроллеров содержит N контроллеров, где N – целое число не меньше 2, этап, на котором:

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

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

3. Способ по п. 1, дополнительно содержащий, когда целевой контроллер (221) и зеркальные контроллеры (231) относительно целевого контроллера образуют резервированную группу контроллеров, указанная резервированная группа контроллеров содержит N контроллеров, где N – целое число большее или равное 2, этап, на котором:

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

4. Способ по п. 2 или 3, в котором N равно 3.

5. Способ по п. 1, в котором когда первое устройство (220) управления выходит из строя, один из зеркальных контроллеров (231), относящийся к целевому контроллеру (221) и находящийся во втором устройстве (230) управления, используют в качестве нового целевого контроллера, устанавливают зеркальный контроллер для нового целевого контроллера, и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающее устройство нового зеркального контроллера.

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

приемный модуль (9111) для приема запроса записи, причем запрос записи содержит данные, подлежащие записи; и

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

процессорный модуль дополнительно выполнен с возможностью записи данных, подлежащих записи, в запоминающее устройство зеркального контроллера (231) относительно целевого контроллера, и по меньшей мере один зеркальный контроллер принадлежит второму устройству управления; причем первое (220) устройство управления и второе устройство (230) управления соединены с устройством (340) хранения данных, а система выполнена с возможностью:

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

7. Система (210) управления хранением данных по п. 6, в которой целевой контроллер (221) и зеркальный контроллер (231) относительно указанного целевого контроллера образуют резервированную группу контроллеров, содержащую N контроллеров, где N – целое число большее или равное 2, причем первичный контроллер содержит:

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

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

8. Система (210) управления хранением данных по п. 6, в которой целевой контроллер (221) и зеркальные контроллеры (231) относительно указанного целевого контроллера образуют резервированную группу контроллеров, содержащую N контроллеров, где N – целое число большее или равное 2, причем первичный контроллер содержит:

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

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

9. Система (210) управления хранением данных по п. 7 или 8, в которой N равно 3.

10. Система (210) управления хранением данных по п. 6, в которой, когда первое устройство (220) управления выходит из строя, один из зеркальных контроллеров (231), относящийся к целевому контроллеру (221) и находящийся во втором устройстве (230) управления, используют в качестве нового целевого контроллера, устанавливают зеркальный контроллер в качестве нового целевого контроллера, и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающее устройство нового зеркального контроллера.

11. Система (210) управления хранением данных, содержащая первое устройство (220) управления и второе устройство (230) управления, причем первое устройство управления содержит целевой контроллер (221), содержащий процессор и запоминающее устройство, при этом процессор выполнен с возможностью исполнения компьютерных команд, хранящихся в запоминающем устройстве, для вызова выполнения, целевым контроллером, способа по любому из пп. 1 – 5.

12. Система (210) управления хранением данных по п. 11, дополнительно содержащая первичный контроллер (221), представляющий собой контроллер, выбранный из совокупности контроллеров первого устройства (220) управления и второго устройства (230) управления, и выполненный с возможностью управления другим контроллером (231), при этом первичный контроллер содержит процессор и запоминающее устройство, а процессор выполнен с возможностью исполнения компьютерных команд, хранящихся в запоминающем устройстве, для обеспечения выполнения первичным контроллером способа по любому из пп. 1 – 5.

13. Компьютерный носитель информации, хранящий компьютерную программу, вызывающую, при исполнении процессором, осуществление способа по любому из пп. 1 – 5.

Документы, цитированные в отчете о поиске Патент 2023 года RU2810634C2

Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
CN 108664354 A, 16.10.2018
CN 107168820 A, 15.09.2017
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем 1924
  • Волынский С.В.
SU2012A1
В. В В. Ю. Ефимов и А. С. ПереборовВсесоюзный научно-исследовательский институт железнс транспорта и Ленинградский институт инженеров желез!транспорта 0
SU186529A1

RU 2 810 634 C2

Авторы

Линь, Пин

Сяо, Цзянь

Ван, Бинь

Даты

2023-12-28Публикация

2019-07-22Подача