RU2805012C2 - Method of data storage system management and data storage system - Google Patents

Method of data storage system management and data storage system Download PDF

Info

Publication number
RU2805012C2
RU2805012C2 RU2021113563A RU2021113563A RU2805012C2 RU 2805012 C2 RU2805012 C2 RU 2805012C2 RU 2021113563 A RU2021113563 A RU 2021113563A RU 2021113563 A RU2021113563 A RU 2021113563A RU 2805012 C2 RU2805012 C2 RU 2805012C2
Authority
RU
Russia
Prior art keywords
data
blocks
group
read
request
Prior art date
Application number
RU2021113563A
Other languages
Russian (ru)
Other versions
RU2021113563A (en
Inventor
Светлана Викторовна Лазарева
Original Assignee
Общество с ограниченной ответственностью "РЭЙДИКС"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "РЭЙДИКС" filed Critical Общество с ограниченной ответственностью "РЭЙДИКС"
Priority to PCT/RU2022/050121 priority Critical patent/WO2022240318A1/en
Publication of RU2021113563A publication Critical patent/RU2021113563A/en
Application granted granted Critical
Publication of RU2805012C2 publication Critical patent/RU2805012C2/en

Links

Abstract

FIELD: computer engineering.
SUBSTANCE: invention is proposed to increase the performance of the data storage system and increase its service life. It is achieved due to the fact that the data storage system includes RAM, a parallel SSD cache, divided into a first group of write blocks (RWC) and a second group of read blocks (RRC), a hard drive, a request detector and a frequency analyser requests to read data. The method allows you to divide requests into random and sequential both during write and read operations and, depending on the type of request, send them to different types of memory. When all free groups in the SSD cache are filled in the first group of write blocks or the second group of read blocks, data is evicted. Data that has not been used for a long time is evicted from the first group of write blocks (RWC). From the second group of read blocks (RRC), data from the data block that has the lowest usage intensity is released, taking into account the number of data evictions experienced from the block over a certain period of time.
EFFECT: increased performance and increased service life of the data storage system.
11 cl, 8 dwg

Description

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

Изобретение относится к системе хранения данных и управлению этой системой, включающей операционную память, параллельный SSD-кэш и накопитель на жестких дисках.The invention relates to a data storage system and management of this system, including operational memory, a parallel SSD cache and a hard drive.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИBACKGROUND ART

Основные преимущества систем хранения данных с SSD-кэшем и накопителем на жестких дисках - высокая производительность операций ввода-вывода, обеспечиваемая твердотельными накопителями (SSD), и возможность длительной работы, которую гарантируют дисковые накопители (HDD). При этом такие системы требуют особых алгоритмов кэширования, берущих во внимание особенности используемого кэш-устройства - SSD.The main advantages of storage systems with SSD cache and HDD are the high I/O performance provided by solid-state drives (SSDs) and the long-lasting capability provided by disk drives (HDDs). Moreover, such systems require special caching algorithms that take into account the characteristics of the cache device used - SSD.

Известен патент US 9128847, публикация 08.09.2015, МПК G06F-003/04, в котором описано устройство управления кэш-памятью системы, включающей контроллер, SSD-кэш и накопитель на жестких дисках, при этом SSD-кэш разбит на два блока памяти. Способ управления кэш памятью предусматривает, что при превышении определенного порога данные из первого блока SSD-кэша переписываются или во второй блок SSD-кэша или в накопитель на жестких дисках.Known patent US 9128847, publication 09/08/2015, IPC G06F-003/04, which describes a device for managing the cache memory of a system that includes a controller, an SSD cache and a hard drive, with the SSD cache divided into two memory blocks. The cache memory management method provides that when a certain threshold is exceeded, data from the first SSD cache block is rewritten either to the second SSD cache block or to the hard drive.

Известен патент KR 101675694, публикация 23.11.2016, МПК G06F-003/06. В патенте описан способ замены блока SSD в зависимости от популярности блока. Дисковая система содержит SSD в качестве кэша и память на жестких дисках HDD. Способ предусматривает определение наименее популярного блока SSD на основе времени пребывания данных и количества запросов на блок и исключения его из очереди SSD. Изобретение обеспечивает предотвращение загрязнения SSD-кэша и замены блока SSD, имеющего высокую частоту совпадений. Кроме того, сокращаются операции записи SSD за счет уменьшения частоты обмена блоками, тем самым продлевая срок службы SSD.Known patent KR 101675694, publication November 23, 2016, IPC G06F-003/06. The patent describes a method for replacing an SSD block depending on the popularity of the block. The disk system contains SSD as cache and memory on HDD hard drives. The method involves determining the least popular SSD block based on the data residence time and the number of requests per block and removing it from the SSD queue. The invention prevents SSD cache contamination and replacement of an SSD block having a high hit rate. Additionally, SSD write operations are reduced by reducing the block exchange rate, thereby extending the life of the SSD.

Наиболее близким аналогом является заявка US20180032266, публикация 01.02.2018, МПК G06F-003/06, описывающая способ управления системой хранения. Система хранения содержит SSD-кэш и накопитель на жестких дисках, при этом разделяют SSD-кэш на блоки памяти одинакового размера и формируют из этих блоков первую группу блоков на запись и вторую группу блоков на чтение. Если запрос ввода-вывода является запросом на чтение, сохранение целевых данных из запоминающего устройства осуществляется в первую группу устройств кэш-памяти; если запрос ввода-вывода является запросом на запись, сохранение целевых данных во второй группе устройств кэш-памяти.The closest analogue is application US20180032266, publication 02/01/2018, IPC G06F-003/06, which describes a method for managing a storage system. The storage system contains an SSD cache and a hard disk drive, while the SSD cache is divided into memory blocks of the same size and from these blocks a first group of blocks for writing and a second group of blocks for reading are formed. If the I/O request is a read request, storing the target data from the storage device is performed in the first group of cache memory devices; if the I/O request is a write request, storing the target data in a second group of cache devices.

Использование твердотельных накопителей в качестве кэш-устройств с ограниченным количеством циклов перезаписи может значительно ускорить их износ из-за использования традиционных алгоритмов кэширования. Таким образом, гибридные системы хранения данных, использующих SSD и память на жестких дисках, требуют новых алгоритмов кэширования, позволяющих оптимально использовать гибридную структуру систем хранения.Using SSDs as cache devices with a limited number of write cycles can significantly accelerate their wear due to the use of traditional caching algorithms. Thus, hybrid storage systems using SSD and HDD memory require new caching algorithms to make optimal use of the hybrid storage structure.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Техническим результатом изобретения является повышение производительности системы хранения данных и увеличение ее строка службы за счет оптимального использования SSD-кэша.The technical result of the invention is to increase the performance of the data storage system and increase its service life through optimal use of the SSD cache.

Способ управления системой хранения данных, которая включает оперативную память, параллельный SSD-кэш и накопитель на жестких дисках, содержит операции, представленные ниже.A method for managing a storage system that includes RAM, a parallel SSD cache, and a hard disk drive contains the operations presented below.

Разделяют SSD-кэш на блоки памяти одинакового размера и формируют из этих блоков первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC).The SSD cache is divided into memory blocks of the same size and the first group of write blocks (RWC) and the second group of read blocks (RRC) are formed from these blocks.

