
Поначалу история звучит довольно просто: СХД хорошо работает три года на расширенной гарантии, относительно нормально живёт четвёртый, а на пятый покупается новая вместо устаревшей. Вендоры выжимают из вас деньги повышением стоимости поддержки и всякими платными фичами вроде поддержки VDI. Можно поломать эту схему? Наверное, да.
Компания вышла на рынок с интригующим предложением: железяка всегда работает, всегда делает это быстро, стоимость поддержки каждый год одна и та же, все фичи доступны сразу. Ну то есть просто взяли коробку и время от времени меняют в ней комплектующие так, что они устаревают примерно со скоростью замены. Раз в три года обновляются контроллеры, есть возможность замены старых дисков на более современные, т. е. занимаемое СХД в стойке место может не только расти, но и уменьшаться, при этом объём и производительность увеличиваются.
Собственно, первое, что вы видите в стойке — это ручки с названием модели, за которые можно и нужно дёргать контроллеры из массива.

Делается это без выключения, наживую, и запас производительности такой, чтобы банковские системы не тормозили во время замены. Чтобы так получилось, понадобилось написать собственную файловую систему (точнее, аналог RAID), собрать внутри кластер и сделать ещё пару улучшений, заодно выкидывая оверхед, доставшийся от жёстких дисков.
Давайте посмотрим, что получилось и как получилось. Начнём с архитектуры.
Для начала — процедура работы с массивом не предусматривает кнопок питания. Совсем. Не понадобится. Для выключения достаточно просто выдернуть кабели из PDU.

Архитектура Pure Storage
Компания начинала с того, что разработала с нуля очень хорошую архитектуру, заточенную под флеш (c 2017 года — NVMe), и эффективные алгоритмы дедупликации и компрессии данных. Расчёт был такой: на рынке тогда были массивы из жёстких дисков, гибридные решения и SSD all-flash. Флешовые были дорогие, а дисковые — медленные. Соответственно, они ворвались в конкурентное окружение с флешовыми массивами по цене владения дисковых.

Сделали вот что:
- Написали собственную ОС для дисков. Главная особенность — быстрое сжатие данных перед записью, а потом постпроцессинг с мощным дедупом, который позволяет утрамбовать их ещё плотнее и точнее.
- Взяли только флешовые диски (сейчас это вообще строго NVMе) и мощное железо для вычислений.
Первые внедрения были под VDI-среды, поскольку данные там очень хорошо сжимаются. Алгоритмы дедупликации и сжатия давали выигрыш в шесть–девять раз по используемому месту, то есть при всех преимуществах all-flash скидывали цены примерно на порядок. Плюс подкупала экономическая модель: фиксированная стоимость на поддержку и возможность не менять железку. Тогда я увидел первые замены двух стоек на трёх или шестиюнитовые исполнения, но всё ещё не верил, что эта железяка будет использоваться где-то за пределами VDI.
И тут LinkedIn начал хранить на этих железках. Подключился AT&T. Топ банков и телекомов в США тоже закупил в прод.
Оказалось, алгоритмы сжатия достаточно хорошо подходят для сред разработки и тестирования. После замены SSD на NVME внезапно началась конкуренция в обычных транзакционных базах данных в банковском сегменте. Потому что массив получался быстрым и надёжным из-за своей архитектуры «в любой момент можем потерять два любых флеш-модуля». Потом вышел флеш-массив на более дешёвых чипах (QLC) со временем отклика 2–4 мс, а не 1 мс как в топовых моделях, и я начал наблюдать вынос тех же VNX и Compellent. Стало понятно, что железка вполне себе конкурентоспособная.
Естественно, стоимость ТБ будет по-прежнему высокой там, где есть несжимаемые данные: это шифрование, хранение архивов, видеопотоки (видеонаблюдение) и библиотеки изображений, но иногда и такие внедрения случаются, когда клиенту требуется большая производительность. Знаю случай, когда сжали видео (казалось бы, сжатые данные) дополнительно на 10 %.
Но даже для обычных баз данных оказалось вполне рабочей по цене за гигабайт.
И вот тут-то начала подкупать модель «вечнозелёной» СХД.
Постоянный апгрейд
За пять лет в железке из старого остаётся только шасси и блоки питания, по сути. Можно переезжать рывками с переносами, а можно менять комплектующие как в кластере. Собственно, это и есть кластер, только собранный в одной трёхюнитовой (или шестиюнитовой) коробке. Железо делали с нуля для себя. Сначала давайте посмотрим на архитектуру, а потом перейдём к тому, почему удобно менять её по кускам.

