Posts tagged ‘iops’

Снова про бенчмарки

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

Как я уже отмечал когда-то в одном из постов, настоящий сисадмин готов неделями спорить до хрипа, сравнивая абстрактные цифры бенчмарков, преимущества IBM p-series перед HP Superdome, Lamborgini перед Ferrari, и AK-74 перед M16A4 (обычно никогда не видев, не ездив и не держав в руках ни того, ни другого;)
Вот и в моем блоге посты “про бенчмарки” собирают всегда “цвет аудитории”, и внимание, которое, по моему убеждению, тема совсем не заслуживает. Я бы с куда большим удовольствием увидел бы активность читателей в какой-нибудь куда более важной и осмысленной теме. Но… Что имеем.

Поэтому я хочу в очередной раз, для вновьпоявившихся, озвучить свою позицию по бенчмаркам.

Если резюмировать мою позицию в нескольких строках, то я считаю, что бенчмарки, в особенности для такой сложной техники, это инструмент для оценки, но совсем не сама оценка как таковая. Как правило почти бессмысленно выбирать некий параметр, чтобы вычленить его из всего комплекса данных, записать на листочке, выбрать затем из всего массива результатов наилучший, и купить соответствующий сторадж. Системы хранения - это все же не видеокарточки, где достаточно взять один-два параметра на популярном бенчмарке, сравнить по ним, пойти с названием в магазин, и вот - рулез наш.

Бенчмарки дают нам повод для оценки, пищу для ума, но совсем не являются этой конечной оценкой.
Я уже приводил в качестве сравнения пример, со сравнением автомобилей по крайней цифре на спидометре (даже если эта цифра и реальна, все равно). Берем, сравниваем малолитражку, представительский класс, микроавтобус и грузовой автомобиль по максимальной скорости, или по соотношению “скорость/цена”, и выбираем лучший! :)
На деле, конечно же, микроавтобус, допустим, не хуже и не лучше грузовика или лимузина. Прсто они разные, и задачи у них разные. ?? там, где хорош один - может быть плох другой, и наоборот. На лимузине неудобно возить картошку, на микроавтобусе - покорять девчонок, на спорткаре - ездить за грибами.
Более того, даже в пределах одного класса покупатель не ориентируется только на максимальную скорость и мощность двигателя, просто потому, что в “быту” обычно важнее совсем другое. Объем багажника, удобная АКПП, климат-контроль в салоне, регулировка сидений, стоимость сервиса и потребление бензина, удобство установки детского сиденья, и так далее, такие параметры индивидуальны для каждого покупателя. ?? где-то там, глубоко среди них, есть, возможно, максимальная скорость. Для машины для города, в основном перемещаюшейся от пробки к пробке и от светофора до сфетофора, разница между 220 и 260 километрами в час максимальной скорости - штука почти умозрительная.

Ну вот, а теперь давайте вернемся к исходной теме.
Оригинальный коммент, вызвавший большую дискуссию в комментах предыдущего поста звучал так:

Борис Аклименко:
Если сравнивать FAS8040 с IBM DCS3700 по Executive Summary, то последний выглядит более привлекательно (Price Performance, Total Price, количество юнитов в стойке; при очень близких показателях SPC-1 IOPS и Ramp Phase Response Time). Хотелось бы услышать Ваши комментарии по этому сравнению.

Давайте начнем с того, что, как я уже говорил выше, бенчмарки, в данном случае, “инструмент познания результата, но не результат как таковой”. Как правило почти невозможно сравнивать его данные между разными стораджами, игнорируя все остальные показатели. По этой причине говорить о “привлекательности” странно, сторадж - не девушка, чтобы выбирать его по этой характеристике. Это инструмент решения задачи. Никто же не говорит, что молоток - более привлекателен, чем отвертка, если стоящая задача - завинтить винт (хотя молотком это сделать тоже можно, на АвтоВАЗе знают ;)

О том, как хитро поступают вендоры, чтобы получить результаты получше, можно написать целую книгу. ?? несмотря на то, что авторы бенчмарка предпринимают, конечно, усилия, чтобы подобные “маленькие хитрости” пресечь, но силы явно неравны.
Поэтому сравнивать только результаты, не глядя на то, как они получены - не является путем к истине. Также не является путем к ней сравнение очень разных стораджей.

Параметр $/IOPS конечно интересен, но сам по себе не дает нам ничего, даже если мы учтем популярную фишечку вендоров - указывать цену для его расчета - искусственно заниженной за счет “скидки”.
Например одной из лучших систем на сегодня, как по абсолютной производительности (1.2M IOPS), так и по $/IOPS (0,8$/SPC-1 IOPS) является сегодня система Kaminario K2. Знаете такую? Я вот тоже не знаю. Это такой стартап в отрасли.
Другой, долгое время державшей “топ” системой был TMS RamSAN, с ценой IOPS в районе доллара. Ну и конечно, нельзя обойти циклопические результаты стораджей Huawei OceanStor. Последний, к слову, не all-flash, как перечисленные выше, а вполне “дисковый”.

?? что теперь, многие покупатели посмотрели на результаты, да ну этот EMC (вообще не публикующий никаких результатов бенчмарков), HP, IBM, Hitachi! Купим-ка мы лучше вот этот Каминарио! Смотри-ка, какой он крутой! ??ли вот еще лучше - Хуавей!

Я с уважением отношусь ко всем перечисленным вендорам, и их работе, но все же, положа руку на сердце, согласимся, что так не поступает никто. Максимум - ознакомятся с результатами, и сделают свой выбор на основании… чего?
Мне кажется, что функциональности, это прежде всего.

Теперь же, если мы вернемся к сравнению NetApp FAS8040 2-node cluster, и IBM DCS3700 (AKA тот же NetApp E5660, к слову), то, посмотрев с этой точки зрения, а не с точки зрения “максимальной цифры на спидометре”, мы увидим, что это разные системы, для разных задач.

