Эволюция программно-аппаратного обеспечения хранения...

Preview:

Citation preview

Эволюция программно-аппаратного

обеспечения хранения фотографий в Badoo

Какое ПО и “железо” использует Badoo, для хранения фотографий и видео более 300 млн пользователей

Anton Turetsky
Здесь должно быть:- Имя - [Должность]- Компаниявсё

Вступление

Мы храним много фото:• Количество пользователей - более 320 млн.• Число стран и регионов - 237?• Общий объем хранимых фотографий и видео ~ 3 PTiB

Anton Turetsky
Не Вступление, а "Badoo"/"о Badoo".Ну это стандартный слайд о конторе, что мы большие и крутые.В нем, конечно, можно сделать упор на фотографии.

Производительность, стоимость, надежность. Поиск компромисса.

Сочетание производительности, надежности и стоимости - определяет то как будет выглядеть ваша СХД

Первый рабочий вариант СХД - 2009

Использование классических мультиконтроллерных СХД

Основные компоненты:• SAN - Fibre Channel

• Коммутаторы Qlogic/Brocade (4/8 Gbit)• Адаптеры шины HBA (Emulex/Qlogic)

• Хранилища на базе LSI Engenio - Active-Passive• Хранилища на базе Hitachi AMS 2500/2300 - Active-Active (ALUA)• Вычислительные узлы - Oracle SunFire / HP ProLiant

Anton Turetsky
Желательно по очереди про каждый пункт, желательно с картинками.Если написать так, то все прочитают и не будут слушать то, что ты будешь говорить.

Хранилище с двум

я контроллерам

и

Проблемы в ходе эксплуатации

Технические:• Переполнение очереди (512/число хостов/число lun <=32)• Десинхронизация контроллеров• Одновременный сбой носителей• Ограничение числа конфигураций LUN-Masking• Недостаточный инструментарий мониторинга

Anton Turetsky
Если лепить вот эту кучу текста на один слайд - будешь читать и ты и все остальные.Можно выделить 3 основных момента, а про остальные рассказать вслух.Есть еще вариант разделить проблемы железа и проблемы логистики, так тоже станет понятнее.
Dmitry Likhachev
Да учту, разумно сделать разбивку, и более последовательное изложение.

Проблемы в ходе эксплуатации

Организационные:• Сложность резервирования и восстановления конфигураций • Отсутствие документации• Затянутые сроки ремонта и закупки компонентов• Отсутствие оборудования на рынке

Доработка системы хранения и кэширования фотографий

• Кэширование чтений на отдельной ферме машин.• Унификация узлов. Отказ от Polyserve и переход на Ext3• Замена RDAC на Linux MP/IO• Реконфигурация SAN - Zoning, Fabric Interconnect.• Ограничение зон видимости LUN - LUN Masking• Введение кэширующего слоя на вычислительных узлах• (flashcache/dm-cache)• Увеличение объема ОЗУ на узлах• Увеличение объема хранилищ - замена накопителей и

подключение новых дисковых полок

Anton Turetsky
Может с графикой: было/стало?
Dmitry Likhachev
Диаграммы я как раз отрисовываю сейчас. Там будут схемы первоначального состояния и пошагового изменения. Текста на слайдах очень много - на это мне уже указал Роман Поборчий, и кое то будет сокращено, а кое что анимировано и разнесено на разные слайды.
Anton Turetsky
про это было сказано ранее?
Anton Turetsky
"Кэшенирование чтений", может "чтения"?

СХД после доработки

● Все узлы - bphotos● FS - ext3● Кэш на SSD● Уточнен Lun-masking

Причины замены хранилищ на собственныеВыработка ресурса, сбоиИсчерпание возможностей к расширениюОтсутствие приемлемой по цене альтернативыНедостаточная производительностьОтсутствие документацииНизкая оперативность поддержки и ремонтаНизкая плотность

Переходный вариант.

Проектирование новых хранилищ

• Прогнозирование роста объемов данных на ближайшие два года, на основе накопленной статистики.

