Extreme cloud storage on free bsd (Андрей Пантюхин)

Preview:

Citation preview

(пара скриптов на shell и SQL)

медиа-сервис с типичным размером файла от 1 до

50 MB

мастер данные от 100 TB до 1 PB

стриминг данные от 50 до 200 TB

стриминг полоса от 10 Gbit/s до 1 Tbit/s

сохранность мастер данных

безотказность и качество стриминга

разумная TCO

много дисковых полок

эффективное кластерное хранилище

CDN от вендора

серверы доступа — отдельно

Isilon, NetApp, Panasas

Exadata, EMC, HDS

GPFS, PolyServe

инфраструктура требует 3–4 решения

негарантируемая скорость при экстремальных

нагрузках

крайняя сложность дебага и тюнинга

стоимость raw TB в 10–30 раза выше consumer

storage

server-integrated storage!

(cloud storage)

Google, Yandex, и почти все крупные интернет-

компании

гибкость, доступность дебага и тюнинга

consumer hardware, стоимость raw TB в 1,5–3 раза

выше consumer storage

HDFS, GFS, S3, (Lustre, …)

сложности с большими расстояниями

медленный стриминг, сложность кэширования

сложность эксплуатации

FreeBSD

UFS2

HTTP

продвинутый, надежный storage: geom, UFS2, ZFS

проверенный extreme streaming на nginx

доступная коммерческая поддержка на уровне ядра

промышленный опыт NetApp, Isilon, Panasas

самая быстрая FS в мире

7 лет успешной эксплуатации

ZFS сложна и пока медленна

основной протокол внешнего доступа

достаточно быстрый и простой для внутреннего

обмена

серверы и хранилище

мастер и стриминг данные

внешний и внутренний доступ

кластерный и облачный (CDN) обмен

одна файловая система на диск

никаких RAID, только JBOD

распределённость на базе случайных чисел

шасси SuperMicro 4U 24 x 3.5"

2–6 x Intel Gigabit

24 x 2TB потребительские диски

контроллеры LSI 1068 в режиме JBOD

имя файла — sha256 от его содержимого

равномерно разнесены по 4096 (16^x) папкам

диспетчер данных

минимум на трёх шасси

чуть позже — минимум в трёх ДЦ

минимум на трёх шасси

во всех точках CDN

PostgreSQL, sh, Python

sha, hdd, chassis, rack, dc

вид sha—http://chassis/hdd/ доступен

приложению

знает текущий статус всех объектов

формирует из ручных и автоматических задач

сценарии и запускает их

единая точка автоматизации

частичная multi-master архитектура

self-healing

nginx + fetch/wget/curl

гибкая аутентификация

быстрый fetcher в разработке

унифицирован между локальным и

распределённым уровнями

подстраивается под ширину каналов

nginx, secure link

100k+ потоков на шасси

linear local read/write: 100MB/s на диск, 2.4GB/s на

шасси

random local read: 20–40MB/s на диск, 480–960MB/s

на шасси

random HTTP get: 4–5Gbit/s на шасси без

оптимизаций

app-level next path retry

актуальная информация о доступности в

приложении

carp в пределах dc

proxy store при выходе диска из строя

hardware balancers плохо подходят для тяжёлых

данных

app-level, geo-aware, status-aware balancing

на новое шасси уходит несколько минут

это можно автоматизировать

plug-and-pray

примерно в 2,5 раза дороже жёсткого диска

можно оптимизировать: пример backblaze

рабочий прототип примерно за неделю

совершенствование в режиме production благодаря

high availability

случайная распределённость — равномерно

распределённое восстановление избытычности

жёсткий диск 2TB: 6 часов 4 минуты

шасси 48TB: 55 часов 6 часов

ЦОД 1PB: 10 дней 5 дней :'-(

Земля 10PB: 3 месяца CLASSIFIED секунд

секунды при потере диска

миллисекунды при потере шасси (carp)

секунды при потере dc (app-level next-path)

недостатки

преимущества

кастомность

велосипедность

маленький bus factor

сырость

отсутствие сертификаций

гибкость

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

job security

единственное унифицированное решение под

задачи

интересно? заходите к нам в гости знакомиться

и оставайтесь делать будущее!

andrew@dreamindustries.ru