Как работает современный RAID-массив: разбираем реализацию YADRO

Чтобы обеспечить доступность данных, T-RAID решает определенный набор задач.
Построение пула хранения на несколько петабайт. Эту возможность обеспечивает архитектура T-RAID: схемы расположения данных, реализация страйпов и allocation-групп дисков.
Оптимизация ребилда дисков и нагрузки на них. T-RAID проводит ребилд только реальных данных, а также распределяет нагрузку ребилда на несколько дисков. Здесь задействована обработка ошибок через блоки, а также фоновые процессы recovery и balancer. В распределении нагрузки помогает фоновый воркер rate limiter и адаптивный троттлер фоновых процессов.
Защита от выхода из строя аппаратных компонентов СХД (процессора, материнской платы, блока питания, контроллера, системного диска). Достигается посредством двухконтроллерной работы в режиме active-active. Тома блоков доступны на запись и чтение одновременно с двух контроллеров при балансировке нагрузки к лунам. Реализацию active-active мы раскроем в отдельной части материала.
Обеспечение отказоустойчивой работы с самими данными от получения запроса до записи в диск. Это реализуется с помощью integrity-механизмов.
Отработка отказов оборудования. Здесь возможно несколько сценариев разного масштаба — от потери отдельного диска до потери целого контроллера или интерконнекта.
О том, как в T-RAID реализованы все перечисленные технические средства, в своей статье подробно рассказал Вячеслав Пачков, ведущий инженер по разработке ПО в департаменте СХД YADRO.