• Сравнительная оценка производительности (IO Capacity)• Составление требований к функционалу. • Обзор существующих решений и технологий.• Выбор наиболее доступных и способных к быстрому введению в

эксплуатацию

Требования к функционалу - 1• Узлы и SAN остаются прежними • ПО - доступно, документировано и желательно открытым• Знакомый инструментарий отладки и мониторинга• Аппаратные компоненты - стандартны и доступны из разных

источников, с возможностью замены на другую модель• Высокая дисковая плотность • Данные доступны при замене компонентов системы. • Конфигурация воспроизводима, изменения протоколируются

• Данные дублируются на двух хранилищах и доступны одновременно

• изменять уровень RAID(Raid Level Migration) • создавать снимки томов (snapshots) • клонировать тома • замены носителей на более емкие• изменение объема тома “на лету” • Хранилище модифицируемо, tiered storage, кэширование на

высокопроизводительных носителях.• Поддержка Multipath IO.• Различные транспорт - FC/FCOE/iSCSI/SRP и пр

Artem Denisov
не надо клонировать Томма :)))

Физическая компоновка хранилищ

Выбор аппаратных компонентов

НосителиНоситель информации используемый в СХД является расходным материалом, а его тип - одним из определяющих условий, того какова будет ее цена/надежность/производительность

Выбор носителей

Тип носителя (Media): SSD/HDDSSD: - малое время доступа/высокая производительность, низкое энергопотребление, толерантность к вибрации, малые объемы, небольшое время наработки на отказ (MTBF) , высокая цена

HDD: умеренная цена, большой объем, долгий период наработки на отказ, низкая производительность

Форм-фактор - 2.5” или 3.5”?

2.5”:

• Pro: малые физические размеры, высокая плотность, низкая вибрация, высокие скорости вращения, малое время доступа

• Contra: малый объем, высокая цена за 1Mb.

3.5”:

• Pro: большой объем, низкая цена, широкая доступность на рынке

• Contra: большой размер-низкая плотность per unit, высокая вибрация, низкие скорости вращения, большое время доступа

Выбор интерфейса - SATA или SAS

SATA - широко доступны и имеют низкую цену, SATA может работать поверх SAS, одноканальный доступ к диску (от одного Initiator-а), а так же имеют меньший буфер под очередь команд (NCQ). Система внутреннего мониторинга SMART сильно различается между моделями и производителямиSAS - позволяет организовать двухканальный доступ к диску, имеет более изощренные методы коррекции ошибок и позиционирования, традиционно считаются более надежными и имеющими больший ресурс

SAS-SATA MUX (Интерпозер)

Мультиплексор SAS-SATA, позволяет использовать SATA диски в HA-конфигурациях

Схема работы SAS-SATA MUX

Дисковые полки - JBODДве основные составляющие стоимости СХД:1.Стоимость носителя - цена за Mb 2.Стоимость размещения - цена за слот

Размещение в дисков в расширениях JBOD, позволяет получить высокую плотность компоновки и сравнительно небольшую цену за один дисковый слот. В настоящее время доступны JBOD высокой плотности - 90x3.5” на 4U, т.е более 22 дисков в 1U

Компоненты JBOD:

• Корпус, дисковые слоты• Источники питания (PSU)• Контроллер питания (PDB)• Система охлаждения, вентиляторы и датчики• Бэкплейны• Экспандер - один или несколько• Интерфейсные кабели и разъемы

Экспандер - LSI SAS2x36Экспандер - SAS-коммутатор. Осуществляет контроль и мониторинг питания и охлаждения. Управляет LED.

Управляющий блок. Компоненты.

• CPU • Mainboard• RAM • SAS HBA-адаптеры шины• FibreChannel/IB/10GigE-контроллеры • Локальный RAID (OS/Support Tools)

Программное обеспечение.• OS - SLES 11.3/12• DeviceMapper - Multipath I/O• MDRaid - программный RAID• LVM - менеджер томов• Утилиты: sg3_utils, smp_utils• SCSI Target - LIO, SCST или иное ПО, реализующее Target• Smartmontools - мониторинг состояния носителей• Puppet Agent - управление конфигурациями• Zabbix Agent - агент системы мониторинга• Набор хелперов для конфигурации