?? точно также, как никто не ставит all-flash storage, при всех их великолепных результатах $/IOPS на, допустим, хранение почты в Exchange, как никто не покупает (личную) “Газель”, ездить на ней на работу, также и в этом случае. Задачи - разные. Системы - разные. Скорость - не единственный параметр для системы хранения, выполняющей свою задачу в IT-подразделении компании.

Борис Аклименко:
Выходит очень странно - систему рассчитанную на большие конфигурации показывают чуть ли не в самом минимальном варианте

Это так, потому что пользователям, как правило, в подавляющем случае, интересны не столько результаты “звездолетов” на 1960 дисков, или all-flash системы сверхвысокой производительности. Обычно такой бизнес и без бенчмарков хорошо знает, что покупать, так как такие потребности в производительности не возникают на пустом месте одномоментно. Также, как покупатели Феррари не тусуются перед покупкой на форумах auto.ru, расспрашивая тамошних завсегдатаев ;)
Поэтому чаще всего интересны и покупаемы совсем не “топовые” конфигурации систем, напротив, большинстов продаж делают low-enterprise и midrange, в совсем не заоблачных конфигурациях. Не весь бизнес в России еще Газпром. :) Да и не в России - тоже.

Борис Аклименко:
а толку от этого “добавить” - если вы показываете результаты для нетапповского HighEnd и предлагаете “экстраполировать” его на Mid-Range?

Толк есть, и он состоит в том, что у NetApp, в отличие от многих других вендоров, вся продуктовая линейка есть, по сути одна платформа, отличающаяся только объемом памяти и типом-(ядерностью) процессоров. Поэтому вполне можно рассматривать результаты одной модели линейки, экстраполируя ее результаты на другую модель. Платформа-то и OS не отличаются, отчего бы меняться характеристикам масштабируемости производительности у разных ее моделей? У вас есть объективные основания так думать? Покажите их. Пока же предлагаю оставаться в рамках фактов и материализма.

Борис Аклименко:
Мы писали вендору с предложением показать производительность всей системы, с условием того, что если заказчика это устроит - заказчик приобретет половину этой конфигурации и будет, не опасаясь “сюрпризов” расти до полной. NetApp этот запрос не заинтересовал, но заинтересовал HP и EMC. Как-то так.

Вообще-то ничего удивительного. NetApp вообще крайне неохотно участвует в “тараканьих бегах”. Причины этому я описал в первой половине поста сверху. На практике “соревнование в скорости” у кастомера дело азартное, но по результатам бессмысленное. Счас скажу секретную штуку. На самом деле NetApp продает не IOPS-ы. Не диски, и не перформанс. Он продает фичи. А уж потом, довеском к фичам, идет скорость, диски, перформансы и прочее. На практике оказывается, что когда вы купите фичи, нужные вам, перформанс и емкость вы при этом тоже получите :)
Отсюда понятно отсутствие интереса. Это не пренебрежение вами. Это просто лучшее понимание вопроса :)

Борис Аклименко:
Для NetApp информации по “живым” 200000 ящикам инфы не нашел даже для 6240, не то что для 32xx.

Я ж вроде это постил в PS в пред-предшествующем посте:
http://www.netapp.com/us/media/tr-4268.pdf
Technical Report
200,000 Exchange Server 2013 Mailboxes on NetApp FAS8060
An Overview of Performance and Scalability
Wei Liu, NetApp
February 2014 | TR-4268

Там же, кстати, можно посмотреть результаты масштабирования кластера.

Еще по теме:
Про “культ бенчмарков”
Почем обходится производительность?
Про тестирования и про производительности
О “цене за гигабайт” и о “цене за решение”
Правильная интерпретация $/IOPS и IOPS/RAID для результатов SPC-1
Несколько слов про параметр $/IOPS в SPC-1

Это далеко не все, что я на тему “бенчмаркетинга” в отрасли писал, скорее наиболее “свежее”, и по количеству и объему вы видите, что тема “навязла”, и простите меня за то, что я без особенного энтузиазма встретил попытку развязать очередную дискуссию в комментах на эту тему.
Надеюсь, мне удалось пояснить свою позицию по этому вопросу, если же нет - велком снова в комменты. ?? спасибо за то, что дали мне высказаться, сохранив культурную дискуссию. Я тут просто в дороге, и не могу отвечать быстро.

Несколько слов про параметр $/IOPS в SPC-1

Раз уж тут мы много поговорили про бенчмарк SPC-1, хотелось бы добавить, в завершение темы, еще несколько слов.

В этом бенчмарке, кроме, так сказать, самого результата в достигнутых IOPS, а также сопутствующих ему параметров, таких как latency, есть в принципе очень полезная метрика – результат “цены за IOPS”, или $/IOPS. Этот параметр позволяет оценить, во сколько обошелся результат в денежном выражении. Методика SPC-1 требует раскрывать стоимость протестированой конфигурации. К сожалению, что считать “стоимостью” системы определено недостаточно четко, что тут же стало предметом, если не открытого мошенничества, то достаточно жульнических махинаций многих вендоров. Дело в том, представляя результаты своих систем на тест, они искусственно занижают ее цену, указывая эту цену с произвольной скидкой с “цены листа” (listprice), и, тем самым, уменьшая значение “в числителе”, улучшают результаты $/IOPS совершенно искусственным образом.

Чтобы было понятно, о чем идет речь, несколько слов об общепринятом ценообразовании в “энтерпрайзе”. Принципы ценообразования тут существенно отличаются от, скажем так, массового компьютерного рынка, где торгуют “по прайслисту”, и больше напоминают восточный базар.

