Тестирование флеш СХД. Теоретическая часть


    Тестировать флеш-массивы мы начали по просьбе одного нашего крупного заказчика, который никак не мог определиться с решением по системе хранения данных, которое решало бы его задачи. Однако, тема оказалась настолько актуальной и интересной, что скоро вышла за пределы одного конкретного проекта. Со временем, была отработана собственная методика, написаны скрипты и собран уникальный фактический материал. Захотелось поделиться им с коллегами. Честно, без лишних восторгов и мифов, просто факты. Эта статья откроет серию независимых публикаций, каждая их которых будет посвящена тестированию какого-то конкретного массива или сопутствующей технологии. Однако, сперва нам придется сказать несколько слов о том, чем отличаются SSD накопители от обычных жестких дисков (HDD) и какие особенности, вследствие этого, появляются при тестировании систем хранения данных построенных на их основе.

    Заранее прошу прощения за прописные истины. Винчестер (HDD) — это мотор, пластины, головки и контроллер. При чтении/записи контроллер диска перемещает головки на нужную дорожку, ждет, когда диск повернется нужным сектором и читает/пишет данные. При таком алгоритме, производительность напрямую зависит от скорости вращения шпинделя и скорости перемещения головок. Оба имеют механические и электромеханические ограничения. Значимого улучшения этих показателей не наблюдается уже больше десятилетия (диски со скоростью вращения шпинделя 15000 об/мин появились лет 12 назад).

    Что обычно измеряют на жестких дисках?

    1. Замеряется IOPS (количество операций ввода-вывода, производимых в секунду) и Latency (время отклика)при произвольной (random) нагрузке небольшими блоками. Количество IOPS, выдаваемых HDD, слабо зависит от:
    • размера блоков (основные задержки связаны с механикой, а не скоростью чтения-записи с пластин).
    • от типа нагрузки (то есть от того, читаем мы или пишем).

    2. Bandwidth (пропускная способность) при потоковом вводе выводе. Показатели слабо зависят от типа нагрузки, но значимо зависят от положения головок по отношению к центру диска (Zone Bit Recording)
    Отметим, что скорость работы HDD не зависит от истории нагрузки, то есть мы получим одинаковые IOPS на одинаковой нагрузке, и в начале теста, и в конце. HDD с одинаковой частотой вращения шпинделя разных производителей, как правило, практически не отличаются по производительности – механика примерно одинаковая, а контроллер давно перестал быть ограничивающим производительность фактором.

    Теперь, вернемся к SSD накопителям (не обязательно в дисковом форм-факторе). Стандартный SSD состоит из контроллера(ов) и набора микросхем памяти. Микросхемы памяти состоят (очень упрощенно) из блоков (как правило — 4K), организуемых в страницы. Данные всегда записываются в свободное место, последовательно заполняя свободные страницы, не зависимо от того новые это данные или изменение уже существующих. Копии измененных блоков данных не стираются, а только помечаются как устаревшие. Удалением «устаревших» копий блоков данных на SSD занимается специальный процесс – Garbage Collection (GC), который (в общем случае) выполняет следующие операции:
    • Выбирает страницы с наибольшим процентом «устаревших» копий данных;
    • Переписывает все актуальные данные в новую страницу;
    • Очищает страницу.

    Обычно «сборка мусора» (Garbage Collection) производится в фоновом режиме в то время, когда система не загружена, но при длительной нагрузке на запись, этот процесс начинает сильно ограничивать производительность SSD, т.к. скорость работы процесса Garbage Collection ощутимо ниже пиковой скорости работы SSD на запись. Феномен падения производительности SSD при длительной нагрузке на запись называется Write Cliff

    Производители SSD накопителей пытаются нивелировать влияние процессов Garbage Collection через:
    • Резервирование значимого кол-ва страниц SSD накопителя для поглощения пиков нагрузки на запись. Ряд производителей даже позволяют делать низкоуровневое форматирование SSD накопителей, увеличивающее этот резерв за счет объема диска, повышая нагрузочные характеристики SSD по записи.
    • Создание отдельных сервисных процессоров, занимающихся «сборкой мусора» в дополнение к основным контроллерам.

    Производительность SSD очень значимо зависит от типа микросхем памяти, способа их организации, используемых контроллеров на диске, интерфейса ввода-вывода и, в отличие от обычных HDD, где, по сути, все диски с одинаковой частотой вращения шпинделя обладают сопоставимой производительностью, разные SSD накопители могут отличаться по производительности в разы.

    Что обычно измеряют на флеш-дисках и флеш-массивах?

    1. IOPS и latency при произвольной (random) нагрузке. В отличие от HDD тут есть зависимость от размера блока и типа нагрузки, то есть пишем мы или читаем. Соответственно, в случае SSD приходится делать группы тестов с изменением отношения количества операций чтения к операциям записи, с изменяющимся размером блока.

    2. Изменение производительности SSD при длительных операциях записи, с целью определения:
    • Максимальный объем данных, которые можно записать на дисковый массив до начала работы процесса Garbage Collection;
    • Производительность процесса Garbage Collection, которую можно рассматривать, как максимально среднюю производительность дискового массива на операциях записи.

    Бесполезно замерять bandwidth при потоковом вводе выводе, так как архитектура SSD подразумевает фрагментацию данных.

    Что важно – после каждого теста на запись определяющего пиковую производительность дискового массива, необходимо делать паузу для нивелирования влияния процессов Garbage Collection
    Архитектура флеш-массивов и оптимизированность их контроллеров под использование SSD играет очень важную роль в определении показателей производительности всего массива. При пиковой производительности одного SSD накопителях в 50000 IOPS, ограничивающим фактором может стать производительность контроллера дискового массива. Такое часто случается при попытках отдельных производителей сделать флеш-массив из обычного через установку в него SSD дисков. Кроме того, контроллер массива значимо добавляет latency, которая раньше была не заметна на HDD системах:
    • latency HDD ~4ms,
    • latency контроллера массива ~0,2-0,4 ms
    • latency SSD накопителя, как правило <0,2 ms

    Не оптимизированный контроллер может существенно снизить характеристики используемого SSD накопителя.

    Ещё один важный момент: СХД SSD потенциально способен выдавать миллионы IOPS. При тестировании, ограничивающим фактором может стать сам генератор нагрузки, поэтому конфигурация сервера(ов) генерирующего нагрузку, должна учитывать особенности SSD. Необходимо правильным образом настраивать планировщики, размеры очередей ввода-вывода и т.п., максимально распараллеливать тест: маловероятно на одном LUN на весь объем дискового массива получить заявляемые производителем показатели.

    На этом, полагаю, теории достаточно – пора переходить к практике. Читайте в следующей статье: Тестирование СХД IBM RamSan FlashSystem 820.

    image



    P.S. Автор выражает сердечную благодарность Павлу Катасонову, Юрию Ракитину и всем другим сотрудникам компании участвовавшим в подготовке данного материала.
    • +9
    • 10,2k
    • 9
    INLINE Technologies
    36,00
    Универсальный ИТ-интегратор
    Поделиться публикацией

    Комментарии 9

      +3
      Хотел бы немного дополнить по latency. У вас написано, что это значение 4мс у HDD. Это верно лишь для 7.200 оборотных. Для 10к это 3мс, для 15к это 2мс. Это я к чему, если рассматривается, я так понимаю, больше уже серверное решение, то и сравнивать стоит с серверными решениями (10к\15к).

      Плюс еще в начале написано, что у HDD замеряются иопсы и задержка, а как же показатели чтения\записи?

      И еще, «сборка мусора» это же ведь этим занимается TRIM?

      В отличие от HDD тут есть зависимость от размера блока
      т.е. HDD нет зависимости? Но ведь диску проще искать блоки когда они больше по размеру, для тех же raid1\0 рекомендуются 128кб блоки…
        0
        «хотел бы немного дополнить по latency. У вас написано, что это значение 4мс у HDD. Это верно лишь для 7.200 оборотных. Для 10к это 3мс, для 15к это 2мс»
        К сожалению, данное утверждение лишь маркетинговый трюк. Любой sizing guide для Enterprise дисковый массивов считает на 15K диск = 180 IOPS -> 5ms. В отдельных случаях, если повезет и будет coalescing, можно получить более привлекательные цифры, но в реальных условиях на нормально нагруженных системах, получается указанная latency.

        «Плюс еще в начале написано, что у HDD замеряются опсы и задержка, а как же показатели чтения\записи?»
        В статье написано про измерения bandwitch – будте внимательнее. Для SSD не имеет смысла делать измерения при последовательной нагрузке. Там нет механики.

        TRIM – это АТА команда. Дисковому массиву, в отличие от локального диска, нельзя просто сказать, о возможности удалить некоторые блоки данных.

        «т.е. в HDD нет зависимости?»
        Для небольших размеров блоков, скажем 4,8,16,32,64 — практически нет. Вы получите примерно те же самые показатели по IOPS. В то время как в случае SSD — значения могут значимо отличаться.
          0
          Вопрос — про какие милионы iops идет речь. Насколько я зная hdd ~ 100 iops, sdd ~500. В любом случае отличие от ваших iops на несколько порядков. Где я неправ?
            0
            «Ещё один важный момент: СХД SSD потенциально способен выдавать миллионы IOPS.»
              0
              Спасибо iscsi.

              To PavloG: Ответ на ваш вопрос состоит из 2 пунктов.
              1. Разберитесь, что такое IOPS, от чего зависит и как меряется. Статья для изучения №1. Статья для изучения №2.
              2. Разберитесь, чем характеристики СХД отличаются от характеристик «комплектухи». Статья для изучения №3. Статья для изучения №4.
                –1
                Причина моего коментариия aws.amazon.com/ebs/details/
                Где четко указо что hdd 40-200
                Ssd 4000
                Дальше простой гуглеж подтверждает мои цифры (например ru.m.wikipedia.org/wiki/IOPS)
                В вашей первой ссылке как раз цифры того порядка что я привел.
                Такчто мой вопрос открыт, как это можно обьяснить?
                  +2
                  Нашел причину своего непонимания. Спасибо.
                  Ключевое слово CXД (которое почему-то мой мозг воспринимал как SSD)
                0
                Причина моего коментариия aws.amazon.com/ebs/details/
                Где четко указо что hdd 40-200
                Ssd 4000
                Дальше простой гуглеж подтверждает мои цифры (например ru.m.wikipedia.org/wiki/IOPS)
                В вашей первой ссылке как раз цифры того порядка что я привел.
                Такчто мой вопрос открыт, как это можно обьяснить?
                Upd: я конечно понимаю что в рейде из большого колва дисков за 1000500 долларов сумарно такое возможно. Но Ведь в статье не о таком уровне устройств идет речь.
                  0
                  Почему-то про дублировалось.
                  Нашел причину своего непонимания.
                  Ключевое слово CXД (которое почему-то мой мозг воспринимал как SSD)

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

                Самое читаемое