Получают запрос записи или чтения данных.Receive a request to write or read data.

- при запросе на запись данных определяют вид запроса -последовательный или случайный. Данные случайных запросов записывают в свободные блоки памяти первой группы блоков на запись SSD-кэша, а последовательные запросы записывают на накопитель на жестких дисках;- when requesting to record data, determine the type of request - sequential or random. Random request data is written to free memory blocks of the first group of blocks for writing the SSD cache, and sequential requests are written to the hard drive;

- при запросе на чтение данных определяют вид запроса - последовательный или случайный. При последовательном запросе на чтение определяют место нахождения данных и считывают их. При случайном запросе на чтение определяют место нахождения данных и считывают их, и если данные хранились в накопителе на жестких дисках, то анализируют их на частоту обращений на чтение данных и, при частоте обращений больше двух, данные из накопителя на жестких дисках переписываются во вторую группу блоков на чтение SSD-кэша.- when requesting to read data, determine the type of request - sequential or random. A sequential read request locates the data and reads it. In case of a random read request, the location of the data is determined and read, and if the data was stored in the hard drive, then they are analyzed for the frequency of requests to read data and, if the frequency of requests is more than two, the data from the hard drive is rewritten to the second group blocks for reading the SSD cache.

При заполнении всех свободных групп первой группы блоков на запись или второй группы блоков на чтение SSD-кэша производят вытеснение данных,When all free groups of the first group of blocks for writing or the second group of blocks for reading are filled, the SSD cache performs data eviction,

- при этом последовательно вытесняют данные в накопитель на жестких дисках из первой группы блоков на запись (RWC),- in this case, data is sequentially displaced into the hard drive from the first group of write blocks (RWC),

- а из второй группы блоков на чтение (RRC) вытесняют данные, которые имеют наименьшую интенсивность записи с учетом числа пережитых вытеснений данных из блока за определенный период времени.- and from the second group of read-readable blocks (RRC), the data that has the lowest write intensity is ousted, taking into account the number of data evictions experienced from the block over a certain period of time.

В частности, предварительно разделяют SSD-кэш на блоки памяти размером К мегабайт.In particular, the SSD cache is pre-divided into memory blocks of K megabytes in size.

Кроме того, запись данных осуществляют в блоки памяти SSD-кэша в виде последовательной записи.In addition, data is written to the SSD cache memory blocks in the form of sequential recording.

Помимо этого, при осуществлении запроса на запись проверяют, хранятся ли данные запроса в SSD-кэше и, при их наличии, данные обновляют.In addition, when a write request is made, it is checked whether the request data is stored in the SSD cache and, if available, the data is updated.

При этом, случайные запросы более М килобайт записывают в накопитель на жестких дисках.At the same time, random requests of more than M kilobytes are written to the hard drive.

Кроме того, при получении запроса на чтение предварительно проверяют, где находится запрос и при наличии частей запроса одновременно в RAM, SSD-кэше, или HDD, разбивают запрос на части и каждую часть считают отдельным запросом.In addition, when receiving a read request, they first check where the request is located and if there are parts of the request simultaneously in RAM, SSD cache, or HDD, they split the request into parts and consider each part as a separate request.