Многие, впервые сталкивающиеся с ценами в энтерпрайз-сегменте бывают удивлены и разозлены тем, как сложно бывает, порой, получить цену продукта, и какие высокие цены получаются, когда их все же удается раздобыть. Дело тут в том, что на здешнем “базаре” существует некая условная цена, которая называется “листпрайс”. Это, еще раз отмечу, условная, в значительной мере фиктивная цена, которая фигурирует в документах, и является, на практике, “максимально возможной” ценой. Маленький секрет тут в том, что за эту цену никто ничего не покупает (ну, если вы не полный лох).

Когда вы приходите со своим интересом в компанию-партнера какого-либо вендора, и просите цены на вот такую вот конфигурацию, вам, в первый раз, назовут вот эту вот, в значительной мере несуразно высокую цену. Тут, если вы опытный покупатель, и знаете все эти маленькие секреты (в особенности если вы были в Турции, Египте, ??ндии и прочих странах с хорошо развитой “базарной” кульурой), вы не будете возмущаться, и гордо уходить, хлопая дверью, рассказывая потом в блогах про “диск SATA за полторы штуки долларов”. Нет, вы вежливо выслушаете предложенную цену, покажете свою заинтересованость, посетуете на высокую цену (продавец сочувственно покивает, цена и в самом деле высока), и предложите обсудить вопрос цены. Дальше начинается диалог и игра терпений, в которой выигрывает самый терпеливый и настойчивый, а это терпение вознаграждается разницей, между первоначально названной ценой, и той, за которую вы в результате ваш товар покупаете.

Я уже как-то, было дело, писал текст, несколько лет бывший очень популярным на этом блоге – “Как просить и получать скидки”. Рекомендую, в особенности, если вы только недавно на наш базар пришли. :)

Хочу пояснить, что я, может быть, тоже не в восторге от всей этой, откровенно говоря, дурацкой схемы. Но вот так уж сложилось, что в энтерпоайзе, как и на восточном базаре,  не торгуют по ценнику, тут нельзя приехать в супермаркет, погрузить в тележку midrange-сторадж на шесть дисковых полок SAS, и проехать на кассу. Ну, вот – нет такого. Не мы это все затеяли, не нам и заканчивать, и вообще в чужом монастыре, раз уж пришли, свои правила не устанавливают. Вот так тут торгуют по дурацки всю жизнь, смиритесь :-/ Вы их не переделаете своим возмущением и требованием “показать прайс-лист”. :)

Как же все это соотносится с темой топика, спросите вы? Дело в том, что, да, никто не покупает за цену прайслиста, это некая бумажная, “мнимая величина”. Однако это, фактически, единственная “твердая” цена, существующая в природе. Кстати, несмотря на свою мнимость, она очень даже участвует в бюджетных расчетах вендора, и некоторых других местах. Все остальные цены, а также величина дисконта – индивидуальны, и зависят от множества факторов. Дисконт может быть большим или маленьким, но он непостоянен, нефиксирован, он зависит от разных факторов, и индивидуален для клиента. Единственная зафиксированная цена в данном случае – это пресловутый “листпрайс”.

Ситуация, в которой Вендор А показывает на тесте в спецификации цену листпрайса, а Вендор B – цену листпрайса с дисконтом 45%, и считает от нее результат $/IOPS, напоминает мне соревнования по бегу, в которой один спортсмен пробегает сотню за 10 секунд, а другой – за 4, но если у первого под “сотней” – понимается сотня метров, то у второго – сотня футов (ну или сто метров с дисконтом 70% от листа ;). Можно ли считать второго – рекордсменом и победителем только на основании того, что у него результат его “забега” – меньше, чем у первого? По-моему ответ очевиден.

К сожалению, спецификация с ценами в бенчмарке SPC-1 находится в длинном и нудном Full Disclosure Report, а результат $/IOPS, из него получаемый – в самом начале Executive Report, в красивой цветной табличке, на которую все смотрят в первую очередь. Это, к сожалению, порождает повод для, ну, скажем так, не вполне честного поведения в “серой” зоне. Официальное описание бенчмарка не определяет то, какую цену вендор обнародует и берет при расчете, нужно только указать полную спецификацию, поэтому на совести вендора остается то, как именно он эту цену показывает. Не удивительно, что многие пользуются этой лазейкой, чтобы показать результат в $/IOPS лучше, чем у конкурента, особенно если конкурент, как честная маша, пишет в своем расчете единственную свою официальную (и самую высокую по факту) цену – листпрайс.

Поэтому, сравнивая системы по $/IOPS, всегда обращайте внимание на то, сколько метров было в стометровке, которую пробежал участник с таким выдающимся результатом. :)

Что такое IOPS?

Сегодня очередной перевод одного из моих любимых авторов, инженера NetApp Dimitris Krekoukias, пишущего в блоге recoverymonkey.org. Текст крайне важный и заставляющий задуматься. Казалось бы, все мы знаем, что такое “IOPS”, но знаем ли мы это на самом деле, и не упускаем ли мы, говоря про IOPS-ы, нечто важное из виду? Насколько полнятие IOPS является однозначно идентифицируемым и можно ли показатели “в IOPS” трактовать однозначно, и сравнивать различные результаты, различных вендоров между собой?

IOPS: Возможно наиболее известный показатель производительности системы хранения.

IOPS означает Input/Output (operations) Per Second, "операций ввода-вывода в секунду". Смысл величины выглядит довольно очевидно. Он измеряет объем работы за определенный промежуток времени (и это не то же самое, что мегабайты в секунду, MB/s).

Кто из вас не видел вендоров, которые превозносят достоинства своих систем хранения, демонстрируя огромные величины IOPS ими достигнутые? Кто из вас не принимал решения покупки системы хранения, основываясь на обещаниях вендорами этих величин? Однако: как часто вендоры, приводя свои результаты, в действительности четко определяли то, что они понимали под аббревиатурой "IOPS", публикуя эти результаты?

