3. исход
▪ медиа-сервис с типичным размером файла от
1 до 50 MB
▪ мастер данные от 100 TB до 1 PB
▪ стриминг данные от 50 до 200 TB
▪ стриминг полоса от 10 Gbit/s до 1 Tbit/s
7. тупичок вендора
▪ инфраструктура требует 3–4 решения
▪ негарантируемая скорость при экстремальных
нагрузках
▪ крайняя сложность дебага и тюнинга
▪ стоимость raw TB в 10–30 раза выше consumer
storage
9. cloud storage
▪ Google, Yandex, и почти все крупные интернет-
компании
▪ гибкость, доступность дебага и тюнинга
▪ consumer hardware, стоимость raw TB в 1,5–3
раза выше consumer storage
10. cloud storage
solutions
▪ HDFS, GFS, S3, (Lustre, …)
▪ сложности с большими расстояниями
▪ медленный стриминг, сложность кэширования
▪ сложность эксплуатации
13. почему FreeBSD?
▪ продвинутый, надежный storage: geom, UFS2,
ZFS
▪ проверенный extreme streaming на nginx
▪ доступная коммерческая поддержка на уровне
ядра
▪ промышленный опыт NetApp, Isilon, Panasas
14. почему UFS2?
▪ самая быстрая FS в мире
▪ 7 лет успешной эксплуатации
▪ ZFS сложна и пока медленна
15. почему HTTP?
▪ основной протокол внешнего доступа
▪ достаточно быстрый и простой для
внутреннего обмена
16. унификация
▪ серверы и хранилище
▪ мастер и стриминг данные
▪ внешний и внутренний доступ
▪ кластерный и облачный (CDN) обмен
17. implementation
decisions
▪ одна файловая система на диск
▪ никаких RAID, только JBOD
▪ распределённость на базе случайных чисел
18. слово о hardware
▪ шасси SuperMicro 4U 24 x 3.5"
▪ 2–6 x Intel Gigabit
▪ 24 x 2TB потребительские диски
▪ контроллеры LSI 1068 в режиме JBOD
19. данные
▪ имя файла — sha256 от его содержимого
▪ равномерно разнесены по 4096 (16^x) папкам
▪ диспетчер данных
22. диспетчер данных
▪ PostgreSQL, sh, Python
▪ sha, hdd, chassis, rack, dc
▪ вид sha—http://chassis/hdd/ доступен
приложению
23. диспетчер данных²
▪ знает текущий статус всех объектов
▪ формирует из ручных и автоматических задач
сценарии и запускает их
▪ единая точка автоматизации
▪ частичная multi-master архитектура
▪ self-healing
24. внутренний обмен
▪ nginx + fetch/wget/curl
▪ гибкая аутентификация
▪ быстрый fetcher в разработке
25. внутренний обмен²
▪ унифицирован между локальным и
распределённым уровнями
▪ подстраивается под ширину каналов
27. Phoronix benchmarks
▪ linear local read/write: 100MB/s на диск, 2.4GB/s
на шасси
▪ random local read: 20–40MB/s на диск,
480–960MB/s на шасси
▪ random HTTP get: 4–5Gbit/s на шасси без
оптимизаций
32. стоимость
▪ примерно в 2,5 раза дороже жёсткого диска
▪ можно оптимизировать: пример backblaze
33. разработка
▪ рабочий прототип примерно за неделю
▪ совершенствование в режиме production
благодаря high availability
34. надёжность
▪ случайная распределённость — равномерно
распределённое восстановление
избытычности
▪ жёсткий диск 2TB: 6 часов 4 минуты
▪ шасси 48TB: 55 часов 6 часов
▪ ЦОД 1PB: 10 дней 5 дней :'-(
▪ Земля 10PB: 3 месяца CLASSIFIED секунд
35. бесперебойность
▪ секунды при потере диска
▪ миллисекунды при потере шасси (carp)
▪ секунды при потере dc (app-level next-path)