Производительность Ceph
(введение с рассказом о конденсаторах)
Докладчик: Йа (Виталий Филиппов)
План рассказа
Часа жести не будет, вместо этого:
- Ceph: что, зачем и почему
- Обзор архитектуры
- Производительность
- Конденсаторы
Головоногие, или цефалоподы (лат. 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
Ваша СХД 💩! Нет, ваше приложение 💩!
Кровь, кишки, занавес
⇒ Как изнасиловать диск/СХД
- apt-get install fio
- fio -ioengine=libaio -name=test -direct=1 -filename=/dev/sdX \
- -bs=4k -rw=randwrite -iodepth=1 -fsync=1
- -bs=4k -rw=randwrite -iodepth=128
- -bs=4M -rw=write -iodepth=16
Same for reads.
Изнасиловали SSD
- На HDD дорогой seek
- На SSD дорогой... sync
- Ибо мета
- PLP (обычный)
- 1000 иопс (а не 300000)
- А у цефа тоже журнал
- А у ФС и СУБД ещё один
Всё было бы печально
Конденсаторы
- Встроенный в SSD ИБП
- Основное отличие серверных SSD
- DWPD и т.п. — во многом маркетинг
- Прикол с отключением кэша (hdparm -W 0)
Вот они, родимые
Самолётный сетап
- 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]
- «Ночью через лес» – раз, два, три
Производительность Ceph (введение с рассказом о конденсаторах) Докладчик: Йа (Виталий Филиппов)