Для нетерпеливых, скажу это с самого начала: Величина IOPS сама по себе бессмысленна, и именно так и должна рассматриваться. Без дополнительных метрик, таких как latency, процентное соотношение операций чтения и записи и размера блоков ввода-вывода, величина IOPS совершенно бесполезна.

А теперь подробнее…

Continue reading ‘Что такое IOPS?’ »

Еще о тестировании Cluster-mode в SPC-1

Я не первый раз рубликую тут переводы постов инженера NetApp – Dimitris Krekoukias, ведущего автономный, и крайне интересный блог http://recoverymonkey.org/ (другие мои переводы его постов вы можете найти в рубрике “переводы”)

После долгого молчания, Dimitris опубликовал пост, вызванный публикацией отличных результатов кластера FAS6240 в Data ONTAP 8.1.1 Cluster-mode в бенчмарке блочного (FC) доступа – SPC-1, о котором я уже написал в понедельник. Однако вопросу почему он так хорош, и насколько именно он хорош – посвящен сегодняшний перевод.

NetApp опубликовал великолепные результаты тестирования Cluster-Mode в бенчмарке SPC-1

Опубликовано June 20, 2012

Мы тут в NetApp были довольно сильно заняты… заняты совершенствованием единственной в отрасли масштабируемой платформы хранения с универсальным доступом к данным, даже не считая множества разных других имеющихся в ней полезных штук.

Мы недавно выпустили ONTAP 8.1, которая, в Cluster-Mode, позволяет создать 24-узловой кластер (каждый узел которого может иметь до 8TB кэша) для задач NAS, и 4-узловой кластер для блочного доступа (FC и iSCSI).

А с выпуском ONTAP 8.1.1 (выпущенного 14 июня), мы увеличили лимит узлов для блочного доступа до 6, плюс добавили ряд дополнительных оптимизаций и возможностей. Между прочим, число узлов в кластере это пока только условный лимит официальной поддержки, это не жестко заданное ограничение.

После публикации нашего рекордного результата в бенчмарке NFS, люди спрашивали, как обстоит дело с производительностью блочного ввода-вывода в ONTAP Cluster-Mode, поэтому мы провели тестирование и опубликовали результаты бенчмарка SPC-1, используя часть той же системы, что уже была протестирована на SPEC sfs2008 NFS.

Для тех кто до сих пор думает, что NetApp не подходит для блочного доступа (это типичный FUD наших конкурентов): Это, на сегодня, лучший результат SPC-1 среди всех дисковых систем хранения, из расчета на уровень latency при достигнутом уровне IOPS (то есть возможно получить даже более высокие показатели IOPS на бОльших лимитах по latency, как я покажу далее в этом посте).

Вот ссылка на результаты и еще одна ссылка, на полную версию со всей доступной информацией.

В этом блоге я уже говорил о том, что представляет собой бенчмарк SPC-1 . Вкратце: Бенчмарк SPC-1 это общепринятый в индустрии, аудируемый, бенчмарк блочного доступа к системе хранения (по Fiber Channel) который проводит стресс-тестирование дисковой подсистемы большим объемом записей, перезаписей, локальных "хотспотов" и смешанной произвольно/последовательной, чтение-после-записи, запись-после-чтения нагрузкой. Около 60% рабочей нагрузки это операции записи. Размеры используемых в бенчмарке операций ввода-вывода различны, от маленьких до больших (таким образом IOPS в бенчмарке SPC-1 не идентичны и не могут быть сравнены напрямую с классическим тестом IOPS в full random блоками 4KB).

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

Трюк с бенчмарками обычно состоит в интерпретации результатов. Сама по себе величина достигнутых IOPS, хотя и полезна, но не показывает всей картины, и того, как данный результат соотносится с реальной жзнью и реальными приложениями. Мы попытаемся помочь расшифровать результаты в этом посте.

Перед тем, как мы перейдем к анализу и сравнению результатов, несколько замечаний для неверующих:

  1. В тестах NetApp не используется диски "с коротких ходом" (short-stroking), так часто любимые многими вендорами, проводящими тестирование, при котором используется только внешняя, наиболее быстродействующая часть диска, где сочетается максимальная линейная скорость и малый разбег механики коромысла жесткого диска, на чем можно показать наилучшие результаты. Вместо этого мы используем настройку параметров системы , чтобы использовать всю поверхность дисков, и не зависеть от того, насколько заполнены данными диски. Смотрите полный отчет здесь, страница 61. Для любителей распространять FUD: это эффективно "старит" состояние WAFL, приближая его к реальному состоянию реально эксплуатируемой системы. Мы также не используем оптимизацию размещения блоков путем их реаллокации.
  2. Падения производительности в ходе продолжительного тестирования не наблюдалось.
  3. Средняя величина latency (“All ASUs” в результатах) была плоской и оставалась ниже уровня 5ms на протяжении нескольких итераций теста, включая sustainability test в течение 10 часов (страница 28 полного отчета).
  4. Не использовался дополнительный кэш, кроме того, который поставляется в базовой поставке FAS6240 (Контроллеры 6240 поставляются с Flash Cache емкостью 512GB, при максимальной возможной емкости данной модели 3TB на ноду (контроллер), то есть для работы с большими нагрузками есть еще значительный запас).
  5. Это не "звездолет", построенный исключительно для завовевания победы и установления рекорда в бенчмарке. Мы использовали сравнительно немного дисков, в сравнении с конфигурациями других вендоров, и это не самая быстрая наша модель контроллера (еще есть 6280).

Анализ