Логика работы хранилищаДля балансировки нагрузки на ядра CPU и поддержки HA, используется DM Multipath

t3d11 (35000c5005050c73a) dm-31 ATA,size=1.8T features='0' hwhandler='0' wp=rw`-+- policy='queue-length 0' prio=2 status=active |- 6:0:36:0 sdal 66:80 active ready running `- 8:0:61:0 sded 128:80 active ready running

Конфигурация SCSI Target (SCST)

HANDLER vdisk_fileio {DEVICE private30170 { filename /dev/lv0/private30170 usn private30170 nv_cache 1 threads_pool_type shared }TARGET_DRIVER qla2x00t {TARGET 21:00:00:1b:32:89:00:1c { HW_TARGET enabled 1

GROUP dphotos30 { INITIATOR 21:00:00:1b:32:1f:14:b5 INITIATOR 21:01:00:1b:32:3f:14:b5 LUN 0 private30170

Конфигурация бэкенда - устройства хранения

Конфигурация драйвера FC HBA и lun-masking

Подключение хранилищ к хостам

Конфигурация multipath.confdevice { vendor "SCST_FIO" product "*"

path_grouping_policy group_by_prio path_checker tur uid_attribute "ID_SCSI_SERIAL" path_selector "round-robin 0" rr_weight uniform rr_min_io 2 failback manual }

Атрибут агрегации путей

scsi_id --export --whitelisted /dev/sdc ID_SCSI_SERIAL=private30170

scsi_id --export --whitelisted /dev/sdbk ID_SCSI_SERIAL=private30170

Отображение путейprivate30170 dm-4 SCST_FIO,private30170size=510G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=1 status=active |- 3:0:0:0 sdc 8:32 active ready running |- 3:0:1:0 sdbk 67:224 active ready running |- 4:0:1:0 sdga 131:96 active ready running `- 4:0:0:0 sdds 71:160 active ready running

Тестирование перед вводом в эксплуатацию.

Нагрузочный тест для CPU/RAM: - LinpackВнутренний тест SMART - Long Offline TestЗапись значений SMART - AСинтетический тест чтения/записи: - IOZONEЗапись значений SMART - B и их сравнение с AНагрузочный тест FIO - выполняется одновременно на всех подключенных узлах

Регламент действий при устранении сбоев

1.Отключение нагрузки, остановка записи2.Демонтаж разделов. При невозможности - отключение

вычислительного узла3.Проведение расследования, поиск и установка причины4.Устранение5.Проверка целостности данных, HDD -> RAID -> Volume -> FS6.Синхронизация разницы

Расследование причин сбоев и обработка нештатных ситуаций

1)Получение системных журналов с узла, записей контроллера BMC, крашдампов ядра ОС, логирование через последовательную консоль

2)Выяснение какие версии ПО/Firmware были активны на момент сбоя

3)Определение порядка сбоя - (Order of Failure), какой именно компонент, в каком хронографическом порядке вышел из строя

Типовые ошибки и проблемы ведущие к сбоям

• Некорректная настройка Time Long Error Recovery у HDD• Некорректная настройка DM Multipath (queue_if_no_path)• Неверное сочетания драйвера-прошивки HBA• Ошибка адресации памяти, неверная настройка NUMA• Отключение питания, выход из строя PSU• Перегрев носителей, выход из строя вентиляторов• Переполнение очередей, настройки Queue Depth• Использование нестабильных версий ПО, баги• Компоненты низкого качества, (экономия на мелочах)

Возможности для изменения и модернизации

Добавление кэширующего уровня - установка PCIe SSD и решения на базе dm-cache/lvmcache/bcache Замена транспортного протокола (FC/FCOE/iSCSI/iSER/SRP): - установка адаптера и реконфигурация SCSTУвеличение объемов и увеличение производительности - масштабирование: установка более емких носителей и модулей расширения JBOD

Статистика по отказам носителей

SeagateToshibaHitcachiHGST SATAHGST SASWDC Green

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

Некоторые данные по известным ценам на компоненты (GPL)

Заключение

Recommended