Введение 2
1. Цели и задачи 5
1.1. Цель работы 5
1.2. Поставленные задачи 5
2. Обзор 6
2.1. RAIDIX ERA 6
2.2. Кэширование 7
2.3. Реализованные продукты компании RAIDIX,
связанные с кэшированием 9
2.4. Тестирование производительности систем хранения данных 11
3. Анализ технологий кэширования 12
3.1. Описание тестового сервера и методики тестирования с
помощью FIO 12
3.2. Open Cache Acceleration (Open CAS) 13
3.3. bcache 15
3.4. dm-cache 17
3.5. Сравнение технологий 19
4. Адаптация Open CAS для RAIDIX ERA 21
4.1. Описание работы Open CAS 21
4.2. Внедрение и тестирование Open CAS для
RAIDIX ERA 23
4.3. Добавление новой функциональности в
Open CAS 27
Заключение 29
Приложение 1 31
Список литературы 33
Объёмы хранимой человеком информации многократно увеличиваются с каждым годом, в связи с этим возрастают затраты на хранение. Поэтому организации стремятся получить продукт, обеспечивающий хорошую производительность всех компонентов электронной системы, а также гарантирующий защиту и целостность данных. Для безопасного хранения данных и предоставления гарантированного доступа к ним используются системы хранения данных (СХД). Одним из основных подходов организации СХД является технология RAID (Redundant Array of Independent/Inexpensive Disks) — массив из нескольких дисков, управляемый контроллером, «отказоустойчивый массив из независимых дисков» [4].
Отказоустойчивость СХД обеспечивается с помощью информационной избыточности: в системе используются дополнительные диски (называемые синдромами), информация которых позволяет восстанавливать данные в случае их частичной утраты.
Существует множество модификаций RAID, но наиболее широкое распространение получили перечисленные ниже.
• RAID 0: данные делятся на столько частей, сколько дисков в массиве, и равномерно распределяются по дискам. Используется для ускорения обработки запросов, отказоустойчивость не предусмотрена: выход из строя любого из дисков, входящего в массив, при-водит к невосстановимой потере хранимых данных.
• RAID 1 (зеркалирование/дублирование): массив из двух или более дисков, являющихся полными копиями друг друга. Такой вариант хранения данных надёжен, но влечёт большую избыточность — 50%.
• RAID 5: допускает параллельную запись, поскольку блоки данных и контрольные суммы циклически записываются на все диски массива. Модификация позволяет восстановить до одного утраченного диска, если его номер заранее известен.
• RAID 6: этот способ также позволяет параллельную запись, однако избыточность в данной модификации на один диск больше, чем в RAID 5, в связи с этим возможно восстановление одного или двух утраченных дисков.
СХД может взаимодействовать с разными устройствами хранения данных (УХД): как с жесткими дисками — HDD (в которых присутствуют механические детали — магнитные диски, из-за чего при поиске данных в них возникают задержки вследствие вращения дисков), так и с твердотельными накопителями (SSD/NVMe). Основными критериями при выборе УХД являются объем, надежность хранения данных, производительность и стоимость. На многие из этих критериев существенное влияние оказывает интерфейс — протокол взаимодействия накопителя и вычислительных ресурсов системы [5].
Класс HDD SSD
Интерфейс SCSI SATA SAS SATA SAS РС1е
Накопитель SCSI SATA SAS SATA SAS NVMe
Надежность Средняя Низкая Высокая Средняя Высокая Высокая
Производительность Низкая Низкая Средняя Высокая Высокая Очень высокая
Стоимость Низкая Низкая Средняя Средняя Высокая Очень высокая
Рис. 1: Сравнение характеристик HDD и SSD накопителей
В результате расширения рынка твердотельных накопителей и появления новых УХД возникла необходимость в создании технологий, позволяющих оптимально решать высокопроизводительные задачи. В 2018 году российской компанией RAIDIX была представлена RAIDIX ERA — программный RAID, который, благодаря продуманной внутренней архитектуре и параллелизации вычислений, эффективно работает с SSD и NVMe накопителями [6]. Однако при определенных сценариях использования наблюдается ухудшение скорости работы RAIDIX ERA по сравнению с известными продуктами.
Одним из основных способов увеличения производительности без особых вложений в модернизацию оборудования является добавление к RAID-контроллеру относительно небольшой, но обычно более быстрой области памяти, называемой RAID-кэшем, использующейся для про-межуточного хранения записываемых или считываемых данных. Это позволяет эффективнее управлять операциями ввода-вывода.
Зачастую современные компьютеры оснащены большим объемом оперативной памяти (RAM), что позволяет использовать в качестве кэша RAM-диск — технология, реализующая хранение данных в оперативной памяти как на блочном устройстве. Кроме того, использование RAM-диска может продлить срок службы твердотельных накопителей, поскольку SSD имеют ограниченное количество циклов записи.
В рамках данной работы планируется изучение различных технологий кэширования, сравнение, выявление и внедрение наиболее подходящей реализации для системы RAIDIX ERA.
В ходе данной работы были получены следующие результаты.
1. Выполнено изучение и сравнение технологий кэширования Open CAS, bcache, dm-cache. Выявлено, что наилучшей производительностью обладает Open CAS RAM-кэш.
2. Было протестировано и проанализировано взаимодействие Open CAS RAM-кэша с RAIDIX ERA. Описаны подходящие сценарии использования Open CAS для разных видов накопителей: HDD, SSD, NVMe.
3. В Open CAS добавлена новая функциональность: дополнительные политики вытеснения (FIFO, LFU), исследовано влияние анализатора запросов Open CAS ввода-вывода на производительность. Исследована производительность внедренной технологии: при определенных шаблонах наблюдается улучшение в среднем на 16%.
4. На основе проведенного тестирования разработан оффлайн детектор, анализирующий входящие запросы ввода-вывода и рекомендующий оптимальные параметры работы Open CAS.
В дальнейшем планируется выполнить задачи, перечисленные ниже.
1. Разработать детектор, который будет способен в онлайн-режиме анализировать входящие запросы ввода-вывода и подбирать оптимальные параметры для работы с Open CAS.
2. Известно, что в RAID-массивах существует проблема write hole — это повреждения данных в RAID-массивах, вызванные прерыванием записи на диск [10]. Проблема write hole может быть устранена с помощью ведения упреждающей журнализации (ин-формация об изменениях вносится и фиксируется в специальный журнал перед записью в RAID-массив). В связи с наличием описанной проблемы планируется произвести внедрение технологии Open CAS, когда в качестве кэширующего устройства используется энергонезависимая память NVDIMM/Optane, и использовать NVDIMM/Optane в качестве журнала с целью устранения проблемы write hole.