RU2552151C2 - Method of checking correctness of data entry in dual-controller data storage system based on array of nonvolatile media and apparatus therefor - Google Patents

Method of checking correctness of data entry in dual-controller data storage system based on array of nonvolatile media and apparatus therefor Download PDF

Info

Publication number
RU2552151C2
RU2552151C2 RU2013142621/08A RU2013142621A RU2552151C2 RU 2552151 C2 RU2552151 C2 RU 2552151C2 RU 2013142621/08 A RU2013142621/08 A RU 2013142621/08A RU 2013142621 A RU2013142621 A RU 2013142621A RU 2552151 C2 RU2552151 C2 RU 2552151C2
Authority
RU
Russia
Prior art keywords
controller
data
cache
dirty
controllers
Prior art date
Application number
RU2013142621/08A
Other languages
Russian (ru)
Other versions
RU2013142621A (en
Inventor
Николай Павлович КОПАНЫГИН
Original Assignee
Общество с ограниченной ответственностью "РЭЙДИКС"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "РЭЙДИКС" filed Critical Общество с ограниченной ответственностью "РЭЙДИКС"
Priority to RU2013142621/08A priority Critical patent/RU2552151C2/en
Publication of RU2013142621A publication Critical patent/RU2013142621A/en
Application granted granted Critical
Publication of RU2552151C2 publication Critical patent/RU2552151C2/en

Links

Images

Abstract

FIELD: physics, computer engineering.
SUBSTANCE: invention relates to computer engineering. A method of checking correctness of data entry in a dual-controller data storage system based on an array nonvolatile media, including first and second controllers, each having cache in random-access memory divided into segments, the method comprising: writing data received from an initiator into the cache of the first controller, wherein the data written in the cache are marked as "dirty"; calculating in the cache of the first controller, a check sum of the received data and other "dirty" data stored in the cache; transmitting the data received from the initiator from the first controller to the cache of the second controller, wherein the data written in the cache are marked as "dirty"; calculating in the cache of the second controller a check sum of the received "dirty" data and other "dirty" data stored in the cache; transmitting the check sum calculated in the first controller to the second controller; comparing, in the second controller, the check sums of the first and second controllers; transmitting, from the second controller to the first controller, the check sum comparison result; if the check sums match, the completion of the data synchronisation process is considered correct.
EFFECT: reduced probability of losing "dirty" data upon failure of one of the controllers.
14 cl, 3 dwg

Description

Настоящее изобретение относится к способам ввода цифровых данных в энергонезависимую память, точнее к способам контроля корректности записи данных в двухконтроллерной системе хранения данных на основе массива энергонезависимых носителей путем синхронизации работы двух контроллеров, содержащих кэш.The present invention relates to methods for inputting digital data into non-volatile memory, and more specifically, to methods for checking the correctness of data recording in a dual-controller data storage system based on an array of non-volatile media by synchronizing the operation of two controllers containing a cache.

RAID-массивы энергонезависимых носителей информации, например дисков (RAID расшифровывается как Redundant Array of Independent Disks, т.е. Избыточный массив независимых дисков), стали преобладающим видом хранилища для больших объемов данных. RAID-массив - это такой массив энергонезависимых носителей (дисков), в котором количество один или несколько дисков используются для хранения избыточной информации - копии данных или контрольной суммы данных, позволяющей восстановить данные при выходе из строя одного или большего количества дисков.RAID arrays of non-volatile storage media, such as disks (RAID stands for Redundant Array of Independent Disks, i.e., Redundant Array of Independent Disks), have become the dominant type of storage for large amounts of data. A RAID array is an array of non-volatile media (disks) in which the number of one or more disks is used to store redundant information - a copy of the data or a checksum of data that allows you to restore data if one or more disks fail.

Типичная система хранения данных на основе RAID-массива содержит один или два контроллера, предоставляющих консистентный, когерентный образ данных, размещенных в хранилище, всем процессорам, подключенным через интерфейсы подключения.A typical RAID-based storage system contains one or two controllers that provide a consistent, coherent image of the data stored in the repository to all processors connected via connection interfaces.

Двухконтроллерная система хранения данных (Фиг.1) представляет собой два идентичных устройства, называемых контроллерами массива дисков, каждый из которых подключен к общему массиву дисков. Контроллеры соединены между собой интерфейсом горячего подключения и подключены к внешним процессорам также через интерфейсы горячего подключения.The two-controller data storage system (Figure 1) is two identical devices, called disk array controllers, each of which is connected to a common disk array. The controllers are interconnected by a hot-plug interface and are also connected to external processors via hot-plug interfaces.

Интерфейс горячего подключения - это разновидность интерфейса подключения, связь через который может быть установлена в любой момент во время работы соединяемых им компонентов.A hot-plug interface is a type of connection interface through which communication can be established at any time during operation of the components it connects.

Внешний процессор - это компьютер, использующий систему хранения данных для хранения данных и инициирующий операции чтения и записи данных. При использовании двухконтроллерной системы хранения данных внешний процессор должен быть подключен к каждому контроллеру хотя бы по одному интерфейсу горячего подключения.An external processor is a computer that uses a data storage system to store data and initiates data read and write operations. When using a dual-controller storage system, an external processor must be connected to each controller with at least one hot-plug interface.

Контроллер может содержать кэш-временный буфер для данных в быстродействующей энергозависимой или энергонезависимой памяти, используемый для ускорения операций записи и чтения данных.The controller may contain a cache-temporary buffer for data in high-speed volatile or non-volatile memory, used to speed up data write and read operations.

Часто для ускорения записи данных используется способ отложенной записи, когда сначала данные принимают от внешних процессоров в кэш контроллера, а позже в асинхронном процессе записывают их на массив энергонезависимых носителей. При этом возникает необходимость в механизме синхронизации данных между кэшами контроллеров, таком, чтобы данные, которые уже попали в кэш одного из контроллеров, также попали и в кэш другого контроллера, поскольку при отсутствии такого механизма отказ одного из контроллеров повлек бы потерю данных, уже записанных в кэш, но еще не попавших на энергонезависимые носители. В данном процессе синхронизации необходимо иметь возможность обнаруживать сбои, в том числе касающиеся корректности синхронизируемых данных.Often, a delayed write method is used to speed up data recording, when first the data is received from external processors in the controller cache, and later in the asynchronous process they are written to an array of non-volatile media. In this case, there is a need for a mechanism for synchronizing data between controller caches, such that data that has already entered the cache of one of the controllers also falls into the cache of another controller, since in the absence of such a mechanism a failure of one of the controllers would lead to the loss of data already recorded to the cache, but not yet on non-volatile media. In this synchronization process, it is necessary to be able to detect failures, including those related to the correctness of the synchronized data.

Известны несколько способов контроля корректности записи данных, используемых в системе хранения данных на основе массивов энергонезависимых носителей.Several methods are known for checking the correctness of data recording used in a data storage system based on arrays of non-volatile media.

В частности, известен способ контроля корректности записи данных, реализованный в устройстве по патенту US 5911779, публикация 15.06.1999, МПК G06F 11/10. В данном устройстве корректность записи данных обеспечивается расчетом контрольных сумм при записи в энергонезависимую память - диски RAID-массива. Однако главной целью этого изобретения является экономия времени при расчете контрольной суммы при записи в RAID5. Так, контроллер записывает данные, полученные от пользователя, в кэш и после этого отправляет подтверждение того, что данные записаны. Далее, если пользователю нужны эти данные, то он получает их из кэша, то есть гораздо быстрее, чем считывая с дисков. Контрольная сумма рассчитывается или пересчитывается при непосредственной записи из кэша на диски. В качестве примера реализации данного устройства приводится и схема устройства с несколькими контроллерами. Контроллеры работают с непересекающимися областями адресов энергонезависимой памяти и синхронизацию кэшей они не производят. Поэтому при отказе одного из контроллеров другой контроллер не может обеспечить работу с данными, записанными в область памяти, обслуживаемой отказавшим контроллером, и есть вероятность потери этих данных.In particular, a known method for checking the correctness of data recording, implemented in the device according to the patent US 5911779, publication 15.06.1999, IPC G06F 11/10. In this device, the correctness of data recording is ensured by the calculation of checksums when writing to non-volatile memory - RAID disks. However, the main objective of this invention is to save time when calculating the checksum when writing to RAID5. So, the controller writes the data received from the user to the cache and then sends a confirmation that the data has been written. Further, if the user needs this data, then he gets it from the cache, that is, much faster than reading from disks. The checksum is calculated or recalculated upon direct recording from the cache to disks. As an example of the implementation of this device, a diagram of a device with several controllers is also given. The controllers work with disjoint areas of non-volatile memory addresses and they do not synchronize caches. Therefore, if one of the controllers fails, the other controller cannot provide work with data recorded in the memory area serviced by the failed controller, and there is a possibility of loss of this data.

Известна европейская заявка EP 0632379, публикация 04.01.1994, МПК G06F 11/10, в которой описывается устройство отказоустойчивой системы контроллеров.Known European application EP 0632379, publication 04.01.1994, IPC G06F 11/10, which describes the device fault-tolerant controller system.

В заявке описывается система, в которой реализуется способ работы двух контроллеров, обеспечивающих работу двух массивов жестких дисков. Причем каждый контроллер обеспечивает работу именно своего массива дисков, поэтому синхронизация кэшей между ними не производится, так как они не используют разделяемые ресурсы. В случае отказа одного из контроллеров, оставшийся будет обеспечивать работу обоих дисковых массивов, так как имеется система связей между ними. Однако каждый контроллер работает без проверки правильности хранения данных в самом контроллере, что может привести к ошибкам в передаче данных на энергонезависимую память.The application describes a system that implements the method of operation of two controllers that provide the operation of two arrays of hard drives. Moreover, each controller ensures the operation of its own disk array, therefore, caches are not synchronized between them, since they do not use shared resources. In case of failure of one of the controllers, the remaining one will ensure the operation of both disk arrays, since there is a system of connections between them. However, each controller works without checking the correct storage of data in the controller itself, which can lead to errors in transferring data to non-volatile memory.

Наиболее близким аналогом является решение по заявке EP 0967552, публикация 29.12.1999, МПК G06F 11/20. В заявке описано устройство, содержащее два активных контроллера, каждый из которых соединен с энергонезависимыми носителями, причем каждый из контроллеров содержит кэш в оперативной памяти, состоящий из сегментов, а контроллеры выполнены с возможностью обмена данными между собой. В заявке описан способ контроля корректности в двухконтроллерной системе записи данных в RAID массивах. Способ содержит операции синхронизации данных в кэшах контроллеров как при записи данных в кэш, так и при чтении данных при передаче в энергозависимую память - RAID-массив. Однако проверка данных в кэшах производится только в отношении текущих данных, поэтому система заметит сбой только в этих текущих данных, касающихся одной операции чтения или записи данных при передаче в RAID-массив.The closest analogue is the decision on the application EP 0967552, publication 29.12.1999, IPC G06F 11/20. The application describes a device containing two active controllers, each of which is connected to non-volatile media, each of the controllers containing a cache in RAM consisting of segments, and the controllers are capable of exchanging data with each other. The application describes a method of checking correctness in a dual-controller system for recording data in RAID arrays. The method includes data synchronization operations in controller caches both when writing data to the cache and when reading data while transferring to volatile memory — a RAID array. However, checking the data in the caches is performed only with respect to the current data, therefore, the system will notice a failure only in this current data, concerning one operation of reading or writing data during transfer to the RAID array.

При использовании способа отложенной записи данные, принятые от внешних процессоров в кэш контроллера, но еще не записанные на массив энергонезависимых носителей, называют «грязными». Технической задачей, решаемой в заявляемом изобретении, является снижение вероятности потери «грязных» данных при отказе одного из контроллеров за счет того, что проверяются не только «грязные» данные, синхронизируемые между кэшами двух контроллеров в процессе текущей операции записи, но также и «грязные» данные, накопленные в кэшах на момент выполнения операции.When using the method of deferred recording, data received from external processors in the controller cache, but not yet written to an array of non-volatile media, is called "dirty." The technical problem solved in the claimed invention is to reduce the likelihood of losing "dirty" data in the event of a failure of one of the controllers due to the fact that not only the "dirty" data synchronized between the caches of the two controllers during the current write operation is checked, but also the "dirty" »Data accumulated in caches at the time of the operation.

Способ контроля корректности записи данных работает в системе хранения данных на основе массива энергонезависимых носителей, которая включает первый и второй контроллеры, каждый из которых соединен с энергонезависимыми носителями, причем каждый из контроллеров содержит кэш в оперативной памяти, состоящий из сегментов, а контроллеры выполнены с возможностью обмена данными между собой. При этом способ включает следующие операции:The method for checking the correctness of data recording works in a data storage system based on an array of non-volatile media, which includes the first and second controllers, each of which is connected to non-volatile media, each of the controllers containing a cache in RAM, consisting of segments, and the controllers are configured data exchange among themselves. The method includes the following operations:

- записывают данные, полученные от инициатора, например внешнего процессора, в кэш первого контроллера, при этом записанные в кэш данные помечаются как «грязные»;- write the data received from the initiator, for example, an external processor, to the cache of the first controller, while the data written to the cache are marked as "dirty";

- рассчитывают в кэше первого контроллера контрольную сумму полученных данных и хранящихся в кэше других «грязных» данных;- calculate in the cache of the first controller the checksum of the received data and other "dirty" data stored in the cache;

- передают полученные от инициатора данные из первого контроллера в кэш второго контроллера, при этом записанные в кэш данные помечаются как «грязные»;- transmit the data received from the initiator from the first controller to the cache of the second controller, while the data recorded in the cache is marked as "dirty";

- рассчитывают в кэше второго контроллера контрольную сумму полученных данных и хранящихся в кэше других «грязных» данных;- calculate in the cache of the second controller the checksum of the received data and other "dirty" data stored in the cache;

- передают контрольную сумму, рассчитанную в первом контроллере, во второй контроллер;- transmit the checksum calculated in the first controller to the second controller;

- сравнивают во втором контроллере контрольные суммы первого и второго контроллеров;- compare the checksums of the first and second controllers in the second controller;

- передают из второго контроллера в первый контроллер результат сравнения контрольных сумм;- transmit from the second controller to the first controller the result of comparing the checksums;

- при совпадении контрольных сумм принимают решение о корректности завершения операции синхронизации данных.- when the checksums match, they decide on the correctness of the completion of the data synchronization operation.

Гарантируя идентичность всех, а не только относящихся к одной операции записи, хранящихся в кэшах обоих контроллеров «грязных» данных, в случае отказа одного из контроллеров способ обеспечивает корректность данных как при записи «грязных» данных из кэша контроллера в энергонезависимую память, так и при чтении «грязных» данных из кэша контроллера внешними процессорами.Ensuring the identity of all, and not only related to the same write operation stored in the caches of both dirty data controllers, in case of failure of one of the controllers, the method ensures data correctness both when writing dirty data from the controller cache to non-volatile memory, and when reading "dirty" data from the controller cache by external processors.

Новым в данном способе, по отношению к ближайшему аналогу, является отсутствие аппаратного устройства управления транзакциями памяти (Memory Transaction Manager). Управление синхронизацией кэшей выполняется контроллерами программным способом, что исключает потребность в заказном оборудовании и удешевляет решение.New in this method, in relation to the closest analogue, is the lack of a hardware device for managing transactional memory (Memory Transaction Manager). Cache synchronization control is performed by controllers in a software way, which eliminates the need for custom equipment and reduces the cost of the solution.

Существенным отличием данного способа, обеспечивающим заявленный технический результат, является то, что при реализации данного способа не происходит накопления ошибок данных, хранящихся в контроллерах. В ближайшем аналоге к заявляемому изобретению проверяются только текущие данные, относящиеся к отдельному циклу записи в энергонезависимую память, поэтому система заметит сбой только в этих данных. Заявленная система позволяет также выявить искажения во всех «грязных» данных кэша контроллера, например сбой в микросхеме памяти. Поэтому обеспечивается корректность хранения всех «грязных» данных, хранящихся в кэшах обоих контроллеров, что обеспечивает большую вероятность обнаружения ошибок в данных.A significant difference of this method, providing the claimed technical result, is that when this method is implemented, there is no accumulation of data errors stored in the controllers. In the closest analogue to the claimed invention, only the current data related to a separate write cycle to non-volatile memory is checked, therefore, the system will notice a failure only in this data. The claimed system also allows you to detect distortions in all the "dirty" data of the controller cache, for example, a failure in the memory chip. Therefore, the correct storage of all "dirty" data stored in the caches of both controllers is ensured, which provides a greater probability of detecting errors in the data.

Таким образом, заявляемый способ позволяет существенно снизить вероятность потери данных, хранящихся в кэшах контроллеров.Thus, the claimed method can significantly reduce the likelihood of losing data stored in the controller caches.

В частном случае выполнения данного способа периодически «очищают» грязные данные, хранящиеся в сегментах кэша первого контроллера, и «грязные» данные, хранящиеся в соответствующих им сегментах кэша второго контроллера, при этом:In the particular case of the implementation of this method, the dirty data stored in the cache segments of the first controller and the dirty data stored in the corresponding cache segments of the second controller are periodically “cleaned”, while:

- записывают «грязные» данные из нескольких сегментов кэша первого контроллера на массив энергонезависимых носителей;- write "dirty" data from several segments of the cache of the first controller to an array of non-volatile media;

- снимают «грязную» пометку с данных, записанных из кэша первого контроллера на массив энергонезависимых носителей;- remove the “dirty” mark from the data written from the cache of the first controller to an array of non-volatile media;

- рассчитывают контрольную сумму всех «грязных» данных в кэше первого контроллера;- calculate the checksum of all "dirty" data in the cache of the first controller;

- передают из первого контроллера во второй контроллер команду «очистки» сегментов кэша второго контроллера, соответствующих тем сегментам кэша первого контроллера, на которых снята «грязная» отметка с данных;- transmit from the first controller to the second controller a command to “clear” the cache segments of the second controller corresponding to those cache segments of the first controller on which the “dirty” mark is removed from the data;

- снимают «грязную» пометку с данных, содержащихся в «очищенных» сегментах кэша второго контроллера;- remove the "dirty" mark from the data contained in the "cleared" cache segments of the second controller;

- рассчитывают контрольную сумму всех (оставшихся) «грязных» данных в кэше второго контроллера;- calculate the checksum of all (remaining) "dirty" data in the cache of the second controller;

- передают контрольную сумму всех «грязных» данных кэша первого контроллера во второй контроллер;- transmit the checksum of all "dirty" cache data of the first controller to the second controller;

- сравнивают во втором контроллере рассчитанную контрольную сумму с суммой, полученной от первого контроллера;- in the second controller, the calculated checksum is compared with the sum received from the first controller;

- передают из второго контроллера в первый контроллер результат сравнения контрольных сумм;- transmit from the second controller to the first controller the result of comparing the checksums;

- при совпадении контрольных сумм принимают решение о соответствии «грязных» данных в первом и втором контроллерах.- when the checksums match, they decide on the compliance of the "dirty" data in the first and second controllers.

В частности, если второй контроллер сообщает первому контроллеру о несовпадении контрольных сумм, перезагружают второй контроллер.In particular, if the second controller reports to the first controller about the checksum mismatch, the second controller is restarted.

В качестве массива энергонезависимых носителей может быть использован RAID-массив дисков.A RAID array of disks can be used as an array of non-volatile media.

В частности, принимают данные, по меньшей мере, от двух внешних процессоров, при этом запись полученных данных производят последовательно.In particular, receive data from at least two external processors, while the recording of the obtained data is performed sequentially.

Контрольная сумма данных в первом и втором контроллерах может рассчитываться как хэш-функция упомянутых данных.The data checksum in the first and second controllers can be calculated as a hash function of the data.

Кроме того, при отказе первого контроллера переключают второй контроллер в режим первого контроллераIn addition, if the first controller fails, the second controller is switched to the first controller mode

В частности, каждый из контроллеров выполняет роль первого или второго контроллера в рамках каждой отдельной операции записи со стороны внешнего процессора, так, если внешний процессор записывает данные на один из контроллеров, тот исполняет роль первого контроллера в данной операции, в то время как другой контроллер исполняет роль второго контроллера.In particular, each of the controllers acts as the first or second controller within each separate write operation from the side of the external processor, so if the external processor writes data to one of the controllers, it acts as the first controller in this operation, while the other controller plays the role of the second controller.

Другим объектом изобретения является устройство записи в систему хранения данных, включающее энергонезависимые носители, первый и второй контроллеры, каждый из которых соединен с энергонезависимыми носителями, причем каждый из контроллеров содержит кэш в оперативной памяти, разделенный на сегменты. Контроллеры выполнены с возможностью обмена данными между собой. При этом первый контроллер выполнен с возможностью записи принимаемых данных, полученных от, по меньшей мере, одного внешнего инициатора, например процессора, в кэш, расчета контрольной суммы полученных данных и хранящихся в кэше других «грязных» данных и направления принятых данных и контрольной суммы во второй контроллер. Второй контроллер выполнен с возможностью расчета контрольной суммы «грязных» данных, полученных от первого контроллера, и сравнения рассчитанной контрольной суммы с суммой, полученной от первого контроллера.Another object of the invention is a device for recording in a data storage system, including non-volatile media, first and second controllers, each of which is connected to non-volatile media, each of the controllers containing a cache in RAM, divided into segments. The controllers are configured to exchange data with each other. In this case, the first controller is configured to record received data received from at least one external initiator, for example, a processor, in the cache, calculate the checksum of the received data and store other dirty data in the cache, and send the received data and the checksum to second controller. The second controller is configured to calculate the checksum of the "dirty" data received from the first controller, and compare the calculated checksum with the amount received from the first controller.

Устройство записи в систему хранения данных, так же как и способ, обеспечивает снижение вероятности потери данных за счет того, что проверяются не только «грязные» данные, хранящиеся в кэшах первого и второго контроллеров и относящиеся к данной операции записи, но также и «грязные» данные, накопленные в кэше каждого из контроллеров на момент выполнения операции.A recording device in a data storage system, as well as a method, reduces the likelihood of data loss due to the fact that it checks not only the "dirty" data stored in the caches of the first and second controllers and related to this write operation, but also the "dirty" »Data accumulated in the cache of each of the controllers at the time of the operation.

В частном случае выполнения устройства контроллеры выполнены с возможностью:In the particular case of the device, the controllers are configured to:

- расчета контрольной суммы «грязных» данных во всем кэше первого контроллера;- calculation of the checksum of "dirty" data in the entire cache of the first controller;

- выполнения во втором контроллере команд «очистки» сегментов кэша, принимаемых от первого контроллера;- execution in the second controller of the "clear" cache segments received from the first controller;

- снятия «грязной» пометки с данных, хранящихся в «очищенных» сегментах во всем кэше второго контроллера;- removal of “dirty” marks from the data stored in the “cleared” segments in the entire cache of the second controller;

- расчета контрольной суммы «грязных» данных во всем кэше второго контроллера;- calculation of the checksum of "dirty" data in the entire cache of the second controller;

- сравнения во втором контроллере рассчитанной контрольной суммы с суммой, полученной от первого контроллера.- comparison in the second controller of the calculated checksum with the amount received from the first controller.

В частности, первый и второй контроллеры выполнены с возможностью управления RAID-массивом дисков.In particular, the first and second controllers are configured to control a RAID array of disks.

При возможном отказе первого контроллера первый контроллер выполнен с возможностью функционирования в режиме второго контроллера.In case of a possible failure of the first controller, the first controller is configured to operate in the mode of the second controller.

В частном случае, оба контроллера выполнены с возможностью выполнять роль первого и второго контроллера в рамках каждой отдельной операции записи данных стороны внешнего процессора, например, если внешний процессор записывает данные на один из контроллеров, тот исполняет роль первого контроллера в данной операции, в то время как другой контроллер исполняет роль второго контроллера; при следующей операции контроллеры могут поменяться ролями.In the particular case, both controllers are configured to fulfill the role of the first and second controller within each separate data write operation of the side of the external processor, for example, if the external processor writes data to one of the controllers, it acts as the first controller in this operation, while how the other controller acts as the second controller; in the next operation, the controllers can switch roles.

В частности, первый и второй контроллеры обмениваются данными по протоколу SCSI.In particular, the first and second controllers communicate via SCSI.

Способ и устройство поясняются схемой и диаграммами.The method and device are illustrated by diagram and diagrams.

На Фиг.1 приведена блок-схема устройства системы хранения данных.Figure 1 shows a block diagram of a device for a data storage system.

На Фиг.2 показана диаграмма последовательности действий записи данных в систему хранения данных.2 is a flowchart of writing data to a data storage system.

На Фиг.3 показана диаграмма последовательности действий при «очистке сегментов кэша.Figure 3 shows a sequence diagram for “clearing cache segments.”

Двухконтроллерная система хранения данных (СХД) 2 предоставляет внешнему процессору 1 или другому инициатору доступ к данным по каналам передачи данных 10 и 11. Система хранения данных содержит два контроллера массивов дисков (энергонезависимых носителей) 3, 4, каждый из которых включает оперативную память, хранящую кэши данных 5, 6. Кэши состоят из отдельно адресуемых сегментов равного размера 7, 8. Контроллеры сисиемы хранения данных 3, 4 подключены к устройствам энергонезависимой памяти - дискам 9 по каналам передачи данных 13, 14 таким образом, что каждый контроллер имеет связь с каждым диском.The dual-controller data storage system (SHD) 2 provides an external processor 1 or another initiator with access to data via data transfer channels 10 and 11. The data storage system contains two disk array controllers (non-volatile media) 3, 4, each of which includes a random access memory that stores data caches 5, 6. Caches consist of separately addressed segments of equal size 7, 8. Storage controllers 3, 4 are connected to non-volatile memory devices - disks 9 via data transfer channels 13, 14 in such a way for each controller is in communication with each disk.

Контроллеры 3, 4 связаны между собой каналом передачи данных 12, используемым для синхронизации данных между контроллерами 3, 4. Каналы передачи данных 10, 11 и 12 являются интерфейсами горячего подключения.Controllers 3, 4 are interconnected by a data channel 12, used to synchronize data between controllers 3, 4. Data channels 10, 11 and 12 are hot-plug interfaces.

При записи данные, получаемые контроллером 3 от внешнего процессора 1, попадают в кэш 5 по каналу 10, далее передаются в кэш 6 контроллера 4 по каналу 12 и затем записываются на диски 9 по каналу 13.When recording, the data received by the controller 3 from the external processor 1, goes to cache 5 on channel 10, then transferred to cache 6 of controller 4 on channel 12 and then written to disks 9 on channel 13.

При чтении данные попадают с дисков 9 по каналу 13 в кэш 5 контроллера 3, откуда они передаются по каналу 10 на внешний процессор 1.When reading, data falls from disks 9 through channel 13 to cache 5 of controller 3, from where they are transmitted via channel 10 to external processor 1.

Следует отметить симметричность системы хранения данных 2, позволяющую контроллерам 3, 4 поменяться при необходимости ролями.It should be noted the symmetry of the data storage system 2, allowing the controllers 3, 4 to change roles if necessary.

Заявляемый способ реализуется следующим образом.The inventive method is implemented as follows.

Заявляемый способ реализует запись данных от внешнего процессора в кэши контроллеров двухконтроллерной системы хранения данных и «очистки» кэшей от «грязных» данных при сохранении их на энергонезависимых носителях-дисках.The inventive method implements the recording of data from an external processor into the controller caches of the dual-controller data storage system and "cleansing" the caches of "dirty" data while storing them on non-volatile storage media.

Запись данных от внешнего процессораRecording data from an external processor

При реализации записи на систему хранения данных 2 от внешнего процессора 1 в кэши 5, 6 контроллеров 3,4. Особенность реализации - однонаправленность передачи данных и контрольных сумм: первый контроллер передает на второй контроллер данные и контрольную сумму, второй сообщает первому факт приема данных и результат сравнения контрольных сумм. Блок-схема алгоритма показана на Фиг.2, далее процесс подробно описан по блокам.When implementing write to storage system 2 from external processor 1 to caches 5, 6 of controllers 3.4. The implementation feature is the unidirectional transmission of data and checksums: the first controller transmits data and checksum to the second controller, the second tells the first the fact of receiving data and the result of comparing the checksums. The flowchart of the algorithm is shown in FIG. 2, then the process is described in detail in blocks.

В блоке 2-2. Внешний процессор 1 передает, а первый контроллер 3 принимает записываемые данные;In block 2-2. The external processor 1 transmits, and the first controller 3 receives the recorded data;

В блоке 2-3. Первый контроллер 3 помещает принятые данные в один или несколько последовательных сегментов 7 кэша 5, при этом помечая эти данные как «грязные». Сегменты называются последовательными, если они отображены на последовательные адреса данных на дисках 9. Пометка данных может быть реализована разными способами, например использованием битовой карты или хранением списка диапазонов адресов.In block 2-3. The first controller 3 places the received data in one or more consecutive segments 7 of the cache 5, while marking this data as “dirty”. Segments are called sequential if they are mapped to sequential data addresses on disks 9. Data labeling can be implemented in various ways, for example, using a bitmap or storing a list of address ranges.

В блоке 2-4. Первый контроллер 3 вычисляет Σ1 - контрольную сумму всех «грязных» данных в кэше 5, включая данные, принятые в блоке 2. Эта сумма может вычисляться разными способами, например полным пересуммированием всех «грязных» данных, или инкрементально с использованием ранее вычисленной суммы.In block 2-4. The first controller 3 calculates Σ1 - the checksum of all the "dirty" data in cache 5, including the data received in block 2. This sum can be calculated in various ways, for example, by a complete resummation of all the "dirty" data, or incrementally using the previously calculated sum.

В блоке 2-5. Первый контроллер 3 передает данные, принятые в блоке 2, на второй контроллер 4 по каналу передачи данных 12.In block 2-5. The first controller 3 transmits the data received in block 2 to the second controller 4 via the data channel 12.

В блоке 2-6. Второй контроллер 4 помещает принятые данные в один или несколько последовательных сегментов 8 кэша 6, при этом помечая эти данные как «грязные».In block 2-6. The second controller 4 places the received data in one or more consecutive segments 8 of the cache 6, while marking this data as “dirty”.

В блоке 2-7. Второй контроллер 4 вычисляет Σ2 - контрольную сумму всех «грязных» данных в кэше 6, включая данные, принятые в блоке 5.In block 2-7. The second controller 4 calculates Σ2 - the checksum of all the "dirty" data in the cache 6, including the data received in block 5.

В блоке 2-8. Второй контроллер 4 сообщает Первому контроллеру 3 о завершении операции приема данных, переданных в блоке 5.In block 2-8. The second controller 4 informs the first controller 3 about the completion of the operation of receiving data transmitted in block 5.

В блоке 2-9. Первый контроллер 3 передает на второй контроллер 4 контрольную сумму Σ1.In block 2-9. The first controller 3 transmits a checksum Σ1 to the second controller 4.

В блоке 2-10. Второй контроллер 4 сравнивает контрольные суммы Σ1 и Σ2 и запоминает результат сравнения.In block 2-10. The second controller 4 compares the checksums Σ1 and Σ2 and stores the result of the comparison.

В блоке 2-11. Второй контроллер 4 сообщает первому контроллеру 3 результат сравнения контрольных сумм: равенство или неравенство.In block 2-11. The second controller 4 informs the first controller 3 of the result of the checksum comparison: equality or inequality.

В блоке 2-12. Первый контроллер 3 в случае равенства контрольных сумм передает управление блоку 15.In block 2-12. The first controller 3 in the case of equality of checksums transfers control to block 15.

В блоке 2-13. Первый контроллер 3 останавливает синхронизацию «грязных» данных между кэшами 5, 6 контроллеров 3, 4 в связи с ошибкой.In block 2-13. The first controller 3 stops the synchronization of "dirty" data between the caches 5, 6 of the controllers 3, 4 due to an error.

В блоке 2-14. Первый контроллер 3 переводит второй контроллер в состояние ошибки, из которого он может быть возвращен в строй, например, перезагрузкой;In block 2-14. The first controller 3 puts the second controller in an error state from which it can be returned into operation, for example, by rebooting;

В блоке 2-15. Первый контроллер сообщает внешнему процессору о завершении операции приема данных, переданных в блоке 2.In block 2-15. The first controller informs the external processor about the completion of the operation of receiving data transmitted in block 2.

«Очистка» кэша при сохранении данных на дисках"Clearing" the cache when saving data to disks

Часть способа - это реализация «очистки» «грязных» данных в сегментах 7, 8 кэшей 5, 6 контроллеров 3, 4 при сохранении их на диски 9. Необходимость этой процедуры объясняется тем, что пока данные помечены как «грязные», содержащие их сегменты невозможно использовать для приема новых данных, таким образом, если их не «очищать», со временем кэш может переполниться и система хранения данных перестанет работать.Part of the method is the implementation of the "cleaning" of "dirty" data in segments 7, 8 of caches 5, 6 of controllers 3, 4 when saving them to disks 9. The necessity of this procedure is explained by the fact that while the data is marked as "dirty", containing their segments it is impossible to use to receive new data, so if you do not “clear” it, over time the cache may become full and the storage system will stop working.

Блок-схема алгоритма показана на Фиг.3, далее процесс подробно описан по блокам.The flowchart of the algorithm is shown in FIG. 3, then the process is described in detail in blocks.

В блоке 3-2. Первый контроллер 3 сохраняет «грязные» данные из группы последовательных сегментов 7 кэша 5 на дисках 9.In block 3-2. The first controller 3 stores the "dirty" data from the group of consecutive segments 7 of cache 5 on disks 9.

В блоке 3-3. Первый контроллер 3 снимает «грязную» пометку с данных из группы сегментов 7, данные которых были записаны на диски в блоке 2.In block 3-3. The first controller 3 removes the “dirty” mark from the data from the group of segments 7, the data of which was recorded on the disks in block 2.

В блоке 3-4. Первый контроллер 3 вычисляет Σ1 - контрольную сумму всех «грязных» данных в кэше 5 после снятия «грязной» пометки с части данных в блоке 3.In block 3-4. The first controller 3 calculates Σ1 - the checksum of all the "dirty" data in the cache 5 after removing the "dirty" mark from part of the data in block 3.

В блоке 3-5. Первый контроллер 3 передает команду «очистки» группы сегментов 8 кэша 6, соответствующих «очищенной» группе сегментов 7 кэша 5, на второй контроллер 4 по каналу передачи данных 12.In block 3-5. The first controller 3 sends a “clear” command to the group of segments 8 of the cache 6, corresponding to the “cleared” group of segments 7 of the cache 5, to the second controller 4 via the data channel 12.

В блоке 3-6. Второй контроллер 4 снимает «грязную» пометку с данных из группы сегментов 8 кэша 6.In block 3-6. The second controller 4 removes the "dirty" mark from the data from the group of segments 8 of the cache 6.

В блоке 3-7. Второй контроллер 4 вычисляет Σ2 - контрольную сумму всех «грязных» данных в кэше 6 после снятия «грязной» пометки с части данных в блоке 6.In block 3-7. The second controller 4 calculates Σ2 - the checksum of all the "dirty" data in the cache 6 after removing the "dirty" mark from part of the data in block 6.

В блоке 3-8. Второй контроллер 4 сообщает первому контроллеру 3 о завершении

Figure 00000001
операции «очистки» группы сегментов, инициированной в блоке 5.In block 3-8. The second controller 4 informs the first controller 3 of completion
Figure 00000001
operations of "cleaning" a group of segments initiated in block 5.

В блоке 3-9. Первый контроллер 3 передает на второй контроллер 4 контрольную сумму Σ1.In block 3-9. The first controller 3 transmits a checksum Σ1 to the second controller 4.

В блоке 3-10. Второй контроллер 4 сравнивает контрольные суммы Σ1 и Σ2 и запоминает результат сравнения.In block 3-10. The second controller 4 compares the checksums Σ1 and Σ2 and stores the result of the comparison.

В блоке 3-11. Второй контроллер 4 сообщает первому контроллеру 3 результат сравнения контрольных сумм: равенство или неравенство.In block 3-11. The second controller 4 informs the first controller 3 of the result of the checksum comparison: equality or inequality.

В блоке 12. Первый контроллер 3 в случае равенства контрольных сумм завершает работу алгоритма.In block 12. The first controller 3 in the case of equality of checksums terminates the algorithm.

В блоке 3-13. Первый контроллер 3 останавливает синхронизацию «грязных» данных между кэшами 5,6 контроллеров 3, 4 в связи с ошибкой.In block 3-13. The first controller 3 stops the synchronization of "dirty" data between the caches of 5.6 of the controllers 3, 4 due to an error.

В блоке 3-14. Первый контроллер 3 переводит второй контроллер в состояние ошибки, из которого он может быть возвращен в строй, например, перезагрузкой.In block 3-14. The first controller 3 puts the second controller in an error state from which it can be returned into operation, for example, by rebooting.

Заявляемые способ и устройство позволяют существенно снизить вероятность потери данных, хранящихся в кэшах контроллеров, тем самым обеспечивая высокую надежность двухконтроллерной системе хранения данных на основе массива энергонезависимых носителей.The inventive method and device can significantly reduce the likelihood of losing data stored in the controller caches, thereby providing high reliability dual-controller data storage system based on an array of non-volatile media.

Claims (14)

1. Способ контроля корректности записи данных в двухконтроллерной системе хранения данных на массиве энергонезависимых носителей, включающей первый и второй контроллеры, каждый из которых соединен с энергонезависимыми носителями, причем каждый из контроллеров содержит кэш в оперативной памяти, разделенный на сегменты, а контроллеры выполнены с возможностью обмена данными между собой, при этом способ включает следующие операции:
- записывают данные, полученные от инициатора, например внешнего процессора, в кэш первого контроллера, при этом записанные в кэш данные помечаются как «грязные»;
- рассчитывают в кэше первого контроллера контрольную сумму полученных данных и хранящихся в кэше других «грязных» данных;
- передают полученные от инициатора данные из первого контроллера в кэш второго контроллера, при этом записанные в кэш данные помечаются как «грязные»;
- рассчитывают в кэше второго контроллера контрольную сумму полученных «грязных» данных и хранящихся в кэше других «грязных» данных;
- передают контрольную сумму, рассчитанную в первом контроллере, во второй контроллер;
- сравнивают во втором контроллере контрольные суммы первого и второго контроллеров;
- передают из второго контроллера в первый контроллер результат сравнения контрольных сумм;
- при совпадении контрольных сумм принимают решение о корректности завершения операции синхронизации данных.
1. A method of checking the correctness of data recording in a two-controller data storage system on an array of non-volatile media, including the first and second controllers, each of which is connected to non-volatile media, each of the controllers containing a cache in RAM, divided into segments, and the controllers are configured exchange of data with each other, the method includes the following operations:
- write the data received from the initiator, for example, an external processor, to the cache of the first controller, while the data written to the cache are marked as "dirty";
- calculate in the cache of the first controller the checksum of the received data and other "dirty" data stored in the cache;
- transmit the data received from the initiator from the first controller to the cache of the second controller, while the data recorded in the cache is marked as "dirty";
- calculate in the cache of the second controller the checksum of the received "dirty" data and stored in the cache of other "dirty"data;
- transmit the checksum calculated in the first controller to the second controller;
- compare the checksums of the first and second controllers in the second controller;
- transmit from the second controller to the first controller the result of comparing the checksums;
- when the checksums match, they decide on the correctness of the completion of the data synchronization operation.
2. Способ по п. 1, в котором периодически «очищают» «грязные» данные, хранящиеся в сегментах кэша первого контроллера, и «грязные» данные, хранящиеся в соответствующих им сегментах кэша второго контроллера, при этом:
- записывают «грязные» данные из нескольких сегментов кэша первого контроллера на массив энергонезависимых носителей;
- снимают «грязную» пометку с данных, записанных из кэша первого контроллера на массив энергонезависимых носителей;
- рассчитывают контрольную сумму всех «грязных» данных в кэше первого контроллера;
- передают из первого контроллера во второй контроллер команду «очистки» сегментов кэша второго контроллера, соответствующих тем сегментам кэша первого контроллера, на которых была снята «грязная» пометка с данных;
- снимают «грязную» пометку с данных, содержащихся в «очищенных» сегментах кэша второго контроллера;
- рассчитывают контрольную сумму всех «грязных» данных в кэше второго контроллера;
- передают контрольную сумму всех «грязных» данных кэша первого контроллера во второй контроллер;
- сравнивают во втором контроллере рассчитанную контрольную сумму с суммой, полученной от первого контроллера;
- передают из второго контроллера в первый контроллер результат сравнения контрольных сумм;
- при совпадении контрольных сумм принимают решение о соответствии «грязных» данных в первом и втором контроллерах.
2. The method according to p. 1, in which periodically "clean""dirty" data stored in the cache segments of the first controller, and "dirty" data stored in the corresponding cache segments of the second controller, wherein:
- write "dirty" data from several segments of the cache of the first controller to an array of non-volatile media;
- remove the “dirty” mark from the data written from the cache of the first controller to an array of non-volatile media;
- calculate the checksum of all "dirty" data in the cache of the first controller;
- transmit from the first controller to the second controller a command to "clear" the cache segments of the second controller corresponding to those cache segments of the first controller on which the "dirty" mark was removed from the data;
- remove the "dirty" mark from the data contained in the "cleared" cache segments of the second controller;
- calculate the checksum of all "dirty" data in the cache of the second controller;
- transmit the checksum of all "dirty" cache data of the first controller to the second controller;
- in the second controller, the calculated checksum is compared with the sum received from the first controller;
- transmit from the second controller to the first controller the result of comparing the checksums;
- when the checksums match, they decide on the compliance of the "dirty" data in the first and second controllers.
3. Способ по пп. 1, 2, в котором перезагружают второй контроллер, если второй контроллер сообщает первому контроллеру о несовпадении контрольных сумм.3. The method according to PP. 1, 2, in which the second controller is restarted if the second controller informs the first controller of the checksum mismatch. 4. Способ по п. 1, в котором в качестве массива энергонезависимых носителей используют RAID-массив дисков.4. The method according to claim 1, wherein a RAID array of disks is used as an array of non-volatile media. 5. Способ по п. 1, в котором принимают данные, по меньшей мере, от двух внешних процессоров, при этом запись полученных данных производят последовательно.5. The method according to p. 1, in which data is received from at least two external processors, while the recording of the obtained data is performed sequentially. 6. Способ по п. 1, в котором контрольная сумма данных в первом и втором контроллерах рассчитывается как хэш-функция упомянутых данных.6. The method of claim 1, wherein the data checksum in the first and second controllers is calculated as a hash function of the data. 7. Способ по п. 1, в котором при отказе первого контроллера переключают второй контроллер в режим первого контроллера.7. The method according to p. 1, in which the failure of the first controller switches the second controller to the first controller mode. 8. Способ по п. 1, в котором каждый из контроллеров выполняет роль первого или второго контроллера в рамках каждой отдельной операции записи со стороны внешнего процессора, так, если внешний процессор записывает данные на один из контроллеров, тот исполняет роль первого контроллера в данной операции, в то время как другой контроллер исполняет роль второго контроллера.8. The method according to claim 1, in which each of the controllers performs the role of the first or second controller within each separate write operation from the side of the external processor, so if the external processor writes data to one of the controllers, it acts as the first controller in this operation while the other controller acts as the second controller. 9. Устройство записи в систему хранения данных, включающее энергонезависимые носители, первый и второй контроллеры, каждый из которых соединен с энергонезависимыми носителями, причем каждый из контроллеров содержит кэш в оперативной памяти, разделенный на сегменты, а контроллеры выполнены с возможностью обмена данными между собой, при этом первый контроллер выполнен с возможностью записи принимаемых данных, полученных от, по меньшей мере, одного внешнего инициатора, например процессора, в кэш, расчета контрольной суммы полученных данных и хранящихся в кэше других «грязных» данных и направления принятых данных и контрольной суммы во второй контроллер; второй контроллер выполнен с возможностью расчета контрольной суммы «грязных» данных, полученных из первого контроллера, и хранящихся в кэше других «грязных» данных, сравнения рассчитанной контрольной суммы с суммой, полученной от первого контроллера.9. A recording device in a data storage system including non-volatile media, first and second controllers, each of which is connected to non-volatile media, each of the controllers containing a cache in RAM, divided into segments, and the controllers are capable of exchanging data with each other, the first controller is configured to record received data received from at least one external initiator, such as a processor, in the cache, calculate the checksum of the received data and stored in the cache other "dirty" data and direction data received checksum and the second controller; the second controller is configured to calculate the checksum of the "dirty" data received from the first controller and stored in the cache of other "dirty" data, comparing the calculated checksum with the amount received from the first controller. 10. Устройство по п. 9, в котором контроллеры выполнены с возможностью: расчета контрольной суммы «грязных» данных во всем кэше первого контроллера; выполнения во втором контроллере команд «очистки» сегментов кэша, принимаемых от первого контроллера;
снятия «грязной» пометки с данных, хранящихся в «очищенных» сегментах кэша второго контроллера; расчета контрольной суммы «грязных» данных во всем кэше второго контроллера; сравнения во втором контроллере рассчитанной контрольной суммы с суммой, полученной от первого контроллера.
10. The device according to claim 9, in which the controllers are configured to: calculate a checksum of "dirty" data in the entire cache of the first controller; execution in the second controller of the "clear" cache segments received from the first controller;
removing “dirty” marks from data stored in the “cleared” cache segments of the second controller; calculating the checksum of "dirty" data in the entire cache of the second controller; comparing in the second controller the calculated checksum with the amount received from the first controller.
11. Устройство по п. 9, в котором первый и второй контроллеры выполнены с возможностью управления RAID-массивом дисков.11. The device according to claim 9, in which the first and second controllers are configured to control a RAID array of disks. 12. Устройство по п. 9, в котором первый контроллер выполнен с возможностью функционирования в режиме второго контроллера.12. The device according to claim 9, in which the first controller is configured to operate in a second controller mode. 13. Устройство по п. 9, в котором оба контроллера выполнены с возможностью выполнять роль первого и второго контроллеров для каждой отдельной операции записи данных со стороны внешнего процессора.13. The device according to claim 9, in which both controllers are configured to act as the first and second controllers for each individual data recording operation from the side of the external processor. 14. Устройство по п. 9, в котором первый и второй контроллеры обмениваются данными по протоколу SCSI. 14. The device according to claim 9, in which the first and second controllers communicate via SCSI.
RU2013142621/08A 2013-09-17 2013-09-17 Method of checking correctness of data entry in dual-controller data storage system based on array of nonvolatile media and apparatus therefor RU2552151C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2013142621/08A RU2552151C2 (en) 2013-09-17 2013-09-17 Method of checking correctness of data entry in dual-controller data storage system based on array of nonvolatile media and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013142621/08A RU2552151C2 (en) 2013-09-17 2013-09-17 Method of checking correctness of data entry in dual-controller data storage system based on array of nonvolatile media and apparatus therefor

Publications (2)

Publication Number Publication Date
RU2013142621A RU2013142621A (en) 2015-03-27
RU2552151C2 true RU2552151C2 (en) 2015-06-10

Family

ID=53286493

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013142621/08A RU2552151C2 (en) 2013-09-17 2013-09-17 Method of checking correctness of data entry in dual-controller data storage system based on array of nonvolatile media and apparatus therefor

Country Status (1)

Country Link
RU (1) RU2552151C2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2699678C2 (en) * 2018-01-16 2019-09-09 Государственное бюджетное образовательное учреждение высшего образования Нижегородский государственный инженерно-экономический университет (НГИЭУ) Method of organizing storage of data based on codes of products with simple parity check with offset
RU2750645C1 (en) * 2020-12-30 2021-06-30 Общество с ограниченной ответственностью "Аркод Технологии" Method for data storage in redundant array of independent disks with increased fault tolerance

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397293B2 (en) * 1998-06-23 2002-05-28 Hewlett-Packard Company Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface
EP0726520B1 (en) * 1995-02-10 2004-05-19 Hewlett-Packard Company, A Delaware Corporation Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US7062611B2 (en) * 2002-02-07 2006-06-13 Sun Microsystems, Inc. Dirty data protection for cache memories
US7117310B2 (en) * 2004-02-18 2006-10-03 Lsi Logic Corporation Systems and methods for cache synchronization between redundant storage controllers
RU2390855C2 (en) * 2005-03-23 2010-05-27 Квэлкомм Инкорпорейтед Variation indicator for reducing power consumption during cache miss

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0726520B1 (en) * 1995-02-10 2004-05-19 Hewlett-Packard Company, A Delaware Corporation Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US6397293B2 (en) * 1998-06-23 2002-05-28 Hewlett-Packard Company Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface
US7062611B2 (en) * 2002-02-07 2006-06-13 Sun Microsystems, Inc. Dirty data protection for cache memories
US7117310B2 (en) * 2004-02-18 2006-10-03 Lsi Logic Corporation Systems and methods for cache synchronization between redundant storage controllers
RU2390855C2 (en) * 2005-03-23 2010-05-27 Квэлкомм Инкорпорейтед Variation indicator for reducing power consumption during cache miss

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2699678C2 (en) * 2018-01-16 2019-09-09 Государственное бюджетное образовательное учреждение высшего образования Нижегородский государственный инженерно-экономический университет (НГИЭУ) Method of organizing storage of data based on codes of products with simple parity check with offset
RU2750645C1 (en) * 2020-12-30 2021-06-30 Общество с ограниченной ответственностью "Аркод Технологии" Method for data storage in redundant array of independent disks with increased fault tolerance
WO2022146177A1 (en) * 2020-12-30 2022-07-07 Антон Анатольевич Дремлюга Method for storing data in a redundant array of independent disks with increased fault tolerance

Also Published As

Publication number Publication date
RU2013142621A (en) 2015-03-27

Similar Documents

Publication Publication Date Title
JP6294518B2 (en) Synchronous mirroring in non-volatile memory systems
US9047219B2 (en) Storage system, storage control device, and storage control method
US9678686B2 (en) Managing sequentiality of tracks for asynchronous PPRC tracks on secondary
US9189311B2 (en) Rebuilding a storage array
US5619644A (en) Software directed microcode state save for distributed storage controller
US9141486B2 (en) Intelligent I/O cache rebuild in a storage controller
US20090177918A1 (en) Storage redundant array of independent drives
CN104813290B (en) RAID investigation machines
US9104604B2 (en) Preventing unrecoverable errors during a disk regeneration in a disk array
WO2011101482A1 (en) Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
JPH07239799A (en) Method for provision of remote data shadowing and remote data duplex system
CN106557143B (en) Apparatus and method for data storage device
US9582383B2 (en) Efficient handling of semi-asynchronous raid write failures
US11449375B1 (en) Performing rehabilitative actions on storage devices
US8650435B2 (en) Enhanced storage device replacement system and method
WO2013080299A1 (en) Data management device, data copy method, and program
RU2552151C2 (en) Method of checking correctness of data entry in dual-controller data storage system based on array of nonvolatile media and apparatus therefor
JP6540202B2 (en) INFORMATION PROCESSING SYSTEM, CONTROL DEVICE, AND CONTROL PROGRAM
US11747990B2 (en) Methods and apparatuses for management of raid
RU2750645C1 (en) Method for data storage in redundant array of independent disks with increased fault tolerance
US8276017B2 (en) Process, apparatus, and program for system management
US11080136B2 (en) Dropped write error detection
US8930748B2 (en) Storage apparatus and controller
CN104484252A (en) Method, device and system for detecting standby power of solid-state hard disks
JP2020095486A (en) Information processing apparatus and method of controlling information processing apparatus