Привет, Хабр! Давайте поговорим о технологиях для организации корпоративных хранилищ данных. А лучше — посмотрим на них в деле. На ринг приглашаются SSD и обычные жесткие диски. Второй бой проведут Fibre Channel и RoCE. Отдельно изучим «спортивное портфолио» протокола NVMe. Выбор системы хранения данных (СХД), чтобы получилось надежно и эффективно решить задачу заказчика — не такая простая задача. Нужно предусмотреть стоимость обслуживания, сравнить по функционалу и выбрать решение без «узких мест», которые могут испортить впечатление от эксплуатации. Идея этого поста появилась по итогам проведенного сравнения производительности и эффективности ряда технологий, их стоимости и оценки перспектив. В общем, на основе наших изысканий можно увидеть, какая архитектура СХД окажется оптимальной для каждого конкретного проекта. Fibre Channel (FC) — опытный «боец». Проверен временем, используется в самых разных серверных конфигурациях и, конечно, применяется для подключения систем хранения. Долгое время FC считался единственной альтернативой высокопроизводительным СХД. Но у этой дорогой технологии появились конкуренты. Наверняка вы встречали сопоставление FC с iSCSI. Но сравнивать их напрямую неверно. Fibre Channel гарантирует доставку трафика. Сохранение пакетов встроено в саму архитектуру протокола, и подключенное по FC оборудование не теряет ничего. iSCSI не обещает такой же сохранности пакетов без дополнительных технологических решений и поэтому не используется в «серьезных» системах хранения. С чем можно и нужно сравнивать Fibre Channel — так это с конвергентным Ethernet. Имя достойного соперника — RoCE (RDMA over Converged Ethernet). У RoCE сохранность пакетов такая же, как и у FC. Получается, что эта технология способна потенциально заменить Fibre Channel при подключении СХД. А поскольку многие дисковые массивы могут работать с обоими протоколами «из коробки» (нужно лишь выбрать нужное количество портов при покупке), перспектива «переезда» на последний становится более чем реальной. Дополнительным плюсом RoCE является снижение нагрузки на систему. Инкапсуляция команд NVMe в RDMA происходит без использования тактов процессора. А учитывая, что карты стоят практически одинаково, RoCE можно считать сегодня реальной альтернативой FC. Большинство вендоров продолжают развивать FC, хотя предлагают варианты подключения СХД и по Ethernet. Cреди тех, кто активно двигает RoСE, наиболее выделяется Huawei — он предлагает как СХД с этим интерфейсом, так и «специально заточенные» под работу в связке с такой СХД сетевые коммутаторы. Логика такой активности тоже понятна: санкционное давление и невозможность поставок OEM-оборудования Brocade привело к тому, что производитель обратил пристальное внимание на конкурентную технологию. Учитывая, что Huawei производит и сетевое оборудование, у вендора есть шанс реализовать идеальное взаимодействие между СХД и сетями передачи данных. Для заказчиков же это означает дополнительные плюсы и в техническом плане (например, дальнейшее уменьшение задержек и увеличение производительности), и по деньгам. Ну а соблазнительной вишенкой на торте в этом случае становится тот факт, что при использовании оборудования от одного вендора не будет «вендорского футбола» в случае каких-то технических сложностей. Кто же — FC или RoCE — показывает лучшие результаты? Ответ — в результатах тестирования производительности СУБД на дисках NVMe, подключенной как через FC, так и через RoCE. В качестве тестового стенда для проверки производительности использовалась система хранения Huawei OceanStor Dorado 6000 V6 с 1 Тб кэша. На тестах была система с 25 дисками SSD NVMe емкостью 3,84 Тб с поддержкой протоколов подключения FC 32 Гбит и Ethernet 25 Гбит. В качестве клиентов на тестовом стенде были использованы два x86 сервера с разными протоколами подключения: первый 25 Гбит Ethernet с двумя адаптерами Mellanox MCX4121A-ACAT Dual Ports 25GE HCA, второй 32 Гбит FC с двумя адаптерами Emulex LPe32002 Dual Ports. Тестовую нагрузку обеспечили симуляцией работы СУБД в режиме OLTP — операции записи и чтения по 8 килобайт в конкурентном режиме.    Результаты тестов показали, что для сценариев с большими объемами ввода/вывода пропускная способность технологий оказывается сопоставимой. А вот для сценариев с малым размером блока параметр IOPS для RoCE превосходит показатели FC больше, чем на 50%! По стоимости тоже складывается интересная картина. На рис. 3 показана приблизительная цена подключения через RoCE или Fibre Channel в пересчете на один порт. Получается, что Ethernet 25 Гбит/с почти вдвое выгоднее, чем Fibre Channel 32 Гбит. Конечно, 100-гигабитное подключение выйдет еще дороже, но оно нужно не во всех инсталляциях. Все-таки 12 Гигабайт в секунду на каждый порт — это скорее исключительный highload, чем повседневная практика СХД. Стоимость одного гигабита пропускной способности на Ethernet 25 Гбит/с ниже, чем для Fibre Channel 32 Гбит. А это значит, что RoCE выгоднее и показывает более высокую производительность для работы с базами данных. Для ее реализации достаточно, чтобы ваши коммутаторы поддерживали Priority Flow Control и Data Center Bridging, RDMA, RoCE v1 и RoCE v2. Так что в этом бою уверенно побеждает участник в красных трусах RoCE и забирает пояс по высокой производительности и экономичности! А сейчас центр ринга заняли непримиримые соперники — HDD и SSD. За кем останется первенство: за высокопроизводительными HDD или за бурно развивающимися SSD?  Итак, посмотрим производительность NLSAS жестких дисков и современных SSD. Показатели последних превосходят устаревающие жесткие диски до 100 раз! Характеристики сходятся только в одной точке — в процедуре записи, и только для самых больших блоков. Во всех остальных случаях SSD легко нокаутирует HDD.   А по прогнозу к 2026 году SSD будут стоить дешевле аналогичных HDD. Технический нокдаун! Сейчас большинство производителей используют твердотельную память с ячейками TLC, которые позволяют хранить 3 бита в каждой ячейке. Однако на горизонте уже виднеются ячейки QLC. Технология QLC подразумевает программирование ячейки сразу несколькими импульсами и поэтому создает больше технологических рисков. Но однажды эта технология достигнет стабильности, учитывая мощные инвестиции в нее. И тогда она войдет в мир Enterprise. Сейчас данная технология есть только у двух производителей СХД (с учетом сложности поставки в РФ шифрованных дисков и вовсе можно сказать, что у одного), но при этом цены на соответствующие массивы уже получаются ниже, чем на аналогичные на TLC-ячейках. Тем временем жесткие диски не показывают никаких принципиальных изменений уже несколько лет. Микро ноу-хау типа заполнения гелием пространства внутри корпуса жесткого диска и более глубокое размещение ячеек — не в счет. На фоне эволюции флеша, которая предлагает все более плотное размещение информации, все эти улучшения больше походят на переодевание в боксерки другого цвета, нежели на достижение максимальной спортивной формы. Впрочем, не стоит забывать, что у флеш-памяти все-таки есть серьезный недостаток — конечное число циклов записи. Именно поэтому экономически более целесообразно использовать их в системах хранения с развитой системой дедупликации и компрессии. Даже если не нужно экономить место в хранилище, сокращение объемов хранимых данных, например, вдвое, продлевает срок службы твердотельных дисков также в соотношении 2 к 1. Наиболее оптимальным решением на сегодня выглядит использование SSD в системах с уже встроенной дедупликацией и сжатием. Стоимость твердотельных дисков уже сегодня сравнима с жесткими дисками SAS 10 K. Если же включить на SSD упомянутую компрессию и дедупликацию, которые в случае All-Flash массивов работают «на лету», то по стоимости они получатся даже дешевле HDD! Конечно, все это справедливо только для данных, которые хорошо жмутся и дедуплицируются, для архивного хранения уже сжатых данных либо для работы с видеопотоком такая математика уже неприменима. Но в целом в большинстве случаев вкладываться в устаревающую технологию HDD уже не имеет смысла.   У многих уже сейчас есть все необходимое для перехода на NVMe over Fabric. Коммутаторы SAN обеспечивают эту возможность, начиная с поколения GEN5 (16 Gb). А FC-адаптеры с поддержкой NVMe (GEN6, GEN7) есть сегодня практически в любом «свежем» сервере или СХД. И тут сразу вырисовывается ринг для поединка между стандартным протоколом доступа Fibre Channel SCSI и NVMe over FC. Теоретически такой шаг выглядит выигрышным, поскольку стек команд NVMe over FC значительно короче стека SCSI. Технически боец в красных трусах NVMe превосходит противника по скорости и подвижности. Сам по себе протокол содержит меньше команд — всего 13 штук, тогда как для управления SCSI требуется более 100 различных инструкций. Уровень параллелизма для NVMe также оказывается намного выше (по крайней мере в теории) — 64 000 одновременных команд против 32 у SCSI, а также 64 000 очередей против одной очереди для SCSI. Независимые тесты показали, что при случайном чтении блоком 4 Кб можно получить прирост в производительности до 50% по IOPS. Это дает надежду на увеличение производительности хранилища при смене основного протокола на NVMe. Мы не стали гадать и собрали свой собственный стенд для проверки концепции. А заодно решили проверить адаптеры седьмого поколения от двух производителей — Emulex и QLogic. Чтобы получить «Hero Numbers», мы провели тест на чтение «нулевых» данных с системы хранения данных, то есть фактически мы читали пустые ячейки. В этом тесте СХД среднего уровня не является узким местом, поскольку умеет отдавать нули со «скоростью света». При этом переход на NVMe дал увеличение производительности на 43% по IOPS и снижение задержек на 30% по сравнению с обычным SCSI. Результат зависел от количества потоков одновременного обращения к дискам и четко продемонстрировал преимущества самого протокола. Красной линией на рисунке ниже показана отсечка по насыщению пропускной полосы четырех интерфейсов 16 Gb FC на стороне СХД. При дальнейшем увеличении количества потоков роста производительности почти не происходило.   Но когда ячейки были заполнены реальными данными, ситуация изменилась. Преимущество NVMe в реальных тестах было уже не столь очевидным. Под нагрузкой на тестовом хосте со SLES 15 SP2 «красному бойцу» порой становилось тяжелее. Интересно, что для разных адаптеров были получены разные результаты. Стабильность результатов Emulex с последней версией драйверов и прошивок на NVMe была значительно выше, чем у QLogic. А при использовании SCSI оба адаптера показали практически одинаковую предсказуемую производительность. Почему так происходит? Ведь по техническим характеристикам NVMe должен обеспечить более высокую скорость работы и снижение задержек и «уделать» SCSI? Вопрос в зрелости и полноте реализации технологического стека, включая прошивки адаптеров и версии драйверов операционной системы. Производители ПО еще находятся в процессе освоения нового протокола доступа. Например, следующая таблица (источник) наглядно показывает, почему NVMe пока функционально проигрывает SCSI в реальных условиях, когда речь идет о запуске под VMware. Полноценная поддержка NVMe заявлена только в новейших операционных системах. Например, в AIX она начинается с версии 7.2 TL5, в RHEL — с 8 версии, а в SUSE — с 12. Да и в более свежих ОС пока еще NVMe работает с ограничениями. Новый протокол выглядит многообещающим, но в продуктивных средах переходить на него если не рано, то нужно с большой осторожностью. А если вы всё же решились, то необходимо проверить работоспособность всей связки, включая сборку ОС или гипервизора, модель HBA, прошивки адаптеров и СХД, а также версии драйверов.   В этом посте мы рассмотрели несколько технологических новшеств, уже реализованных в железе и доступных для использования. Можно ли их скомпоновать так, чтобы получить максимальный выигрыш? На наш взгляд, да. Для всех продуктивных нагрузок наилучшим решением будет All-Flash массив с дисками NVMe и поддержкой полного стека (контроллеры и front-end порты). Рынок сейчас переживает переходный этап, моделей с поддержкой NVMe становится все больше, а по цене они почти не отличаются от своих собратьев без таковой. Протокол SCSI создавался для шпиндельных дисков, он содержит много специфичных команд, которые избыточны и тормозят SSD. NVMe же изначально учитывает физические особенности построения ячеек памяти в SSD и рожден, чтобы ускорить работу flash. В подтверждение перспективности этого протокола можно отметить и тот факт, что в его новой версии будет поддержка шпиндельных дисков, а на днях ведущий производитель таковых — Seagate — анонсировал выпуск этих дисков на протоколе NVMe с шиной PCIe. Отрасль рано или поздно перейдет на использование NVMe. Мы считаем, что будущее за этой технологией. Выбор СХД с NVMe поставит задачу организовать сеть хранения данных так, чтобы полностью реализовать потенциал нового протокола. SAN или LAN? Ответ зависит от многих факторов. LAN более универсален и лишен «санкционных рисков». С другой стороны, если в SAN уже вложено много ресурсов, можно обновить его с минимальными затратами. Мы склоняемся к тому, что для архитектур, которые строятся «с нуля», либо для заказчиков с сильно устаревшим SAN или без большой истории инвестиций выбор Ethernet в качестве среды для связи между СХД будет оптимальным по функционалу и стоимости. В остальных случаях подойдет SAN. Пока проработанность ПО и прошивок оборудования для поддержки полного стека NVMe оставляет вопросы. Но ситуация будет меняться к лучшему. А до тех пор следует аккуратно тестировать работу всех компонент — от драйверов операционной системы от производителя сервера до прошивок HBA, коммутаторов и СХД. Результат того стоит: потенциальная выгода от перехода на новые технологии и протоколы в итоге может приятно порадовать. Авторы: Роман Харыбин, руководитель направления СХД «Инфосистемы Джет» Алексей Поляков, инженер-проектировщик систем хранения данных «Инфосистемы Джет»