Когда мы смотрим на результаты бенчмарка, следует сфокусироваться на следующих моментах:

  1. Высокий уровень установившейся производительности в IOPS (нестабильность показателей показывает на наличие проблем).
  2. IOPS/диск (это показатель эффективности – 500 IOPS/drive это вдвое лучше и эффективнее, чем 250 IOPS/drive, что, как следствие, означает меньше необходимых дисков в системе, снижает ее стоимость, уменьшает физический занимаемые в датацентре объем, и так далее.)
  3. Стабильно низкая latency (пики показывают наличие проблем).
  4. IOPS связан и зависит от latency (Получили ли вы высокие показатели IOPS вместе с высокой latency на максимуме? Это практически используемо?)
  5. Какой тип RAID использовался (RAID6? RAID10? RAID6 обеспечивает значительно лучшую защиту данных и лучшие результаты эффективности использования дискового пространства, чем зеркалирование, что ведет к снижению стоимость даже более надежного хранилища данных).
  6. Какие диски использовались? Хотите ли вы покупать такие диски?
  7. ??спользовался ли autotiering? Если нет, то почему нет? Разве он не помог бы в такой сложной ситуации?
  8. Какое оборудование потребовалось, чтобы получить стабильную производительность (сколько дисков и контроллеров потребовалось для построения системы? Означает ли это более сложную и дорогую систему? Как это все будет управляться?)
  9. Цена (некоторые вендоры указывают цену уже с учетом дисконта, в то время как другие публикуют цену в list price, так что будьте тут внимательнее).
  10. Цена/IOPS (наиболее полезная метрика – но следует сравнивать цену list price с list price).

SPC-1 это бенчмарк НЕ для измерения максимума потока данных; для измерения чистого GB/s смотрите другие бенчмарки. Большинство систем не дает больше 4GB/s в этом бенчмарке, так как много операций в нем рандомные (и 4GB/s это довольно много для рандомного ввода-вывода).

Сравнение систем

В этой части мы сравним дисковые системы хранения. Предсказуемо "чистые SSD" (или RAM) системы хранения имеют, конечно, очень высокие показатели производительности, и могут подойти, если ваша задача - обеспечивать работу с небольшим объемом данных очень быстро.

Но мы сосредоточимся на задачах высоконадежных систем общего применения, которые обеспечивают одновременно и высокую производительность, и низкую latency, и большую емкость, за разумную цену, а также, одновременно, большое количество функциональных фич(снэпшоты, репликация, кэширование в flash (megacaching), thin provisioning, дедупликация, компрессия, многопротокольность, включая NAS, и так далее). Опа – оказывается никто из конкурентов не может сделать сразу все что умеет делать NetApp.

Ниже приведен список систем и ссылки на их полные отчеты тестирования SPC-1, где вы сможете найти всю необходимую информацию. Все эти системы имеют высокие результаты и относительно плоскую кривую latency.

Также есть несколько других дисковых систем хранения, со значительными результатами по IOPS, но если мы посмотрим на их результаты sustained latency (“Sustainability – Average Response Time (ms) Distribution Data” в любом из полных отчетов) мы увидим, что общие показатели latency чересчур высоки и наблюдается значительная неравномерность, в особенности в начальной фазе, с пиками до 30ms (что крайне много), поэтому мы не взяли их в расчет.

Вот краткий перечень систем и их параметров, отсортированных в соответствии с latency. Кроме этого показана и их стоимость в ценах list price (это можно найти в полном отчете о тестировании) плюс стоимость операции $/IOPS, посчитанная исходя из list price (многие вендоры приводят в отчетах цену с уже введенной скидкой, чтобы цена выглядела пониже):

 

image

…но ведь тут показано, что некоторые системы быстрее NetApp… Как так?

Это зависит от того, насколько важен для вас показатель latency и его низкая величина (и от того, принимаете ли вы в расчет используемый тип RAID). Для подавляющего большинства нагрузок типа баз данных, низкая latency операций ввода-вывода гораздо предпочтительнее высоких показателей latency.

Вот как это увидеть:

  1. Выберите один из приведенных выше линков на полные отчеты Допустим это будет 3Par, так как он показывает одновременно и высокие показатели производительности, и высокие значения latency.
  2. Найдем в отчете главу под названием "Response Time – Throughput Curve". Например это страница 13 в отчете по системе 3Par.
  3. Проследим, как latency резко растет при повышении загрузки системы.

Например посмотрим на кривую 3Par:

image

Заметьте то, как latency резко растет после некоей точки.

Теперь сравним с результатом NetApp (страница 13):

image

Отметьте, что результат NetApp не просто имеет хорошие показатели latency, но, что еще более важно, latency остается хорошей и растет исключительно медленно по мере увеличения нагрузки на систему.

Вот почему колонка“SPC-1 IOPS around 3ms” была добавлена в таблицу. Фактически это ответ на вопрос что бы было, если бы уровень latency был в тесте одинаков для всех протестированных систем?

Когда вы примете эту позицию, вы увидите, что система 3Par фактически медленнее, чем NetApp, если сравнить их на одинаково низком желаемом уровне latency.

Вы можете взять точные показатели latency из графика на странице 13, у NetApp таблица выглядит так (озаглавлено "Response Time – Throughput Data"):

image

Действительно, при сравнении результатов мы видим, что только IBM SVC (с кучей стораджей V7000 за ним) оказывается быстрее NetApp при столь же хороших показателях latency. Что плавно подводит нас к следующей главе…

Сколько железа обеспечивает такую производительность?

Почти любая инженерная задача может быть решена, если дать приложению достаточное количество необходимого оборудования. Результат IBM это как раз хороший пример того, как можно получить хороший результат собрав вместе большую кучу дорогостоящего железа:

  • 8 SVC контроллеров (virtualization engines) плюс…
  • …16 отдельных систем V7000…
  • …каждая состоящая из еще 2 контроллеров SVC и 2 контроллеров RAID
  • 1920 дисков 146GB 15K RPM (не так-то просто такие купить нынче, не так ли?)
  • ??того 40 контроллеров SVC (8 больших и 32 поменьше), 32 RAID-контроллера, и все это битком наполнено дисками.

