SSD, AllFlash и гиперконвергенция

Несколько новостей этих летних месяцев заставили меня написать такой несколько визионерский текст, с которым, возможно, кто-то будет несогласен. Этим летом как-то врывообразно появилось множество публикаций, посвященных SSD, Flash, да и вообще новым технологиям хранения данных, «поднявшимся над горизонтом». Не секрет, что HDD, «жесткие диски», технология, история которой насчитывает уже 60 лет (!) сегодня довольно очевидно стагнирует. Она развивается несколько последних деятилетий уже просто раз в пару лет удваивая емкость, но ничего не добавляя существенно нового. Достаточно ясно, что сегодня HDD это такие «магнитные ленты», давно остановившаяся в своем развитии технология. Она в целом устраивает всех на своем месте, но уже не являнтся «острием прогресса», обреченная на постепенное проваливание в нишу, где когда-то и утонули «магнитные ленты». Развитие IT идет совсем в другом месте.

Все кто внимательно следят за тем, что происходит в отрасли видят, что сегодняшее острие прогресса — так называемые «твердотельные устройства хранеия». SSD стали уже бытовой повседневностью. Например, пока я писал эти строки, я понял, что у меня, в моем многочисленном домашнем IT-парке (2 десктопа, 3 ноутбука, AppleTV, домашний лаб-сервер, три RaspberryPie-подобных девайса) нет ни одного устройства без SSD, исключая стоящий на полке 4-дисковый NAS Synology где я храню фильмы, музыку и бэкапы. Конечно, не только SSD, не нужно забывать про новое направление использования Flash не в форме «эмуляции диска» (а именно это и есть SSD, по большому счету), но и как нативную память, в форме разнообразных NVMe, NVDIMM, и так далее, но SSD — в первую очередь.
Достаточно посмотреть на то, что все вендоры классических СХД сегодня выпустили свои AllFlash системы хранения, избавившись в них от HDD, и предложив пользователям невиданную ранее с обычными «блинами» производительность и latency.

AllFlash06

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

Возьмем, например, один из самых свежих образцов современных SSD, доступных на массовом рынке, SSD Samsung EVO 950Pro, в формате M.2, с поддержкой NVMe. Это один из самых производительных SSD, и давайте посмотрим, что это значит.
В техспеке для устройства, емкостью 512GB указаны показатели рандомного чтения (random read) блоками 4K при глубине очереди 32 (Q32) и 4 потоках ввода-вывода равные 300K IOPS. Измерения «реальной жизни», проведенные Storagereview.com для 4K aligned read, с использованием IOmeter по их методике, показывают примерно 200K IOPS для величины Outstanding IOs равной 64. Возьмем эту величину за основу.
200 тысяч IOPS рандомного чтения блоком 4Kбайт означают, что поток данных рандомного (!) чтения через интерфейс ввода-вывода с одного SSD емкостью 512GB равен:
200 000 * 4096 = 819 200 000 байт в секунду = 0,763 Gbyte/s = 6,1 Gbit/s
что означает, что один современный высокопроизводительный SSD для кастомерского рынка, при правильном его подключении и использовании, на рандомных операциях сегодня утилизирует полностью интерфейс SATA-3, или же половину SAS-3 (12Gbit/s). Два таких диска, с суммарной емкостью всего в 1TB, забьют собой канал SAS в 12 гигабит в секунду. И это — два диска, сегодня, без учета завтрашнего дня и перспектив NVMe.
Устройства NVMe с легкостью забьют трафиком канал 40G Ethernet.

А уж когда выйдет на рынок 3D Xpoint, который нам уже «вот-вот» обещают Intel с Micron, то ситуация с попыткой использовать сетевые системы хранения с новыми flash-подобными твердотельными устройствами хранения становится окончательно безнадежной.

Flash-vs-Network-Throughput

Нельзя сказать, что в индустрии этого не понимают. Да, уже с самого начала использования Flash, для хранения для решения этой проблемы что-то пытаются делать, прежде всего это попытка реализовать «многослойное кэширование», где одним из слоев был бы Flash, причем, часто, этот flash переносят поближе к серверу. Однако это все были полумеры. Не секрет, что кэширование, в особенности кэширование записи, сильно усложняет логику работы системы, а многоуровневое каскадное кэширование и double buffering еще и пагубно влияет на latency. Вся эта цепочка переливаний данных «из ведра в ведро», последовательно, во все более быстрое «ведро», конечно, на тот момент, было способом решения, но совсем не идеальным. Доступ к данным на flash все еще оставался на порядок медленнее тех скоростей, которые обеспечивал доступ к DDR DRAM (что убивало любую синхронность операций), плюс создавало множественные сложности с организацией доступа. Постепенно становится ясно, что flash, используемая как кэш к хранилищу данным, это не то, что может полностью раскрыть ее потенциал.

Стало видно, что назревает классическая «революционная ситуация», когда пользователи не хотят жить по-старому, а вендоры СХД — не могут жить по старому, и, что еще более важно, не имеют средств и желания это «по-старому» похоронить, просто потому, что СХД, как архитектура и концепция, используемая с flash и flash-подобными устройствами хранения, изжила себя. Для flash сегодня архитектура, при которой данные хранятся «где-то» в одной «кучке», которую мы целенаправленно держим вместе, раздавая множеству потребителей из одного места по одному (двум) проводам, это очевидная «гиря на ноге». Она существовала только потому, что скорость передачи по каналу SAN была заведомо, на порядки быстрее, чем производительность канала к данным на самом устройстве хранения, то есть к диску, и это позволяло загружать канал SAN, агрегируя в нем множество каналов к HDD. Сегодня, когда один SSD с достаточно пустяковой емкостью в состоянии полностью заполнить своим трафиком весь интерфейс от системы хранения к серверу, эта архитектура очевидно изжила себя.

Я не хочу сказать что СХД умрут вот прям завтра. В конце концов, даже уже давно и справедливо похороненный RAID 5 все еще где-то используется, вопреки всем мрачным прогнозам о его неминуемой смерти. Кому-то вполне хватит для его скромных задач дешевой полочки с 12 дисками SATA, подключенной по 4G FC. Такие пользователи есть, тысячи их.

Но если мы смотрим в будущее, и если нацеливаемся на максимумы производительности, которые может дать нам сегодняшняя технология, то СХД в этом будущем места нет. Они обречены угаснуть как угасают все старые и пережившие свой век технологии, как память на ферритах, или накопители на магнитной ленте, когда-то бывших символами «ЭВМ». Так и шкафы с моргающими рядами лампочек на стоящих рядочками жестких дисках последуют за ними. В будущем, если сохранятся нынешние тренды, а я не вижу, отчего бы им не сохраниться, СХД, как некоему отдельному устройству, где стоят все наши жесткие диски, отдающиеся потом по сети потребителям, этим устройствам в будущем места нет.
Единственный способ эффективно использовать новые методы хранить данные — хранить их максимально близко к CPU и RAM, в идеале — на той же шине, обеспечивая максимально короткий путь между «устройством хранения» и «устройством обработки» этих данных. И это именно то, чем сейчас занимается Nutanix и вся наша гиперконвергентная тусовка из десятка молодых вендоров.

Вот почему, как мне кажется, гиперконвергентность и AllFlash — «созданы друг для друга», и именно сюда, в направлении архитектурного объединения «дисков» и «CPU» будет расти индустрия систем хранения, если она рассчитывает в самом деле использовать все потенциальные возможности будущих устройств хранения, в особенности SSD и NVMe.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *