RU2810634C2 - Method for increasing reliability of data storage systems and corresponding device - Google Patents

Method for increasing reliability of data storage systems and corresponding device Download PDF

Info

Publication number
RU2810634C2
RU2810634C2 RU2022104377A RU2022104377A RU2810634C2 RU 2810634 C2 RU2810634 C2 RU 2810634C2 RU 2022104377 A RU2022104377 A RU 2022104377A RU 2022104377 A RU2022104377 A RU 2022104377A RU 2810634 C2 RU2810634 C2 RU 2810634C2
Authority
RU
Russia
Prior art keywords
controller
controllers
data
control device
target controller
Prior art date
Application number
RU2022104377A
Other languages
Russian (ru)
Other versions
RU2022104377A (en
Inventor
Пин ЛИНЬ
Цзянь СЯО
Бинь Ван
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2022104377A publication Critical patent/RU2022104377A/en
Application granted granted Critical
Publication of RU2810634C2 publication Critical patent/RU2810634C2/en

Links

Abstract

FIELD: technology for computer distributed data storage systems.
SUBSTANCE: method comprises: receiving a write request by a target controller, where the write request contains data to be written and the target controller belongs to the first control device; recording, by the target controller, data to be written into a storage device of the target controller; and recording, by the target controller, data to be written into the storage devices of the mirror controllers relative to the target controller, wherein the at least one mirror controller belongs to the second control device. According to this technical solution, the data to be recorded can be recorded and stored in several control devices. When any control device fails, the host computer can still access another control device to ensure continuity of service.
EFFECT: increasing the reliability of data storage in the storage system by reducing processing, duplication and load balancing between controllers.
13 cl, 10 dwg

Description

Область техники, к которой относится изобретениеField of technology to which the invention relates

Настоящая заявка относится к области технологий компьютерных систем распределенного хранения данных, и, в частности, к способу повышения надежности систем хранения данных и соответствующему устройству.This application relates to the field of technology for computer distributed data storage systems, and, in particular, to a method for increasing the reliability of data storage systems and a corresponding device.

Уровень техникиState of the art

На сегодняшний день распределенная архитектура хранения данных все более широко применяется к облачным компьютерным платформам, платформам с обработкой больших объемов данных и другим подобным системам. Технология распределенного хранения данных означает, что устройство для хранения данных содержит несколько контроллеров хранения данных, так что данные в это устройство могут быть записаны с использованием нескольких контроллеров хранения данных.Today, distributed data storage architecture is increasingly being applied to cloud computing platforms, platforms for processing large volumes of data, and other similar systems. Distributed storage technology means that a storage device contains multiple storage controllers so that data can be written to the device using multiple storage controllers.

При записи данных система распределенного хранения данных обычно распределяет эти данные и записывает данные в запоминающие устройства разных контроллеров. В дополнение к этому, далее конфигурируют несколько копий данных, записываемых в запоминающее устройство каждого контроллера, для того, чтобы предотвратить недоступность или утрату данных из-за отказа компонентов. Когда контроллер выходит из строя, доступ к данным по-прежнему остается возможным, поскольку имеются указанные копии.When writing data, a distributed storage system typically distributes the data and writes the data to the storage devices of different controllers. In addition, multiple copies of the data written to each controller's memory are further configured to prevent unavailability or loss of data due to component failure. When the controller fails, access to the data is still possible because the specified copies are available.

На сегодняшний момент, в системах распределенного хранения данных используется подход, согласно которому устройство управления хранением данных отделено от запоминающего устройства. Если оба контроллера - контроллер хранения данных, сохраняющий целевые данные, и контроллер хранения данных, конфигурированный с копией целевых данных, окажутся неисправными, или устройство управления хранением данных, соответствующее контроллеру хранения данных, сохраняющему целевые данные, выйдет из строя, доступ к целевым данным станет невозможным, равно как станет невозможным доступ к данным в запоминающем устройстве, соединенном с указанным устройством управления хранением данных. Следовательно, работа главного информационного сервиса прерывается, и надежность системы хранения информации снижается.Currently, distributed data storage systems use an approach in which the storage management device is separated from the storage device. If both the storage controller storing the target data and the storage controller configured with a copy of the target data fail, or the storage management device corresponding to the storage controller storing the target data fails, access to the target data will become unusable. impossible, nor will it be possible to access data in a storage device connected to said storage management device. Consequently, the work of the main information service is interrupted, and the reliability of the information storage system is reduced.

Поэтому, как именно обеспечить непрерывность работы главного информационного сервиса и повысить надежность системы хранения данных, когда устройство управления хранением данных неисправно, сегодня является технической проблемой, которую необходимо срочно решать.Therefore, how exactly to ensure the continuity of the main information service and improve the reliability of the storage system when the storage management device is faulty is a technical problem that urgently needs to be solved today.

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

Настоящая заявка предлагает способ повышения надежности системы хранения данных и соответствующее устройство для обеспечения непрерывности главного информационного сервиса, когда устройство управления хранением данных выходит из строя из-за неисправности, так что этот способ эффективно повышает надежность и доступность системы хранения данных.The present application provides a method for improving the reliability of a storage system and a corresponding apparatus for ensuring the continuity of a main information service when a storage management device fails due to a malfunction, so that the method effectively improves the reliability and availability of a storage system.

Согласно первому аспекту предложен способ повышения надежности системы хранения данных. Система хранения данных содержит первое устройство управления и второе устройство управления. Способ содержит: прием, целевым контроллером, запроса записи, где этот запрос записи содержит данные, подлежащие записи, причем целевой контроллер принадлежит первому устройству управления; запись, целевым контроллером, этих данных, подлежащих записи, в запоминающие устройства одного или более зеркальных контроллеров относительно целевого контроллера, где по меньшей мере один из зеркальных контроллеров принадлежит второму устройству управления.According to the first aspect, a method for improving the reliability of a data storage system is proposed. The data storage system includes a first control device and a second control device. The method comprises: receiving, by a target controller, a write request, where the write request contains data to be written, wherein the target controller belongs to a first control device; recording, by the target controller, this data to be written into storage devices of one or more mirror controllers relative to the target controller, where at least one of the mirror controllers belongs to the second control device.

В качестве опции, после того, как данные, подлежащие записи, будут записаны в запоминающее устройство целевого контроллера и в запоминающее устройство зеркального контроллера относительно целевого контроллера, целевой контроллер передает главному компьютеру сообщение завершения записи. Это сообщение завершения записи используется для указания, что данные, подлежащие записи, были успешно записаны.Optionally, after the data to be written has been written to the memory of the target controller and the memory of the mirror controller relative to the target controller, the target controller transmits a write complete message to the host computer. This write complete message is used to indicate that the data to be written has been successfully written.

В рассматриваемом варианте настоящей заявки, когда данные, подлежащие записи и передаваемые в запросе записи записывают, эти данные, подлежащие записи, необходимо не только записать в запоминающем устройстве целевого контроллера, но также необходимо их записывать в запоминающем устройстве зеркального контроллера относительно целевого контроллера. В дополнение к этому, зеркальный контроллер представляет собой контроллер, которые находится не в том же самом устройстве управления, где располагается целевой контроллер. При таком подходе, можно обеспечить, что данные, подлежащие записи, могут быть записаны в разные устройства управления, так что когда какое-либо устройство управления оказывается неисправным, главный компьютер может по-прежнему получить доступ к данным, подлежащим записи, с использованием другого устройства управления. Это обеспечивает непрерывность главного информационного сервиса и повышает надежность и доступность системы хранения данных.In the exemplary embodiment of the present application, when the data to be written and transmitted in the write request is written, the data to be written not only needs to be written in the storage device of the target controller, but also needs to be written in the storage device of the mirror controller relative to the target controller. In addition to this, a mirror controller is a controller that is not located in the same control device as the target controller. With this approach, it is possible to ensure that the data to be written can be written to different control devices, so that when any control device fails, the host computer can still access the data to be written using another device management. This ensures continuity of the main information service and increases the reliability and availability of the data storage system.

В соответствии с первым аспектом, в одном из возможных вариантов реализации, первое устройство управления и второе устройство управления соединены с устройством хранения данных. Когда первое устройство управления неисправно, главный компьютер обращается и получает доступ к устройству для хранения данных с использованием второго устройства управления.According to the first aspect, in one possible embodiment, the first control device and the second control device are connected to a data storage device. When the first control device fails, the host computer accesses and accesses the data storage device using the second control device.

В этом варианте настоящей заявки, первое устройство управления и второе устройство управления могут обращаться и получать доступ к устройству для хранения данных в одно и то же время. При таком подходе, можно обеспечить, что когда какое-либо из устройств управления окажется неисправным, главный компьютер сможет по-прежнему обращаться и получать доступ к устройству для хранения информации с использованием другого устройства управления, чтобы обеспечить непрерывность главного информационного сервиса и повысить надежность системы хранения данных.In this embodiment of the present application, the first control device and the second control device can access and access the data storage device at the same time. With this approach, it can be ensured that when any of the control devices fails, the host computer can still access and access the storage device using another control device to ensure continuity of the main information service and improve the reliability of the storage system data.

В соответствии с первым аспектом, в одном из возможных вариантов реализации, целевой контроллер и зеркальные контроллеры относительно целевого контроллера образуют резервированную группу контроллеров. Резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Когда M контроллеров в резервированной группе контроллеров неисправны, и совокупность этих M контроллеров содержит целевой контроллер, первичный контроллер выбирает контроллер из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера, где новый целевой контроллер конфигурируют для приема запроса записи, при этом первичный контроллер является контроллером, выбранным из совокупности контроллеров первого устройства управления и второго устройства управления и конфигурированным для управления другим контроллером; и этот первичный контроллер устанавливает M новых зеркальных контроллеров для нового целевого контроллера, и зеркально отражает данные из запоминающего устройства нового целевого контроллера в M новых зеркальных контроллеров. Здесь M - целое число не меньше 1 и меньше N.In accordance with the first aspect, in one possible implementation, the target controller and mirror controllers relative to the target controller form a redundant group of controllers. The redundant controller group contains N controllers. Here, N is an integer not less than 2. When M controllers in the redundant controller group are faulty, and the set of these M controllers contains the target controller, the primary controller selects a controller from the set of mirror controllers relative to the target controller as the new target controller, where the new target controller is configured to receiving a write request, wherein the primary controller is a controller selected from a plurality of controllers of the first control device and the second control device and configured to control the other controller; and this primary controller sets up M new mirror controllers for the new target controller, and mirrors data from the new target controller's storage device to the M new mirror controllers. Here M is an integer not less than 1 and less than N.

В этом варианте настоящей заявки, когда несколько контроллеров, включая целевой контроллер, неисправны, первичный контроллер может выбрать новый целевой контроллер из совокупности зеркальных контроллеров относительно целевого контроллера и установить новые зеркальные контроллеры относительно нового целевого контроллера, чтобы обеспечить, что главный компьютер может по-прежнему обращаться и получать доступ к целевым данным, когда несколько контроллеров оказываются неисправны. Это обеспечивает, что главный информационный сервис не прерывается, и повышает надежность системы хранения данных.In this embodiment of the present application, when multiple controllers including the target controller are faulty, the primary controller may select a new target controller from a plurality of mirror controllers relative to the target controller and install new mirror controllers relative to the new target controller to ensure that the host computer can still address and access target data when multiple controllers fail. This ensures that the main information service is not interrupted and increases the reliability of the data storage system.

В соответствии с первым аспектом, в одном из возможных вариантов реализации, целевой контроллер и зеркальные контроллеры относительно этого целевого контроллера образуют резервированную группу контроллеров. Эта резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Когда M контроллеров из резервированной группы контроллеров неисправны и совокупность этих M контроллеров не содержит целевой контроллер, первичный контроллер устанавливает M новых зеркальных контроллеров для указанного целевого контроллера и зеркально отражает данные из запоминающего устройства целевого контроллера в M новых зеркальных контроллеров. Первичный контроллер представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве управления и втором устройстве управления и конфигурированный для управления другим контроллером. Здесь M - целое число не меньше 1 и меньше N.In accordance with the first aspect, in one possible implementation, the target controller and the mirror controllers relative to that target controller form a redundant group of controllers. This redundant controller group contains N controllers. Here, N is an integer not less than 2. When M controllers from the redundant controller group are faulty and the collection of these M controllers does not contain the target controller, the primary controller installs M new mirror controllers for the specified target controller and mirrors the data from the target controller's storage device to M new ones. mirror controllers. The primary controller is a controller selected from a plurality of controllers in the first control device and the second control device and configured to control the other controller. Here M is an integer not less than 1 and less than N.

В этом варианте настоящей заявки, когда совокупность нескольких контроллеров, не содержащая целевого контроллера, неисправна, первичный контроллер может установить новые зеркальные контроллеры для целевого контроллера, чтобы обеспечить, что целевой контроллер может по-прежнему иметь несколько зеркальных контроллеров, и когда эти несколько контроллеров неисправны, главный компьютер может по-прежнему обращаться и получать доступ к целевым данным. Это обеспечивает непрерывность главного информационного сервиса и повышает надежность системы хранения данных.In this embodiment of the present application, when a plurality of controllers not containing a target controller fails, the primary controller may install new mirror controllers for the target controller to ensure that the target controller can still have multiple mirror controllers, and when the multiple controllers fail , the host computer can still access and access the target data. This ensures continuity of the main information service and increases the reliability of the data storage system.

В соответствии с первым аспектом, в одном из возможных вариантов реализации, N равно 3.According to the first aspect, in one possible embodiment, N is 3.

В соответствии с первым аспектом, в одном из возможных вариантов реализации, когда первое устройство управления неисправно, один зеркальный контроллер относительно целевого контроллера, находящийся во втором устройстве управления, используют в качестве нового целевого контроллера, устанавливают зеркальный контроллер для нового целевого контроллера, и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающее устройство нового зеркального контроллера.According to the first aspect, in one possible embodiment, when the first control device is faulty, one mirror controller relative to the target controller located in the second control device is used as a new target controller, a mirror controller is set to the new target controller, and the mirror is reflected. data from the new target controller's storage device to the new mirror controller's storage device.

В этом варианте настоящей заявки, контроллер в каждом устройстве управления имеет зеркальный контроллер в другом устройстве управления. Когда рассматриваемое устройство управления неисправно, первичный контроллер обновляет и совершенствует зеркальный контроллер относительно указанного целевого контроллера, находящийся в другом устройстве управления, для превращения его в новый целевой контроллер и устанавливает зеркальные контроллеры для этого нового целевого контроллера. При таком подходе, когда это устройство управления неисправно, главный компьютер может по-прежнему получать доступ к целевым данным. Это обеспечивает непрерывность главного информационного сервиса и позволяет повысить надежность и доступность системы хранения данных.In this embodiment of the present application, the controller in each control device has a mirror controller in the other control device. When the control device in question fails, the primary controller updates and upgrades the mirror controller relative to the specified target controller located in the other control device to become a new target controller and installs mirror controllers for this new target controller. With this approach, when this control device is faulty, the host computer can still access the target data. This ensures continuity of the main information service and improves the reliability and availability of the data storage system.

В соответствии со вторым аспектом, предложена система управления хранением данных. Эта система управления хранением данных содержит первое устройство управления и второе устройство управления. Первое устройство управления содержит целевой контроллер. Этот целевой контроллер содержит приемный модуль, конфигурированный для приема запроса записи, где этот запрос записи содержит данные, подлежащие записи; и процессорный модуль, конфигурированный для записи данных, подлежащих записи, в запоминающее устройство целевого контроллера. Этот процессорный модуль далее конфигурирован для записи данных, подлежащих записи, в запоминающее устройство зеркального контроллера относительно целевого контроллера. По меньшей мере один зеркальный контроллер принадлежит второму устройству управления.In accordance with the second aspect, a data storage management system is proposed. This storage management system includes a first control device and a second control device. The first control device contains a target controller. This target controller includes a receiving module configured to receive a write request, where the write request contains data to be written; and a processor module configured to write data to be recorded into a storage device of the target controller. This processor module is further configured to write data to be written into a memory of the mirror controller relative to the target controller. The at least one mirror controller belongs to the second control device.

В соответствии со вторым аспектом, в одном из возможных вариантов реализации, целевой контроллер и зеркальные контроллеры относительно этого целевого контроллера образуют резервированную группу контроллеров. Эта резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Система управления хранением данных содержит первичный контроллер. Этот первичный контроллер представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве управления и втором устройстве управления и конфигурированный для управления другим контроллером. Такой первичный контроллер содержит: модуль поиска неисправностей, конфигурированный для того, чтобы: когда M контроллеров в резервированной группе контроллеров неисправны и совокупность этих M контроллеров содержит целевой контроллер, выбрать какой-либо контроллер из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера, где этот новый целевой контроллер конфигурируют для приема запроса записи; и модуль зеркального отражения, конфигурированный для установления M новых зеркальных контроллеров для нового целевого контроллера и зеркального отражения данных из запоминающего устройства нового целевого контроллера в M новых зеркальных контроллеров. Здесь M - целое число не меньше 1 и меньше N.In accordance with the second aspect, in one possible implementation, the target controller and the mirror controllers relative to that target controller form a redundant group of controllers. This redundant controller group contains N controllers. Here N is an integer not less than 2. The storage management system contains a primary controller. This primary controller is a controller selected from a plurality of controllers in the first control device and the second control device and configured to control the other controller. Such a primary controller comprises: a fault finding module configured to: when M controllers in a redundant group of controllers are faulty and the set of these M controllers contains a target controller, select any controller from the set of mirror controllers relative to the target controller as the new target controller, where this new target controller is configured to receive the write request; and a mirroring module configured to establish M new mirror controllers for the new target controller and mirror data from the storage device of the new target controller to the M new mirror controllers. Here M is an integer not less than 1 and less than N.

В соответствии со вторым аспектом, в одном из возможных вариантов реализации, целевой контроллер и зеркальные контроллеры относительно целевого контроллера образуют резервированную группу контроллеров. Эта резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Система управления хранением данных далее содержит первичный контроллер. Этот первичный контроллер представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве управления и во втором устройстве управления и конфигурированный для управления другим контроллером. Первичный контроллер содержит: модуль поиска неисправностей, конфигурированный для того, чтобы: когда M контроллеров из резервированной группы контроллеров являются неисправными и совокупность этих M контроллеров не содержит целевой контроллер, установить M новых зеркальных контроллеров для указанного целевого контроллера; и модуль зеркального отражения, конфигурированный для зеркального отражения данных из запоминающего устройства целевого контроллера в M новых зеркальных контроллеров. Здесь M - целое число не меньше 1 и меньше N.In accordance with the second aspect, in one possible implementation, the target controller and mirror controllers relative to the target controller form a redundant group of controllers. This redundant controller group contains N controllers. Here N is an integer not less than 2. The storage management system further comprises a primary controller. This primary controller is a controller selected from a plurality of controllers in the first control device and in the second control device and configured to control the other controller. The primary controller includes: a fault finding module configured to: when M controllers from a redundant group of controllers are faulty and the collection of these M controllers does not contain a target controller, install M new mirror controllers for the specified target controller; and a mirror module configured to mirror data from the target controller memory to the M new mirror controllers. Here M is an integer not less than 1 and less than N.

В соответствии со вторым аспектом, в одном из возможных вариантов реализации, N равно 3.In accordance with the second aspect, in one possible implementation, N is 3.

В соответствии со вторым аспектом, в одном из возможных вариантов реализации, когда первое устройство управления является неисправным, один зеркальный контроллер, который относится к целевому контроллеру и который находится во втором устройстве управления, используется в качестве нового целевого контроллера, устанавливают какой-либо зеркальный контроллер для этого нового целевого контроллера, и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающее устройство нового зеркального контроллера.According to the second aspect, in one possible embodiment, when the first control device is faulty, one mirror controller that belongs to the target controller and which is located in the second control device is used as a new target controller, any mirror controller is installed for that new target controller, and mirrors the data from the new target controller's storage device to the new mirror controller's storage device.

В соответствии с третьим аспектом, предложена система управления хранением данных. Эта система управления хранением данных содержит первое устройство управления и второе устройство управления. Первое устройство управления содержит целевой контроллер. Этот целевой контроллер содержит процессор и запоминающее устройство. Процессор выполняет компьютерные команды, сохраняемые в запоминающем устройстве, чтобы позволить целевому контроллеру осуществить способ, предлагаемый первым аспектом или каким-либо одним из вариантов реализации этого первого аспекта.In accordance with the third aspect, a data storage management system is proposed. This storage management system includes a first control device and a second control device. The first control device contains a target controller. This target controller contains a processor and a storage device. The processor executes computer instructions stored in the storage device to enable the target controller to implement the method of the first aspect or any one of the embodiments of the first aspect.

В соответствии с третьим аспектом, в одном из возможных вариантов реализации, система управления хранением данных содержит первичный контроллер. Этот первичный контроллер представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве управления и втором устройстве управления и конфигурированный для управления другим контроллером. Первичный контроллер содержит процессор и запоминающее устройство. Процессор выполняет компьютерные команды, сохраняемые в запоминающем устройстве, чтобы позволить первичному контроллеру осуществить способ, предлагаемый в соответствии с первым аспектом или каким-либо с каким-либо из вариантов осуществления этого первого аспекта.According to a third aspect, in one embodiment, the storage management system includes a primary controller. This primary controller is a controller selected from a plurality of controllers in the first control device and the second control device and configured to control the other controller. The primary controller contains a processor and a memory device. The processor executes computer instructions stored in the storage device to allow the primary controller to implement the method provided in accordance with the first aspect or any of the embodiments of this first aspect.

В соответствии с четвертым аспектом, предложен компьютерный носитель для хранения информации. Этот компьютерный носитель для хранения информации сохраняет компьютерную программу. При выполнении этой компьютерной программы процессор может осуществить процедуру способа, предлагаемого первым аспектом или каким-либо одним из вариантов реализации первого аспекта.According to a fourth aspect, a computer storage medium for storing information is provided. This computer storage medium stores a computer program. When executing the computer program, the processor may implement a procedure of the method provided by the first aspect or any one of the embodiments of the first aspect.

В соответствии с пятым аспектом предложен компьютерный программный продукт. Этот компьютерный программный продукт содержит компьютерные команды. При выполнении компьютерной программы компьютер может осуществить процедуру способа, предлагаемого первым аспектом или каким-либо одним из вариантов реализации первого аспекта.In accordance with the fifth aspect, a computer program product is proposed. This computer program product contains computer instructions. When executing a computer program, the computer may perform a procedure of a method provided by the first aspect or any one of the embodiments of the first aspect.

Краткое описание чертежейBrief description of drawings

Фиг. 1A представляет упрощенную схему модели последовательного соединения согласно одному из вариантов настоящей заявки;Fig. 1A is a simplified diagram of a serial connection model according to one embodiment of the present application;

Фиг. 1B представляет упрощенную схему модели параллельного соединения согласно одному из вариантов настоящей заявки;Fig. 1B is a simplified diagram of a parallel connection model according to one embodiment of the present application;

Фиг. 2A представляет упрощенную структурную схему системы хранения данных согласно одному из вариантов настоящей заявки;Fig. 2A is a simplified block diagram of a data storage system according to an embodiment of the present application;

Фиг. 2B представляет упрощенную структурную схему устройства для хранения двойных копий данных согласно одному из вариантов настоящей заявки;Fig. 2B is a simplified block diagram of a device for storing duplicate copies of data according to an embodiment of the present application;

Фиг. 3 представляет упрощенную структурную схему сценария приложения согласно одному из вариантов настоящей заявки;Fig. 3 represents a simplified block diagram of an application scenario according to one embodiment of the present application;

Фиг. 4 представляет упрощенную логическую схему способа повышения надежности системы хранения данных согласно одному из вариантов настоящей заявки;Fig. 4 is a simplified logic diagram of a method for increasing the reliability of a data storage system according to one embodiment of the present application;

Фиг. 5 представляет упрощенную схему записи нескольких копий данных согласно одному из вариантов настоящей заявки;Fig. 5 represents a simplified diagram of recording multiple copies of data according to one embodiment of the present application;

Фиг. 6A-1 и Фиг. 6A-2 представляют упрощенную схему для случая одновременного выхода из строя двух контроллеров согласно одному из вариантов настоящей заявки;Fig. 6A-1 and Fig. 6A-2 shows a simplified diagram for the case of simultaneous failure of two controllers according to one embodiment of this application;

Фиг. 6B-1 и Фиг. 6B-2 представляют упрощенную схему для случая неисправности одного из устройств управления согласно одному из вариантов настоящей заявки;Fig. 6B-1 and Fig. 6B-2 shows a simplified diagram for the event of a malfunction of one of the control devices according to one embodiment of this application;

Фиг. 6C-1 - Фиг. 6C-4 представляют упрощенную схему для случая последовательных отказов контроллеров согласно одному из вариантов настоящей заявки;Fig. 6C-1 - Fig. 6C-4 shows a simplified diagram for the case of sequential failures of controllers according to one embodiment of this application;

Фиг. 7 представляют упрощенную схему модели надежности устройства управления согласно одному из вариантов настоящей заявки;Fig. 7 represents a simplified diagram of a reliability model of a control device according to one embodiment of the present application;

Фиг. 8 представляют упрощенную схему модели надежности системы хранения данных согласно одному из вариантов настоящей заявки;Fig. 8 represents a simplified diagram of a reliability model of a data storage system according to one embodiment of the present application;

Фиг. 9 представляет упрощенную структурную схему системы управления хранением данных согласно одному из вариантов настоящей заявки; иFig. 9 is a simplified block diagram of a storage management system according to one embodiment of the present application; And

Фиг. 10 представляет упрощенную структурную схему другой системы управления хранением данных согласно одному из вариантов настоящей заявки.Fig. 10 is a simplified block diagram of another storage management system according to an embodiment of the present application.

Осуществление изобретенияCarrying out the invention

Последующее ясно описывает технические решения вариантов настоящей заявки со ссылками на прилагаемые чертежи. Очевидно, что описываемые здесь варианты являются всего лишь частью, а не всеми вариантами настоящей заявки. Все другие варианты, получаемые даже рядовыми специалистами в рассматриваемой области на основе представленных здесь вариантов без особых творческих усилий, попадут в объем защиты настоящей заявки.The following clearly describes the technical solutions of the embodiments of the present application with reference to the accompanying drawings. It will be appreciated that the embodiments described herein are only a portion and not all of the embodiments of this application. All other options obtained even by ordinary specialists in the field in question based on the options presented here without much creative effort will fall within the scope of protection of this application.

Некоторые термины и относящиеся к ним технологии в настоящей заявке сначала описаны со ссылками на прилагаемые чертежи, чтобы помочь специалистам в рассматриваемой области для лучшего понимания настоящего изобретения.Certain terms and related technologies in this application are first described with reference to the accompanying drawings to assist those skilled in the art to better understand the present invention.

Шина соединения периферийных компонентов с разъемом типа экспресс (peripheral component interconnect express, PCIe) используется для высокоскоростной последовательной связи по широкополосному двухпунктовому двухканальному соединению. Присоединенному устройству выделена эксклюзивная полоса канала, так что оно не участвует в совместном использовании ширины полосы шины. Поэтому скорость передачи данных является высокой. Соединение между какими-либо двумя PCIe-устройствами называется линией связи и устанавливается из группы из одного или более каналов.The peripheral component interconnect express (PCIe) bus is used for high-speed serial communications over a broadband, point-to-point, dual-channel connection. The attached device is allocated an exclusive channel bandwidth so that it does not share the bus bandwidth. Therefore, the data transfer rate is high. The connection between any two PCIe devices is called a link and is established from a group of one or more links.

Интерфейс малых компьютерных систем (small computer system interface, SCSI) представляет собой стандарт независимых процессоров, используемый для интерфейса системного уровня между компьютером и интеллектуальным устройством (таким как накопитель на жестком диске, накопитель на CD-ROM, принтер или сканер). Интерфейс SCSI представляет универсальный интерфейс. Шина интерфейса SCSI может быть соединена с адаптером главного устройства и контроллером SCSI периферийных устройств. Нескольких периферийных устройств, установленных на одной шине SCSI, могут работать в одно и то же время. Интерфейс SCSI может передавать данные синхронным или асинхронным способом. Интерфейс SCSI управляет операцией считывания/записи данных с использованием независимой высокоскоростной платы интерфейса SCSI, так что центральному процессору (central processing unit, CPU) не нужно терять время на ожидание. Это может улучшить общее функционирование системы.Small computer system interface (SCSI) is an independent processor standard used for a system-level interface between a computer and a smart device (such as a hard disk drive, CD-ROM drive, printer, or scanner). The SCSI interface is a general-purpose interface. The SCSI interface bus can be connected to a host adapter and a SCSI peripheral controller. Multiple peripheral devices installed on the same SCSI bus can operate at the same time. The SCSI interface can transfer data either synchronously or asynchronously. The SCSI interface manages the data read/write operation using an independent high-speed SCSI interface card so that the central processing unit (CPU) does not have to waste time waiting. This can improve the overall functioning of the system.

Последовательный интерфейс SCSI (serial attached SCSI (SAS)) представляет собой технологию интерфейса SCSI следующего поколения, использующую последовательную технологию для достижения более высокой скорости передачи данных, улучшения внутреннего пространства путем укорочения соединений и при этом совместимую с накопителем на жестком диске с усовершенствованным последовательным соединением (serial advanced technology attachment, SATA). Интерфейс SAS имеет двухпунктовую структуру и может устанавливать прямое соединение между диском и контроллером. В дополнение к этому, структура интерфейса SAS имеет превосходную масштабируемость и может быть соединена максимум с 16384 дисководами (накопителями на дисках). Каждый интерфейс SAS имеет четыре кабеля - два для ввода и два для вывода. Данные можно считывать и записывать в одно и то же время.Serial attached SCSI (SAS) is the next generation of SCSI interface technology that uses serial technology to achieve higher data transfer rates, improve internal space through shorter connections, and is compatible with hard disk drives with an advanced serial connection ( serial advanced technology attachment (SATA). The SAS interface has a point-to-point structure and can establish a direct connection between the drive and the controller. In addition to this, the SAS interface structure has excellent scalability and can be connected to a maximum of 16384 disk drives (disk drives). Each SAS interface has four cables - two for input and two for output. Data can be read and written at the same time.

Энергонезависимое запоминающее устройство с разъемом типа экспресс (non-volatile memory express, NVMe) представляет собой спецификацию интерфейса логических устройств и использует протокол, аналогичный последовательному ATA интерфейсу контроллера главного устройства (serial ATA advanced host controller interface, AHCI), разработанному для устройств флэш-памяти. Сущность интерфейса NVMe состоит в установлении нескольких путей между компьютером и устройством для хранения данных. Эти несколько путей представляют собой фактически несколько очередей. Протокол NVMe может поддерживать максимум 64k очередей, значительно улучшая параллельность и производительность.Non-volatile memory express (NVMe) is a logical unit interface specification and uses a protocol similar to the serial ATA advanced host controller interface (AHCI) designed for flash memory devices. . The essence of the NVMe interface is to establish multiple paths between a computer and a storage device. These multiple paths are actually multiple queues. The NVMe protocol can support a maximum of 64k queues, greatly improving concurrency and performance.

Прямой доступ к памяти (direct memory access, DMA) представляет собой принцип действия, согласно которому коммутация ввода/вывода (I/O) осуществляется аппаратно. При таком подходе, контроллер доступа DMA принимает полное управление шиной от процессора CPU, и осуществляется прямой обмен данными между запоминающим устройством и устройством ввода/вывода (IO) без прохождения через процессор CPU. Принцип доступа DMA может уменьшить издержки процессора CPU при передаче большого объема данных. Контроллер доступа DMA используется для генерации адреса доступа в запоминающее устройство и управления процедурой доступа в запоминающее устройство. Скорость передачи данных при таком подходе является высокой, а процессор CPU в основном не вмешивается и принимает участие только во время инициализации и завершения обмена. Процессор CPU и периферийное устройство работают параллельно, вследствие чего эффективность относительно высока.Direct memory access (DMA) is an operating principle in which input/output (I/O) switching is performed in hardware. In this approach, the DMA access controller takes full control of the bus from the CPU, and direct data exchange between the storage device and the input/output (IO) device occurs without passing through the CPU. The DMA access principle can reduce CPU overhead when transferring large amounts of data. The DMA access controller is used to generate the storage access address and control the storage access procedure. The data transfer rate with this approach is high, and the CPU processor basically does not interfere and takes part only during the initialization and completion of the exchange. The CPU processor and the peripheral device operate in parallel, resulting in relatively high efficiency.

Удаленный прямой доступ к памяти (remote direct memory access, RDMA) представляет собой технологию, осуществляющую обход ядра операционной системы удаленного главного компьютера для доступа к данным в запоминающем устройстве удаленного главного компьютера. Поскольку операционная система обходится, система доступа RDMA быстро перемещает данные из системы в запоминающее устройство удаленного компьютера через сеть связи. Поэтому можно сберечь большое количество ресурсов процессора CPU, увеличить пропускную способность, исключить издержки дублирования внешних запоминающих устройств и коммутации контекста и освободить полосу запоминающего устройства для повышения производительности и других характеристик предлагаемой системы.Remote direct memory access (RDMA) is a technology that bypasses the operating system kernel of a remote host computer to access data in the remote host computer's storage device. As the operating system is bypassed, the RDMA access system quickly moves data from the system to the remote computer's storage device through the communications network. Therefore, it is possible to save a large amount of CPU resources, increase throughput, eliminate the overhead of external storage duplication and context switching, and free up storage bandwidth to improve the performance and other characteristics of the proposed system.

Копия данных представляет собой резервный, избыточный объем данных относительно сохраняемых данных. Более конкретно, одни и те же данные сохраняют в разных устройствах для хранения данных, чтобы улучшить доступность системы. Если какое-то устройство для хранения данных, сохраняющее первичную копию данных, окажется несправным, можно обратиться к другому устройству для хранения данных, сохраняющему копию этих данных, для получения нужных данных и тем самым обеспечить непрерывность сервиса.A copy of data is a backup, redundant amount of data relative to the data being saved. More specifically, the same data is stored in different storage devices to improve system availability. If one storage device that stores the primary copy of the data fails, another storage device that stores a copy of the data can be used to retrieve the required data and thereby ensure continuity of service.

Интенсивность потока отказов (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)}. Здесь обозначает частоту обнаружения отказов для каждого блока.Failure rate, also called failure rate, refers to how often a technical system or its components fail. The failure rate is usually measured by the number of failures per hour and is denoted by the letter λ. Mean time between failures (MTBF) denotes the average operating time of a repairable device from the current failure to the next failure. λ = 1/MTBF. Mean time to repair (MTTR) refers to the average recovery (repair) time during which a device goes from a faulty state to a working state. Availability (A) or readiness refers to the degree to which a system, subsystem, or device is in a specified operational or deployable state at the time the task begins. In other words, availability or availability represents the proportion of time that the system is in an operational state. A = MTBF/(MTBF + MTTR). To calculate the availability or availability of a system, calculate the MTBF time for each single block (subsystem, device, etc.) of the system based on the failure rate of that block and then calculate the overall availability or availability of the system based on serial and parallel connection models. In FIG. Figure 1A shows a simplified diagram of the serial connection model. In this circuit, block 1, block 2, ..., and block N are connected in series. The availability of block 1 is A1, the availability of block 2 is A2, ..., and the availability of block N is An. Therefore, the availability (readiness) of the entire system is A = A1 * A2 * ... * An. In FIG. Figure 1B shows a simplified diagram of the parallel connection model. The parallel connection model is more complex than the serial connection model. The backup units in the parallel connection model are classified into primary and secondary backup units and load-sharing backup units. If block 1, block 2, ..., and block N in FIG. 1B are the primary and secondary backup units and the availability (availability) of each of these units is "a", the availability (availability of the entire system is A = 1 - {C * {1 - * (N + 1 - N * a)}/N + (1 - C) * (1 - ) /N}. The parameter C represents the switching frequency, namely the probability of a successful switch from the primary block to the secondary block. C=C1*C2. Here, C1 represents the failure detection rate of the primary unit, and C2 represents the failure detection rate of the secondary unit. In particular, if there is only one spare block for each block, in other words, N=1, this formula can be simplified to A = a + C * a * (1 - a). If block 1, block 2, ..., and block N in FIG. 1B are backup units with load balancing and the availability (availability) of each unit is "a", then the availability (availability) of the entire system is A = 1 - { * {1 - * (N + 1 - N * a)}/N + (1 - ) * (1 - ) / (N + 1)}. Here denotes the failure detection rate for each block.

В общем случае, для улучшения масштабируемости системы, система хранения данных предприятия обычно соединяет несколько узлов управления хранением данных для образования объединенной распределенной системы и представляет сервис хранения данных для применения. Конкретнее, обратимся к Фиг. 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 носителей для хранения информации.In general, to improve system scalability, an enterprise storage system typically connects multiple storage management nodes to form a federated distributed system and provides a storage service for use. More specifically, refer to FIG. 2A, in this FIG. 2A shows a simplified block diagram of a data storage system. As shown in FIG. 2A, device 210 is a device using a storage service, such as a host or server. The computer 210 is connected to the control device 220 and the control device 230. The control device 220 includes multiple controllers. In the embodiment under consideration, four controllers are used as an example for description. These four controllers are controller 221, controller 222, controller 223 and controller 224, so these controllers are connected to each other via PCIe interfaces. The control device 230 also includes several controllers. In the embodiment under consideration, four controllers are also used as an example for description. These four controllers are controller 231, controller 232, controller 233 and controller 234, and they are also connected to each other via PCIe interfaces. To increase system reliability, these controllers are connected to each other using a dual-channel redundancy scheme. The control device 220 is also coupled to the control device 230 in a dual-lane redundant manner via a PCIe interface. The control device 220 and the control device 230 may be data storage arrays. Any controller included in the control device 220 and the control device 230 may use a central processing unit (CPU) plus memory structure. The CPU recalls a program from the storage device to carry out the corresponding function. Alternatively, the controller may be an independent control integrated circuit chip, such as a field-programmable gate array (FPGA), and the program may be written on the FPGA. The control device 220 is connected to the storage device 240 via a SAS interface. The control device 230 is connected to the storage device 250 via a SAS interface. To improve system reliability, the connection between the control device 220 and the storage device 240, and the connection between the control device 230 and the storage device 250 are implemented in a dual-channel redundant design. Storage device 240 and storage device 250 are data storage devices, such as storage arrays. The storage device 240 includes an expansion board 241, an expansion board 242, and N storage media. Here, N is a positive integer greater than 1. The expansion board 241 is responsible for managing the storage device 240. The expansion board 242 is a backup expansion board to the expansion board 241. When the expansion board 241 fails, the expansion board 242 takes over the operation of the expansion board 241 to improve the reliability of the entire system. The structure of the storage device 250 is consistent with the structure of the storage device 240 and contains an expansion board 251, an expansion board 252 and N storage media.

В фактическом приложении, для системы хранения данных используется технология двойного копирования памяти для обеспечения надежности системы и производительности и других характеристиках контроллера. Более конкретно, для данных, записанных в запоминающем устройстве каждого контроллера, создают резервную копию в запоминающем устройстве другого контроллера, принадлежащего тому же самому устройству управления. Как показано на Фиг. 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. При таком подходе предоставление сервиса не прерывается.In the actual application, the storage system uses dual memory copy technology to ensure system reliability and controller performance and other performance. More specifically, data recorded in the storage device of each controller is backed up in the storage device of another controller belonging to the same control device. As shown in FIG. 2B, data A is stored in the controller 221, and a copy A1 of this data A is stored in the controller 222. Data B is stored in the controller 222, and a copy B1 of this data B is stored in the controller 221. Data E is stored in the controller 231, and a copy E1 of this data E is stored in controller 232. Data H is stored in controller 234, and a copy H1 of this data H is stored in controller 233. If controller 221 fails due to a malfunction, computer 210 cannot access the data stored in controller 221. More specifically, the computer 210 cannot access data A and data B1. Since the controller 222 stores a copy A1 of the data A, the computer 210 can access the data A1 by accessing and accessing the controller 222. With this approach, the service is not interrupted.

Если оба контроллера - контроллер 221 и контроллер 222, являются неисправными или устройство 220 управления неисправно, компьютер 210 не может получить доступ к данным A и данным A1, так что предоставление сервиса может быть прервано.If both controller 221 and controller 222 are faulty or control device 220 is faulty, computer 210 cannot access data A and data A1, so the service may be interrupted.

В дополнение к этому, контроллер в каждом устройстве управления может получить доступ только к запоминающему устройству, соединенному с этим устройством управления. Например, контроллер 221 в устройстве 220 управления может получить доступ только к данным в запоминающем устройстве 240, и не может получить доступ к запоминающему устройству 250, поскольку устройство 220 управления не соединено с запоминающим устройством 250. Аналогично, контроллер 231 в устройстве 230 управления может получить доступ только к данным в запоминающем устройстве 250, и не может получить доступ к данным в запоминающем устройстве 240. Поэтому, когда какое-либо устройство управления выходит из строя из-за отказа питания или неисправности оборудования, доступ к данным в контроллере этого устройства управления и к данным в запоминающем устройстве, соединенном с этим устройством управления, окажется невозможным. Вследствие этого, сервис в главном компьютере прерывается или совсем выходит из строя. Например, Если устройство 220 управления неисправно, компьютер 210 не может получить доступ к данным в устройстве 220 и в запоминающем устройстве 240. Вследствие этого, сервис в компьютер 210 прерывается или совсем выходит из строя.In addition to this, the controller in each control device can only access the storage device connected to that control device. For example, the controller 221 in the control device 220 can only access data in the storage device 240, and cannot access the storage device 250 because the control device 220 is not connected to the storage device 250. Likewise, the controller 231 in the control device 230 can access accesses only the data in the storage device 250, and cannot access the data in the storage device 240. Therefore, when any control device fails due to power failure or hardware malfunction, the data in the controller of that control device and access to data in a storage device connected to this control device will not be possible. As a result, the service in the host computer is interrupted or completely fails. For example, if control device 220 fails, computer 210 cannot access data in device 220 and storage device 240. As a result, service to computer 210 is interrupted or fails altogether.

Следует отметить, что устройство управления и запоминающее устройство могут быть соединены посредством линии интерфейса SAS или линия интерфейса NVMe, и каждое устройство управления может быть далее соединено с несколькими запоминающими устройствами. В дополнение к этому, устройство управления и запоминающее устройство могут быть развернуты на одном и том же физическом устройстве. Например, запоминающее устройство 240 и устройство 220 управления могут быть развернуты на одном и том же физическом устройстве. Естественно, устройство управления и запоминающее устройство могут в альтернативном варианте быть развернуты по отдельности на разных физических устройствах.It should be noted that the control device and the storage device may be connected via a SAS interface line or an NVMe interface line, and each control device may be further connected to multiple storage devices. In addition, the control device and the storage device may be deployed on the same physical device. For example, storage device 240 and control device 220 may be deployed on the same physical device. Naturally, the control device and the storage device may alternatively be deployed separately on different physical devices.

Для решения приведенных выше проблем эта заявка предлагает способ повышения надежности системы хранения данных и соответствующие устройства для обеспечения непрерывности главного информационного сервиса, когда устройство управления оказывается неисправным, тем самым повышая надежность и доступность (готовность) системы хранения данных.To solve the above problems, this application proposes a method for increasing the reliability of a storage system and corresponding devices for ensuring the continuity of the main information service when the control device fails, thereby increasing the reliability and availability (availability) of the storage system.

На Фиг. 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. Все контроллеры в устройствах управления могут быть конфигурированы для приема данных ввода/вывода, передаваемых главным устройством, и для определения, на основе адреса, передаваемого в этих данных, целевого контроллера, обрабатывающего эти данные ввода/вывода. Если целевой контроллер представляет собой контроллер, принимающий данные ввода/вывода, передаваемыми главным компьютером, этот целевой контроллер непосредственно обрабатывает эти данные ввода/вывода. Если целевой контроллер не является контроллером, принимающим данные ввода/вывода, передаваемые главным компьютером, этот контроллер пересылает эти данные ввода/вывода целевому контроллеру, а целевой контроллер обрабатывает эти данные.In FIG. 3 shows a possible application scenario according to one of the variants of this application. In this application scenario, the host computer 310 is connected to the control device 320 and to the control device 330. The host computer 310 may be connected to the control device 320 and the control device 330 via a fiber optic transmission line, or may be connected to the control device 320 and the control device 330 via a communications network such as an Ethernet network. In addition, the control device 320 and the control device 330 have two switch boards (not shown in FIG. 3). One of these switch boards is the primary switch board, and the other switch board is the secondary switch board. All controllers in the control device 320 and in the control device 330 must be connected to the primary switch board. This primary switch board is configured to support communication between a controller in one control device and a controller in another control device, and communication between the controller in the control device and storage device 340. When the primary switch board fails, the secondary switch board takes over the operation of the primary switch board to ensuring system reliability. Control device 320 includes multiple controllers. In the present embodiment, an example is used for description in which the control device 320 includes four controllers, for example, a controller 321, a controller 322, a controller 323 and a controller 324. The control device 330 also includes several controllers. In the present embodiment, an example is used for description in which the control device 330 also includes four controllers, for example, a controller 331, a controller 332, a controller 333 and a controller 334. The connections between all controllers in the control device 320 and in the control device 330, and the connection between control device 320 and control device 330 are implemented via RDMA access channels. Data between controllers can be transferred directly to the peer end of the line without the data passing through the CPU. Of course, these connections could alternatively be implemented via PCIe interfaces. The control device 320 and the control device 330 are connected separately to the storage device 340 via RDMA access channels. In other words, the storage device 340 is shared between the control device 320 and the control device 330. More specifically, the control device 320 and the control device 330 can access and access data in the storage device 340 at the same time. The storage device 340 may be a data storage server (namely, a data storage unit) comprising a CPU 341 and a storage device 342, and include N storage media configured to store data for access by controllers. Here, N is a positive integer greater than 1. Memory 342 in memory 340 stores program instructions. The CPU 341 invokes these software instructions to control the storage device 340, such as appropriately configuring the storage device 340 or updating the storage device 340. All controllers in the control devices may be configured to receive I/O data transmitted by the host device and to determine whether based on the address passed in this data, the target controller processing this I/O data. If the target controller is a controller that receives I/O data transmitted by the host computer, the target controller directly processes the I/O data. If the target controller is not the controller that receives the I/O data sent by the host computer, the controller forwards the I/O data to the target controller, and the target controller processes the data.

Следует отметить, что для повышения надежности системы, для всех соединений используется двухканальное резервирование. Более конкретно, два канала доступа RDMA используется для каждого соединения между контроллерами, между устройствами управления и между устройством управления и запоминающим устройством. В дополнение к этому, главный компьютер 310 может быть далее соединен с несколькими устройствами управления, и устройства управления могут быть далее соединены с несколькими совместно используемыми запоминающими устройствами. В дополнение к этому, каждый контроллер имеет по меньшей мере один зеркальный контроллер, и этот по меньшей мере один зеркальный контроллер принадлежит другому устройству управления. Более конкретно, для данных, сохраняемых в каждом контроллере, создают резервную копию в другом контроллере, и по меньшей мере один контроллер принадлежит другому устройству управления. Например, совокупность зеркальных контроллеров относительно контроллера 321 содержит контроллер 322 и контроллер 331. Если резервируют данные A, сохраненные в контроллере 321, контроллер 322 и контроллер 331 соответственно сохраняют копию A1 и копию A2 данных A. Контроллер 321 и контроллер 322 принадлежат устройству 320 управления, и контроллер 331 принадлежит устройству 330 управления. При таком подходе, данные A сохранены в нескольких устройствах управления. Зеркальные контроллеры для каждого контроллера задают заранее. Каждый контроллер и зеркальные контроллеры, соответствующие этому контроллеру, образуют резервированную группу контроллеров.It should be noted that to increase system reliability, two-channel redundancy is used for all connections. More specifically, two RDMA access channels are used for each connection between controllers, between control devices, and between control device and storage device. In addition, the host computer 310 may be further connected to multiple control devices, and the control devices may be further connected to multiple shared storage devices. In addition, each controller has at least one mirror controller, and the at least one mirror controller belongs to another control device. More specifically, data stored in each controller is backed up in another controller, and at least one controller belongs to another control device. For example, a set of mirror controllers with respect to controller 321 includes controller 322 and controller 331. If data A stored in controller 321 is backed up, controller 322 and controller 331 respectively store copy A1 and copy A2 of data A. Controller 321 and controller 322 belong to control device 320, and the controller 331 belongs to the control device 330. In this approach, data A is stored in several control devices. Mirror controllers for each controller are specified in advance. Each controller and the mirror controllers corresponding to that controller form a redundant controller group.

Легко понять, что когда контроллер в устройстве управления выходит из строя, или устройство управления вышло из строя, поскольку резервные копии данных сохранены в нескольких устройствах управления, главный компьютер по-прежнему может получить доступ к резервной копии данных в другом устройстве управления. Это обеспечивает непрерывность сервиса. В дополнение к этому, несколько устройств управления совместно используют одно запоминающее устройство. При таком подходе, даже если какое-либо устройство управления выходит из строя, главный компьютер по-прежнему может получить доступ к данным в запоминающем устройстве, используя контроллер из другого устройства управления, чтобы обеспечить, что сервис в главном компьютере не прерывается или не пропадает совсем. Это эффективно повышает надежность и доступность (готовность) системы.It is easy to understand that when a controller in a control device fails, or a control device fails, since backup data is stored in multiple control devices, the host computer can still access the backup data in another control device. This ensures continuity of service. In addition to this, several control devices share one storage device. With this approach, even if one control device fails, the host computer can still access data in the storage device using a controller from another control device to ensure that service in the host computer is not interrupted or lost altogether . This effectively increases the reliability and availability (availability) of the system.

На основе сценария приложения, показанного на Фиг. 3, в последующем описан, со ссылками на Фиг. 4, способ повышения надежности системы хранения данных согласно одному из вариантов настоящей заявки. Как показано на Фиг. 4, способ содержит, не ограничиваясь этим, следующие этапы.Based on the application scenario shown in FIG. 3 will be described below with reference to FIG. 4, a method for increasing the reliability of a data storage system according to one embodiment of this application. As shown in FIG. 4, the method contains, but is not limited to, the following steps.

S410: Целевой контроллер принимает запрос записи.S410: The target controller receives the write request.

В частности, целевой контроллер может представлять собой любой контроллер в любом устройстве управления, соединенном с главным компьютером. Например, со ссылками на соответствующие описания к Фиг. 3, целевой контроллер может представлять собой контроллер 321 в устройстве 320 управления. В частности, когда целевой контроллер представляет собой контроллер, который в настоящий момент принимает данные ввода/вывода, передаваемые главным компьютером, этот целевой контроллер напрямую принимает запрос записи, переданный главным компьютером. Когда целевой контроллер не является контроллером, принимающий в настоящий момент данные ввода/вывода, передаваемые главным компьютером, целевой контроллер принимает запрос записи, переадресованный ему принявшим контроллером.In particular, the target controller may be any controller in any control device coupled to the host computer. For example, with reference to the corresponding descriptions of FIGS. 3, the target controller may be controller 321 in control device 320. Specifically, when the target controller is a controller that currently receives I/O data transmitted by the host computer, the target controller directly receives the write request transmitted by the host computer. When the target controller is not the controller currently receiving I/O data transmitted by the host computer, the target controller accepts the write request forwarded to it by the receiving controller.

Далее, этот запрос записи содержит данные, которые подлежат записи и которые необходимо записать главным компьютером.Further, this write request contains data to be written and which needs to be written by the host computer.

S420: Целевой контроллер записывает данные, подлежащие записи, в запоминающем устройстве этого целевого контроллера.S420: The target controller writes data to be recorded in the storage device of the target controller.

В частности, целевой контроллер может представлять собой кристалл (чип) интегральной схемы управления, содержащий процессор CPU и запоминающее устройство. После приема запроса записи, целевой контроллер получает, посредством синтаксического анализа этого запроса записи, данные, подлежащие записи и передаваемые в этом запросе записи, и записывает эти данные, подлежащие записи, в запоминающем устройстве этого целевого контроллера.In particular, the target controller may be a control integrated circuit chip containing a CPU and a memory. After receiving the write request, the target controller obtains, by parsing the write request, the data to be written and transmitted in the write request, and writes the data to be written in a storage device of the target controller.

S430: Целевой контроллер записывает данные, подлежащие записи, в запоминающем устройстве зеркального контроллера относительно этого целевого контроллера.S430: The target controller writes data to be written in the memory of the mirror controller relative to the target controller.

Как показано на Фиг. 3, в этом варианте настоящего изобретения, каждый контроллер снабжен зеркальными контроллерами, и по меньшей мере один зеркальный контроллер не принадлежит тому же самому устройству управления, которому принадлежит целевой контроллер. Поэтому, после записи данных, подлежащих записи, в своем запоминающем устройстве целевой контроллер далее записывает данные, подлежащие записи, в запоминающем устройстве зеркального контроллера. Поскольку эти контроллеры соединены по каналу доступа RDMA, целевой контроллер может напрямую записать данные, подлежащие записи, в запоминающем устройстве зеркального контроллера относительно этого целевого контроллера по каналу доступа RDMA.As shown in FIG. 3, in this embodiment of the present invention, each controller is provided with mirror controllers, and at least one mirror controller does not belong to the same control device to which the target controller belongs. Therefore, after writing the data to be recorded in its storage device, the target controller further writes the data to be recorded in the storage device of the mirror controller. Since these controllers are connected via an RDMA access channel, the target controller can directly write data to be written in the memory of the mirror controller relative to that target controller via the RDMA access channel.

Следует понимать, что данные передают между любыми двумя контроллерами по каналу доступа RDMA, и данные не проходят через процессор CPU. Это улучшает характеристики процессоров CPU контроллеров и эффективность связи.It should be understood that data is transferred between any two controllers over an RDMA access channel, and the data does not pass through the CPU. This improves the performance of the CPU controllers and communication efficiency.

Например, на Фиг. 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.For example, in FIG. 5 shows a simplified diagram of recording multiple copies of data according to one of the variants of this application. As shown in FIG. 5, the mirror controllers for the controller 521 are the controller 522 and the controller 532. Therefore, the controller 521 first writes data A in the memory of the controller 521, and then respectively writes copies A1 and A2 of this data A in the memory of the controller 522 and in the memory of the controller 532. The mirror controllers to controller 523 are controller 524 and controller 534. After writing B data to controller 523's memory, controller 523 writes B1 copy of B data to controller 524's memory and writes B2 copy of B data to controller 534's memory. Likewise, the mirror controllers to controller 531 are controller 522 and controller 532. After writing data C to the memory of controller 531, controller 531 writes a copy C1 of that data C to the memory of controller 532, and writes a copy C2 of data C to the memory of controller 522. The mirror controllers to controller 533 are controller 524 and controller 534. After writing data D into the memory of controller 533, controller 533 writes a copy D1 of data D into the memory of controller 534, and writes a copy D2 of data D into the memory of controller 524.

В частности, в совокупности всех соединенных между собой контроллеров имеется первичный контроллер. Первичным контроллером может быть любой контроллер, выбранный из всех контроллеров, и этот контроллер конфигурирован для управления соотношениями зеркальности для всех контроллеров, иными словами, какие именно зеркальные контроллеры относятся к каждому контроллеру. Другой контроллер имеет резервную копию этого соотношения зеркальности. Когда первичный контроллер выходит из строя и не может работать, из оставшихся контроллеров выбирают новый первичный контроллер для принятия на себя работы предыдущего первичного контроллера и управления соотношениями зеркальности всех контроллеров. В дополнение к этому, в совокупности соотношений зеркальности, управляемых первичным контроллером, избегают ситуации, когда зеркальные контроллеры относительно слишком большого числа контроллеров связывают с одним и тем же контроллером. Первичный контроллер может устанавливать соотношения зеркальности в соответствии с алгоритмом рассеивания или другим подобным алгоритмом для осуществления балансирования нагрузки между контроллерами.In particular, in the totality of all interconnected controllers there is a primary controller. The primary controller may be any controller selected from among all the controllers, and the controller is configured to control the mirroring relationships for all controllers, in other words, which mirror controllers are associated with each controller. The other controller has a backup of this specularity ratio. When the primary controller fails and cannot operate, a new primary controller is selected from the remaining controllers to take over the work of the previous primary controller and control the mirroring ratios of all controllers. In addition to this, the set of mirroring relationships controlled by the primary controller avoids a situation where mirror controllers of too many controllers are associated with the same controller. The primary controller may set specularity ratios in accordance with a diffusion algorithm or other similar algorithm to effect load balancing among the controllers.

Например, как показано на Фиг. 5, контроллер 521 представляет собой целевой контроллер. Контроллер 522 и контроллер 532 являются зеркальными контроллерами относительно этого целевого контроллера. После того, как контроллер 521 запишет данные A в запоминающее устройство этого контроллера 521, копии A1 и A2 этих данных A записывают соответственно в запоминающее устройство контроллера 522 и в запоминающее устройство контроллера 532.For example, as shown in FIG. 5, controller 521 is a target controller. Controller 522 and controller 532 are mirror controllers of this target controller. After the controller 521 writes data A to the memory of the controller 521, copies A1 and A2 of the data A are written to the memory of the controller 522 and the memory of the controller 532, respectively.

S440: Целевой контроллер передает сообщение завершения записи главному компьютеру.S440: The target controller transmits a write completion message to the host computer.

В частности, после записи данных, подлежащих записи, в запоминающее устройство целевого контроллера и в запоминающие устройства зеркальных контроллеров относительно целевого контроллера, этот целевой контроллер передает сообщение завершения записи главному компьютеру для извещения главного компьютера, что данные, подлежащие записи, были успешно записаны в запоминающее устройство целевого контроллера и в запоминающие устройства зеркальных контроллеров относительно этого целевого контроллера.Specifically, after writing the data to be written to the memory of the target controller and the memories of the mirror controllers relative to the target controller, the target controller transmits a write complete message to the host computer to notify the host computer that the data to be written has been successfully written to the storage memory. device of the target controller and into the storage devices of the mirror controllers relative to this target controller.

В одном из возможных вариантов реализации, целевой контроллер и зеркальные контроллеры относительно целевого контроллера образуют резервированную группу контроллеров. Эта резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Когда M контроллеров в резервированной группе контроллеров неисправны, и совокупность этих M контроллеров содержит целевой контроллер, первичный контроллер выбирает один контроллер из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера, где этот новый целевой контроллер конфигурируют для приема запроса записи, и первичный контроллер конфигурирован для приема запроса записи от главного устройства и переадресации этого запроса записи новому целевому контроллеру; и этот первичный контроллер устанавливает M новых зеркальных контроллеров для нового целевого контроллера и зеркально отражает данные из запоминающего устройства нового целевого контроллера в M новых зеркальных контроллеров. Здесь M - целое число не меньше 1 и меньше N.In one possible implementation, the target controller and mirror controllers relative to the target controller form a redundant group of controllers. This redundant controller group contains N controllers. Here, N is an integer not less than 2. When M controllers in the redundant controller group are faulty, and the set of these M controllers contains the target controller, the primary controller selects one controller from the set of mirror controllers relative to the target controller as the new target controller, where this new target controller configured to receive a write request, and the primary controller is configured to receive a write request from the master device and forward the write request to the new target controller; and this primary controller installs M new mirror controllers for the new target controller and mirrors data from the new target controller's storage device to the M new mirror controllers. Here M is an integer not less than 1 and less than N.

В частности, каждые два контроллера во всех устройствах управления периодически передают один другому контрольные пакеты для определения соответствующих статусов. Если контроллер не примет контрольный пакет, переданный другим контроллером, в пределах заданного периода времени, он может определить, что указанный другой контроллер является неисправным. В таком случае, первичному контроллеру необходимо заново будет заново отрегулировать соотношения зеркальности для каждого контроллера. Период передачи контрольных пакетов и заданный период времени ожидания приема такого пакета могут быть заданы на основе актуальных требований. В настоящей заявке это не ограничивается. Например, на Фиг. 5, восемь контроллеров в устройстве 520 управления и в устройстве 530 управления передают контрольные пакеты один другому. Если контроллер 521 не примет, в пределах заданного периода времени, контрольный пакет, переданный контроллером 522, контроллер 521 может определить, что контроллер 522 неисправен.In particular, every two controllers in all control devices periodically transmit control packets to each other to determine the corresponding statuses. If a controller does not accept a control packet sent by another controller within a specified period of time, it may determine that the other controller is faulty. In such a case, the primary controller will need to re-adjust the specularity ratios for each controller. The transmission period of control packets and the specified waiting period for receiving such a packet can be set based on current requirements. This application is not limited to this. For example, in FIG. 5, eight controllers in the control device 520 and in the control device 530 transmit control packets to one another. If controller 521 does not receive, within a predetermined period of time, a control packet sent by controller 522, controller 521 may determine that controller 522 is faulty.

В качестве опции, первичный контроллер может назначить уровни приоритета для зеркальных контроллеров относительно какого-либо управляемого им контроллера. Более конкретно, когда целевой контроллер неисправен, зеркальный контроллер с более высоким приоритетом выбирают из совокупности зеркальных контроллеров относительно указанного целевого контроллера в качестве нового целевого контроллера на основе этого приоритета. В качестве опции, первичный контроллер может установить зеркальный контроллер, входящий в одно устройство управления с целевым контроллером в качестве контроллера с более высоким приоритетом. Безусловно, контроллер с более высоким приоритетом может в альтернативном варианте быть задан на основе другого условия, например, физического статуса и состояния резервного источника питания соответствующего контроллера. В настоящей заявке это не ограничено. Например, на Фиг. 5, оба контроллера - контроллер 522 и контроллер 532, являются зеркальными контроллерами относительно контроллера 521, но приоритет контроллера 522 выше приоритета контроллера 532. Поэтому, когда контроллер 521 выйдет из строя, первичный контроллер выберет контроллер 522 в качестве нового целевого контроллера. В альтернативном варианте, первичный контроллер случайным образом выбирает контроллер из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера. Способ, используемый первичным контроллером для определения нового целевого контроллера, а настоящей заявке не ограничен.As an option, the primary controller can assign priority levels to mirror controllers relative to any controller it controls. More specifically, when the target controller fails, a mirror controller with a higher priority is selected from the plurality of mirror controllers relative to the specified target controller as a new target controller based on this priority. As an option, the primary controller can install a mirror controller that is part of the same control device as the target controller as a higher priority controller. Of course, the higher priority controller may alternatively be specified based on another condition, such as the physical status and backup power supply status of the corresponding controller. This is not limited in this application. For example, in FIG. 5, both controller 522 and controller 532 are mirror controllers to controller 521, but the priority of controller 522 is higher than the priority of controller 532. Therefore, when controller 521 fails, the primary controller will select controller 522 as the new target controller. In an alternative embodiment, the primary controller randomly selects a controller from the plurality of mirror controllers relative to the target controller as the new target controller. The method used by the primary controller to determine a new target controller is not limited to this application.

Далее, когда M контроллеров, включая целевой контроллер, неисправны, первичный контроллер определяет новый целевой контроллер из совокупности оставшихся зеркальных контроллеров, и устанавливает M новых зеркальных контроллеров для нового целевого контроллера, чтобы количество контроллеров в резервированной группе контроллеров оставалось таким же, как и раньше (а именно, N контроллеров), и зеркально отражает данные из нового целевого контроллера в M новых зеркальных контроллеров. В дополнение к этому, первичный контроллер может принять запрос записи от главного компьютера и затем переслать этот запрос записи новому целевому контроллеру. Новый целевой контроллер записывает данные, подлежащие записи, из запроса записи в запоминающее устройство этого нового целевого контроллера и в запоминающие устройства зеркальных контроллеров (включая, M новых зеркальных контроллеров) относительно нового целевого контроллера.Next, when M controllers including the target controller are faulty, the primary controller determines a new target controller from the set of remaining mirror controllers, and installs M new mirror controllers for the new target controller so that the number of controllers in the redundant controller group remains the same as before ( namely, N controllers), and mirrors the data from the new target controller to M new mirror controllers. In addition, the primary controller may receive a write request from the host computer and then forward the write request to a new target controller. The new target controller writes the write-to-be-written data from the write request to the storage device of this new target controller and to the storage devices of the mirror controllers (including the M new mirror controllers) relative to the new target controller.

В качестве опции, значение N равно 3. Более конкретно, целевой контроллер имеет два зеркальных контроллера, и при этом целевой контроллер и по меньшей мере один из зеркальных контроллеров развернуты в разных устройствах управления.Optionally, the value of N is 3. More specifically, the target controller has two mirror controllers, and wherein the target controller and at least one of the mirror controllers are deployed in different control devices.

В одном из возможных вариантов реализации, целевой контроллер и зеркальные контроллеры относительно этого целевого контроллера образуют резервированную группу контроллеров. Эта резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Когда M контроллеров в резервированной группе контроллеров неисправны, и совокупность этих M контроллеров не содержит целевой контроллер, первичный контроллер устанавливает M новых зеркальных контроллеров для указанного целевого контроллера и зеркально отражает данные из запоминающего устройства целевого контроллера в M новых зеркальных контроллеров. Здесь M - целое число не меньше 1 и меньше N.In one possible implementation, the target controller and mirror controllers relative to this target controller form a redundant group of controllers. This redundant controller group contains N controllers. Here, N is an integer not less than 2. When M controllers in a redundant controller group are faulty, and the collection of these M controllers does not contain the target controller, the primary controller installs M new mirror controllers for the specified target controller and mirrors the data from the target controller's storage device to M new mirror controllers. Here M is an integer not less than 1 and less than N.

В частности, когда совокупность M контроллеров из резервированной группы контроллеров, не содержащая целевой контроллер, неисправна, первичный контроллер обновляет глобальные соотношения зеркальности. Более конкретно, первичный контроллер напрямую устанавливает M новых зеркальных контроллеров для указанного целевого контроллера, чтобы обеспечить, что количество контроллеров в резервированной группе контроллеров по-прежнему равно N, и зеркально отражает данные из целевого контроллера в M новых зеркальных контроллеров.In particular, when a set of M controllers from the redundant controller group that does not contain the target controller fails, the primary controller updates the global mirroring relationships. More specifically, the primary controller directly installs M new mirror controllers for the specified target controller to ensure that the number of controllers in the redundant controller group is still N, and mirrors data from the target controller to M new mirror controllers.

В качестве опции, значение N равно 3. Более конкретно, целевой контроллер имеет два зеркальных контроллера, так что целевой контроллер и по меньшей мере один из зеркальных контроллеров развернуты в разных устройствах управления.Optionally, the value of N is 3. More specifically, the target controller has two mirror controllers such that the target controller and at least one of the mirror controllers are deployed in different control devices.

Например, обратимся к Фиг. 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.For example, refer to FIG. 6A-1 and Fig. 6A-2. As shown in FIG. 6A-1 and Fig. 6A-2, when the control device 520 and the control device 530 are operating normally, the controller 521, the controller 522, and the controller 532 form a redundant controller group and store data A and copies A1 and A2 of the data A, respectively. The controller 522, the controller 531, and the controller 532 form another redundant group of controllers and store respectively data C and copies C1 and C2 of this data C. For data A, the target controller of this data A is controller 521. Because controller 522 and controller 532 store copies A1 and A2 of data A when controller 521 and controller 522 fail at the same time, the primary controller selects controller 532 as the new target controller. In other words, the data stored in the controller 532 is changed and turned into data A. The primary controller resets the new specularity ratio. After controller 532 is defined as the new target controller, copies A1 and A2 of data A are mirrored to controller 531 and controller 523. In other words, controller 523 and controller 531 are mirror controllers to controller 532. Likewise, for data C, the target controller of this data C is controller 531. Because controller 522 maintains a copy C2 of data C, when this controller 522 fails, the primary controller sets up a new mirror controller for target controller 531 to establish a new mirroring relationship. The primary controller mirrors a copy of data C to controller 524. In other words, controller 524 and controller 532 are mirror controllers to target controller 531.

Следует понимать, что приведенное выше описание использует пример, в котором каждый целевой контроллер имеет только два зеркальных контроллера. Безусловно, каждый целевой контроллер может иметь больше зеркальных контроллеров. Конкретная реализация логики и процессов в целевом контроллере является такой же, как описано выше. Для краткости, подробности здесь снова описаны не будут.It should be understood that the above description uses an example in which each target controller has only two mirror controllers. Of course, each target controller can have more mirror controllers. The specific implementation of logic and processes in the target controller is the same as described above. For the sake of brevity, the details will not be described here again.

Можно понять, что когда два контроллера оказываются неисправными в одно и то же время, поскольку целевые данные (например, данные A) резервированы, и копии этих целевых данных сохранены в трех разных контроллерах, главный компьютер может по-прежнему получить доступ к целевым данным. Это обеспечивает непрерывность работы главного информационного сервиса и повышает надежность и доступность всей системы хранения данных. В дополнение к этому, первичный контроллер в устройстве управления может далее заново установить новое соотношение зеркальности и определить контроллер, который не вышел из строя, в качестве нового целевого контроллера или зеркального контроллера, чтобы обеспечить, что целевые данные и копии этих целевых данных могут храниться в трех разных контроллерах.It can be understood that when two controllers fail at the same time, since the target data (eg, data A) is backed up and copies of the target data are stored in three different controllers, the host computer can still access the target data. This ensures the continuity of the main information service and increases the reliability and availability of the entire data storage system. In addition, the primary controller in the control device may further re-establish the new mirroring relationship and define the controller that has not failed as the new target controller or mirror controller to ensure that the target data and copies of that target data can be stored in three different controllers.

В одном из возможных вариантов, когда первое устройство управления неисправно, один зеркальный контроллер, относящийся к целевому контроллеру и находящийся во втором устройстве управления, используется в качестве нового целевого контроллера, один из зеркальных контроллеров устанавливают для этого нового целевого контроллера, и данные из запоминающего устройства нового целевого контроллера зеркально отражают в запоминающем устройстве нового зеркального контроллера.In one embodiment, when the first control device is faulty, one mirror controller related to the target controller and located in the second control device is used as a new target controller, one of the mirror controllers is set to this new target controller, and the data from the storage device the new target controller is mirrored into the memory of the new mirror controller.

В частности, когда первое устройство управления неисправно, первичному контроллеру необходимо снова обновить глобальное соотношение зеркальности. Каждый контроллер в первом устройстве управления имеет по меньшей мере один зеркальный контроллер во втором устройстве управления. Поэтому, первичный контроллер может выбрать один из зеркальных контроллеров во втором устройстве управления в качестве нового целевого контроллера, затем устанавливают новый зеркальный контроллер для нового целевого контроллера, и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающее устройство нового зеркального контроллера. В рассматриваемом варианте настоящего изобретения, контроллер в первом устройстве управления или контроллер во втором устройстве управления может быть выбран в качестве первичного контроллера. Способ выбора первичного контроллера в распределенной системе предложен в известной технике и подробности здесь не описаны.In particular, when the first control device is faulty, the primary controller needs to update the global specularity ratio again. Each controller in the first control device has at least one mirror controller in the second control device. Therefore, the primary controller may select one of the mirror controllers in the second control device as a new target controller, then install a new mirror controller for the new target controller, and mirror data from the storage device of the new target controller to the storage device of the new mirror controller. In the exemplary embodiment of the present invention, the controller in the first control device or the controller in the second control device may be selected as the primary controller. A method for selecting a primary controller in a distributed system is proposed in the prior art and the details are not described herein.

Например, обратимся к Фиг. 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.For example, refer to FIG. 6B-1 and Fig. 6B-2. As shown in FIG. 6B-1 and Fig. 6B-2, when the control device 520 and control device 530 operate normally, for data A, the target controller for that data A is controller 521, and controller 532 stores a copy A2 of that data A, so that controller 532 is a mirror controller to controller 521. For data B, the target controller for that data B is controller 523, and controller 534 maintains a B2 copy of that data B, so that controller 534 is a mirror controller to controller 523. When control device 520 fails, for data A, the primary controller uses controller 532 as the new target controller, the data stored in controller 532 is changed to data A, and the primary controller re-establishes a new mirroring ratio and mirrors copies A1 and A2 of data A to controller 531 and controller 533, respectively. For data B, the primary controller uses controller 534 as the new target controller, resets the new mirroring ratio, and mirrors copies B1 and B2 of data B to controller 531 and controller 533, respectively. For data C, the primary controller directly sets a new mirror ratio, and mirrors a copy C2 of data C to controller 534. For data D, the primary controller also directly sets a new mirror ratio, and mirrors a copy D2 of data D to controller 532.

Следует понимать, что приведенное выше описание использует только два устройства управления в качестве примера. Если имеется больше двух устройств управления, конкретная реализации логики согласована с изложенным выше материалом, так что подробности здесь снова описаны не будут.It should be understood that the above description only uses two control devices as an example. If there are more than two control devices, the specific implementation of the logic is consistent with the material presented above, so the details will not be described here again.

Можно понимать, что когда какое-либо устройство управления неисправно, поскольку каждый из контроллеров в этом устройстве имеет по меньшей мере один зеркальный контроллер в другом устройстве управления, иными словами, все данные из рассматриваемого отказавшего устройства управления зарезервированы в другом устройстве управления, главный компьютер может по-прежнему получить доступ к данным из неисправного устройства управления путем обращения и получения доступа к другому устройству управления. Это обеспечивает непрерывность главного информационного сервиса и повышает надежность и доступность системы хранения данных.It can be understood that when any control device fails, since each of the controllers in that device has at least one mirror controller in the other control device, in other words, all the data from the failed control device in question is reserved in the other control device, the host computer can still access data from a failed control device by accessing and accessing another control device. This ensures continuity of the main information service and increases the reliability and availability of the data storage system.

В сценарии, в котором первое устройство управления содержит четыре контроллера и второе устройство управления содержит четыре контроллера, способ, предлагаемый в настоящем изобретении, может поддерживать непрерывность сервиса, когда семь контроллеров оказываются неисправными. Подробнее, см. вариант, показанный на Фиг. 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.In a scenario in which the first control device contains four controllers and the second control device contains four controllers, the method proposed in the present invention can maintain service continuity when seven controllers fail. For details, see the embodiment shown in Fig. 6C-1 - Fig. 6C-4. As shown in FIG. 6C-1 - Fig. 6C-4, when the control device 520 and control device 530 are operating normally, the controller 521 stores data A, and the controller 522 and controller 532 respectively store copies A1 and A2 of data A. The controller 523 stores data B, and the controller 524 and controller 534 respectively store copies B1 and B2 of data B. Controller 531 stores data C, and controller 532 and controller 522, respectively, store copies C1 and C2 of data C. Controller 533 stores data D, and controller 534 and controller 524, respectively, store copies D1 and D2 of data D. When controller 521 fails, the primary controller sets a new mirroring relationship, uses controller 522 as the target controller for data A, and mirrors A1's copy of data A to controller 523. The mirroring relationship between the other controllers remains unchanged. Then the 522 controller also fails. The primary controller uses controller 523 as the target controller for data A, and mirrors copy A1 of data A in controller 524. Copy C2 of data C is mirrored in controller 524. The mirroring relationship between the other controllers remains unchanged. Further, the 523 controller also fails. This primary controller uses controller 524 as the target controller for data A, and mirrors copy A1 of data A in controller 534. The primary controller uses controller 524 as the target controller for data B, and mirrors copy B1 of data B in controller 532. Relationship mirroring between other controllers remains unchanged. Further, the 524 controller also fails. The primary controller uses controller 534 as the target controller for data A, and mirrors a copy A1 of data A in controller 531. The primary controller uses controller 532 as the target controller for data B, and mirrors a copy B1 of data B in controller 531. The primary controller re-mirrors a copy C2 of data C in controller 534. The primary controller mirrors a copy D2 of data D in controller 532. The other mirroring relationship remains unchanged. Further, controller 531 also fails. The primary controller re-mirrors A1's copy of data A into controller 533. The primary controller re-mirrors B1's copy of B's data into controller 533. The primary controller uses controller 532 as the target controller for C's data, and mirrors C1's copy of C's data into controller 533. The other specularity ratio remains unchanged. Further, the 532 controller also fails. In this case, only two controllers remain, namely, controller 533 and controller 534. Therefore, according to the mirroring relationship controlled by the primary controller, each target controller has only one mirror controller. The primary controller uses controller 533 as the target controller for data B. Controller 533 is also used as the target controller for data C and the target controller for data D. Since controller 534 stores a copy B1 of data B, a copy C1 of data C, and a copy D1 of data D, the primary controller does not need to set a new specularity ratio. Further, the 533 controller also fails. Of the entire set of controllers, only controller 534 remains. All data can only be stored in controller 534, and backup copies cannot be created. In other words, the primary controller cannot install a new mirror controller, and the 534 controller is used as the target controller for data A, data B, data C, and data D.

Можно понять, что когда контроллеры последовательно один за другим выходят из строя, приходится непрерывно устанавливать обновленное соотношение зеркальности посредством непрерывного зеркального отражения, чтобы обеспечить, что главный компьютер может нормально получать доступ к целевым данным. Даже если только один контроллер работает, главный компьютер может по-прежнему получать доступ к целевым данным. Это обеспечивает непрерывность главного информационного сервиса.It can be understood that when the controllers fail one after another, the updated mirroring ratio has to be continuously established through continuous mirroring to ensure that the host computer can normally access the target data. Even if only one controller is running, the host computer can still access the target data. This ensures continuity of the main information service.

Следует отметить, что приведенное выше рассмотрение просто использует пример, в котором каждый контроллер последовательно выходит из строя, для описания изменений соотношения зеркальности между контроллерами. Безусловно, существует также сценарий приложения, в котором несколько контроллеров выходят из строя одновременно, или сценарий приложения, в котором несколько контроллеров выходят из строя одновременно или последовательно. Конкретная логика изменения соотношения зеркальности контроллеров согласована с изложенным выше. Для краткости, подробности здесь снова описаны не будут.It should be noted that the above discussion simply uses an example in which each controller fails sequentially to describe changes in the specularity ratio between controllers. Of course, there is also an application scenario in which multiple controllers fail at the same time, or an application scenario in which multiple controllers fail simultaneously or sequentially. The specific logic for changing the specularity ratio of the controllers is consistent with the above. For the sake of brevity, the details will not be described here again.

В дополнение к этому, для лучшего описания влияния этой заявки на доступность системы хранения данных используется пример системы хранения данных, содержащий два устройства управления и восемь контроллеров. На Фиг. 7 приведена упрощенная схема модели надежности устройства управления. Как показано на Фиг. 7, модель содержит четыре параллельных контроллера, два параллельных резервных блока питания, два параллельных модуля питания, два параллельных вентилятора, одну объединительную панель и два параллельных модуля управления, которые соединены последовательно. Доступность (готовность) каждого устройства управления в сценариях, показанных на Фиг. 2B и Фиг. 5 вычисляют по отдельности. Следует отметить, что в приведенных выше двух сценариях другие компоненты являются согласованными, и соотношения соединений также являются согласованными. Поэтому доступность (готовность) устройства управления может быть вычислена только на основе соответствующего резервирования контроллеров. В предположении, что доступность (готовность) каждого контроллера равна 0.999989496, доступность каждого устройства управления, показанного на Фиг. 2B, вычисляют с использованием формулы 1. Эта формула 1 имеет следующий вид:In addition, to better describe the impact of this application on storage system availability, an example storage system containing two management devices and eight controllers is used. In FIG. Figure 7 shows a simplified diagram of the control device reliability model. As shown in FIG. 7, the model contains four parallel controllers, two parallel redundant power supplies, two parallel power modules, two parallel fans, one backplane and two parallel control modules, which are connected in series. The availability (readiness) of each control device in the scenarios shown in Fig. 2B and FIG. 5 are calculated separately. It should be noted that in the above two scenarios, the other components are consistent and the connection ratios are also consistent. Therefore, the availability (readiness) of the control device can only be calculated based on the corresponding redundancy of the controllers. Assuming that the availability (availability) of each controller is 0.999989496, the availability of each control device shown in FIG. 2B is calculated using Formula 1. This Formula 1 is as follows:

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

В формуле 1, «a» обозначает доступность каждого контроллера. Параметр C обозначает частоту переключений. Полученная в результате вычислений величина доступности (готовности) равна 0.999998950.In Formula 1, “a” denotes the availability of each controller. Parameter C indicates the switching frequency. The value of availability (readiness) obtained as a result of calculations is equal to 0.999998950.

Доступность каждого устройства управления, показанного на Фиг. 5, вычисляют с использованием формула 2. Эта формула 2 имеет следующий вид:The availability of each control device shown in FIG. 5 is calculated using formula 2. This formula 2 is as follows:

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

В формуле 2, N обозначает количество резервированных контроллеров (а именно, количество зеркальных контроллеров) для каждого контроллера. Доступность (готовность) устройства управления, полученная в результате вычислений, равна 0.999999475.In Formula 2, N denotes the number of redundant controllers (namely, the number of mirror controllers) for each controller. The availability (readiness) of the control device, obtained as a result of calculations, is equal to 0.999999475.

Можно понять, что доступность устройства управления, показанного на Фиг. 5, выше доступности устройства управления, показанного на Фиг. 2B. Поэтому надежность устройства управления, показанного на Фиг. 5, выше.It can be understood that the availability of the control device shown in FIG. 5 is higher than the availability of the control device shown in FIG. 2B. Therefore, the reliability of the control device shown in FIG. 5, above.

Далее, на Фиг. 8 представлена упрощенная схема модели надежности системы хранения данных. Как показано на Фиг. 8, модель содержит два параллельных устройства управления, X последовательных накопителей на жестких дисках и Y последовательных групп дисков. Эти два устройства управления, X накопителей на жестких дисках и Y групп дисков соединены последовательно. Доступность всей системы хранения данных, показанной на Фиг. 2B, и системы, показанной на Фиг. 5, вычисляют с использованием модели, показанной на Фиг. 8. Следует понимать, что в сценариях, показанных на Фиг. 2B и Фиг. 5, могут быть использованы и другие согласованные компоненты и соотношения соединений также согласованы. Поэтому доступность (готовность) всей системы хранения данных может быть вычислена на основе только устройств управления. Следует отметить, что в сценарии, показанном на Фиг. 2B, каждое устройство управления не зависит от других устройств управления. Более конкретно, когда одно из устройств управления выходит из строя, вся система хранения данных работать не может. Поэтому предполагается, что к устройствам управления применима модель последовательного соединения, и доступность системы хранения данных, показанной на Фиг. 2B, вычисляют с использованием формулы 3. Эта формула 3 имеет следующий вид:Next, in FIG. Figure 8 shows a simplified diagram of the reliability model of a data storage system. As shown in FIG. 8, the model contains two parallel control devices, X serial hard drives and Y serial disk groups. These two management devices, X hard drives and Y disk groups are connected in series. Availability of the entire storage system shown in FIG. 2B, and the system shown in FIG. 5 is calculated using the model shown in FIG. 8. It should be understood that in the scenarios shown in FIGS. 2B and FIG. 5, other matched components can be used and the connection ratios are also matched. Therefore, the availability (availability) of the entire storage system can be calculated based only on the management devices. It should be noted that in the scenario shown in FIG. 2B, each control device is independent of other control devices. More specifically, when one of the control devices fails, the entire storage system cannot operate. Therefore, it is assumed that a serial connection model is applicable to the control devices, and the availability of the storage system shown in FIG. 2B is calculated using Formula 3. This Formula 3 is as follows:

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

В формуле 3, величины A1 и A2 обозначают доступность каждого устройства управления. Поскольку все устройства управления являются одинаковыми, величины A1 и A2 являются одинаковыми и равными 0.999998950. Поэтому доступность всей системы хранения данных равна 0.999997900.In Formula 3, the values A1 and A2 indicate the availability of each control device. Since all control devices are the same, the values of A1 and A2 are the same and equal to 0.999998950. Therefore, the availability of the entire storage system is 0.999997900.

Однако, в сценарии, показанном на Фиг. 5, каждое устройство управления ассоциировано с другим таким устройством. Даже если одно из этих устройств управления выходит из строя, другое устройство управления может по-прежнему поддерживать доступ для главного компьютера, так что вся система хранения данных может работать нормально. Поэтому предполагается, что устройства управления соответствуют модели параллельного соединения, и доступность системы хранения данных, показанной на Фиг. 5 вычисляют с использованием формулы 4. Формула 4 имеет следующий вид:However, in the scenario shown in FIG. 5, each control device is associated with another such device. Even if one of these control devices fails, the other control device can still maintain access to the host computer so that the entire storage system can operate normally. Therefore, it is assumed that the control devices comply with the parallel connection model, and the availability of the storage system shown in FIG. 5 is calculated using formula 4. Formula 4 is as follows:

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

В формуле 4, «a» обозначает доступность каждого устройства управления. Параметр C обозначает частоту переключения. Доступности всей системы хранения данных, полученная в результате вычислений равна 0.999999475.In Formula 4, “a” denotes the availability of each control device. Parameter C indicates the switching frequency. The availability of the entire data storage system obtained as a result of calculations is 0.999999475.

Можно понимать, что доступность системы хранения данных, показанной на Фиг. 5, намного выше доступности системы хранения данных, показанной на Фиг. 2B. Другими словами, решения, предлагаемые вариантами настоящей заявки, могут эффективно повышать доступность устройств управления и системы хранения данных, улучшить надежность системы хранения данных и обеспечить непрерывность главного информационного сервиса.It can be understood that the availability of the storage system shown in FIG. 5 is much higher than the availability of the storage system shown in FIG. 2B. In other words, the solutions provided by embodiments of the present application can effectively increase the availability of control devices and storage systems, improve the reliability of the storage system, and ensure the continuity of the main information service.

Способы согласно вариантам настоящей заявки подробно описаны выше. Для облегчения реализации решений согласно вариантам настоящей заявки, соответствующая аппаратура, относящаяся к этому, используется для участия в реализации этих решений, как будет показано ниже.Methods according to embodiments of the present application are described in detail above. To facilitate the implementation of solutions according to embodiments of this application, appropriate apparatus related thereto is used to participate in the implementation of these solutions, as will be shown below.

На Фиг. 9 представлена упрощенная структурная схема системы управления хранением данных согласно одному из вариантов настоящей заявки. Как показано на Фиг. 9, система 900 управления хранением данных содержит первое устройство 9100 управления и второе устройство 9200 управления. Первое устройство 9100 управления содержит целевой контроллер 9110. Этот целевой контроллер 9110 содержит приемный модуль 9111 и процессорный модуль 9112.In FIG. 9 shows a simplified block diagram of a data storage management system according to one of the variants of this application. As shown in FIG. 9, the storage management system 900 includes a first control device 9100 and a second control device 9200. The first control device 9100 includes a target controller 9110. This target controller 9110 includes a receiving module 9111 and a processing module 9112.

Приемный модуль 9111 конфигурирован для приема запроса записи. Запрос записи содержит данные, подлежащие записи.The 9111 receiving module is configured to receive a write request. A write request contains data to be written.

Процессорный модуль 9112 конфигурирован для записи данных, подлежащих записи, в запоминающее устройство целевого контроллера 9110.The processor module 9112 is configured to write data to be written to a memory device of the target controller 9110.

Процессорный модуль 9112 дополнительно конфигурирован для записи данных, подлежащих записи, в запоминающее устройство зеркального контроллера относительно целевого контроллера 9110. По меньшей мере один зеркальный контроллер принадлежит второму устройству управления 9200.The processor module 9112 is further configured to write data to be written to a memory of the mirror controller relative to the target controller 9110. The at least one mirror controller belongs to the second control device 9200.

В одном из возможных вариантов реализации, целевой контроллер 9110 и зеркальный контроллер относительно этого целевого контроллера 9110 образуют резервированную группу контроллеров. Эта резервированная группа контроллеров содержит N контроллеров. Здесь N - целое число не меньше 2. Система 900 управления хранением данных содержит первичный контроллер 9210. Этот первичный контроллер 9210 представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве 9100 управления и втором устройстве 9200 управления и конфигурированный для управления другим контроллером. Первичный контроллер 9210 содержит: модуль 9211 поиска неисправностей, конфигурированный для того, чтобы: когда M контроллеров в резервированной группе контроллеров выходят из строя и совокупность этих M контроллеров содержит целевой контроллер, выбрать контроллер из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера, где этот новый целевой контроллер конфигурирован для приема запроса записи; и модуль 9212 зеркального отражения конфигурирован для установления M новых зеркальных контроллеров для нового целевого контроллера и зеркального отражения данных из запоминающего устройства нового целевого контроллера в M новых зеркальных контроллеров, где M - целое число не меньше 1 и меньше N.In one possible implementation, the target controller 9110 and the mirror controller relative to the target controller 9110 form a redundant group of controllers. This redundant controller group contains N controllers. Here, N is an integer not less than 2. The storage management system 900 includes a primary controller 9210. This primary controller 9210 is a controller selected from a plurality of controllers in the first control device 9100 and the second control device 9200 and configured to control the other controller. The primary controller 9210 includes: a fault finding module 9211, configured to: when M controllers in a redundant group of controllers fail and the set of these M controllers contains a target controller, select a controller from the set of mirror controllers relative to the target controller as the new target controller, where this new target controller is configured to receive a write request; and mirroring module 9212 is configured to establish M new mirror controllers for the new target controller and mirror data from the new target controller's storage device to the M new mirror controllers, where M is an integer not less than 1 and less than N.

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

В одном из возможных вариантов реализации, когда первое устройство 9100 управления выходит из строя, один из зеркальных контроллеров, соответствующих целевому контроллер 9110 и находящихся во втором устройстве 9200 управления, используют в качестве нового целевого контроллера, устанавливают какой-либо зеркальный контроллер для нового целевого контроллера и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающем устройстве нового зеркального контроллера.In one possible implementation, when the first control device 9100 fails, one of the mirror controllers corresponding to the target controller 9110 and located in the second control device 9200 is used as a new target controller, installing any mirror controller for the new target controller and mirroring the data from the storage device of the new target controller into the storage device of the new mirror controller.

Следует понимать, что описанные выше структуры целевого контроллера и первичного контроллера, а также процесс повышения надежности системы управления хранением данных являются только примерами и не составляют конкретных ограничений. В структуру целевого контроллера и первичного контроллера могут по мере необходимости быть добавлены модули, исключены модули или выполнены какие-либо комбинации модулей. В дополнение к этому, операции и/или функции модулей в целевом контроллере и первичном контроллере соответственно используются для осуществления соответствующих процедур способа, описываемого на Фиг. 4. Для краткости, подробности здесь снова описаны не будут.It should be understood that the target controller and primary controller structures described above, as well as the process for improving the reliability of the storage management system, are only examples and do not constitute specific limitations. Modules can be added to the structure of the target controller and the primary controller as needed, modules can be deleted, or any combination of modules can be made. In addition, operations and/or functions of modules in the target controller and the primary controller are respectively used to carry out the corresponding procedures of the method described in FIG. 4. For the sake of brevity, the details will not be described here again.

На Фиг. 10 представлена упрощенная структурная схема другой системы управления хранением данных согласно одному из вариантов настоящей заявки. Как показано на Фиг. 10, система управления хранением данных 100 содержит первое устройство управления 1100 и второе устройство управления 1200. Первое устройство 1100 управления содержит целевой контроллер 1110. Этот целевой контроллер 1110 содержит процессор 1111, интерфейс 1112 связи и запоминающее устройство 1113. Процессор 1111, интерфейс 1112 связи и запоминающее устройство 1113 соединены посредством внутренней шины 1114.In FIG. 10 is a simplified block diagram of another storage management system according to one embodiment of the present application. As shown in FIG. 10, the storage management system 100 includes a first control device 1100 and a second control device 1200. The first control device 1100 includes a target controller 1110. This target controller 1110 includes a processor 1111, a communication interface 1112, and a storage device 1113. The processor 1111, a communication interface 1112, and storage device 1113 is connected via an internal bus 1114.

В одном из возможных вариантов реализации, система 100 управления хранением данных содержит первичный контроллер 1210. Этот первичный контроллер 1210 представляет собой контроллер, выбранный из совокупности контроллеров в первом устройстве 1100 управления и во втором устройстве 1200 управления и конфигурированный для управления другим контроллером. Первичный контроллер 1210 содержит процессор 1211, интерфейс 1212 связи и запоминающее устройство 1213. Процессор, интерфейс 1212 связи и запоминающее устройство 1213 соединены посредством внутренней шины 1214.In one exemplary embodiment, storage management system 100 includes a primary controller 1210. This primary controller 1210 is a controller selected from a plurality of controllers in the first control device 1100 and the second control device 1200 and configured to control the other controller. The primary controller 1210 includes a processor 1211, a communications interface 1212, and a storage device 1213. The processor, communications interface 1212, and storage device 1213 are connected via an internal bus 1214.

Следует понимать, что функция, осуществляемая приемным модулем 9111, может быть в частности реализована интерфейсом 1112 связи, функция, осуществляемая процессорным модулем 9112, может быть в частности реализована процессором 1111, и функция, осуществляемая модулем 9211 поиска неисправностей и модулем 9212 зеркального отражения, может быть в частности реализована процессором 1211.It should be understood that the function performed by the receiving module 9111 may be particularly implemented by the communication interface 1112, the function performed by the processor module 9112 may be particularly implemented by the processor 1111, and the function performed by the troubleshooting module 9211 and mirroring module 9212 may be specifically implemented by processor 1211.

Запоминающее устройство 1113 может быть конфигурировано для сохранения программного кода и данных, так что процессор 1111 вызывает программный код и данные, сохраняемые в запоминающем устройстве 1113, для осуществления функций приемного модуля 9111 и/или процессорного модуля 9112. Процессор 1111 может вызвать программный код и данные, сохраняемые в запоминающем устройстве 1113, для осуществления соответствующего процедуры способа, показанного на Фиг. 4.Memory 1113 may be configured to store program code and data such that processor 1111 recalls program code and data stored in memory 1113 to perform the functions of receiver module 9111 and/or processor module 9112. Processor 1111 may recall program code and data. , stored in the storage device 1113, to carry out the corresponding procedure of the method shown in FIG. 4.

Запоминающее устройство 1213 может быть конфигурировано для сохранения программного кода и данных, так что процессор 1211 вызывает программный код и данные, сохраняемые в запоминающем устройстве 1213, для осуществления функций модуля 9211 поиска неисправностей и/или модуля 9212 зеркального отражения. Процессор 1211 может вызвать программный код и данные, сохраняемые в запоминающем устройстве 1213, для осуществления соответствующей процедуры способа, показанного на Фиг. 4.Memory 1213 may be configured to store program code and data such that processor 1211 calls up program code and data stored in memory 1213 to perform the functions of troubleshooting module 9211 and/or mirroring module 9212. Processor 1211 may call program code and data stored in memory 1213 to perform the corresponding procedure of the method shown in FIG. 4.

Следует отметить, что каждый контроллер - целевой контроллер 1110 и первичный контроллер 1210, могут быть реализованы с использованием логического устройства с встроенной процессорной логической схемой, например, матрицы FPGA или цифрового процессора сигнала (digital signal processor, DSP). В дополнение к этому, целевой контроллер 1110 и первичный контроллер 1210 могут содержать больше или меньше компонентов, чем показано на Фиг. 10, или могут иметь разные конфигурации компонентов.It should be noted that each controller, target controller 1110 and primary controller 1210, may be implemented using a logic device with embedded processor logic, such as an FPGA or digital signal processor (DSP). In addition, target controller 1110 and primary controller 1210 may contain more or fewer components than shown in FIG. 10, or may have different component configurations.

Следует понимать, что процедуры обработки данных для повышения надежности системы управления хранением данных, содержащей целевой контроллер 1110 и первичный контроллер 1210, показанные на Фиг. 10, можно найти в соответствующих описаниях к Фиг. 1 - Фиг. 8. Для краткости, подробности здесь снова описаны не будут.It should be understood that data processing procedures for improving the reliability of a storage management system comprising a target controller 1110 and a primary controller 1210 shown in FIG. 10 can be found in the corresponding descriptions of FIGS. 1 - Fig. 8. For the sake of brevity, the details will not be described here again.

Один из вариантов настоящего приложения далее предлагает читаемый компьютером носитель для хранения данных. Этот читаемый компьютером носитель для хранения данных сохраняет команды. Когда компьютер или процессор выполняют эти команды, они могут осуществлять некоторые или все этапы какого-либо одного из способов, описываемых в приведенных выше вариантах.One embodiment of the present application further provides a computer-readable medium for storing data. This computer-readable storage medium stores instructions. When a computer or processor executes these instructions, it may perform some or all of the steps of any one of the methods described in the above embodiments.

Один из вариантов настоящей заявки далее предлагает компьютерную программу. Эта компьютерная программа содержит команды. При выполнении этой программы компьютер может осуществлять некоторые или все этапы какого-либо одного из способов повышения надежности системы хранения данных.One embodiment of the present application further proposes a computer program. This computer program contains commands. When running this program, the computer may perform some or all of the steps in any one of the methods to improve the reliability of the storage system.

В приведенных выше вариантах, описание каждого варианта сосредоточено на соответствующем моменте. Относительно частей, не описываемых подробно в каком-либо варианте, обратитесь к соответствующим описаниям в других вариантах.In the above options, the description of each option focuses on the relevant point. For parts not described in detail in any embodiment, refer to the corresponding descriptions in other embodiments.

Следует отметить, что для краткости описания рассматриваемые выше варианты способов представлены в виде последовательности действий. Однако специалист в рассматриваемой области должен понимать, что настоящая заявка не ограничивается описываемым здесь порядком действий, поскольку согласно настоящей заявке некоторые этапы могут быть выполнены в другом порядке или одновременно. Кроме того, специалист в рассматриваемой области должен понимать, что приведенные здесь варианты, все принадлежат примерам вариантов и содержат действия и модули, не обязательно требуемые настоящей заявкой.It should be noted that for the sake of brevity of description, the variants of methods discussed above are presented in the form of a sequence of actions. However, one skilled in the art will understand that this application is not limited to the procedures described herein, since some steps may be performed in a different order or simultaneously according to this application. In addition, one skilled in the art will understand that the embodiments shown herein are all exemplary embodiments and contain actions and modules not necessarily required by the present application.

В некоторых вариантах, предлагаемых в настоящей заявке, следует понимать, что описываемые здесь устройства могут быть реализованы другим способом. Например, описываемые варианты устройств являются всего лишь примерами. Например, разбиение на блоки представляет собой просто разбиение логических функций и может быть другим в фактической реализации. Например, некоторые блоки или компоненты могут быть объединены или интегрированы в другую систему, либо некоторые признаки могут быть проигнорированы или не реализованы. В дополнение к этому, показанные или обсуждаемые взаимосвязи, прямые связи или соединения для обмена данными могут быть реализованы через некоторые интерфейсы. Непрямые соединения или соединения для передачи данных между устройствами или блоками могут быть реализованы в электронной или в другой форме.In some embodiments proposed herein, it should be understood that the devices described herein may be implemented in other ways. For example, the device variants described are just examples. For example, blocking is simply a division of logical functions and may be different in the actual implementation. For example, some blocks or components may be combined or integrated into another system, or some features may be ignored or not implemented. In addition, the relationships shown or discussed, direct connections, or data connections may be implemented through some interfaces. Indirect connections or data connections between devices or units may be implemented electronically or in other forms.

Блоки, описываемые выше как отдельные части, могут быть или не быть физически раздельными, и части, представленные в виде блоков, могут быть или не быть физическими блоками, могут располагаться в одном месте или могут быть распределены по нескольким блокам в сети связи. Некоторые или все блоки могут быть выбраны на основе фактических требований для достижения целей технических решений вариантов.The blocks described above as individual parts may or may not be physically separate, and the parts represented as blocks may or may not be physical units, may be located in one location, or may be distributed over multiple units in a communications network. Some or all of the blocks may be selected based on actual requirements to achieve the objectives of the technical solutions of the options.

В дополнение к этому, функциональные блоки в вариантах настоящей заявки могут быть интегрированы в одном процессорном блоке, либо каждый из таких блоков может существовать физически отдельно, либо два или более блоков могут быть интегрированы в одном блоке. Интегрированный блок может быть реализован в аппаратной форме, либо в форме программного функционального блока.In addition, the functional blocks in embodiments of the present application may be integrated within a single processing unit, or each of such blocks may exist physically separately, or two or more blocks may be integrated within a single unit. The integrated block can be implemented in hardware form or in the form of a software function block.

Claims (29)

1. Способ сохранения данных в системе хранения данных, содержащей первое устройство (220) управления и второе устройство (230) управления, в которой первичный контроллер выбран из контроллеров первого устройства (220) управления и второго устройства (230) управления и конфигурирован для управления другими контроллерами, а соотношение зеркальности всех контроллеров указывает какие контроллеры являются зеркальными для каждого контроллера, содержащий этапы, на которых:1. A method for storing data in a data storage system comprising a first control device (220) and a second control device (230), wherein a primary controller is selected from controllers of the first control device (220) and a second control device (230) and is configured to control the others controllers, and the mirroring ratio of all controllers indicates which controllers are mirrored for each controller, containing stages in which: принимают, с помощью целевого контроллера (221), запрос записи, причем указанный запрос записи содержит данные, подлежащие записи, а целевой контроллер принадлежит первому устройству управления;receiving, with the help of the target controller (221), a write request, wherein said write request contains data to be written, and the target controller belongs to the first control device; записывают, с помощью целевого контроллера, данные, подлежащие записи, в запоминающее устройство целевого контроллера; иwriting, with the help of the target controller, data to be recorded into a storage device of the target controller; And записывают, с помощью целевого контроллера, данные, подлежащие записи, в запоминающие устройства зеркальных контроллеров (231) относительно целевого контроллера, при этом по меньшей мере один зеркальный контроллер принадлежит второму устройству управления; причемwriting, with the help of the target controller, data to be written into the storage devices of the mirror controllers (231) relative to the target controller, wherein at least one mirror controller belongs to the second control device; and когда первое (220) устройство управления и второе устройство (230) управления соединены с устройством (340) хранения данных, способ содержит этап, на котором:when the first control device (220) and the second control device (230) are connected to the data storage device (340), the method comprises the step of: получают, когда первое устройство управления неисправно, доступ к устройству хранения данных с использованием второго устройства управления и обновляют, с помощью первичного контроллера, соотношения зеркальности для всех контроллеров.obtaining, when the first control device is faulty, accessing the data storage device using the second control device and updating, using the primary controller, the mirroring ratios for all controllers. 2. Способ по п. 1, дополнительно содержащий, когда целевой контроллер (221) и зеркальные контроллеры (231) относительно целевого контроллера образуют резервированную группу контроллеров, причем резервированная группа контроллеров содержит N контроллеров, где N – целое число не меньше 2, этап, на котором:2. The method according to claim 1, further comprising, when the target controller (221) and the mirror controllers (231) relative to the target controller form a redundant group of controllers, and the redundant group of controllers contains N controllers, where N is an integer not less than 2, step, on which: выбирают, с помощью первичного контроллера, когда M контроллеров из резервированной группы контроллеров вышли из строя и совокупность указанных M контроллеров содержит целевой контроллер, один из контроллеров из совокупности зеркальных контроллеров относительно целевого контроллера в качестве нового целевого контроллера, причем указанный новый целевой контроллер конфигурируют для приема запроса записи; иselecting, by the primary controller, when M controllers from the redundant group of controllers fail and the plurality of said M controllers contains a target controller, one of the controllers from the plurality of mirror controllers relative to the target controller as a new target controller, wherein said new target controller is configured to receive record request; And устанавливают, с помощью первичного контроллера, M новых зеркальных контроллеров для нового целевого контроллера, и выполняют зеркальное отражение данных из запоминающего устройства нового целевого контроллера в M новых зеркальных контроллеров, где M – целое число большее или равное 1 и меньшее N.establish, with the help of the primary controller, M new mirror controllers for the new target controller, and mirror data from the storage device of the new target controller to M new mirror controllers, where M is an integer greater than or equal to 1 and less than N. 3. Способ по п. 1, дополнительно содержащий, когда целевой контроллер (221) и зеркальные контроллеры (231) относительно целевого контроллера образуют резервированную группу контроллеров, указанная резервированная группа контроллеров содержит N контроллеров, где N – целое число большее или равное 2, этап, на котором:3. The method of claim 1, further comprising: when the target controller (221) and the mirror controllers (231) with respect to the target controller form a redundant controller group, said redundant controller group contains N controllers, where N is an integer greater than or equal to 2, step , on which: устанавливают, с помощью первичного контроллера, когда M контроллеров из резервированной группы контроллеров вышли из строя и совокупность указанных M контроллеров не содержит целевой контроллер, M новых зеркальных контроллеров для целевого контроллера, и зеркальное отражение данных из запоминающего устройства целевого контроллера в M новых зеркальных контроллеров, где M – целое число большее или равное 1 и меньшее N.set, using the primary controller, when M controllers from the redundant group of controllers have failed and the set of said M controllers does not contain the target controller, M new mirror controllers for the target controller, and mirroring data from the target controller's storage device to M new mirror controllers, where M is an integer greater than or equal to 1 and less than N. 4. Способ по п. 2 или 3, в котором N равно 3.4. Method according to claim 2 or 3, in which N is 3. 5. Способ по п. 1, в котором когда первое устройство (220) управления выходит из строя, один из зеркальных контроллеров (231), относящийся к целевому контроллеру (221) и находящийся во втором устройстве (230) управления, используют в качестве нового целевого контроллера, устанавливают зеркальный контроллер для нового целевого контроллера, и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающее устройство нового зеркального контроллера.5. The method according to claim 1, in which when the first control device (220) fails, one of the mirror controllers (231) related to the target controller (221) and located in the second control device (230) is used as a new target controller, installing a mirror controller for the new target controller, and mirroring data from the storage device of the new target controller to the storage device of the new mirror controller. 6. Система (210) управления хранением данных, содержащая первое устройство (220) управления и второе устройство (230) управления, в которой первичный контроллер выбран из контроллеров первого устройства (220) управления и второго устройства (230) управления и конфигурирован для управления другими контроллерами, а соотношение зеркальности всех контроллеров указывает какие контроллеры являются зеркальными для каждого контроллера, причем первое устройство управления содержит целевой контроллер, содержащий:6. A storage management system (210) comprising a first control device (220) and a second control device (230), wherein a primary controller is selected from the controllers of the first control device (220) and the second control device (230) and is configured to control the others controllers, and the mirroring ratio of all controllers indicates which controllers are mirrored for each controller, with the first control device containing a target controller containing: приемный модуль (9111) для приема запроса записи, причем запрос записи содержит данные, подлежащие записи; иa receiving module (9111) for receiving a write request, wherein the write request contains data to be recorded; And процессорный модуль (9112) для записи данных, подлежащих записи, в запоминающее устройство целевого контроллера, причемa processor module (9112) for writing data to be recorded into a memory of the target controller, wherein процессорный модуль дополнительно выполнен с возможностью записи данных, подлежащих записи, в запоминающее устройство зеркального контроллера (231) относительно целевого контроллера, и по меньшей мере один зеркальный контроллер принадлежит второму устройству управления; причем первое (220) устройство управления и второе устройство (230) управления соединены с устройством (340) хранения данных, а система выполнена с возможностью:the processor module is further configured to write data to be recorded into a memory of the mirror controller (231) relative to the target controller, and at least one mirror controller belongs to the second control device; wherein the first (220) control device and the second control device (230) are connected to the data storage device (340), and the system is configured to: получения, когда первое устройство управления неисправно, доступа к устройству хранения данных с использованием второго устройства управления и обновления, с помощью первичного контроллера, соотношения зеркальности для всех контроллеров.obtaining, when the first control device is faulty, accessing the storage device using the second control device and updating, using the primary controller, the mirroring ratio for all controllers. 7. Система (210) управления хранением данных по п. 6, в которой целевой контроллер (221) и зеркальный контроллер (231) относительно указанного целевого контроллера образуют резервированную группу контроллеров, содержащую N контроллеров, где N – целое число большее или равное 2, причем первичный контроллер содержит:7. The data storage management system (210) according to claim 6, in which the target controller (221) and the mirror controller (231) with respect to the specified target controller form a redundant group of controllers containing N controllers, where N is an integer greater than or equal to 2, wherein the primary controller contains: модуль поиска неисправностей, выполненный с возможностью выбора, когда M контроллеров из резервированной группы контроллеров выходят из строя и совокупность указанных M контроллеров содержит целевой контроллер, одного из зеркальных контроллеров относительно указанного целевого контроллера в качестве нового целевого контроллера, причем указанный новый целевой контроллер конфигурируют для приема запроса записи; иa fault finding module configured to select, when M controllers from a redundant group of controllers fail and the plurality of said M controllers contains a target controller, one of the mirror controllers relative to said target controller as a new target controller, wherein said new target controller is configured to receive record request; And модуль зеркального отражения, выполненный с возможностью, установки M новых зеркальных контроллеров для нового целевого контроллера, и зеркального отражения данных из запоминающего устройства нового целевого контроллера в M новых зеркальных контроллеров, где M – целое число большее или равное 1 и меньшее N.a mirroring module configured to install M new mirror controllers for a new target controller, and mirror data from the storage device of the new target controller to M new mirror controllers, where M is an integer greater than or equal to 1 and less than N. 8. Система (210) управления хранением данных по п. 6, в которой целевой контроллер (221) и зеркальные контроллеры (231) относительно указанного целевого контроллера образуют резервированную группу контроллеров, содержащую N контроллеров, где N – целое число большее или равное 2, причем первичный контроллер содержит:8. The storage management system (210) according to claim 6, wherein the target controller (221) and the mirror controllers (231) relative to the specified target controller form a redundant group of controllers containing N controllers, where N is an integer greater than or equal to 2, wherein the primary controller contains: модуль поиска неисправностей для установки, когда M контроллеров из резервированной группы контроллеров выходят из строя и совокупность указанных M контроллеров не содержит целевой контроллер, M новых зеркальных контроллеров для целевого контроллера; иa fault finding module for installing, when M controllers from a redundant group of controllers fail and the set of said M controllers does not contain a target controller, M new mirror controllers for the target controller; And модуль зеркального отражения для зеркального отражения данных из запоминающего устройства целевого контроллера в M новых зеркальных контроллеров, где M – целое число большее или равное 1 и меньшее N.a mirroring module for mirroring data from the target controller's storage device to M new mirror controllers, where M is an integer greater than or equal to 1 and less than N. 9. Система (210) управления хранением данных по п. 7 или 8, в которой N равно 3.9. Data storage management system (210) according to claim 7 or 8, wherein N is 3. 10. Система (210) управления хранением данных по п. 6, в которой, когда первое устройство (220) управления выходит из строя, один из зеркальных контроллеров (231), относящийся к целевому контроллеру (221) и находящийся во втором устройстве (230) управления, используют в качестве нового целевого контроллера, устанавливают зеркальный контроллер в качестве нового целевого контроллера, и зеркально отражают данные из запоминающего устройства нового целевого контроллера в запоминающее устройство нового зеркального контроллера.10. The storage management system (210) of claim 6, wherein when the first management device (220) fails, one of the mirror controllers (231) related to the target controller (221) located in the second device (230 ) controls are used as a new target controller, set the mirror controller as a new target controller, and mirror data from the storage device of the new target controller to the storage device of the new mirror controller. 11. Система (210) управления хранением данных, содержащая первое устройство (220) управления и второе устройство (230) управления, причем первое устройство управления содержит целевой контроллер (221), содержащий процессор и запоминающее устройство, при этом процессор выполнен с возможностью исполнения компьютерных команд, хранящихся в запоминающем устройстве, для вызова выполнения, целевым контроллером, способа по любому из пп. 1 – 5.11. A data storage management system (210) comprising a first control device (220) and a second control device (230), wherein the first control device comprises a target controller (221) containing a processor and a storage device, wherein the processor is configured to execute computer commands stored in the storage device to cause execution, by the target controller, of the method according to any one of claims. 15. 12. Система (210) управления хранением данных по п. 11, дополнительно содержащая первичный контроллер (221), представляющий собой контроллер, выбранный из совокупности контроллеров первого устройства (220) управления и второго устройства (230) управления, и выполненный с возможностью управления другим контроллером (231), при этом первичный контроллер содержит процессор и запоминающее устройство, а процессор выполнен с возможностью исполнения компьютерных команд, хранящихся в запоминающем устройстве, для обеспечения выполнения первичным контроллером способа по любому из пп. 1 – 5.12. The data storage management system (210) of claim 11, further comprising a primary controller (221), which is a controller selected from a plurality of controllers of the first control device (220) and the second control device (230), and configured to control the other controller (231), wherein the primary controller includes a processor and a storage device, and the processor is configured to execute computer instructions stored in the storage device to enable the primary controller to perform the method according to any one of claims. 15. 13. Компьютерный носитель информации, хранящий компьютерную программу, вызывающую, при исполнении процессором, осуществление способа по любому из пп. 1 – 5.13. A computer storage medium storing a computer program that causes, when executed by a processor, the implementation of the method according to any one of claims. 15.
RU2022104377A 2019-07-22 Method for increasing reliability of data storage systems and corresponding device RU2810634C2 (en)

Publications (2)

Publication Number Publication Date
RU2022104377A RU2022104377A (en) 2023-08-22
RU2810634C2 true RU2810634C2 (en) 2023-12-28

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120260127A1 (en) * 2011-04-06 2012-10-11 Jibbe Mahmoud K Clustered array controller for global redundancy in a san
US20170185306A1 (en) * 2015-12-28 2017-06-29 Netapp Inc. Synchronous replication
US20170220249A1 (en) * 2016-01-29 2017-08-03 Netapp, Inc. Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks
CN107168820A (en) * 2017-04-01 2017-09-15 华为技术有限公司 A kind of data image method and storage system
CN108664354A (en) * 2017-04-01 2018-10-16 华为技术有限公司 A kind of data image method and storage system
RU186529U1 (en) * 2018-05-14 2019-01-23 федеральное государственное бюджетное образовательное учреждение высшего образования "Волгоградский государственный аграрный университет" (ФГБОУ ВО Волгоградский ГАУ) FAULT-RESISTANT MEMORY DEVICE

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120260127A1 (en) * 2011-04-06 2012-10-11 Jibbe Mahmoud K Clustered array controller for global redundancy in a san
US20170185306A1 (en) * 2015-12-28 2017-06-29 Netapp Inc. Synchronous replication
US20170220249A1 (en) * 2016-01-29 2017-08-03 Netapp, Inc. Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks
CN107168820A (en) * 2017-04-01 2017-09-15 华为技术有限公司 A kind of data image method and storage system
CN108664354A (en) * 2017-04-01 2018-10-16 华为技术有限公司 A kind of data image method and storage system
RU186529U1 (en) * 2018-05-14 2019-01-23 федеральное государственное бюджетное образовательное учреждение высшего образования "Волгоградский государственный аграрный университет" (ФГБОУ ВО Волгоградский ГАУ) FAULT-RESISTANT MEMORY DEVICE

Similar Documents

Publication Publication Date Title
US10642704B2 (en) Storage controller failover system
US8060775B1 (en) Method and apparatus for providing dynamic multi-pathing (DMP) for an asymmetric logical unit access (ALUA) based storage system
US6654831B1 (en) Using multiple controllers together to create data spans
JP7358613B2 (en) Method and related equipment for improving reliability of storage systems
US9542320B2 (en) Multi-node cache coherency with input output virtualization
US7817626B2 (en) Storage subsystem
US8453009B2 (en) Storage apparatus and control method for storage apparatus
US8775867B2 (en) Method and system for using a standby server to improve redundancy in a dual-node data storage system
JP2009187483A (en) Storage subsystem and control method thereof
JPH11232237A (en) Information processor having crossbar switch and method for controlling crossbar switch
US11573737B2 (en) Method and apparatus for performing disk management of all flash array server
CN110674539B (en) Hard disk protection device, method and system
CN114868117A (en) Peer-to-peer storage device messaging over a control bus
CN110618785A (en) Dual-control storage system
US20240320099A1 (en) Storage system, data processing method, and apparatus
US8108580B1 (en) Low latency synchronous replication using an N-way router
US20200174683A1 (en) Method and system for delivering message in storage system
CN117632808B (en) Multi-control storage array, storage system, data processing method and storage medium
JP4322240B2 (en) Reboot method, system and program
CN114281240A (en) Storage system and control method thereof
RU2810634C2 (en) Method for increasing reliability of data storage systems and corresponding device
JP5511546B2 (en) Fault tolerant computer system, switch device connected to multiple physical servers and storage device, and server synchronization control method
US11366618B2 (en) All flash array server and control method thereof
US11467930B2 (en) Distributed failover of a back-end storage director
US11487654B2 (en) Method for controlling write buffer based on states of sectors of write buffer and associated all flash array server