Кроме этого, при последовательном запросе на чтение данные считывают или с оперативной памяти или с накопителя на жестких дисках.In addition, during a sequential read request, data is read from either RAM or the hard drive.

В частности, освобождение данных из второй группы блоков на чтение (RRC) SSD-кэша производят, когда нет свободных блоков памяти кроме текущего.In particular, data is released from the second group of read blocks (RRC) of the SSD cache when there are no free memory blocks other than the current one.

Кроме того, свободные блоки памяти первой или второй группы блоков памяти SSD-кэша передают в другую группу блоков памяти SSD-кэша.In addition, free memory blocks of the first or second group of SSD cache memory blocks are transferred to another group of SSD cache memory blocks.

Помимо этого, вытеснение данных из SSD-кэша производят целыми блоками.In addition, data is evicted from the SSD cache in entire blocks.

Система хранения данных включает детектор запросов на запись и чтение данных, подключенный к оперативной памяти, соединенной с параллельным SSD-кэшем и накопителем на жестких дисках. При этом, SSD-кэш разделен на блоки памяти одинакового размера и включает в себя первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC). SSD-кэш подключен также к накопителю на жестких дисках. При этом, система содержит анализатор частоты обращений на чтение данных, подключенный по входу к детектору запросов на запись и чтение данных, а по выходам к оперативной памяти и SSD-кэшу.The storage system includes a write and read request detector connected to RAM connected to a parallel SSD cache and hard drive storage. At the same time, the SSD cache is divided into memory blocks of the same size and includes the first group of write blocks (RWC) and the second group of read blocks (RRC). The SSD cache is also connected to the hard drive. At the same time, the system contains an analyzer of the frequency of requests to read data, connected at the input to the detector of requests for writing and reading data, and at the outputs to the RAM and SSD cache.

В данной заявке используются следующие термины.The following terms are used in this application.

Блок - Логическое пространство SSD-кэша, разбитое на блоки одинакового размера К мегабайт.Block - Logical space of the SSD cache, divided into blocks of equal size K megabytes.

Число попаданий в кэш - это число запросов к конкретным данным, которые находятся в блоке данных в SSD-кэше.The cache hit count is the number of requests for specific data that resides in a data block in the SSD cache.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

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

На Фиг. 2 приведена структура SSD-кэша, содержащая первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC).In FIG. Figure 2 shows the structure of the SSD cache, containing the first group of write blocks (RWC) and the second group of read blocks (RRC).

На Фиг. 3 приведена структура запроса.In FIG. Figure 3 shows the structure of the request.

На Фиг. 4 приведена структура первой группы блоков на запись (RWC) и второй группы блоков на чтение (RRC).In FIG. Figure 4 shows the structure of the first group of write blocks (RWC) and the second group of read blocks (RRC).

На Фиг. 5 приведена блок-схема процесса обработки запроса на чтение.In FIG. Figure 5 shows a flow diagram of the read request processing process.

На Фиг. 6 приведена блок-схема процесса обработки запроса на запись.In FIG. Figure 6 shows a flowchart of the write request processing process.

На Фиг. 7 приведена блок-схема процесса вытеснения из второй группы блоков на чтение (RRC).In FIG. Figure 7 shows a flow diagram of the process of eviction from the second group of read blocks (RRC).

На Фиг. 8 приведена блок-схема процесса вытеснения из первой группы блоков на запись (RWC).In FIG. 8 shows a flow diagram of the process of eviction from the first group of write blocks (RWC).

ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯOPTIONS FOR IMPLEMENTING THE INVENTION

SSD-кэширование - это технология, при которой твердотельные накопители используются в качестве буфера для часто запрашиваемых данных. Система определяет степень частоты обращения к данным и перемещает их на быстрый накопитель. Система хранения данных с SSD-кэшем дополняет HDD-массивы, повышая производительность за счет оптимизации случайных запросов. Устройство HDD-накопителей позволяет им успешно справляться с последовательными запросами, но имеет естественное ограничение для работы со случайными запросами. Объем SDD-кэша при этом обычно составляет около 5-10% от емкости основной дисковой подсистемы.SSD caching is a technology that uses solid state drives as a buffer for frequently accessed data. The system determines how often data is accessed and moves it to a fast storage device. Storage with SSD cache complements HDD arrays to improve performance by optimizing random queries. The design of HDD drives allows them to successfully cope with sequential requests, but has a natural limitation for working with random requests. The size of the SDD cache is usually about 5-10% of the capacity of the main disk subsystem.

В заявленной системе хранения данных и способе ее управления на основе технологии RAIDIX реализован SSD-кэш, параллельный оперативной памяти, разделение входящих запросов на категории RRC (Random Read Cache) - запрос на чтение, и RWC (Random Write Cache) - запрос на запись, и использование нового способа вытеснения из группы блоков на чтение (RRC). Кроме того, повышение производительности системы хранения данных и увеличение ее строка службы за счет оптимального использования SSD-кэша может быть еще увеличено за счет операций перераспределения соотношения количества свободных и используемых RRC и RWC блоков в зависимости от текущей нагрузки на систему хранения данных.The claimed data storage system and its management method based on RAIDIX technology implements an SSD cache parallel to RAM, dividing incoming requests into categories RRC (Random Read Cache) - a read request, and RWC (Random Write Cache) - a write request, and the use of a new method of eviction from a group of read blocks (RRC). In addition, increasing the performance of the storage system and increasing its service life due to the optimal use of the SSD cache can be further increased by redistributing the ratio of the number of free and used RRC and RWC blocks depending on the current load on the storage system.

Система хранения данных (Фиг. 1) включает оперативную память 2, параллельный SSD-кэш 4 на основе твердотельных накопителей и накопители 3 на жестких дисках (HDD). В системе с параллельным SSD-кэшем 4 оперативная память 2 используется отдельно от SSD-кэша 4.The data storage system (Fig. 1) includes RAM 2, a parallel SSD cache 4 based on solid state drives, and hard disk drives (HDD) 3. In a system with parallel SSD cache 4, RAM 2 is used separately from SSD cache 4.

На входе системы расположен детектор запросов 1, который определяет вид запроса - случайный или последовательный.At the system input there is a request detector 1, which determines the type of request - random or sequential.

Пространство SSD-кэша 4 разбито на блоки одинакового размера К мегабайт. С точки зрения эффективности использования SSD-кэша, чем меньше размер блока, тем лучше, но тем больше метаданных нужно хранить в RAM-памяти. Наиболее оптимален размер блока 1 Гбайт. Запись данных осуществляют в блоки памяти SSD-кэша в виде последовательной (логструктурированной) записи.The SSD cache space 4 is divided into blocks of equal size K megabytes. In terms of SSD cache efficiency, the smaller the block size, the better, but the more metadata needs to be stored in RAM. The most optimal block size is 1 GB. Data is written to the SSD cache memory blocks in the form of a sequential (log-structured) record.

Система хранения данных (Фиг. 1) также содержит анализатор 5 частоты обращений на чтение данных и размера входящего запроса на запись, подключенный по входу к детектору 1 запросов на запись и чтение данных, а по выходам - к оперативной памяти 2 и SSD-кэшу 4. С помощью анализатора 5 принимают решения о необходимости записи новых запросов в SSD-кэш, при этом в RWC попадают только случайные запросы размером меньше М. В RRC попадают запросы, к которым повторно обратились за определенный момент времени, то есть с частотой больше двух.The data storage system (Fig. 1) also contains an analyzer 5 of the frequency of requests to read data and the size of an incoming write request, connected at the input to the detector 1 of requests for writing and reading data, and at the outputs to RAM 2 and SSD cache 4 With the help of analyzer 5, decisions are made about the need to write new requests to the SSD cache, while only random requests of size less than M get into the RWC. The RRC gets requests that were repeatedly accessed at a certain point in time, that is, with a frequency of more than two.

Вход оперативной памяти RAM 2 подключен к детектору 1 запросов на запись и чтение данных.The RAM 2 input is connected to detector 1 of requests for writing and reading data.

SSD-кэш 4 (Фиг. 2) разделен на две функциональные категории: блоки первой группы блоков 7 на запись (RWC) и второй группы блоков 6 на чтение (RRC). Для каждой из этих групп блоков есть свои правила попадания и вытеснения. На Фиг. 3 показано, что запрос 8 состоит из двух частей. Первую часть запроса занимают метаданные - информация о самом блоке данных и состоянии данных, которые записаны в нем. Остальное - это непосредственно сами данные. Для первой группы блоков на запись (RWC) они представляют собой записи, в которых хранится информация в виде хэш-таблицы о том, где на жестком диске (HDD) находятся эти кэшированные данные.The SSD cache 4 (Fig. 2) is divided into two functional categories: blocks of the first write block group 7 (RWC) and the second read block group 6 (RRC). Each of these groups of blocks has its own hit and displacement rules. In FIG. Figure 3 shows that request 8 consists of two parts. The first part of the request is occupied by metadata - information about the data block itself and the state of the data that is recorded in it. The rest is the data itself. For the first group of write blocks (RWC), they are records that store information in the form of a hash table about where on the hard disk drive (HDD) this cached data is located.

На Фиг. 4 показан вид блоков первой группы блоков 6 на запись (RWC) и второй группы блоков 7 на чтение (RRC).In FIG. 4 shows a view of the blocks of the first group of blocks 6 for writing (RWC) and the second group of blocks 7 for reading (RRC).

- Занятый блок, который полностью заполнен.- An occupied block that is completely full.

- Текущий блок, в который сейчас записываются запросы.- The current block in which requests are currently written.

- Свободный блок, в котором нет данных.- A free block that contains no data.

- Вытесняемый, из которого в данный момент происходит процедура вытеснения.- The one being displaced, from which the displacement procedure is currently taking place.

Свободные основные блоки 7 второй группы на чтение RRC могут при необходимости становится свободными блоками первой группы на запись RWC. При необходимости, свободные блоки 6 первой группы блоков RWC могут становится свободными блоками второй группы на чтение RRC. Это зависит от выбранной политики - с наличием или отсутствием приоритета на чтение и запись. При отсутствии приоритета свободные блоки не перемещаются между RRC и RWC. При наличии приоритета на чтение или запись свободные блоки RRC/RWC становятся блоками RWC/RRC, если в этом существует необходимость. Если приоритет установлен для операций и чтения и записи, то свободные блоки изначально не принадлежат RWC/RRC, а свободные блоки назначаются первым пришедшим запросам.Free main blocks 7 of the second group for reading RRC can, if necessary, become free blocks of the first group for writing RWC. If necessary, free blocks 6 of the first group of RWC blocks can become free blocks of the second group for reading RRC. This depends on the selected policy - with or without read and write priority. If there is no priority, free blocks are not moved between RRC and RWC. With read or write priority, free RRC/RWC blocks become RWC/RRC blocks if needed. If priority is set for both read and write operations, then free blocks are not initially owned by the RWC/RRC, and free blocks are assigned to the first requests to arrive.