Интересные решения такие:
- Вычислительная мощность всегда в два раза избыточная: это нужно для замены контроллера без деградации производительности. При этом на фронте работают оба контроллера, а на бэкенде для записи на флеш-модули используется один контроллер.
- RAID-массив заложен на уровне ОС контроллеров, он N + 2, то есть можно без остановки вытаскивать два любых диска. Что самое смешное, как вытаскиваешь — можно поменять их местами и воткнуть обратно, и всё продолжит работать. Это я на тестах проверил.
- Поскольку дисков N + 2, всегда можно восстанавливать данные, используя наименее занятые диски. То есть если данные хранятся на пяти дисках, то достаточно трёх из них для полноценного чтения. И RAID, собственно, читает с трёх дисков, потому что восстановить данные, используя процессорную мощность второго контроллера (который стоит в запасе фактически) быстрее, чем прочесть полный набор.
- И можно выбирать для чтения наименее занятые диски! То есть если в нашем примере данные на пяти дисках, то мы будем читать с тех, куда не идёт запись. Система приоритетов тоже на уровне ОС контроллера, и это какая-то чёртова магия.
- Как вы помните, кэша контроллера нет! Есть буфер на запись, установленный отдельно в шасси, он маленький (несколько ГБ), и он задействуется доли секунды во время онлайн-сжатия данных. Защищён он, кстати, большими конденсаторами, которые позволяют успеть записать всё из буфера при отключении питания. Это я тоже несколько раз проверил. Буфер защищён зеркалированием двойным, там четыре модуля в RAID 10.
- Вместо кэша контроллера на чтение — сами NVMe-диски, на запись — модули NVRAM. Дополнительно возможна установка модулей Optane. Архитектура не похожа на мидрейндж — не зеркалирует кэш, нет классического кэша (но есть SCM-память), нет накладных расходов на это.
- Вместо кнопки питания просто гнездо кабеля. Если его вдруг нужно куда-то перевозить, то есть процедура выключения, но можно просто дёрнуть кабель. Страшно, но работает.
- На первичной записи в буфере лёгкая компрессия примерно уровня 3:1, дальше данные пишутся на диск и потом на постпроцессинге прогоняются тяжёлыми алгоритмами и дедупом. Гранулярность блока 512 байт при том, что норма в индустрии 8 КБ. Если блоки повторяются — они плавающие, то есть на повторах границы раздвигаются. Это даёт лучшие коэффициенты сжатия по сравнению с другими вендорами. Старые архитектуры заточены на HDD, новые же позволяют менять время процессоров на более плотную упаковку.
- Приложение может прозрачно переезжать без переключения томов на другие такие же устройства (это для удалённой репликации). Весь софт входит в базовую поставку, апдейты приходят в виде обновлений прошивки.

Но компании оказалось мало собрать свою архитектуру и написать к ней фактически серверную ОС. Они залезли ещё в низкий уровень самих флеш-чипов и выпустили свои. Но при этом совместимые со стандартами. Сверху интерфейс NVMe, внутри чипы своей разработки.

По такому пути ходила Violin, что когда-то дало им космически быстрые массивы. Только они сделали свой собственный стандарт, а здесь используется открытый и общедоступный. Для чего это нужно? Прошивка чипа представляет собой часть прошивки контроллера, и поэтому СХД точно знает, что именно происходит на каждом отдельном кирпичике.

Если в обычной дисковой полке каждый SSD или NVMe-модуль — это маленький чёрный ящик для контроллера, то тут он видит вообще всё. Понадобилось это при решении проблемы большого адресуемого объёма, потому что проблемы flash-массивов всё те же: управление износом, сбор мусора и т. п. Это делается прошивкой контроллеров.


