Андрей Кучинский, генеральный директор ARGO.TECH. Более 20 лет в ИТ-проектах, эксперт в управлении крупными проектами и сделками. Работал с Dell EMC, Lenovo, HP, EMC, Ingenico, Violin Systems, IBS. Объясняет разницу между IOPS, Throughput и TXG sync - и почему реальная производительность систем хранения данных зависит от задач, а не от цифр на коробке.
- Андрей, начнём с простого. Что такое «скорость»?
Андрей Кучинский: Скорость - физическая величина, показывающая, насколько быстро меняется положение (радиус-вектор) материальной точки в пространстве.
- А что такое «скорость» в системах хранения?
Андрей Кучинский: Если спросить любого на рынке, что такое скорость СХД, почти все ответят: IOPS. Количество операций ввода-вывода в секунду. Это как спросить, что такое скорость автомобиля, и ответить: «Максимальная скорость по паспорту». Цифра есть, но она ничего не говорит о реальной езде.
На самом деле в хранении есть три разных скорости, и рынок их путает.
Первая: скорость отклика (latency). Как быстро система отвечает на один запрос. Это то, что чувствует приложение: задержка между «я попросил» и «я получил».
Вторая: скорость потока (throughput). Сколько данных система пропускает через себя за единицу времени. Это то, что важно для бэкапов, репликации, видео, аналитики.
Третья: скорость фиксации (TXG sync). Как быстро система сбрасывает накопленные данные на постоянные носители. Это то, что определяет реальную производительность записи.
IOPS - это первая скорость. Маркетологи любят её, потому что она легко измеряется и красиво выглядит. Но она не говорит, что происходит с данными на дисках.
- Почему рынок измеряется в IOPS?
Андрей Кучинский: Потому что IOPS можно красиво показать.
Можно поставить больше оперативной памяти - и система будет отдавать данные из кэша. Это IOPS из памяти, а не с дисков. Можно использовать синтетический тест с идеальными условиями: один поток, один тип операций, нет сети, нет приложений.
Это как замерить скорость спорткара на треке. Ровное покрытие, нет встречных, нет светофоров. Спорткар покажет 300 км/ч. Впечатляет?
Но в реальной инфраструктуре трека нет. Есть город: сеть, приложения, базы данных, виртуальные машины, резервное копирование, репликация. Всё это конкурирует за ресурсы. И в этом городе спорткар стоит в пробке вместе со всеми.
IOPS - это скорость спорткара на треке. Throughput - это скорость автобуса в городе.
- То есть вы хотите сказать, что автобус быстрее спорткара?
Андрей Кучинский: Нет. Я хочу сказать, что автобус везёт больше.
Спорткар быстрее. Но он везёт одного человека. Автобус медленнее, но везёт сто. В городе, где есть остановки, повороты и светофоры, автобус перевезёт больше людей за то же время.
В хранении то же самое. IOPS показывает, как быстро система обрабатывает один запрос. Throughput показывает, сколько данных она пропускает через себя. В реальной инфраструктуре важнее второе.
И вот здесь мы подходим к такому понятию, как TXG.
- Что такое TXG и почему это важно?
Андрей Кучинский: TXG - это Transaction Group. Механизм, который сильно влияет на пропускную способность. Скажем так: это размер автобуса.
Система хранения не пишет данные сразу на диск. Она собирает их в транзакционную группу, как автобус собирает пассажиров на остановке. Когда группа собрана, она фиксируется на диски атомарно. Либо вся группа записана, либо ни одна.
Скорость TXG sync - это время, за которое система хранения сбрасывает накопленные данные на постоянные носители. Это третья скорость, о которой я говорил.
И вот тут вступает в силу параллелизм. Когда TXG sync обрабатывает группу данных, она:
Всё это вычислительные операции. Чем больше ядер, тем быстрее TXG sync. Чем быстрее TXG sync, тем выше Throughput.
IOPS - это скорость отклика. Throughput - это скорость потока. TXG sync - это скорость фиксации.
- Андрей, вы говорите, что рынок СХД зациклен на IOPS. Но ведь все вендоры показывают именно эту метрику. Значит, она важна?
Андрей Кучинский: Она важна для маркетинга. Не для инженерии. IOPS - это количество операций, а не объём данных. Его можно надуть, поставив больше памяти или используя синтетический тест на мелких блоках.
Один из найденных источников прямо говорит: «Я устал от вендоров, заявляющих x IOPS. Реальность в том, что подавляющее большинство сред не может приблизиться к этим цифрам». Рабочие нагрузки, которые используют вендоры для генерации IOPS, не типичны для реального дата-центра.
Рынок показывает IOPS, потому что это единственная метрика, которую можно надуть без реальной работы с данными. Throughput требует физической записи на диски. TXG sync требует реального параллелизма. Это не подделать.
- И она у вас самая лучшая?
Андрей Кучинский: И она у нас, как у всех, зависит от типа нагрузки. TXG (транзакционная группа) - это механизм, который собирает изменения в памяти (dirty data) и затем атомарно сбрасывает их на диски. Тип нагрузки определяет, насколько быстро наполняется этот буфер и, соответственно, как часто и с какой скоростью происходит синхронизация. Тут многое зависит от приложения, от типа нагрузки и т.д., много вводных. Наверное, не очень модно говорить: скорость зависит от ваших приложений и сети, надо пробовать. Модно: будет миллион IOPS.
- Что бы вы хотели сказать в завершение?
Андрей Кучинский: Знаете, скорость в хранении - настолько тонкая материя, что маркетологам проще мерить всё через IOPS, чем рассказывать про сложности.
Логика маркетинга проста: одна цифра, один слайд, один баннер. «Миллион». Всё. Дальше пусть покупатель сам разбирается.
Но реальность сложнее. Скорость хранения - не одна цифра. Это совокупность решений:
И вот логика инженера: берёте систему, берёте инженера, садитесь и подбираете нужные группы, нужные vdev, нужные опции SLOG, кеш - и получаете максимальную скорость под конкретную задачу.
Это не продаётся в баннере. Это не помещается в одну строку на слайде. Это инженерная работа.
Хранение - это не маркетинг. Это сложная инженерная система. И относиться к ней нужно как к инженерной системе, а не как к рекламному буклету.
Скорость в хранении - это не то, что написано на коробке. Это то, что вы собрали вместе с инженером под свою задачу.
- Спасибо за интервью.
Андрей Кучинский: Спасибо. Хранение - это инженерия. И пусть так и остаётся.
Андрей Кучинский, генеральный директор ARGO.TECH, - об истории NFS, нативной интеграции в ядро и о том, почему «крепость в горе» надёжнее «крепости рядом…
Читать далее→Новая версия СХД позволяет управлять всеми контроллерами кластера без переключения между ними Выпущено обновление ISCRA STORAGE OS 1.6. Основное изменение…
Читать далее→Почему ARGO.TECH сделала ставку на «редкую» технологию, как Oracle повлиял на судьбу этого кода и что значит быть частью мирового сообщества…
Читать далее→