Блок-схема операций при обработке запроса на чтение приведена на Фиг. 5. При запросе на чтение 101 данных определяют вид запроса 102 - последовательный или случайный. При последовательном запросе на чтение определяют место нахождения данных 103 и считывают их или из SSD 104 или RAM 105 или из HDD 106.A flowchart of operations when processing a read request is shown in FIG. 5. When requesting to read 101 data, determine the type of request 102 - sequential or random. In a sequential read request, the location of the data 103 is determined and read from either the SSD 104 or RAM 105 or the HDD 106.

При случайном запросе на чтение определяют место нахождения данных. Проверяют, есть ли этот случайный запрос в RAM 107 и считывают из оперативной памяти RAM 108. Проверяют, есть ли случайный запрос в SSD 109 и считывают его из SSD 110, или из HDD 112. Если данные считывались с SSD, в RRC меняется метрика блока, в который произошло попадание.With a random read request, the location of the data is determined. They check if there is this random request in RAM 107 and read from the RAM 108. They check if there is a random request in SSD 109 and read it from SSD 110, or from HDD 112. If the data was read from the SSD, the block metric changes in RRC , which was hit.

Если данные хранились на HDD, то анализируют 113 их на частоту обращений на чтение данных с помощью анализатора 5 (Фиг. 1) и, при частоте обращений больше двух, данные из накопителя 3 на жестких дисках переписываются 114 во вторую группу блоков 7 на чтение SSD-кэша. Если во второй группе боков 7 на чтение нет свободных блоков 115, производятся операции освобождения блоков 116. При этом освобождается блок с наименьшей метрикой WE и пересчитываются метрики всех занятых блоков. Обработка запроса на чтение завершается 117.If the data was stored on the HDD, then they are analyzed 113 for the frequency of requests to read data using analyzer 5 (Fig. 1) and, if the frequency of requests is more than two, the data from the hard drive 3 is rewritten 114 to the second group of blocks 7 for reading SSD -cache. If there are no free blocks 115 in the second group of sides 7 for reading, operations are performed to release blocks 116. In this case, the block with the smallest WE metric is released and the metrics of all occupied blocks are recalculated. Processing of the read request ends 117.

Следует также отметить, что запрос на чтение может относится к данным, которые находятся в разных частях базы данных, например, в RAM, SSD-кэше, или HDD. В этом случае прежде всех операций разбивают первичный запрос на части, в зависимости от того, к какой памяти они относятся и каждую часть считают отдельным запросом.It should also be noted that the read request may refer to data that is located in different parts of the database, for example, in RAM, SSD cache, or HDD. In this case, before all operations, the primary request is divided into parts, depending on which memory they relate to, and each part is considered a separate request.

Блок-схема операций при обработке запроса на запись приведена на Фиг. 6. При запросе 201 на запись данных определяют вид запроса 202 - последовательный или случайный. Если запрос последовательный, записывают запрос 203 на HDD 3. Далее проверяют 204, нет ли уже данного запроса в SSD-кэше 4. Если он есть, обновляют 205 части запроса в SSD-кэше 4. Далее проверяют, не превышает ли 206 размер запроса на запись параметра М. Если запрос превышает этот размер М, который устанавливается, например, в 32 Кб - 64 Кб, то запрос записывается 211 на HDD. Если запрос небольшого размера, то проверяется 207, если свободное место в текущем блоке первой группы блоков RWC в SSD-кэше 4, то записывают 208 в текущий блок. Если места нет, то проверяют 209, есть ли свободный блок, и при наличии 210 свободного блока записывают в него, в противном случае записывают на HDD 3.A flowchart of operations when processing a write request is shown in FIG. 6. When requesting 201 to record data, determine the type of request 202 - sequential or random. If the request is sequential, write request 203 to HDD 3. Next, check 204 whether this request is already in SSD cache 4. If it is, update 205 parts of the request in SSD cache 4. Next, check whether 206 the size of the request exceeds recording parameter M. If the request exceeds this size M, which is set, for example, to 32 KB - 64 KB, then the request is written 211 to the HDD. If the request is small, then 207 is checked, if there is free space in the current block of the first group of RWC blocks in SSD cache 4, then 208 is written to the current block. If there is no space, then they check 209 whether there is a free block, and if there is a 210 free block, write to it, otherwise write to HDD 3.

Процесс вытеснения из второй группы блоков 7 на чтение (RRC) показан на Фиг. 7. Процесс вытеснения из второй группы блоков начинается, когда в группе нет свободных блоков, кроме текущего.The process of eviction from the second group of read blocks 7 (RRC) is shown in FIG. 7. The process of eviction from the second group of blocks begins when there are no free blocks in the group except the current one.