То есть, как видите, пазл складывается так: дешёвое место достигается за счёт обмена на производительность. Высокая производительность означает постоянное избыточное число процессоров и RAID. Избыточное число процессоров означает мощный постпроцессинг сжатия и возможность терять любую часть без потери производительности. RAID сочетается с этой идеей. То есть все эти преимущества чуть ли не бесплатно дают фишку вынимать любую часть «наживую».
Дальше приходит маркетинг и предлагает громкое заявление «нестареющая СХД». Фиксированный ценник поддержки, включено всё ПО, никаких дополнительных бандлов. За счёт отдельного уровня сервиса можно делать замену контроллеров бесплатно раз в три года (Evergreen GOLD-уровень). Есть апгрейды по мере повышения требований: я видел, как XR2 поменяли на XR3. Поработал год, потом пришёл бизнес, сказал, нам нужно новое. У вендора есть вариант сдать старые контроллеры трейд-ином и получить новые раньше времени. Хороший апгрейд. Контроллеры просто меняются по одному.
Апгрейд дисков интереснее. Приходит сервисная полка дополнительная с дисками с завода. На полку мигрируются данные без остановки — все данные с тех носителей, что подлежат замене. Полка работает с основными контроллерами (у неё есть и свои). Фактически это юнит-датапак, временное хранилище. Когда миграция кончается, диски помечаются как ОК, инженер их вынимает из шасси. На место старых вставляет новые и запускает обратную миграцию. Это занимает день и больше, но приложения и сервера не замечают. Поскольку эти СХД часто стоят у сервис-провайдеров, есть возможность одновременной замены и апгрейда: в рамках Evergreen GOLD можно старые диски поменять на несколько новых ёмких и быстрых, плюс докупить таких же.
Так, хорош заливать, слабое место всегда компрессия!
Это мы привыкли слышать от пользователей дисковых СХД. Там история стандартная — функционал не предусматривался при разработке архитектуры — включили сжатие, приложение остановилось, дальше потратили много времени на то, чтобы всё заново восстановить под ругань руководства. Как уже говорили, в Pure Storage пошли другим путём — дедупликацию с компрессией сделали базовым неотключаемым функционалом. Результат — сейчас Pure Storage cтоит более чем в 15 тысячах инсталляциях. Во время инициализации можно поставить галочку «давать обезличенную статистику», и тогда ваша СХД будет отправлять в систему мониторинга Pure 1. Гарантия для баз данных, например, — 3,5:1. Есть конкретные особенности — тот же VDI от 7:1 и выше. Массивы продаются не по сырому месту, а по полезной ёмкости с гарантией допоставки, то есть если у вас при миграции окажется уровень сжатия ниже гарантируемого, вендор ставит больше физических дисков бесплатно. Вендор говорит, что диски доставляются в примерно 9-10 % случаях, и ошибка редко превышает пару накопителей. В России я такое ещё не видел, коэффициенты совпадали на всех инсталляциях кроме случая, когда «вскрываются» шифрованные данные, про которые заказчик не сказал, что они шифрованные.
Из-за особенностей снапшотов тестовые среды получаются очень эффективными. Есть пример клиента, который делал сайзинг 7:1 в расчёте, а получил 14 с копейками к одному.
Вендор заявляет следующее:
- 3,5:1 базы данных (Oracle, MS SQL).
- 4,2:1 виртуализация серверов (VMware, Hyper-V).
- 7,1:1 VDI (Citrix, VMware).
- 5:1 средний коэффициент по всей инсталлированной базе.
Также из интересного функционала: автоматизация и интеграция с модными молодёжными штуками типа Kubernetes, а также полная поддержка VMware vvol. Здесь всё просто — большая часть западных клиентов Pure Storage — облачные провайдеры типа ServiceNow, кейс по которым, кстати, выложен на сайте. Они привыкли всё максимально автоматизировать.
Итого
Получилась интересная штука, которая сначала выглядит странно, а потом всё радостнее и радостнее. Пять лет в Гартнере:

