Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Similar to NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)(20)

Advertisement

More from Ontico(20)

Recently uploaded(20)

Advertisement

NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)

  1. NVMf: 5 млн IOPS по сети своими руками 3.0
  2. $ who am i Системный архитектор в системном интеграторе (IBS) • Текущие трудовые вопросы: серийные аппаратно-программные комплексы на несанкционном оборудовании и ПО Только личное мнение и личный опыт • Никаких коммерческих и рекламных интересов • Никаких мнений от имени работодателя или его партнёров • Могу ошибаться или заблуждаться, но искренне и не ради выгоды
  3. Современность и новая нормальность Пропускные способности, задержки, цены: новые компоненты, смены трендов
  4. Пропускные способности… Гбит/с 100 64 56 40 32 10 6 3 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Infiniband QDR / 40 GbE PCIe 2.0 ×4 10 GbE SAS 1, SATA II SAS 1, SATA II Infiniband FDR / 56 GbE Infiniband EDR PCIe 3.0 ×4
  5. Пропасть отзывчивости Устройство Задержка Если бы доступ к L1-кэшу был бы 1 сек Процессорный кэш L1 0,5 нс 1 сек ОЗУ 20 нс 40 сек Коммутатор 100 GbE 1 мкс 33 мин 33 сек 3D XPoint / Optane 7 мкс 3 ч 53 мин 20 сек NVMe NAND, запись 30 мкс 16 ч 40 мин 10 сек NVMe NAND, чтение 80 мкс 1 день 20 ч 26 мин 2 сек PCIe-флэш-массив DSSD D5 100 мкс 2 дня 7 ч 33 мин 20 сек SATA NAND, чтение 120 мкс 2 дня 18 ч 40 мин 10 сек SAS-диск 100 мс 6 лет 4 мес. 2 дня 17 ч 20 мин … Посетить также: Михаил Конюхов. HDD, SSD, RAM, RAID, и кого на ком кэшировать // HighLoad++–2016, Дели – Калькутта, 8 ноября 2016 18:00
  6. Кто задерживает? График – Амбер Хаффман, ©2016 – устройство – контроллер – программная обработка
  7. Цена терабайта: сейчас и в перспективе NVMe NAND (не Wikibon)
  8. Вопросы экономики • $ за IOPS · ТБ ? • $ за IOPS / задержка ? Зависят от контекста и быстро меняются со временем • Объём • Коридор IOPS • Коридор задержки Отправные ограничения $ за ТБ
  9. Ингредиент 0:
  10. Форматы для PCI-Express-накопителей Бортовой ×4, ×8 M.2 U.2 Изображения Дмитрий Носачёв, CC-SA 4.0, 2016; ©Samsung, 2016; ©Lenovo, 2016 В сервер, рабочую станцию (1 – 2 устройства)
  11. Серверные платформы с U.2 Supermicro: • 2 U, 48 NVMe • 24 Гбит/с на чтение и 750 тыс. IOPS на устройство Quanta: • 4 узла в 2 U • 8 NVMe в каждом Посетить также: Андрей Чернышёв. Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему это для индустрии хорошо // HighLoad++–2016, Сингапур, 7 ноября 2016 17:00 Горячаязамена
  12. Пределы близки 2 × Intel Xeon E5 – 80 линий PCIe •80/4 = 20 устройств? •А ещё сетевые адаптеры… Теплопакет…
  13. NVM Express: забыть всё прошлое Упрощённый набор команд 11 команд ввода-вывода (3 обязательных) 16 команд управления (10 обязательных) Глубокие очереди 65 тыс. очередей 65 тыс. команд на очередь MSI-X (message- signaled interrupts) Параллелизм До 2048 прерываний Привязка к ближнему NUMA-узлу
  14. Очереди постановки и выполнения Изображение ©NVM Express Organization, 2014
  15. Последовательность выполнения Изображение ©NVM Express Organization, 2014
  16. NVMe против AHCI NVMe - Неблокирующий, сигнальный регистр на очередь 65535 очередей 65535 команд на очередь AHCI 4 регистровых чтения на команду (8000 циклов) Выполнение команды требует синхронной блокировки 1 очередь 32 команды на очередь
  17. Пространства имён /dev/nvme0n1p2 Номер устройства Номер пространства имён Раздел “LUN для NVMe” Позволяют сделать несколько полноценных устройств из одного Все NVMe-команды параметризированы пространством имён Многопутевой ввод-вывод с разделяемым доступом к пространствам имён
  18. NVMe Data Set Management • Размер доступа в логических блоках • Последовательное чтение, последовательная запись • Задержка (поменьше, побольше) • Частота доступа (по чтению, по записи, часто/редко) Оптимизационные «подсказки» • TRIM Управляющие команды
  19. Мониторинг SMART Состояние NVMe контролируется через SMART • «Как только тает зарезервированная область – пора менять» Но: не со всеми устройствами всё хорошо • …падает производительность, а SMART ничего не показывает…
  20. Зерно сомнения: несколько SATA SSD против одного NVMe? Зрелая технология • NVMe – стабильный стандарт • NAND – тот же Доступность аппаратных RAID • появились RAID для PCI Express • меньше и меньше RAID-конфигураций в реальной жизни низкая цена? • NAND тот же!
  21. Micron 3D-XPoint, Intel Optane: coming soon Новая технология (не NAND) Для установки в DDR (NVDIMM) и в PCIe (NVMe) Предположительно $/1 TB = × 0,5 RAM и 5×NAND
  22. … рекламируется и обещается недорогим Графика: ©Intel, 2015
  23. 3D XPoint / Optane: Смещение задержки График: ©Джек Жан, Intel, 2014
  24. Ингредиент 1: безубыточная сеть
  25. Изображение: ©Mellanox, 2013
  26. Прямой доступ к удалённой памяти Zero-copy для сети: мимо циклов ЦПУ и буферов ОС Прямой доступ к удалённому ОЗУ Разгрузка ЦПУ Реализации (язык Verbs) Infiniband RoCE (RDMA over Converged Ethernet) iWARP (Internet Wide-area RDMA Protocol)
  27. RDMA-сети: от недоверия к внедрению 2010-е Сближение с массовым классом по цене Свободное ПО (OFED), поддержка в дистрибутивах Адаптационные библиотеки (Accelio) 2000-е Дорого («забава для высокобюджетных HPC») «Непонятное ПО» Нужно переписывать сетевую часть ПО («нельзя просто открыть сокет»)
  28. Подключаем блочные устройства по безубыточной сети… iSER • iSCSI Extensions for RDMA SRP • SCSI RDMA protocol SCSI-команды по сети? А если NVMe-команды по сети? NVMf !
  29. И0 + И1 → NVMf NVM Express over Fabrics [NVMeoF] [NVMef]
  30. NVMf Способ разговора на языке NVMe по сети Fibre Channel RDMA Inifniband iWARP RoCE «Фабрики будущего»
  31. Стандарт NVMe Express Oraganization Работа над стандартизацией с 2014 года 5 июня 2016: спецификация NVM Express Over Fabrics, версия 1.0 Необходимые для сети уровни абстракции и команды «Капсулы» (вместо очередей в разделяемой памяти) Connect, Property Get, Property Set Контроллер обнаружения (NQN вместо PCIe-шинной идентификации)
  32. Ранние реализации HGST • Проброс NVMe-команд через SRP с преобразованием Intel SPDK (Storage Performance Development Kit) • С использованием Intel Dataplane Development Kit • Лицензия BSD • Драйвер в пользовательском пространстве
  33. Ядро Linux • рабочая группа • список рассылки • приватный git- репозиторий 2015 • Добавлено в ядро 4.8 6 июня 2016 • Ядро 4.8 выпущено 2 октября 2016
  34. Инициатор и цель Хост-драйвер • Поддержка RDMA-транспорта – Infiniband, RoCE, iWARP, OmniPath • Множественный Connect/Disconnect • Передача в транспорт команд NVMe и данных, полученных от ядра NVMe • Сервис обнаружения • Многопутевой ввод-вывод (multipath) • Поддержка соедения (keep-alive) nvmet[arget] • Поддержка обязательных сетевых и NVMe-команд • Поддержка множественных хостов, подсистем, пространств имён • Сервис обнаружения • Поддерживает любое блочное устройство (NVMe, SCSI, ramdisk, virtio…)
  35. Объём кода хост-драйвера по назначению Диаграмма: ©Кристоф Хельвиг, 2016
  36. Дело за малым – настроить! Kernel 4.8.2 (выпуск 16 октября 2016) nvme-cli 0.8 Модули nvmet, nvmet-rdma https://community.mellanox.com/docs/DOC-2504
  37. Обнаруживаем и подключаем! # nvme discover -t rdma -a 192.168.0.2 -s 1023 <…> Discovery Log Number of Records 1, Generation counter 1 =====Discovery Log Entry 0====== <…> subnqn: nvmes0 <…> # nvme connect –t rdma –n nvmes0 -a 192.168.0.2 -s 1023 # lsblk | grep nvme nvme0n1 259:0 0 1G 0 disk
  38. Замеры Что и как замерять, замеры и некоторые их результаты
  39. Что замерять? IOPS на чтение IOPS на запись Случайное Задержка Cеть? • 4K и другие • 128K, 4K и другие • Но и последовательное • Достаточность • Сбалансированность
  40. Чем замерять? hdparm --direct dd iflag=direct oflag=direct Линейная скорость Прикидочный тест iometer Есть сомнительные результаты… fio Стандарт де- факто Множество настроек Размер блока 4k 1k 16k 64k 256k «замеряйте реальную нагрузку, а не гоняйте синтетику» Если она типична, и её можно захватить и прогнать – то так и надо
  41. NUMA: для PCIe – имеет значение Изображение: ©Кристофер Пакен, 2016 Хаб ввода-вывода на каждом NUMA-узле (а не один за систему) Начиная с Sandy Bridge NVMe-накопители и сетевые карты– на PCIe Важна NUMA-локальность
  42. NUMA: тюнинг Правильный FIO: cpus_allowed numa_cpu_nodes numa_mem_policy Эксплуатационный тюнинг taskset --cpu-list udev-rules cgroups numad
  43. Замеры: что даёт сеть? График – Zeta Systems, ©2016 1 × Xeon E5 1 × Xeon E5 Connect X3 Connect X3 NVMe NVMe 40 Гбит/c
  44. Тест от Samsung Изображение: ©Samsung, 2016 24 × NVMe 960 ГБ
  45. Задержки в тесте Samsung
  46. Приросты задержки Изображение: ©Samsung, 2016 Количество устройств
  47. IOPS в тесте Samsung Изображение: ©Samsung, 2016
  48. Замеры СУБД (SQL IOPS) Oracle Database SLOB CALIBRATE_IO Orion MySQL PostgreSQL Sysbench? iostat, pt-diskstats? Сходить также: Андрей Николаенко. Как получать и интерпретировать показатели производительности СУБД? // Технологии баз данных, 29–30 ноября, 2016
  49. СУБД СУБД над сырыми устройствами Oracle Database, ASM и ACFS Файлово-ориентированные
  50. СУБД над сырыми устройствами • Oracle Database • IBM DB2 • SAP [Sybase] ASE • Aerospike • MySQL [InnoDB] /dev/raw, raw → O_DIRECT
  51. Oracle ASM ACFS – кластерная файловая система над ASM NVMf даёт прямую возможность собрать инфраструктуру грида Ядро 4.8? Это RHEL 8? Oracle supported platforms… Automatic Storage Management Программно-определяемая сеть хранения и менеджер томов для Oracle Database …над любыми блочными устройствами Управляемая избыточность Локальность чтения
  52. Флэш в грид – в Oracle ASM и Oracle RAC Калифорнийский стартап (2015) Акцент на возможности самосборной инфраструктуры вместо all-flash-массивов Свободное ПО – конфигурирование и обслуживание сетевой флэш-инфраструктуры Коммерческая поддержка
  53. Флэшгрид: конструкции Гиперконвергетная беcкоммутаторная Гиперконвергетная масштабируемая Дезагрегированная (с выделенными узлами хранения, как в Exadata) Изображения: ©Flashgrid, 2015
  54. 5,6 млн IOPS на паре машин… Евстатиос Евстатиу (Федеральное ИТ-бюро, Швейцария) • 2 × HP ML 350 G9 • Oracle RAC 12c • Flashgrid
  55. MySQL, MariaDB • innodb_data_file_path = /dev/raw/raw1:20000Mnewraw; • Oracle ACFS • доступно при приобретении поддержки на любой продукт Oracle – Oracle Linux, MySQL, Oracle VM См. также: Ilmar Kerm (Affecto). Making MySQL available highly available using Oracle Grid Infrastructure // OUGE, 2016
  56. Файлово-POSIX-ортодоксальные СУБД • Множественные вопросы в условиях программно- определяемых сетей хранения (fsync()) • Не ориентированы на кластеры с общими ресурсами хранения PostgreSQL • Большой и сверхотзывчивый пул под управлением одного узла • Без RAID? dm-mirror? • Горячий резерв без [WAL-]репликации NVMf – возможность и для них?
  57. Контейнеры Docker everywhere
  58. NVMf для Kubernetes PV Plugin Но в Kubernetes есть PV (persistent volumes) – тома для постоянного хранения NFS iSCSI RBD Cinder … HostPath В docker-мире содержимое контейнера обычно уничтожается после останова…
  59. Изображение: ©Samsung, 2016 Результат NVMf неотличим от локально-паспортного
  60. Спрос: новый тип устройства для Kubernetes PV Но в Kubernetes есть PV (persistent volumes) – тома для постоянного хранения NFS iSCSI RBD Cinder NVMf HostPath
  61. OpenStack Mirantis for Cinder
  62. NVMf-драйвер для Cinder 25 октября 2016 • На базе Intel SPDK • Драйвер для Cinder • Доработки для Nova Возможность отдать NVMf-том виртуальной машине
  63. Нужна ли NVMf кластерным системам, у которых сеть – неотъемлемая часть конструкции? Программно-определяемые сети хранения Кластеры распределённой обработки
  64. Поможет ли NVMf для Hadoop? Hadoop Classic = HDD + 10GbE Уже есть HiBD (Университет Огайо) Hadoop над программно- определяемой сетью (если задействует NVMf?) • ↓↓ $ / ТБ • RDMA-Hadoop-2.x (HDFS на Vebrs) • RDMA-Spark • RDMA-Hbase • CephFS • GlusterFS • Taychon (IMDG)
  65. SDS Ceph GlusterFS Возможность: разделение слоя устройств и слоя доступа • Поддерживается RDMA (через Accelio) • Отчёты о применении SPDK-драйвера для NVMe • Реализован Infiniband/RDMA • Например, флэш-массив на 3 узлах, роздан по NVMf SDS-кластеру из 12 узлов
  66. Альтернативы: аппаратура Массив Mangstor • “5 млн IOPS на NVMf уже сделали за вас” Массив DSSD5 на PCIe-расширителях • 10 млн IOPS PCI-Express-коммутаторы Изображения: ©Mangstor, ©Dell (EMC), ©Dolhpin
  67. Связанная альтернатива: «программно-определяемая память» Plexistor – свободный P[ersistent]MoF Слойка из NVDIMM + NVMe Презентуется как память …и как блочное устройство ScaleMP На каждый узел – специализированная виртуальная машина Виртуальная память из ОЗУ + NVMe из нескольких узлов – в общий пул Виртуальным машинам раздаются «виртуальные NUMA-узлы» из общего пула Растягиваем ОЗУ на NVMe и продлеваем по сети
  68. Главное чудо NVMf: возможность, ранее доступная только на уровне hi-end-all-flash-массивов Сверхотзывчивый и масштабируемый блочный NVMe-массив на оборудовании массового класса Миллионы IOPS (и десятки миллионов IOPS достижимы) Десятки и сотни терабайт Посетить также: Сергей Платонов (Raidix), «Поговорим о NVMe over Fabrics» // Linux Piter, 11–12 ноября, 2016 “Представлю результаты сравнительного тестирования производительности NVMe over RDMA с другими протоколами, использующими удаленный прямой доступ к памяти (iSER, SRP, SMB Direct) на кластере с суммарной пропускной способностью более 4Тб/с”
Advertisement