Первоначально определяют два блока с наименьшим числом попаданий в кэш на блок. Определяют интенсивность использования каждого из выбранных блоков за определенный период времени. Интенсивность использования определяется на основе известной метрики «эффективность записиж Write Efficiency, предложенной в [1]Initially, the two blocks with the fewest cache hits per block are determined. The intensity of use of each of the selected blocks for a certain period of time is determined. The intensity of use is determined based on the well-known metric “Write Efficiency”, proposed in [1]

где:Where:

Число попаданий в кэш - число запросов к данным, находящимся в конкретном, выбранном блоке данных в SSD-кэша.The number of cache hits is the number of requests for data located in a specific, selected data block in the SSD cache.

Число записей в блок кэш - число записей в блоке данных в SSD-кэше ко времени определения метрики WE.Number of entries in the cache block - the number of entries in the data block in the SSD cache at the time the WE metric is determined.

Все блоки упорядочиваются по метрике WE и выбирается блок 301 с наименьшим значением. Теперь он считается свободным блоком 302.All blocks are ordered by the WE metric and block 301 with the lowest value is selected. It is now considered free block 302.

После этого, для всех занятых блоков пересчитывается метрика WE значения 303. Для этого метрика WE для всех занятых блоков делится на число N - это параметр устаревания запросов. В реализованном алгоритме он равен 2. На этом процесс вытеснения заканчивается 304.After this, the WE metric of value 303 is recalculated for all occupied blocks. To do this, the WE metric for all occupied blocks is divided by the number N - this is the query aging parameter. In the implemented algorithm, it is equal to 2. This ends the eviction process 304.