Конечно, экономическая модель Evergreen не такая, что прямо дёшево-дёшево, но от ряда геморроев спасает и при расчёте стоимости владения на несколько лет выглядит вполне конкурентоспособно.
P.S. Ниже доступен онлайн-митап: «Системы хранения данных по подписке: правда или вымысел».
navion
А чего квадрант такой старый? Есть же 2019 и сам вендор его не стесняется:
RPOkruchin Автор
Спасибо, что обратили внимание, заменил.
shiz0id
Хорошо было бы оставить одну картинку до ката. Спасибо.
DimkaVolodin
да это уж мелочи
PnDx
Чем-то nexenta напомнило (хочется верить, что нет).
Вот захожу я на сайт. Чтобы ознакомиться с тех. документацией.
Продираюсь через маркетинг. И…Это что?
PnDx
eyekind
В целом в правильное направление, но называется документ User guide. Для доступа ко всем документам на портале требуется активированный аккуант (заказчик/партнера). А так вот ссылка support.purestorage.com/FlashArray/PurityFA/FlashArray_User_Guide
PnDx
Вот только RegistrationPage, куда кидает не авторизованных, у них рутится на LoginPage. Так что не видать мне гайда. А корень — вообще «under construction».
Отсюда и подозрения, что второй nutanix (продажи через хайп, мимо тех. экспертизы).
eyekind
Корень support.purestorage.com, а не ссылка на salesforce.com. Доступ для заказчиков и авторизованных партнеров. Концепт Pure Storage — простота использования, надежность, возможность эксплуатации сколь угодное время, возможности интеграций и all inclusive софт без какого либо тюнинга
arctic-fox
Напоминает историю про ходжу Насреддина, который подрядился ишака научить разговаривать с халифом.
anonymous
А что если этот контроллер неожиданно умрет? Засекали за какое время переключается FC и IP доступ?
Особенно интересно про переключение IP.
alex-khv
А почему NetApp лучше ?
RPOkruchin Автор
А я не говорил, что он лучше.
arctic-fox
Если не трудно, поясните, что не видно HBA контроллеру при подключении NVMe через дисковую полку.
eyekind
Скорее правильнее, что видит контроллер СХД в традиционном NVMe SSD — просто емкость. Реализации у разных вендоров разные, но обычно механизмы типа wear leveling, allocation, garbage collection, encryption и т.д. отдаются на откуп самих NVMe SSD. Собственно благодаря DirectFlash, Pure Storage смогла первым выйти на рынок полнофункциональной СХД на базе QLC памяти
arctic-fox
Ну я скорее про сервер в который воткнут контроллер. Ибо что показывает СХД пользователю и что видит система — довольно ощутимая разница.
Кстати, замечу, что SLC память быстро отмерла не из-за скорости доступа и записа, а из-за её космического ресурса. (стало невыгодно выпускать)
creker
Ерунда. Ее выпускают и используют как кэш во многих ССД именно из-за ее ресурса. Ее перестали использовать как основную из-за космической стоимости, которая не позволяла заместить ХДД на рынке. С приходом все более умных контроллеров и повышения качества флеша TLC диски спокойно тянут петабайты перезаписи и живут в сегменте СХД. Именно благодаря новым типам памяти снижается стоимость гигабайта у ССД. QLC еще сильнее снизил ее, правда скорости там совсем другие.
Arbichev
Я невнимательно прочитал заголовок и подзаголовок. Когда читал статью, не мог понять вообще, о ком идет речь. Потом вернулся к заголовку и понял, что речь идет о компании КРОК. Теперь могу сказать, что этой статье не хватает эпиграфа «На правах рекламы». Во всей статье нет ни одного графика, показывающего сравнительную производительность с решениями конкурентов. И вообще, есть такое крылатое выражение: «Это слишком красиво, чтобы быть правдой».
sshmakov
Самое смешное, что нет, речь идёт о совсем другой компании, ее название ещё надо поискать.
atamanenko
purestorage.com совершенно отдельная же история. Крок вам рассказать о ней пришел
eyekind
Всегда можно протестировать на своих нагрузках)))
CaptainFlint
bes_internal
Судя по описанию там внутри Ceph
CaptainFlint
А там отложенная балансировка? Просто я с этой системой незнаком.
И как тогда там реализуется синхронизация? Если что-то было записано, а потом оно же сразу считывается. Система это мониторит и гарантирует чтение данных именно с актуальных участков? Или форсирует синхронизацию, откладывая запрос на чтение до её окончания?
creker
Балансировка в нем не особо нужна чисто из-за внутреннего устройства. Ceph делит все на объекты (вроде 128мб максимальный размер нынче), которые группируются в placement group'ы. Последние раскидываются по дискам и реплицируются. Запись синхронная. Клиент не получит ответ, пока все реплики не будут записаны. Файловая система это надстройка сверху над этим, внутри все в объектах. Поэтому получается естественная балансировка нагрузки. Не знаю, что там внутри СХД в статье, но все тоже самое можно было достичь тем же ceph. Обновлять его компоненты на горячую, рубильником отключать сервера и т.д. и т.п. Много мутных слов, а в итоге просто хранилка на простом железе, которая быстрая, потому что диски быстрые.
navion
Есть неплохой обзор архитектуры all-flash СХД, возможно там есть ответ:
Comparing Modern All-Flash Architectures
RPOkruchin Автор
Данные сначала пишутся в NV-RAM, а затем страйп пишется на NVMe носители.
eyekind
Видео хоть и старое, но общие концепты FlashArray описывает достаточно хорошо www.youtube.com/watch?v=9TSxQ6VlSCA
CaptainFlint
OK, спасибо всем за ответы. Попробую разобраться.
MMik
Писал давно про Pure комментарии, почитайте, может кому-то пригодится. Там так же есть устаревшая информация по ценам, но хоть что-то.
gecube
TL;DR
на самом деле прочитал все до конца, но не отпускало ощущение, что статья рекламная. Слишком хвалебная.
И что? Либо оно запускает условный ребилд, но мы просто этого не видим, либо оно пишет часть служебной инфы на сами диски и как раз поэтому понимает, что диски поменялись местами — не беда, поправили в ОЗУ конфиг, едем дальше. Какая магия? Не верю (с)
Во! А это самое интересное. Получается, что эти полки продаются со своими же накопителя и совместимы только с ними! И нельзя, условно, поехать в какой-нибудь Мерлион в случае чп и купить самый обычный серверный накопитель и воткнуть в эту полку. Вендорлок в полный рост. С другой стороны, ну, ок — бизнесу это норм. Он же сервис покупает (по сути Storage-As-a-Service на основе подписки), а не железку как таковую. И еще очень интересный вопрос — что будет, если клиент перестанет платить за саппорт — полка не превратится в тыкву?
Очень волнует еще что меня:
Перевожу на свой птичий инженерный язык — эта полка тратит ресурс накопителей как не в себя, т.к. при изменении каждого 512 байтного блока там будет каскадный эффект перезаписей на уровне физических микросхем памяти, а у них блоки как раз могут достигать 512KB и даже МБ. И блок (block) != страница (page). Можете прооппонировать?
eyekind
Не один производитель СХД (из лидеров квадранта гартнера) не позволяет устанавливать что либо из «магазина электроники». Это нормальная практика, которая гарантирует надежность и предсказуемость работы. Более того система всегда продается с гарантией и вам быстро все поменяют без каких-либо ограничений. Без гарантии СХД не превратиться в тыкву, просто перестанете получать обновления и не сможете обращаться в техническую поддержку, но кто выбирают решения такого уровня, крайне озабоченны, чтобы все и всегда было на гарантии.
gecube
ну, есть же HCL и replacement parts — для меня политика HPE, DELL, NetAPP гораздо более прозрачна, чем у PureStorage. О чем собственно и вопрос.
несомненно, но с этим никто и не спорит.
есть гораздо более интересные кейсы, когда крупный вендор практически вымогает деньги с потребителя, требуя оплаты пропущенных периодов сервиса (если клиент решил "скроить" и в какой-то момент не продлевать техпод) и не оставляет клиенту вариантов, кроме как "постоянно платить". Сейчас точных ссылок не найду, но я в этом точно уверен.
И, да, клиент озабочен не тем, чтобы все было "на гарантии", а чтобы в случае каких-либо проблем не страдала непрерывность его бизнеса и была реальная техподдержка, а не это вот все, что "ваше обращение важно для нас", а по факту тикет мусолится индусом уже неделю
Crazyvlad
Ну так не один вендор поступает — много их. Правда никто не мешает купить почти тот же сервис не у вендора, или оплачивать кейсы отдельно.
eyekind
ЗИП никто не отменял. Всегда есть возможность приобрести его и положить себе на склад.
gecube
Я Вам про Фому, Вы мне про Ерему.
Меня интересуют конкретный TCO и технические спеки.
Ну, да, ну, да. Сейчас выяснится, что первое только реальным заказчиком и только в привате.
eyekind
Доступные спеки есть в даташите на сайте www.purestorage.com/content/dam/pdf/en/datasheets/ds-flasharray-x.pdf
Часть документов на support.purestorage.com доступно только заказчикам и партнерам
Am0ralist
Ag47
Так а цены в итоге какие? В статье ссылка только на онлайн-митап
RPOkruchin Автор
Ответил в личные сообщения.
Crazyvlad
очень странно — у того же HPE для Primera есть подписка HPE Timeless Storage, в рамках которой так-же идет замена контроллеров на более современные. Само собой, без остановки продуктива. Понятно, что НРЕ наверное подсмотрела у PureStorage, но выдавать эту особенность как уникальное преимущество — немного странно.
P.S. правда Timeless Storage стоит конски…
eyekind
В том то и дело… Ну и читайте особенности мелким шрифтом у HPE)) У Pure Evergreen это не только маркетинг, но и технологии (модульный дизайн / софт) и множество поколений позади, где это работало.