Анализ входящего трафика к СХД

Одним из способов улучшения производительности и уменьшения латентности в системах хранения данных (СХД) является использование алгоритмов, анализирующих входящих трафик.

С одной стороны кажется, что запросы к СХД сильно зависят от пользователя и, соответственно, малопредсказуемы, но на деле это не так.

Утро практически любого человека одинаково: мы просыпаемся, одеваемся, умываемся, завтракаем, едем на работу. Рабочий день же, в зависимости от профессии, у всех разный.  Также и загрузка СХД изо дня в день одинакова, а вот рабочий день зависит от того, где используется СХД, какая у неё типичная нагрузка (workload).

Что же такое запрос к СХД?  Это 4 числа со следующими названиями: размер запроса (length), время прихода запроса (start_time), тип запроса (read/write), адрес запроса (lba).

Запросы к СХД делятся на четыре типа доступа, которые в нашем блоге будут представлять следующие персонажи:

незнайка

Незнайка

  1. Случайное чтение (random read, в дальнейшем rr). C Незнайкой никто не хочет иметь дело. Его поведение не поддается логике. Хотя некоторые алгоритмы все-таки пытаются предсказать его поведение — изощренные алгоритмы упреждающей выборки из памяти prefetch типа C-Miner, основанные на поиске корреляций между адресами последовательно запрашиваемых блоков данных. Это алгоритмы Data Mining, значит, они требуют ресурсов от СХД и не всегда успешны, но в связи с колоссальным развитием вычислительных мощностей процессоров в дальнейшем будут использоваться все больше и больше.  Если в СХД приходят одни Незнайки, то лучшим решением будет СХД на базе SSD (All-Flash Storage).

Знайка

Знайка

  1. Последовательное чтение (sequential read, в дальнейшем sr). Лучший друг для СХД — его поведение предсказуемо. Существуют алгоритмы упреждающего чтения (read ahead), которые умеют работать со Знайкой, они заранее помещают нужные данные в оперативную память, сводя латентность запроса к минимуму.

пончик

Пончик

3. Последовательная запись (sequential write, в дальнейшем sw). СХД тоже любит Пончика, так как писать большими блоками для нее выгодно и удобно.

Гунька

Гунька

4. Случайная запись (random write, в дальнейшем rw). Гунька — лучший друг Незнайки. Его хулиганское поведение может изрядно подпортить СХД жизнь. Но есть способ усмирить Гуньку — это лог-структурированная запись.

 В данном блоге мы поговорим о каждом персонаже отдельно, а также о тех паттернах поведения, которые они образуют вместе.

 Часть 1. Гунька или Лог-структурированная запись