Процесс вытеснения из первой группы блоков на запись (RWC) раскрыт на Фиг. 8. Из первой группы блоков на запись (RWC) вытесняют давно не используемые данные в соответствии с политикой вытеснения 401. При этом могут использоваться алгоритмы вытеснения, основанные на принципе «очереди», например, FIFO («первым пришел - первым ушел») (https://ru.wikipedia.org/wiki/FIFO). При выполнении вытеснения запросы в блоке упорядочивают 402 по возрастанию номера адресации, затем упорядоченные запросы записываются в HDD - 403. После этого 404 освобожденный блок получает статус свободного.The process of eviction from the first group of write blocks (RWC) is disclosed in FIG. 8. From the first group of write blocks (RWC), long-unused data is ousted in accordance with the 401 eviction policy. In this case, eviction algorithms based on the “queue” principle, for example, FIFO (“first in, first out”) can be used ( https://ru.wikipedia.org/wiki/FIFO). When eviction is performed, the requests in the block are ordered 402 by increasing addressing number, then the ordered requests are written to the HDD - 403. After this, the 404 freed block receives the status of free.

Совокупность всех операций (разбивка параллельного SSD-кэша на блоки памяти одинакового размера и формирование из этих блоков первой группы блоков на запись (RWC) и второй группы блоков на чтение (RRC); обработка запросов на запись и чтение и процессы вытеснения данных, различных для групп блоков SSD-кэша на чтение и запись) способа управления системой хранения данных (включающую оперативную память, параллельный SSD-кэш и накопитель на жестких дисках) позволяет значительно увеличить производительность системы хранения данных и продлить срок использования SSD-накопителей.The set of all operations (dividing the parallel SSD cache into memory blocks of the same size and forming from these blocks the first group of write blocks (RWC) and the second group of read blocks (RRC); processing of write and read requests and data eviction processes, different for groups of SSD cache blocks for reading and writing) method of managing the data storage system (including RAM, parallel SSD cache and hard drive) can significantly increase the performance of the storage system and extend the life of SSD drives.

Проведенные сравнительные эксперименты с известными схемами гибридных систем хранения данных, которые включают оперативную память, параллельный SSD-кэш и накопитель на жестких дисках, показали, что прирост производительности при разных типах запросов составляет от 5 до 46 раз. При этом количество требуемых перезаписей на SSD-накопителях в заявляемом способе будет примерно в 6 раз меньше, чем во многих традиционных системах хранения данных. Соответственно, в данной системе ресурс твердотельных накопителей используется значительно эффективнее, увеличивая срок их жизни.Comparative experiments with known designs of hybrid data storage systems, which include RAM, parallel SSD cache and hard drives, showed that the performance increase for different types of queries ranges from 5 to 46 times. Moreover, the number of required rewrites on SSD drives in the proposed method will be approximately 6 times less than in many traditional data storage systems. Accordingly, in this system the resource of solid-state drives is used much more efficiently, increasing their lifespan.

ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬINDUSTRIAL APPLICABILITY

Заявленные способ и устройство могут быть применены для эффективной работы с достаточно широким спектром задач и нагрузок в различных областях хранения данных.The claimed method and device can be used to effectively work with a fairly wide range of tasks and loads in various areas of data storage.

Благодаря сортировке запросов и новым способам вытеснения данных, сглаживание пиков случайной нагрузки происходит быстрее и с меньшим влиянием на общую производительность системы.Thanks to query sorting and new data eviction methods, random load peaks are smoothed out faster and with less impact on overall system performance.

[1] WEC: Improving Durability of SSD Cache Drives by Caching Write Efficient Data / Yunpeng Chai, Zhihui Du, Xiao Qln, David A Bader // IEEE Transactions on Computers. - 2015. - Vol. 64, no. 11. - P. 3304-3316.[1] WEC: Improving Durability of SSD Cache Drives by Caching Write Efficient Data / Yunpeng Chai, Zhihui Du, Xiao Qln, David A Bader // IEEE Transactions on Computers. - 2015. - Vol. 64, no. 11. - P. 3304-3316.

Claims (20)

1. Способ управления системой хранения данных, которая включает оперативную память, параллельный SSD-кэш и накопитель на жестких дисках, при котором:1. A method of managing a data storage system that includes RAM, parallel SSD cache and hard drive storage, in which: - разделяют SSD-кэш на блоки памяти одинакового размера и формируют из этих блоков первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC);- divide the SSD cache into memory blocks of the same size and form from these blocks the first group of write blocks (RWC) and the second group of read blocks (RRC); - получают запрос записи или чтения данных; - receive a request to write or read data; - при запросе на запись данных определяют вид запроса - последовательный или случайный, и данные случайных запросов записывают в свободные блоки памяти первой группы блоков на запись SSD-кэша, а последовательные запросы записывают в накопитель на жестких дисках;- when requesting to write data, the type of request is determined - sequential or random, and the data of random requests is written to free memory blocks of the first group of blocks for writing the SSD cache, and sequential requests are written to the hard drive; - при запросе на чтение данных определяют вид запроса, последовательный или случайный;- when requesting to read data, determine the type of request, sequential or random; - при последовательном запросе на чтение определяют место нахождения данных и считывают их;- with a sequential read request, they determine the location of the data and read it; - при случайном запросе на чтение определяют место нахождения данных и считывают их, и если данные хранились в накопителе на жестких дисках, то анализируют их на частоту обращений на чтение данных, и при частоте обращений больше двух данные из накопителя на жестких дисках переписываются во вторую группу блоков на чтение SSD-кэша;- in the event of a random read request, the location of the data is determined and read, and if the data was stored in the hard drive, then they are analyzed for the frequency of requests to read data, and if the frequency of requests is more than two, the data from the hard drive is rewritten to the second group blocks for reading SSD cache; - при заполнении всех свободных групп первой группы блоков на запись или второй группы блоков на чтение SSD-кэша производят вытеснение данных, - when all free groups of the first group of blocks for writing or the second group of blocks for reading of the SSD cache are filled, data is evicted, - при этом последовательно вытесняют данные на накопитель на жестких дисках из первой группы блоков на запись (RWC),- in this case, data is sequentially displaced onto the hard disk drive from the first group of write blocks (RWC), - а из второй группы блоков на чтение (RRC) вытесняют данные, которые имеют наименьшую интенсивность записи с учетом числа пережитых вытеснений данных из блока за определенный период времени.- and from the second group of read-readable blocks (RRC), the data that has the lowest write intensity is ousted, taking into account the number of data evictions experienced from the block over a certain period of time. 2. Способ по п. 1, характеризующийся тем, что предварительно разделяют SSD-кэш на блоки памяти размером К мегабайт.2. The method according to claim 1, characterized in that the SSD cache is first divided into memory blocks of K megabytes in size. 3. Способ по п. 1, характеризующийся тем, что запись данных осуществляют в виде последовательной записи в блоки памяти SSD-кэша.3. The method according to claim 1, characterized in that the data is written in the form of sequential recording into the memory blocks of the SSD cache. 4. Способ по п. 1, характеризующийся тем, что при осуществлении запроса на запись проверяют, хранятся ли данные запроса в SSD-кэше, и при их наличии данные обновляют.4. The method according to claim 1, characterized in that when a write request is made, it is checked whether the request data is stored in the SSD cache, and if so, the data is updated. 5. Способ по п. 1, характеризующийся тем, что случайные запросы более M килобайт записывают в накопитель на жестких дисках.5. The method according to claim 1, characterized in that random requests of more than M kilobytes are written to the hard drive. 6. Способ по п. 1, характеризующийся тем, что при получении запроса на чтение предварительно проверяют, где находятся данные запроса и при наличии частей запроса одновременно в RAM, SSD-кэше или HDD, разбивают запрос на части и каждую часть считают отдельным запросом.6. The method according to claim 1, characterized in that upon receiving a read request, they first check where the request data is located and if parts of the request are simultaneously in RAM, SSD cache or HDD, the request is divided into parts and each part is considered a separate request. 7. Способ по п. 1, характеризующийся тем, что при последовательном запросе на чтение данные считывают или с оперативной памяти или с накопителя на жестких дисках.7. The method according to claim 1, characterized in that during a sequential read request, data is read either from RAM or from a hard drive. 8. Способ по п. 1, характеризующийся тем, что вытеснение данных из второй группы блоков на чтение (RRC) SSD-кэша производят, когда нет свободных блоков памяти, кроме текущего.8. The method according to claim 1, characterized in that data is evicted from the second group of read-readable blocks (RRC) of the SSD cache when there are no free memory blocks other than the current one. 9. Способ по п. 1, характеризующийся тем, что свободные блоки памяти первой или второй группы блоков памяти SSD-кэша передают в другую группу блоков памяти SSD-кэша.9. The method according to claim 1, characterized in that free memory blocks of the first or second group of SSD cache memory blocks are transferred to another group of SSD cache memory blocks. 10. Способ по п. 1, характеризующийся тем, что вытеснение данных из SSD-кэша производят целыми блоками.10. The method according to claim 1, characterized in that data is evicted from the SSD cache in entire blocks. 11. Система хранения данных, включающая детектор запросов на запись и чтение данных, подключенный к оперативной памяти, соединенной с параллельным SSD-кэшем и накопителем на жестких дисках, при этом SSD-кэш разделен на блоки памяти одинакового размера и включает в себя первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC), SSD-кэш подключен также к накопителю на жестких дисках, при этом система содержит анализатор частоты обращений на чтение данных, подключенный по входу к детектору запросов на запись и чтение данных, а по выходам к оперативной памяти и SSD-кэшу.11. A data storage system including a data write and read request detector connected to RAM connected to a parallel SSD cache and a hard disk drive, wherein the SSD cache is divided into memory blocks of the same size and includes a first group of blocks for writing (RWC) and a second group of blocks for reading (RRC), the SSD cache is also connected to the hard drive, and the system contains an analyzer of the frequency of requests for reading data, connected at the input to a detector of requests for writing and reading data, and via outputs to RAM and SSD cache.
RU2021113563A 2021-05-13 2021-05-13 Method of data storage system management and data storage system RU2805012C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/RU2022/050121 WO2022240318A1 (en) 2021-05-13 2022-04-08 Method for managing a data storage system and data storage system