Даже отставив в сторону вопрос того, как это все управляется, сколько это потребляет электричества и как размещается, понятно, что это довольно большая система. Я даже не пытался посчитать, сколько тут процессоров и ядер работают параллельно, уверен, их много.

Сравним эту кухню с вариантом конфигурации NetApp:

  • 6 контроллеров в одном кластере
  • 432 диска 450GB 15K RPM (самый распространенный и массовый наш диск по состоянию на июнь 2012).

Вопросы (с удовольствие увижу ответы на них от других вендоров):

  1. Что произойдет при использовании RAID6 у других вендоров? NetApp всегда тестирует системы с использованием своей версии RAID6 (RAID-DP). RAID6 значительно надежнее, чем зеркалирование, особенно в больших пулах (не говоря уже о более эффективном использовании пространства дисков). Большинство клиентов не хотят покупать большую систему в конфигурации только-RAID10… (пользователи - задавайте вопросы вашим вендорам. Тут нет никакого волшебства – ручаюсь, у них есть внутренние результаты для RAID6, попросите показать их вам).
  2. Autotiering это одна из самых раскрученных сегодня фич, с признаками того, что это достижение, превосходящее изобретение пенициллина, или даже колеса, а может даже и огня… Однако никто из дисковых массивов не рассматривает использование SSD для autotiering (IBM опубликовала однажды результат – не впечатляет, делайте выводы). Это при том, что бенчмарк, по своей спецификации активно создающий "горячие точки" (hotspots) нагрузки, должен бы быть здесь идеальным кандидатом для демонстрации эффективности…
  3. Почему EMC и Dell не желают публиковать результаты SPC-1? (Они оба, кстати, члены SPC, Storage Performance Council). Только два этих вендора, из крупных игроков на рынке, кто еще не опубликовали свои результаты. EMC ранее говорила, что SPC-1 это нереалистичный тест – ну, типа только ваше приложение с вашими данными на вашем сторадже может показать по-настоящему реальные результаты. Это так, однако SPC-1 это общепринятый индустрией стандартный бенчмарк для блочного доступа произвольного характера, и отличная "лакмусовая бумажка".
  4. Для системы, которая регулярно позиционируется для нагрузки Tier-1, IBM XIV, результаты бенчмарков, увы, отсутствуют также, даже для самой новой ее Gen3. Неужели IBM стесняется показать свои результаты SPC-1 для этой системы?
  5. Наконец – некоторые наши конкуренты продолжают утверждать, что NetApp, дескать, это "не настоящий SAN", что это, якобы "эмуляция SAN", и так далее. Что бы это все ни значило на самом деле – может быть подход NetApp, с такой "эмуляцией" оказывается, по факту, лучше?… Максимальная write latency в этом тесте составила 1.91ms для в основном записываемой нагрузки!

??тоговые мысли

В накануне опубликованном результате бенчмарка SPC-1, NetApp показала вновь, что Data ONTAP в Cluster-Mode это высокопроизводительная и масштабируемая система, одинаково подходящая как для SAN, так и для NAS задач. Суммируя все вышесказанное, можно сказать, что ONTAP Cluster-Mode:

  • Позволяет строить высокопроизводительные и динамически-масштабируемые кластеры хранения для FC, iSCSI, NFS и CIFS.
  • Демонстрирует низкую latency при высокой производительности.
  • Предлагает исключительно хорошее соотношение price/performance.
  • Позволяет доступ к данным одной ноды с любых других нод.
  • Перемещает данные между нодами, не прерывая работы с ними (включая CIFS, что ранее не было практически невозможно).
  • Поддерживает традиционные для NetApp возможности (оптимизацию процессов записи, взаимодействие с приложениями, снэпшоты, дедупликацию, компрессию, репликацию, thin provisioning, и кэширование во flash (megacaching).
  • Может работать на в точности тех же самых контроллерах FAS, что и в 7-mode, что защищает инвестиции.
  • Может виртуализовывать системы хранения, расположенные за ними.

??сточник <http://recoverymonkey.org/2012/06/20/netapp-posts-great-cluster-mode-spc-1-result/>

Правильная интерпретация $/IOPS и IOPS/RAID для результатов SPC-1

Новая заметка в блоге RecoveryMonkey, которые я всегда стараюсь переводить, так как Dimitris K. всегда пишет интересно и актуально.

Interpreting $/IOPS and IOPS/RAID correctly with SPC-1 results

Posted on October 19, 2011

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

Вот некоторые моменты, на которые стоит обратить внимание.

О соотношении price/performance:

Когда вы оцениваете приведенные $/IOP, убедитесь, что вы сравниваете цены list price (смотрите на отчет с полным описанием, который содержит все детали тестированной конфигурации).

В противном случае вы можете получить неверное представление о $/IOP, так как один вендор дает цены list prices, а другой в то же время показывает цену с большим дисконтом, "street price".

Например, система, показавшая $6.5/IOP после 50% дисконта, должна показывать $13/IOP по ценам list prices.

О RAID:

Как вы уже читали в предыдущих постах, RAID играет большую роль как в вопросе защиты, так и в вопросе производительности.

Все опубликованные результаты SPC-1 используют RAID10, с единственным исключением в виде NetApp (мы используем RAID-DP, математический аналог RAID6 с точки зрения уровня защиты данных).

Вот (очень) грубый способ конвертировать результаты RAID10 в RAID6, если вендор, которого вы рассматриваете, не приводит свои результаты для RAID6:

  1. SPC-1 на 60% состоит из записей.
  2. Возьмем любой результат RAID10, например пусть это будет 200 000 IOPS.
  3. 60% от этого составляет 120 000, это будут операции записи. 40% это операции чтения, или 80 000 IOPS.
  4. При использовании традиционного RAID6, вы получаете, грубо, четырехкратное замедление для операций записи: 120 000/4 = 30 000
  5. Добавляем к этому 40% чтений, и получим результат:
  6. 80 000 чтений + 30 000 записей = 110 000 SPC-1 IOPS в случае использования той же конфигурации с RAID6. Это примерно половина от результата RAID10…

Обязательно убеждайтесь, что вы "сравниваете яблоки с яблоками". Я знаю, в наше время информационной перегрузки мы всегда ленимся углубиться в детали, но все же, читая результаты SPC-1, потратьте немного времени на то, чтобы просмотреть полное описание результата, там всегда содержатся очень интересные детали…

??з чего складывается величина IOPS отдельного диска?

Я в этом блоге уже несколько раз упоминал тот факт, что жесткий диск имеет определенную “конструктивно заданную” величину параметра IOPS – Input-Output Operations per Second – число операций ввода-вывода в секунду для random-операций. Отдельный жесткий диск имеет производительность в IOPS сравнительно небольшую. Так, для дисков SATA говорят о 75 IOPS, то есть отдельный диск может произвести за секунду 75 операций чтения или записи блока данных с “блинов”. Несколько производительнее диски SAS или FC, до 175 IOPS при скорости вращения 15000 оборотов в минуту. Это совсем не грандиозные объемы операций. Ну представьте, 75 операций ввода вывода (записи и чтения) в секунду. Всего лишь. Если у вас на компьютере работает примерно 30 процессов (программ и системных сервисов), то на каждый такой процесс приходится всего две с половиной операции чтения или записи в секунду.

??менно для повышения производительности в дисковых системах хранения данных используется множество дисков. Совсем не ради емкости, по крайней мере сегодня – как правило. Ведь чем на большее число физических дисков (на нашем птичьем языка-жаргоне прижилось калькированное с английского, и отдающее машинным маслом токарного станка словечко “шпиндель” (spindle), означающее физический жесткий диск) мы можем разложить наши данные, чем больше дисков задействовать для обслуживания ввода-вывода, по 75 (или 175) с каждого, тем выше получится суммарная производительность системы хранения на операциях random read/write.

Но откуда же берется это мистическое число “IOPS со шпинделя”, чем оно так жестко определяется?

На самом деле формула, определяющая эту величину довольно проста.

IOPS Estimated = 1 / ((seek time in ms / 1000) + (latency in ms / 1000))

Как вы видите, двумя основными параметрами диска, задающими величину в IOPS являются величина времени seek, то есть перехода магнитной головки от одной позиции до другой, и latency, то есть величины задержки от момента отправки команды, до получения запрошенного на выходе.

Возьмем, для примера диск Seagate SATA 1TB, 7200RPM:

Estimated IOPS = 1 / ( ( (average read seek time+average write seek time) / 2) / 1000) + (average latency / 1000) )

