Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Архитектура хранилища бинарных            данных на Одноклассниках27.09.2011
Масштабность проекта, цели и задачиАрхитектура нового хранилищаЭксплуатация
Текущая нагрузка и объёмыПользовательские фотографии     1.6 Млрд. x 4 размера     200 ТБ     3.5 М загрузок в день    ...
Существующие решенияone-db — Berkeley + Remote Interface   Невысокая производительность   Низкая отказоустойчивость   С...
ЦелиМаксимальная производительность на чтениеОтсутствие SPOFРезервирование вместо бэкаповБыстрое и гибкое расширение класт...
На что мы смотрели  Распределенные файловые системы  HDFS  Cassandra, Voldemort, Krati
Масштабность проекта, цели и задачиАрхитектура нового хранилищаЭксплуатация
Обзор Архитектуры
Устройство сервераНезависимые дискиДанные в сегментахИндекс в памятиNIO Socket server (Mina)
Сегменты данныхФайлы одного размера (256МБ)Резервирование с помощью xfs_ioОдин активный сегмент на записьУплотнение сегмен...
ИндексХеш таблица на десятки миллионов элементов   увеличение размера без паузы   1 примитивный массив + direct memory  ...
Кластер и РезервированиеУникальный ИД дискаФактор репликации - 3Равномерное распределение репликНет 2 реплик на одном серв...
МаршрутизацияПартиция   hash(ID) % NТаблица маршрутизации   Партиция —> Диск 1, Диск 2, Диск 3, ...
Расширение Кластера
Преимущества РегионовРасширение не требует передвижения данныхНе надо хранить местоположения для каждого объектаКаждый кли...
Zookeeper Для КоординацииЧто такое Zookeeper?   Сервис для координации распределенных приложений   Дерево + Бинарные дан...
Данные в ZookeeperДоступные сервера и их адресаМестоположения и статусы дисковТаблицы маршрутизацииРаспределенная блокировка
Обработка ОшибокТип проблемы          Обнаружение                  ОбработкаВылет диска           IOException             ...
Hinted Handoff и востановлениеHinted Handoff    Недоступность 1 реплики → 2 реплики хинта    Чтение хинтов при старте, д...
Масштабность проекта, цели и задачиАрхитектура нового хранилищаЭксплуатация
Развертывание24 сервераSuperMicro16 GB RAM1TB HDD x 24   20 — хранилища   2 — резервные   2 — система и логи (RAID 1)
СтатистикаХарактеристики 1 сервера :Синтетические тесты   2000 чтений/сек   900 Мб/секНоминальная нагрузка   600 чтений...
МониторингМониторинг каждого Zookeeper сервераМониторинг каждого сервера хранилищ:   Доступность дисков   Соединение с Z...
Александр Христофоров    odnoklassniki.ru/ah   Олег Анастасьев    odnoklassniki.ru/oa   hr@odnoklassniki.ru
Upcoming SlideShare
Loading in …5
×

Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоров, Олег Анастасьев)

4,208 views

Published on

  • Be the first to comment

  • Be the first to like this

Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоров, Олег Анастасьев)

  1. 1. Архитектура хранилища бинарных данных на Одноклассниках27.09.2011
  2. 2. Масштабность проекта, цели и задачиАрхитектура нового хранилищаЭксплуатация
  3. 3. Текущая нагрузка и объёмыПользовательские фотографии  1.6 Млрд. x 4 размера  200 ТБ  3.5 М загрузок в день  150 К чтений/сек  Полноразмерные фотографии ???Груповые фотографииМузыка...
  4. 4. Существующие решенияone-db — Berkeley + Remote Interface  Невысокая производительность  Низкая отказоустойчивость  Сложное обслуживание  Высокая стоимость оборудования  Мастер + Слэйв + Бэкапы = 6 копий  Бэкап – 17 часов
  5. 5. ЦелиМаксимальная производительность на чтениеОтсутствие SPOFРезервирование вместо бэкаповБыстрое и гибкое расширение кластераДешёвое железоJAVA
  6. 6. На что мы смотрели  Распределенные файловые системы  HDFS  Cassandra, Voldemort, Krati
  7. 7. Масштабность проекта, цели и задачиАрхитектура нового хранилищаЭксплуатация
  8. 8. Обзор Архитектуры
  9. 9. Устройство сервераНезависимые дискиДанные в сегментахИндекс в памятиNIO Socket server (Mina)
  10. 10. Сегменты данныхФайлы одного размера (256МБ)Резервирование с помощью xfs_ioОдин активный сегмент на записьУплотнение сегментов вместо отслеживания свободныхфрагментов
  11. 11. ИндексХеш таблица на десятки миллионов элементов  увеличение размера без паузы  1 примитивный массив + direct memory  данные в памяти = данные на дискеЛог транзакций  Изменения индекса → логи на отдельном диске  Синхронизация и чистка логов  Проверка целостности данных при старте
  12. 12. Кластер и РезервированиеУникальный ИД дискаФактор репликации - 3Равномерное распределение репликНет 2 реплик на одном сервереКворум записи — 2Чтение — 1 + 1
  13. 13. МаршрутизацияПартиция  hash(ID) % NТаблица маршрутизации  Партиция —> Диск 1, Диск 2, Диск 3, ...
  14. 14. Расширение Кластера
  15. 15. Преимущества РегионовРасширение не требует передвижения данныхНе надо хранить местоположения для каждого объектаКаждый клиент имеет реплику всех версий таблицымаршрутизации в памяти
  16. 16. Zookeeper Для КоординацииЧто такое Zookeeper?  Сервис для координации распределенных приложений  Дерево + Бинарные данные в узлахОсобенности Zookeeper  Распределенный  Память + лог  Кворум записи  Гарантированная последовательность  Временные вершины  НотификацииПочему Zookeeper?  Надежный >= 3 серверов  Быстрый
  17. 17. Данные в ZookeeperДоступные сервера и их адресаМестоположения и статусы дисковТаблицы маршрутизацииРаспределенная блокировка
  18. 18. Обработка ОшибокТип проблемы Обнаружение ОбработкаВылет диска IOException Выключение дискаВылет сервера Таймаут сессии в Zookeeper Вывод из кластераПотеря соединения к Ошибки выполнения Блокировка сервера исерверу запроса мониторинг
  19. 19. Hinted Handoff и востановлениеHinted Handoff  Недоступность 1 реплики → 2 реплики хинта  Чтение хинтов при старте, диск доступен на запись  Периодическая проверка хинтовПолное восстановление данных  Диск доступен на запись  Восстановление параллельно с разных дисков
  20. 20. Масштабность проекта, цели и задачиАрхитектура нового хранилищаЭксплуатация
  21. 21. Развертывание24 сервераSuperMicro16 GB RAM1TB HDD x 24  20 — хранилища  2 — резервные  2 — система и логи (RAID 1)
  22. 22. СтатистикаХарактеристики 1 сервера :Синтетические тесты  2000 чтений/сек  900 Мб/секНоминальная нагрузка  600 чтений/сек  350 Мб/сек
  23. 23. МониторингМониторинг каждого Zookeeper сервераМониторинг каждого сервера хранилищ:  Доступность дисков  Соединение с Zookeeper  Хранилище хинтов  ОшибкиМониторинг кластера:  Недоступные сервера  Недоступные диски
  24. 24. Александр Христофоров odnoklassniki.ru/ah Олег Анастасьев odnoklassniki.ru/oa hr@odnoklassniki.ru

×