Publications (2)

Publication Number Publication Date
RU2021113563A RU2021113563A (en) 2022-11-14
RU2805012C2 true RU2805012C2 (en) 2023-10-10

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928526B1 (en) * 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
US20100211731A1 (en) * 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache
US20100281208A1 (en) * 2009-04-30 2010-11-04 Qing Yang System and Method for Data Storage
US20150199138A1 (en) * 2014-01-14 2015-07-16 Georgia Tech Research Corporation Multi-tiered storage systems and methods for adaptive content streaming
RU2656739C1 (en) * 2017-10-04 2018-06-06 Общество с ограниченной ответственностью "ИНТЕЛЛЕКТУАЛЬНЫЙ РЕЗЕРВ" Data storage method and system
US11204872B2 (en) * 2019-10-25 2021-12-21 EMC IP Holding Company LLC Achieving guaranteed application performance using transactional I/O scheduling for SSD storage using known read/write latencies

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928526B1 (en) * 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
US20100211731A1 (en) * 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache
US20100281208A1 (en) * 2009-04-30 2010-11-04 Qing Yang System and Method for Data Storage
US20150199138A1 (en) * 2014-01-14 2015-07-16 Georgia Tech Research Corporation Multi-tiered storage systems and methods for adaptive content streaming
RU2656739C1 (en) * 2017-10-04 2018-06-06 Общество с ограниченной ответственностью "ИНТЕЛЛЕКТУАЛЬНЫЙ РЕЗЕРВ" Data storage method and system
US11204872B2 (en) * 2019-10-25 2021-12-21 EMC IP Holding Company LLC Achieving guaranteed application performance using transactional I/O scheduling for SSD storage using known read/write latencies

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RAIDIX "Как работает SSD-кэширование в системах хранения данных", опубл. 01.10.2020 на 8 страницах [найдено 12.09.2023], размещено в Интернет по адресу URL: http://web.archive.org/web/20201201000000*/https://www.raidix.ru/blog/ssd-cache-in-hybrid-data-storage/. *

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
JP4435831B2 (en) Provision of an alternative cache method at the storage area network level
US10802718B2 (en) Method and device for determination of garbage collector thread number and activity management in log-structured file systems
EP3229142B1 (en) Read cache management method and device based on solid state drive
US10649890B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program
US9594685B2 (en) Criteria for selection of data for a secondary cache
CN108139872B (en) Cache management method, cache controller and computer system
US7330938B2 (en) Hybrid-cache having static and dynamic portions
US9298616B2 (en) Systems and methods for tracking working-set estimates with a limited resource budget
JP2018520420A (en) Cache architecture and algorithm for hybrid object storage devices
JP6402647B2 (en) Data arrangement program, data arrangement apparatus, and data arrangement method
KR20140043497A (en) Method for controlling buffer mapping and buffer system
Park et al. A lookahead read cache: improving read performance for deduplication backup storage
JP5447523B2 (en) Data processing apparatus, data recording method, and data recording program
JP2017162194A (en) Data management program, data management device, and data management method
KR101105127B1 (en) Buffer cache managing method using ssdsolid state disk extension buffer and apparatus for using ssdsolid state disk as extension buffer
CN112799590B (en) Differentiated caching method for online main storage deduplication
RU2805012C2 (en) Method of data storage system management and data storage system
JP2014010604A (en) Storage device, program, and method
CN102779017A (en) Control method of data caching area in solid state disc
WO2022240318A1 (en) Method for managing a data storage system and data storage system
CN112445794A (en) Caching method of big data system
JP2017072929A (en) Data management program, data management device, and data management method
Chang et al. A load-balancing data caching scheme in multi-tiered storage systems
JP3751814B2 (en) Cache memory control method