или с указанными в спеках данных для данного диска:

Estimated IOPS = 1 / ( (9.00 / 1000) + (4.16 / 1000) ) = 1 / ( (0.009) + (0.00416) ) = 75.987 - ~ 75 IOPS

??ли для диска Seagate SAS 600GB 15KRPM:

Estimated IOPS = 1 / ( (3.65 / 1000) + (2.0 / 1000) ) = 1 / ( (0.00365) + (0.002) ) = 176.99 - ~ 175 IOPS

Показатели IOPS отдельных дисков SATA/FC/SAS

В одном из постов, опубликованных ранее, посвященному “мнимой дешвизне” дисков SATA, и проблемами при построении системы хранения заданной производительности в IOPS, меня спрашивали об источниках приведенных показателей IOPS отдельных дисков в зависимости от их типа.

Нашлась вот такая картинка, с графиками тестирования различных типов дисков.

image

О “дешевизне” SATA-дисков

Ранее, в посте про надежность RAID-5 я уже писал про такой аспект дисков SATA, как надежность и величину UER (Unrecoverable Error Rate, иногда также называется UBE - Unrecoverable Bit Error).
Величина эта почти на порядок (в 10 раз) хуже, чем для дисков SAS/FC, причем причина тут конструктивная, а не просто в интерфейсе.
Однако, для небольших систем “начинающих”, в первую очередь роль играет цена.

Жесткий диск (и система хранения) характеризуется, в общем случае, двумя параметрами: емкостью (измеряется в Мегабайтах/Гигабайтах (MB/GB)), и быстродействием (измеряется в IOPS - Input-Output Operations per Second - Операций ввода-вывода в секунду ). ?? если емкости дисков непрерывно растут вот уже несколько лет, то показатели по IOPS замерли уже довольно давно.
Принято считать, что диск SATA дает 80-100 IOPS, диски SAS/FC - 140-160 для 10KRPM, 180-200 - 15KRPM.

Стоимость за мегабайт для дисков SATA весьма низка, на сегодня она составляет 0,17$/MB для диска SATA 1TB, однако около 0.83$/MB для диска SAS 300GB. (я оперирую ценами, взятыми из price.ru: SATA WD RE3 1TB 7200 - 170$, SAS Hitachi 300GB 15K - 250$)

??ная картина будет, если мы посчитаем стоимость IOPS-ов. Диск SATA при этом будет стоить 2,1$ за IOPS, а 15K SAS - 1.38$/IOPS

Допустим, перед нами стоит задача создать сторадж на 3 TB, при этом быстродействие его должно быть не хуже 3000 IOPS.

Рассмотрим два варианта:
Если мы рассматриваем только емкость, то будет все просто:
SATA 1TB нужно три штуки, при цене за диск в 170$ общая сумма хранилища заданного размера, без учета RAID будет 510$
Дисков SAS на 15KRPM емкостью 300GB будет нужно 10 штук, при цене за диск 250$ такая емкость будет стоить 2500$

Казалось бы вывод очевиден, SATA дешевле, причем раз в пять.
Но мы пока не учли второе требование, про 3000 IOPS.

