Введение 5
1. Постановка задачи 7
2. Обзор 8
2.1. Алгоритмы идентификации 8
2.1.1. Window-based Direct Address Counting 8
2.1.2. Multiple Hash Function 9
2.1.3. HotDataTrap 10
2.2. Существующие решения 12
2.2.1. Easy Tier в IBM SVC 12
2.2.2. EMC Fast VP 12
2.3. Linux Kernel Module Programming 13
2.4. Средства тестирования 13
3. Реализация двухуровневого и трёхуровневого тира 15
4. Алгоритм идентификации ’’горячих” данных 17
5. Функциональное тестирование и измерение производительности 18
5.1. Схема экспериментов 18
5.2. Тестирование корректности алгоритма 19
5.3. Тест производительности SSD-RAID 21
5.4. Тестирование параметров тира 22
5.4.1. Тест типа данных Bloom Filter 22
5.4.2. Тест на определение количества хэш-функций 23
5.4.3. Тесты на определение размера Bloom Filter 26
5.5. Исследование поведения системы при различных типах нагрузки 27
5.5.1. Сравнение с тиром без миграции 27
5.5.2. Тестирование миграции при нагрузке на SSD-RAID 29
5.6. Объём метаданных 30
Заключение 32
Список литературы 33
В последнее время, учёными и исследователями разрабатываются и совершенствуются технологии, предназначенные для замены обычных накопителей на базе магнитных дисков (HDD) [5]. Флэш-память ярко выделяется на фоне остальных и сейчас уже стала один из наиболее популярных способов хранения информации в мобильных устройствах, персональных компьютерах, корпоративных серверах, благодаря высокой скорости доступа, низком энергопотреблении, высокой ударопрочности и портативности. Появление твердотельных накопителей (SSD), оказало значительное влияние на существующую иерархию в системах хранения данных (СХД). От организации архитектуры такой системы будет зависеть её производительность, затраты памяти, срок службы и множество других факторов [2].
Для увеличения производительности и обеспечения сохранности информации систем хранения данных используется технология RAID, объединяющая множество дисков в один логический массив [13]. Самым простым случаем данной технологии является RAID 0, не обеспечивающая сохранности информации при отказе диска, зато отсутствует избыточность при хранении информации. Следующие уровни позволяют предотвращать потерю данных, но с потерей скорости работы или с большими финансовыми затратами из-за избыточности.
Информацию, с которой работают различные СХД, можно условно разделить на ’’горячую” и ’’холодную”, основываясь на предположении, будет ли она необходима, и как часто будут к ней обращения в будущем. Первостепенная задача в этой области - умение идентифицировать ’горячие” данные [9]. Правильность решения проблемы идентификации напрямую будет влиять на производительность всей системы. Если поместить SSD между основной памятью (RAM) и HDD, то флэш-память будет энергонезависимым кэшом второго уровня. В свою очередь, ускорение системы будет достигаться перемещением ”горячих” данных на SSD или на SSD, обладающим поддержкой спецификации NVM Express, а ’холодных” на HDD, соответственно [1]. Получившаяся многоуровневая система хранения данных называется тир (от англ. tiered storage - многоуровневое хранение). Уровней иерархии может быть сколько угодно, но, как правило, используется два или три.
Бакалаврская работа выполнялась в системе RAIDIX. Raidix - программное обеспечение для систем хранения данных, разработанное компанией ООО ”Рэйдикс” [10]. Данное решение обладает необходимым функционалом для создания и дальнейшего обеспечения работы механизма тиринга: позволяет создавать RAID-массивы, объединять их в тома, подключать плагины, позволяющие работать с системой хранения данных. Поддерживается параллельный доступ к информации, совместная работа над данными.
В рамках данной работы была исследована и реализована многоуровневая система хранения данных - тир. Были выполнены следующие задачи:
• проведён анализ алгоритмов распределения данных и выбран алгоритм наилучшим образом удовлетворяющий потребностям СХД RAIDIX;
• реализован прототип модуля, организующий миграцию данных между уровнями хранения;
• проведено тестирование производительности с использованием синтетической нагрузки;
• на основании тестирования произведён выбор ключевых параметров алгоритма.
[1] Chen Peter P. S. Optimal file allocation in multi-level storage systems.— Harvard University Cambridge, Massachusetts, 1973.— URL: http://dl.acm.org/citation.cfm?id=1499662.
[2] EMC. Information storage and management: Storing, Managing, and Protecting Digital Information. / Ed. by EMC Education Services G. Somasundaram, Alok Shrivastava. — Wiley Publishing, Inc.
[3] EMC Corporation. Managing FAST VP // Unity Family technical documentation.— URL: https://www.emc.com/ ru-ru/documentation/unity-family/unity-p-pool-config/ 05-unity-pool-br-using-fast-vp.htm (online; accessed: 17.05.2017).
[4] Jen-Wei Hsieh Tei-Wei Kuo Li-Pin Chang. Efficient Identification of Hot Data for Flash Memory Storage Systems. — ACM Transactions on Storage, 2006.
[5] Jeong-Uk Kanga Jin-Soo Kima Chanik Parkb Hyoungjun Parkb Joonwon Leea. A multi-channel architecture for high-performance NAND flash-based storage system.— 2007.— URL: http://dl.acm. org/citation.cfm?id=1244544.
[6] Kushal S. Patel Shrikant V. Karve. IBM Easy Tier. — IBM Systems and Technology Group, 2014. — URL: http://www-03.ibm.com/support/ techdocs/atsmastr.nsf/5cb5ed706d254a8186256c71006d2e0a/ 9dc4420fb6fcd0b386257f0200559e17/protectchar”0024 relaxFILE/Easy%20Tier%20for%20SVC%20and%20V7000% 20whitepaper.pdf.
[7] Linux Cross Reference.— URL: http://lxr.free-electrons.com/ (дата обращения: 18.12.2016).
[8] Linux по-русски. Изучаем команды Linux: dd // Виртуальная энциклопедия.— URL: http://rus-linux.net/ (дата обращения: 19.12.2016).
[9] Park Dongchul. Hot and Cold Data Identification: Applications to Storage Devices and Systems. — 2012.
[10] RAIDIX. Программно-определяемая система хранения данных. — URL: http://www.raidix.ru/ (дата обращения: 15.04.2017).
[11] White Paper. EMC VNX2 FAST VP.- EMC Corporation, 2016.— URL: https://www.emc.com/collateral/white-papers/ h12102-vnx-fast-vp-wp.pdf.
[12] fio - Linux man page // Виртуальная библиотека.— URL: https: //linux.die.net/man/1/fio (дата обращения: 10.04.2017).
[13] В.Г. Казаков С.А. Федосин. Технологии и алгоритмы резервного копирования. — Мордовский государственный университет им. Н.П. Огарева, 2008. — URL: http://window.edu.ru/resource/176/ 56176.
[14] Мир Gnu / Linux // Ресурс для начинающих пользователей.— URL: http://linux-user.ru/komandy-v-linux/ podschity-vaem-md5-hesh-summu-v-linux/ (дата обращения: 10.01.2017).
[15] Олег Цилюрик. Программирование модулей ядра Linux. — 2007.
...