Какие существуют варианты гибридных RAID с разными типами дисков и какие проблемы возникают?
Что проверяют
Понимаете ли вы, как устроено хранилище под вашими сервисами и базами, и можете ли предсказать, что будет со скоростью и надёжностью при смешивании SSD и HDD. Python-разработчику такой вопрос задают, когда в зону ответственности входит своя инфраструктура, и следом спрашивают, как бы вы следили за массивом.
Как отвечать
Сначала поправьте формулировку: RAID 0, 1, 5 и 10 это обычные уровни, а не гибридные. Гибридными называют схемы, где быстрые и медленные диски работают вместе в разных ролях:
- SSD-кэш перед HDD-массивом:
lvmcache(dm-cache) иbcacheв Linux, кэш на аппаратном контроллере. Write-through безопаснее, write-back быстрее, но тогда кэш нужно зеркалить; - ZFS: L2ARC как кэш чтения, SLOG на SSD для синхронной записи, special vdev для метаданных и мелких блоков;
- тиринг: система сама переносит горячие блоки на SSD, холодные на HDD. Так работают дисковые пространства в Windows Server и многие СХД;
- зеркало из SSD и HDD: в
mdadmу HDD ставят флаг--write-mostly, и чтение идёт с SSD.
Проблемы назовите конкретно. Массив работает со скоростью самого медленного участника и берёт с каждого диска объём самого маленького. Ребилд многотерабайтного HDD идёт сутками, и на RAID 5 растёт риск второй ошибки во время восстановления. Одинаковые SSD в зеркале изнашиваются синхронно и могут отказать почти одновременно. HDD с черепичной записью (SMR) плохо переносят ребилд.
Следить помогают smartctl, /proc/mdstat и zpool status, а на Python несложно собрать проверку, которая разбирает их вывод и шлёт алерт.
Где спотыкаются
Собирают один RAID 5 из SSD и HDD вперемешку. SSD работают со скоростью HDD, деньги потрачены зря.
Включают write-back кэш на одиночном SSD без защиты от потери питания. Отказ кэша означает потерю данных, которые ещё не доехали до HDD.
Считают RAID резервной копией. Он спасает от отказа диска, но не от удаления, шифровальщика или ошибки в миграции.