Для быстродействия системы емкостью 3TB в 3000 IOPS, из расчета в 80 IOPS с каждого диска SATA, нам нужно распараллелить ввод-вывод не менее чем на 38 дисков. 38 дисков SATA, это будет стоить уже 6460$.
Однако для дисков SAS те же 3000 IOPS достижимы на всего 17 дисках, что стоит 4250$

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

Этот момент часто не учитывают люди, планирующие использование SATA на задачах primary storage.

Если перед вами стоит задача не просто создать емкость хранения, без учета показателей по быстродействию, что, вообще говоря имеет только одно применение - хранилище архивных и резервных копий, а систему хранения, обеспечивающую приемлемую скорость работы приложения его использующего, то вам следует забыть про гигабайты, и ориентироваться, в первую очередь, на производительность дисков, на IOPS. Необходимый объем вы получите “автоматичски”.
Сегодня, во многих случаях, при планировании системы хранения, производительность есть ее “первичное”, ключевое свойство .
??ли, иначе говоря: “GB are free, IOPS cost you money” - “Гигабайты бесплатно, вы платите только за доставку ??ОПСы”

О производительности: IOPS vs. MB/s

Тема измерения производительности столь велика и непроста, что стоит отдельной статьи только на эту тему. Однако без элементарных знаний, которые можно попробовать изложить кратко, для понимания рассматриваемой темы эффективной системы хранения не обойтись.

Для начала следует определить два основных общепринятых понятия, используемых для измерения производительности.
Первый из них – Input-Output Operations Per SecondIOPS - показывает количество операций ввода-вывода в секунду, которые способно обработать устройство. Этот параметр прежде всего характеризует скорость обработки коротких запросов, и наиболее часто применим для оценки таких задач, как OLTP-база данных и близких к ней.
Операции базы данных как правило характеризуются обменом относительно небольшими блоками (как правило 4-8KB). Каждая такая операция по считыванию или записи блока является одним IOPS-ом. Таким образом, чем выше показатель производительности в IOPS, тем выше производительность базы данных.

Другим параметром, характеризующим производительность, является Скорость передачи данных, так называемый traffic throughput, измеряемый в MB/s, то есть количеством мегабайт, проходящих по интерфейсу ввода-вывода в секунду.
Этот параметр характеризует скорость обработки в случае больших блоков, классическая задача, для которой критичен именно параметр MB/s, это аудио-видео обработка, резервное копирование и DSS-базы данных.

Какой же из этих параметров более «правильный», какой более важен? Разумеется оба.
Однако следует понимать, что оба этих параметра связаны между собой «обратно пропорционально». Увеличение величины в IOPS вызывает снижение величины в MB/s и наоборот.

Чтобы понять почему так, нужно рассмотреть простой пример и аналогию.
По дороге следует переместить из А в Б большое количество человек. Возможно два варианта: мы можем перевозить их в их личных автомобилях или же усадить в автобусы. Пропускная способность дороги конечно же будет выше в случае перевозки людей автобусами, то есть «большими блоками». Однако методы общественного транспорта обычно вступают в конфликт с индивидуальными целями и маршрутами. Хорошо если в Б у нас огромный завод, на который устремлен основной поток из А. Можно погрузить все «байты» в один большой пакет-автобус на входе, и выгрузить его на остановке у завода, куда собственно и направляются все наши «байты».
Однако если наши байты не едут на завод, а разъезжаются по индивидуальным и независимым делам-«операциям», каждый имея индивидуальный маршрут, то доставка их «автобусом»-большим пакетом приведет напротив к большим потерям времени. В этом случае транспортировка индивидуальными автомобилями будет более выгодна. Однако общий пропускной объем дороги заполненной индивидуальными «пакетами»-авомобилями везущими по нескольку байт каждый, разумеется будет ниже, чем при перевозке большим пакетом-«автобусом».
Таким образом увеличение пропускной способности в MB/s за счет укрупнения пакетов приводит к снижению IOPS, и наоборот, рост операций в секунду «доставленных к цели пассажиров» нашей дороги-интерфейса, запруженной автомобилями, приводит к снижению ее пропускной способности в MB/s. Нельзя одновременно достичь высоких показателей в IOPS и в MB/s просто по физическим свойствам существующего оборудования.
Либо большие пакеты-«автобусы» и их мало («операций в секунду»), либо маленькие индивидуальные пакеты-«автомобили», каждый осуществляющий индивидуальную «операцию» по доставке данных, но заполняющие всю дорогу, и общий human traffic в результате невелик.

Отсюда видно, что широко разрекламированная величина пропускной способности интерфейса SATA-II дисков в 300MB/s далеко не всегда (а чаще и вообще никогда) не будет достижима на практике. Более того, в случае использования таких дисков для операций с базой данных OLTP роль будет играть не столько потоковая производительность интерфейса, сколько гораздо реже публикуемая максмальная величина IOPS диска, в настоящий момент равная для SATA 7200rpm примерно 50 IOPS, и в случае OLTP-нагрузки выиграет не диск с самыми высокими данными по мегабайтам в секунду, а самый быстродействующий по IOPS - параметру, напрямую связанному с рассмотренной выше «латентностью», такой как, например, диск с интерфейсом FC и скоростью вращения 15Krpm, для которого величина IOPS достигает 200. При прочих равных диски SATA всегда проиграют в случае работы с базой данных не только дискам FC, но и традиционным SCSI.
Однако в случае использования дисков на задачах считывания и записи аудио-видеоданных, или резервного копирования, характеризующихся большим и постоянным потоком данных большими блоками, диски SATA вполне могут быть не хуже значительно более дорогостоящих FC или SCSI, легко выигрывая у них за счет цены за хранимый мегабайт.

Как мы видим, точное понимание решаемых задач безусловно необходимое требование при выборе того или иного решения дисковой системы хранения.