Производительность Ceph

(введение с рассказом о конденсаторах)

Докладчик: Йа (Виталий Филиппов)

Я и команда TMS

План рассказа

Часа жести не будет, вместо этого:

  1. Ceph: что, зачем и почему
  2. Обзор архитектуры
  3. Производительность
  4. Конденсаторы
Головоногие, или цефалоподы (лат. Cephalopoda)

Ceph

  • Программная СХД
  • Используется в CERN
  • Очень много умеет
  • А у нас — клоны баз. А у вас?

Непраздный вопрос

Зачем вообще нужна СХД?

Десакрализация СХД

  • Скорость? 🚫 NVMe
  • Защита от умирания дисков? ± да, но AFR упал
  • Отказоустойчивость? 🚫 K8s, NoSQL, Patroni...
  • Аппаратность 🚫 уже не аппаратная
  • SAS 🚫 нафиг не нужен
  • FC 🚫 тоже, 10-25-100GbE дешевый
  • А $$$ как у крыла от F-35

2014 Annualized Hard Drive Failure Rates

For drives models in service as of 09/23/2014

MFG Model Drive
Size
Drive
Count
Average
in years
Annualized
Failure Rate
Seagate ST4000DM000 4TB 9619 0.6 3.0%
HGST HDS722020ALA330 2TB 4706 3.4 1.1%
HGST HDS5C3030ALA630 3TB 4593 2.1 0.7%
Seagate ST3000DM001 3TB 3846 1.9 15.7%
HGST HMS5C4040BLE640 4TB 2884 0.2 n/a
HGST HDS5C4040ALE630 4TB 2627 1.2 1.2%
Seagate ST31500541AS 1.5TB 1699 4.3 9.6%
HGST HMS5C4040ALE640 4TB 1305 0.1 n/a
HGST HDS723030ALA640 3TB 1022 2.6 1.4%
WD WD30EFRX 3TB 776 0.5 8.8%
WD WD10EADS 1TB 476 4.6 3.8%
Seagate ST31500341AS 1.5TB 365 4.3 24.9%
Seagate ST33000651AS 3TB 318 2.2 6.7%

BACKBLAZE

С другой стороны

  • Данных меньше не стало
  • Пришёл K8s, кластер хотят все
  • S3, файлопомойка, виртуалки
  • HPC, вебскейл
  • В энтерпрайз это всё тоже идёт

Ночью через лес

Серия докладов про файловое хранилище [1], [2], [3]

ФС + rsync не успевал
PostgreSQL + самопал тормозил
LeoFS умер
Aerospike история умалчивает
Cassandra 137 rps * 64 Кб = 100% * 16 HDD
Жесть, не надо так 🤭

SAN/SDS

  • FOSS: Ceph, Linstor
  • Другие поделия типа SeaweedFS, LizardFS
  • Если хочется заплатить, выбор широкий
  • Из SDS жив VMWare vSAN
  • Но также Nutanix, S2D, Virtuozzo и тыща других
  • Много классических СХД (закрытая кухня)
  • Есть даже импортозамещённые СХД на Эльбрусе

Архитектура Ceph

  • Диссер Шалфея [2007]
  • Блочная (RBD), объектная (S3), файловая (CephFS)
  • В основе — объектная (RADOS)
  • Симметричная, Ø SPOF (mon-osd)
  • Hash-based (CRUSH) (в противовес MDS-based)
  • Сильная целостность
  • Умеет кучу всего
  • Интегрируется почти со всем (k8s, kvm, samba...)

Все было бы идеально, но

Блиц, блиц...

Скорость без границ

Лирическое отступление

Обратная сторона облаков, k8s, MSA

  • Люди не очень понимают, что делают
  • Облако - 1G - K8s - Rook - Ceph. Упс, всё сдохло
  • Микросервисы, лямбды, AWS. Упс, дорого
  • Закон Дырявых Абстракций и т.п.

