ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к системе хранения данных и управлению этой системой, включающей операционную память, параллельный SSD-кэш и накопитель на жестких дисках.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Основные преимущества систем хранения данных с SSD-кэшем и накопителем на жестких дисках - высокая производительность операций ввода-вывода, обеспечиваемая твердотельными накопителями (SSD), и возможность длительной работы, которую гарантируют дисковые накопители (HDD). При этом такие системы требуют особых алгоритмов кэширования, берущих во внимание особенности используемого кэш-устройства - SSD.
Известен патент US 9128847, публикация 08.09.2015, МПК G06F-003/04, в котором описано устройство управления кэш-памятью системы, включающей контроллер, SSD-кэш и накопитель на жестких дисках, при этом SSD-кэш разбит на два блока памяти. Способ управления кэш памятью предусматривает, что при превышении определенного порога данные из первого блока SSD-кэша переписываются или во второй блок SSD-кэша или в накопитель на жестких дисках.
Известен патент KR 101675694, публикация 23.11.2016, МПК G06F-003/06. В патенте описан способ замены блока SSD в зависимости от популярности блока. Дисковая система содержит SSD в качестве кэша и память на жестких дисках HDD. Способ предусматривает определение наименее популярного блока SSD на основе времени пребывания данных и количества запросов на блок и исключения его из очереди SSD. Изобретение обеспечивает предотвращение загрязнения SSD-кэша и замены блока SSD, имеющего высокую частоту совпадений. Кроме того, сокращаются операции записи SSD за счет уменьшения частоты обмена блоками, тем самым продлевая срок службы SSD.
Наиболее близким аналогом является заявка US20180032266, публикация 01.02.2018, МПК G06F-003/06, описывающая способ управления системой хранения. Система хранения содержит SSD-кэш и накопитель на жестких дисках, при этом разделяют SSD-кэш на блоки памяти одинакового размера и формируют из этих блоков первую группу блоков на запись и вторую группу блоков на чтение. Если запрос ввода-вывода является запросом на чтение, сохранение целевых данных из запоминающего устройства осуществляется в первую группу устройств кэш-памяти; если запрос ввода-вывода является запросом на запись, сохранение целевых данных во второй группе устройств кэш-памяти.
Использование твердотельных накопителей в качестве кэш-устройств с ограниченным количеством циклов перезаписи может значительно ускорить их износ из-за использования традиционных алгоритмов кэширования. Таким образом, гибридные системы хранения данных, использующих SSD и память на жестких дисках, требуют новых алгоритмов кэширования, позволяющих оптимально использовать гибридную структуру систем хранения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Техническим результатом изобретения является повышение производительности системы хранения данных и увеличение ее строка службы за счет оптимального использования SSD-кэша.
Способ управления системой хранения данных, которая включает оперативную память, параллельный SSD-кэш и накопитель на жестких дисках, содержит операции, представленные ниже.
Разделяют SSD-кэш на блоки памяти одинакового размера и формируют из этих блоков первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC).
Получают запрос записи или чтения данных.
- при запросе на запись данных определяют вид запроса -последовательный или случайный. Данные случайных запросов записывают в свободные блоки памяти первой группы блоков на запись SSD-кэша, а последовательные запросы записывают на накопитель на жестких дисках;
- при запросе на чтение данных определяют вид запроса - последовательный или случайный. При последовательном запросе на чтение определяют место нахождения данных и считывают их. При случайном запросе на чтение определяют место нахождения данных и считывают их, и если данные хранились в накопителе на жестких дисках, то анализируют их на частоту обращений на чтение данных и, при частоте обращений больше двух, данные из накопителя на жестких дисках переписываются во вторую группу блоков на чтение SSD-кэша.
При заполнении всех свободных групп первой группы блоков на запись или второй группы блоков на чтение SSD-кэша производят вытеснение данных,
- при этом последовательно вытесняют данные в накопитель на жестких дисках из первой группы блоков на запись (RWC),
- а из второй группы блоков на чтение (RRC) вытесняют данные, которые имеют наименьшую интенсивность записи с учетом числа пережитых вытеснений данных из блока за определенный период времени.
В частности, предварительно разделяют SSD-кэш на блоки памяти размером К мегабайт.
Кроме того, запись данных осуществляют в блоки памяти SSD-кэша в виде последовательной записи.
Помимо этого, при осуществлении запроса на запись проверяют, хранятся ли данные запроса в SSD-кэше и, при их наличии, данные обновляют.
При этом, случайные запросы более М килобайт записывают в накопитель на жестких дисках.
Кроме того, при получении запроса на чтение предварительно проверяют, где находится запрос и при наличии частей запроса одновременно в RAM, SSD-кэше, или HDD, разбивают запрос на части и каждую часть считают отдельным запросом.
Кроме этого, при последовательном запросе на чтение данные считывают или с оперативной памяти или с накопителя на жестких дисках.
В частности, освобождение данных из второй группы блоков на чтение (RRC) SSD-кэша производят, когда нет свободных блоков памяти кроме текущего.
Кроме того, свободные блоки памяти первой или второй группы блоков памяти SSD-кэша передают в другую группу блоков памяти SSD-кэша.
Помимо этого, вытеснение данных из SSD-кэша производят целыми блоками.
Система хранения данных включает детектор запросов на запись и чтение данных, подключенный к оперативной памяти, соединенной с параллельным SSD-кэшем и накопителем на жестких дисках. При этом, SSD-кэш разделен на блоки памяти одинакового размера и включает в себя первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC). SSD-кэш подключен также к накопителю на жестких дисках. При этом, система содержит анализатор частоты обращений на чтение данных, подключенный по входу к детектору запросов на запись и чтение данных, а по выходам к оперативной памяти и SSD-кэшу.
В данной заявке используются следующие термины.
Блок - Логическое пространство SSD-кэша, разбитое на блоки одинакового размера К мегабайт.
Число попаданий в кэш - это число запросов к конкретным данным, которые находятся в блоке данных в SSD-кэше.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На Фиг. 1 приведена блок-схема системы хранения данных.
На Фиг. 2 приведена структура SSD-кэша, содержащая первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC).
На Фиг. 3 приведена структура запроса.
На Фиг. 4 приведена структура первой группы блоков на запись (RWC) и второй группы блоков на чтение (RRC).
На Фиг. 5 приведена блок-схема процесса обработки запроса на чтение.
На Фиг. 6 приведена блок-схема процесса обработки запроса на запись.
На Фиг. 7 приведена блок-схема процесса вытеснения из второй группы блоков на чтение (RRC).
На Фиг. 8 приведена блок-схема процесса вытеснения из первой группы блоков на запись (RWC).
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
SSD-кэширование - это технология, при которой твердотельные накопители используются в качестве буфера для часто запрашиваемых данных. Система определяет степень частоты обращения к данным и перемещает их на быстрый накопитель. Система хранения данных с SSD-кэшем дополняет HDD-массивы, повышая производительность за счет оптимизации случайных запросов. Устройство HDD-накопителей позволяет им успешно справляться с последовательными запросами, но имеет естественное ограничение для работы со случайными запросами. Объем SDD-кэша при этом обычно составляет около 5-10% от емкости основной дисковой подсистемы.
В заявленной системе хранения данных и способе ее управления на основе технологии RAIDIX реализован SSD-кэш, параллельный оперативной памяти, разделение входящих запросов на категории RRC (Random Read Cache) - запрос на чтение, и RWC (Random Write Cache) - запрос на запись, и использование нового способа вытеснения из группы блоков на чтение (RRC). Кроме того, повышение производительности системы хранения данных и увеличение ее строка службы за счет оптимального использования SSD-кэша может быть еще увеличено за счет операций перераспределения соотношения количества свободных и используемых RRC и RWC блоков в зависимости от текущей нагрузки на систему хранения данных.
Система хранения данных (Фиг. 1) включает оперативную память 2, параллельный SSD-кэш 4 на основе твердотельных накопителей и накопители 3 на жестких дисках (HDD). В системе с параллельным SSD-кэшем 4 оперативная память 2 используется отдельно от SSD-кэша 4.
На входе системы расположен детектор запросов 1, который определяет вид запроса - случайный или последовательный.
Пространство SSD-кэша 4 разбито на блоки одинакового размера К мегабайт. С точки зрения эффективности использования SSD-кэша, чем меньше размер блока, тем лучше, но тем больше метаданных нужно хранить в RAM-памяти. Наиболее оптимален размер блока 1 Гбайт. Запись данных осуществляют в блоки памяти SSD-кэша в виде последовательной (логструктурированной) записи.
Система хранения данных (Фиг. 1) также содержит анализатор 5 частоты обращений на чтение данных и размера входящего запроса на запись, подключенный по входу к детектору 1 запросов на запись и чтение данных, а по выходам - к оперативной памяти 2 и SSD-кэшу 4. С помощью анализатора 5 принимают решения о необходимости записи новых запросов в SSD-кэш, при этом в RWC попадают только случайные запросы размером меньше М. В RRC попадают запросы, к которым повторно обратились за определенный момент времени, то есть с частотой больше двух.
Вход оперативной памяти RAM 2 подключен к детектору 1 запросов на запись и чтение данных.
SSD-кэш 4 (Фиг. 2) разделен на две функциональные категории: блоки первой группы блоков 7 на запись (RWC) и второй группы блоков 6 на чтение (RRC). Для каждой из этих групп блоков есть свои правила попадания и вытеснения. На Фиг. 3 показано, что запрос 8 состоит из двух частей. Первую часть запроса занимают метаданные - информация о самом блоке данных и состоянии данных, которые записаны в нем. Остальное - это непосредственно сами данные. Для первой группы блоков на запись (RWC) они представляют собой записи, в которых хранится информация в виде хэш-таблицы о том, где на жестком диске (HDD) находятся эти кэшированные данные.
На Фиг. 4 показан вид блоков первой группы блоков 6 на запись (RWC) и второй группы блоков 7 на чтение (RRC).
- Занятый блок, который полностью заполнен.
- Текущий блок, в который сейчас записываются запросы.
- Свободный блок, в котором нет данных.
- Вытесняемый, из которого в данный момент происходит процедура вытеснения.
Свободные основные блоки 7 второй группы на чтение RRC могут при необходимости становится свободными блоками первой группы на запись RWC. При необходимости, свободные блоки 6 первой группы блоков RWC могут становится свободными блоками второй группы на чтение RRC. Это зависит от выбранной политики - с наличием или отсутствием приоритета на чтение и запись. При отсутствии приоритета свободные блоки не перемещаются между RRC и RWC. При наличии приоритета на чтение или запись свободные блоки RRC/RWC становятся блоками RWC/RRC, если в этом существует необходимость. Если приоритет установлен для операций и чтения и записи, то свободные блоки изначально не принадлежат RWC/RRC, а свободные блоки назначаются первым пришедшим запросам.
Блок-схема операций при обработке запроса на чтение приведена на Фиг. 5. При запросе на чтение 101 данных определяют вид запроса 102 - последовательный или случайный. При последовательном запросе на чтение определяют место нахождения данных 103 и считывают их или из SSD 104 или RAM 105 или из HDD 106.
При случайном запросе на чтение определяют место нахождения данных. Проверяют, есть ли этот случайный запрос в RAM 107 и считывают из оперативной памяти RAM 108. Проверяют, есть ли случайный запрос в SSD 109 и считывают его из SSD 110, или из HDD 112. Если данные считывались с SSD, в RRC меняется метрика блока, в который произошло попадание.
Если данные хранились на HDD, то анализируют 113 их на частоту обращений на чтение данных с помощью анализатора 5 (Фиг. 1) и, при частоте обращений больше двух, данные из накопителя 3 на жестких дисках переписываются 114 во вторую группу блоков 7 на чтение SSD-кэша. Если во второй группе боков 7 на чтение нет свободных блоков 115, производятся операции освобождения блоков 116. При этом освобождается блок с наименьшей метрикой WE и пересчитываются метрики всех занятых блоков. Обработка запроса на чтение завершается 117.
Следует также отметить, что запрос на чтение может относится к данным, которые находятся в разных частях базы данных, например, в RAM, SSD-кэше, или HDD. В этом случае прежде всех операций разбивают первичный запрос на части, в зависимости от того, к какой памяти они относятся и каждую часть считают отдельным запросом.
Блок-схема операций при обработке запроса на запись приведена на Фиг. 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.
Процесс вытеснения из второй группы блоков 7 на чтение (RRC) показан на Фиг. 7. Процесс вытеснения из второй группы блоков начинается, когда в группе нет свободных блоков, кроме текущего.
Первоначально определяют два блока с наименьшим числом попаданий в кэш на блок. Определяют интенсивность использования каждого из выбранных блоков за определенный период времени. Интенсивность использования определяется на основе известной метрики «эффективность записиж Write Efficiency, предложенной в [1]
где:
Число попаданий в кэш - число запросов к данным, находящимся в конкретном, выбранном блоке данных в SSD-кэша.
Число записей в блок кэш - число записей в блоке данных в SSD-кэше ко времени определения метрики WE.
Все блоки упорядочиваются по метрике WE и выбирается блок 301 с наименьшим значением. Теперь он считается свободным блоком 302.
После этого, для всех занятых блоков пересчитывается метрика WE значения 303. Для этого метрика WE для всех занятых блоков делится на число N - это параметр устаревания запросов. В реализованном алгоритме он равен 2. На этом процесс вытеснения заканчивается 304.
Процесс вытеснения из первой группы блоков на запись (RWC) раскрыт на Фиг. 8. Из первой группы блоков на запись (RWC) вытесняют давно не используемые данные в соответствии с политикой вытеснения 401. При этом могут использоваться алгоритмы вытеснения, основанные на принципе «очереди», например, FIFO («первым пришел - первым ушел») (https://ru.wikipedia.org/wiki/FIFO). При выполнении вытеснения запросы в блоке упорядочивают 402 по возрастанию номера адресации, затем упорядоченные запросы записываются в HDD - 403. После этого 404 освобожденный блок получает статус свободного.
Совокупность всех операций (разбивка параллельного SSD-кэша на блоки памяти одинакового размера и формирование из этих блоков первой группы блоков на запись (RWC) и второй группы блоков на чтение (RRC); обработка запросов на запись и чтение и процессы вытеснения данных, различных для групп блоков SSD-кэша на чтение и запись) способа управления системой хранения данных (включающую оперативную память, параллельный SSD-кэш и накопитель на жестких дисках) позволяет значительно увеличить производительность системы хранения данных и продлить срок использования SSD-накопителей.
Проведенные сравнительные эксперименты с известными схемами гибридных систем хранения данных, которые включают оперативную память, параллельный SSD-кэш и накопитель на жестких дисках, показали, что прирост производительности при разных типах запросов составляет от 5 до 46 раз. При этом количество требуемых перезаписей на SSD-накопителях в заявляемом способе будет примерно в 6 раз меньше, чем во многих традиционных системах хранения данных. Соответственно, в данной системе ресурс твердотельных накопителей используется значительно эффективнее, увеличивая срок их жизни.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Заявленные способ и устройство могут быть применены для эффективной работы с достаточно широким спектром задач и нагрузок в различных областях хранения данных.
Благодаря сортировке запросов и новым способам вытеснения данных, сглаживание пиков случайной нагрузки происходит быстрее и с меньшим влиянием на общую производительность системы.
[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.
Настоящее техническое решение относится к области вычислительной техники. Технический результат заключается в повышении производительности системы хранения данных и увеличение ее строка службы. Технический результат достигается за счёт того, что система хранения данных включает оперативную память, параллельный SSD-кэш, разделенный на первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC), накопитель на жестких дисках, детектор запросов и анализатор частоты обращений на чтение данных. Способ позволяет разделить запросы на случайные и последовательные как при операциях записи, так и при операциях чтения и, в зависимости от вида запроса, направить в различные виды памяти. При заполнении в SSD-кэше всех свободных групп первой группы блоков на запись или второй группы блоков на чтение производят вытеснение данных. Из первой группы блоков на запись (RWC) вытесняют давно не используемые данные. Из второй группы блоков на чтение (RRC) освобождают данные из блока данных, которые имеют наименьшую интенсивность использования с учетом числа пережитых вытеснений данных из блока за определенный период времени. 2 н. и 9 з.п. ф-лы, 8 ил.
1. Способ управления системой хранения данных, которая включает оперативную память, параллельный SSD-кэш и накопитель на жестких дисках, при котором:
- разделяют SSD-кэш на блоки памяти одинакового размера и формируют из этих блоков первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC);
- получают запрос записи или чтения данных;
- при запросе на запись данных определяют вид запроса - последовательный или случайный, и данные случайных запросов записывают в свободные блоки памяти первой группы блоков на запись SSD-кэша, а последовательные запросы записывают в накопитель на жестких дисках;
- при запросе на чтение данных определяют вид запроса, последовательный или случайный;
- при последовательном запросе на чтение определяют место нахождения данных и считывают их;
- при случайном запросе на чтение определяют место нахождения данных и считывают их, и если данные хранились в накопителе на жестких дисках, то анализируют их на частоту обращений на чтение данных, и при частоте обращений больше двух данные из накопителя на жестких дисках переписываются во вторую группу блоков на чтение SSD-кэша;
- при заполнении всех свободных групп первой группы блоков на запись или второй группы блоков на чтение SSD-кэша производят вытеснение данных,
- при этом последовательно вытесняют данные на накопитель на жестких дисках из первой группы блоков на запись (RWC),
- а из второй группы блоков на чтение (RRC) вытесняют данные, которые имеют наименьшую интенсивность записи с учетом числа пережитых вытеснений данных из блока за определенный период времени.
2. Способ по п. 1, характеризующийся тем, что предварительно разделяют SSD-кэш на блоки памяти размером К мегабайт.
3. Способ по п. 1, характеризующийся тем, что запись данных осуществляют в виде последовательной записи в блоки памяти SSD-кэша.
4. Способ по п. 1, характеризующийся тем, что при осуществлении запроса на запись проверяют, хранятся ли данные запроса в SSD-кэше, и при их наличии данные обновляют.
5. Способ по п. 1, характеризующийся тем, что случайные запросы более M килобайт записывают в накопитель на жестких дисках.
6. Способ по п. 1, характеризующийся тем, что при получении запроса на чтение предварительно проверяют, где находятся данные запроса и при наличии частей запроса одновременно в RAM, SSD-кэше или HDD, разбивают запрос на части и каждую часть считают отдельным запросом.
7. Способ по п. 1, характеризующийся тем, что при последовательном запросе на чтение данные считывают или с оперативной памяти или с накопителя на жестких дисках.
8. Способ по п. 1, характеризующийся тем, что вытеснение данных из второй группы блоков на чтение (RRC) SSD-кэша производят, когда нет свободных блоков памяти, кроме текущего.
9. Способ по п. 1, характеризующийся тем, что свободные блоки памяти первой или второй группы блоков памяти SSD-кэша передают в другую группу блоков памяти SSD-кэша.
10. Способ по п. 1, характеризующийся тем, что вытеснение данных из SSD-кэша производят целыми блоками.
11. Система хранения данных, включающая детектор запросов на запись и чтение данных, подключенный к оперативной памяти, соединенной с параллельным SSD-кэшем и накопителем на жестких дисках, при этом SSD-кэш разделен на блоки памяти одинакового размера и включает в себя первую группу блоков на запись (RWC) и вторую группу блоков на чтение (RRC), SSD-кэш подключен также к накопителю на жестких дисках, при этом система содержит анализатор частоты обращений на чтение данных, подключенный по входу к детектору запросов на запись и чтение данных, а по выходам к оперативной памяти и SSD-кэшу.
RAIDIX "Как работает SSD-кэширование в системах хранения данных", опубл | |||
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
US 11204872 B2, 21.12.2021 | |||
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Авторы
Даты
2023-10-10—Публикация
2021-05-13—Подача