"Мы слышали, что цеф хорош для гиперконвергентной среды"

На хардах. С 1G сетью.

Ставим, взлетаем.

ЧТО-ТО МЕДЛЕННО

Так, стоп, а что медленно-то?

  • Ну, у нас Oracle тормозит
  • Смотрим. 60 wr iops, 100 % util
  • Смутные воспоминания:
    HDD... 100 iops... у нас 12x, 3 реплики...
  • 12 * 100 / 3 = 400, а у нас 60
  • fsync
  • Журналирование
  • 12x 100 = 100

Ваша СХД 💩! Нет, ваше приложение 💩!

Кровь, кишки, занавес

⇒ Как изнасиловать диск/СХД

  1. apt-get install fio
  2. fio -ioengine=libaio -name=test -direct=1 -filename=/dev/sdX \
  3.   -bs=4k -rw=randwrite -iodepth=1 -fsync=1
  4.   -bs=4k -rw=randwrite -iodepth=128
  5.   -bs=4M -rw=write -iodepth=16

Same for reads.

Изнасиловали SSD

  • На HDD дорогой seek
  • На SSD дорогой... sync
  • Ибо мета
  • PLP (обычный)
  • 1000 иопс (а не 300000)
  • А у цефа тоже журнал
  • А у ФС и СУБД ещё один

Всё было бы печально

Конденсаторы

Конденсаторы

  • Встроенный в SSD ИБП
  • Основное отличие серверных SSD
  • DWPD и т.п. — во многом маркетинг
  • Прикол с отключением кэша (hdparm -W 0)
Вот они, родимые

Теперь Ceph

All-Flash от Micron

Самолётный сетап

  • 2x 2*100 GbE сеть
  • 2x 100 GbE свитча
  • 2x Xeon 8168 (24 ядра, 2.7-3.7 ГГц)
  • 10x злых NVMe: Micron 9300 MAX 12.8 TB
    👿 до 810k read iops, до 310k write iops
  • 384 GB DDR4
  • 4 ноды

Цена вопроса

  • 2x 100 т.р. (net)
  • 2x ~10000 $ (switch)
  • 2x 500 т.р. (cpu)
  • 10x 300 т.р. (диски)
  • 12x 12 т.р. (ram)
  • ⇒ 512 TB raw, не гиперконвергент            
  • Итого ~19.5 млн (сервера – 7.5 млн)

Производительность

Производительность

  • 2.1M randread Q=3200 @ 1.52ms
  • 477k randwrite Q=3200 @ 6.7ms
  • ...100 клиентами (!)
  • 10 * Q=32 → 294k @ 1.08ms
  • Но 310к может 1 диск (!!!)
  • 100 * 70% r/w Q=1
    0.37ms / 0.72ms = 147k + 63k iops
  • По веб-меркам ОК, по SSD-...

SDS = оверхед

  • Есть vSAN тоже от Micron-а:
    Поскромнее диски, Q=512
    Но и iops-ов 486k / 121k (пока в кэше)
    ...или 363k / 51k (не в кэше)
  • Есть AWS со своим EBS
  • Яндекс со своим YDB
  • Гугл (GCP) тоже с чем-то своим
  • mail.ru cloud с цефом * есть локальные SSD
  • Все тормозят 🤣 🤣 🤣

Валидный юзкейс

  • Очень много данных
  • Надёжность очень важна
  • Производительность не так важна
  • S3 и CephFS
  • Сеть 10Г или быстрее

Чтиво

  • Диссертация Sage Weil, Ceph – [1]
  • Micron® 9300 MAX Ceph Reference Architecture – [2]
  • Micron® All-Flash SATA vSAN 6.7 Solution – [3]
  • Yandex Database. Сетевое блочное устройство – [4]
  • Про умирающие SSD с USENIX FAST'13 – [5]
  • Производительность Ceph (моя Wiki статья) – [6]
  • «Ночью через лес» – раз, два, три

Кому хочется ещё: