Практический выбор RAID для массивов на шпиндельных дисках
Существует поистине колоссальное количество информации о системах хранения RAID, охватывающей такие темы, как риски, производительность, ёмкость, тенденции, подходы и многое другое. Хотя этот материал почти ошеломляет, его можно свести к нескольким распространённым практическим подходам к хранению данных, которые охватят почти все варианты использования. Моя цель здесь — предоставить удобное руководство, которое позволит специалисту без глубокого опыта в области хранения данных подходить к принятию решений по RAID практично и, что самое важное, безопасно.
Для целей данного руководства мы будем рассматривать проекты систем хранения не более чем на двадцать пять традиционных накопителей (дисков с вращающимися пластинами, правильное название которых — Winchester-накопители). Эти диски могут быть SFF (2,5″) или LFF (3,5″), SATA или SAS, потребительского или корпоративного класса. Твердотельные накопители мы рассматривать не будем, поскольку они имеют принципиально иные характеристики и требуют отдельного руководства. Системы хранения более чем на приблизительно двадцать пять шпинделей не следует проектировать по стандартным рекомендациям — необходимо более глубокое изучение конкретных требований к хранению данных для обеспечения корректного планирования.
Данное руководство написано для стандартных систем по состоянию на 2015 год. За последние два десятилетия распространённые подходы к RAID-хранилищам кардинально изменились, и хотя не ожидается, что ключевые факторы, влияющие на эти решения, изменятся настолько, чтобы скорректировать данные рекомендации, такой сценарий весьма возможен. Хороший дизайн RAID 1998 года является очень плохим дизайном RAID сегодня. Темп изменений в отрасли с тех пор значительно снизился, и эти рекомендации, вероятно, сохранят актуальность ещё очень долго — возможно, до тех пор, пока хранение данных на шпиндельных накопителях не прекратит существование или хотя бы не потеряет популярность, — но, как и все предсказания, они могут существенно измениться.
В общем случае мы используем подход, именуемый “One Big Array” (единый большой массив). Это означает единый RAID-массив, на котором создаются все системные и дата-разделы. Необходимость или желание разделять хранилище на несколько физических массивов сегодня в основном отпала и должна иметь место лишь в нестандартных ситуациях. Разделение массивов следует рассматривать только тогда, когда проводится тщательное изучение требований к хранению и глубокий анализ. Разделение массивов гораздо чаще причиняет вред, чем приносит пользу. При наличии сомнений — избегайте разделённых массивов. Цель данного руководства — общие практические рекомендации, позволяющие любому IT-специалисту построить безопасную и надёжную систему хранения. Практические рекомендации не охватывают и не могут охватывать все сценарии — исключения всегда существуют. Но задача здесь — охватить подавляющее большинство случаев проверенными подходами, разработанными с учётом современного оборудования, вариантов использования и требований, с приоритетом безопасности: если выбор не является идеальным, он всё равно безопасен. Ни один из этих вариантов нельзя назвать безрассудным; в худшем случае они избыточно консервативны.
Первый сценарий, который следует рассмотреть, — это случай, когда ваши данные не имеют значения. Это может звучать странно, но это очень важный сценарий. Нередко данные, записанные на диск, считаются временными и не требуют защиты. Это типично для восстанавливаемых данных, таких как рабочее пространство для рендеринга, промежуточные расчётные пространства или кэши — ситуации, когда тратить деньги на защиту данных нецелесообразно и вполне приемлемо просто воссоздать утраченные данные, а не защищать их. Это может быть случай, когда простой не является проблемой, данные статичны или почти статичны, и вместо расходов на снижение простоя мы заботимся лишь о защите данных посредством резервного копирования — так что при отказе массива мы просто полностью восстанавливаем его. В таких случаях очевидный выбор — RAID 0. Он очень быстрый, очень простой и обеспечивает наиболее экономичную ёмкость. Единственный недостаток RAID 0 — его хрупкость: он не обеспечивает никакой защиты от потери данных при отказе диска или даже URE (что вызвало бы повреждение данных так же, как это происходит с настольным жёстким диском).
Следует отметить, что исключением из подхода “One Big Array”, которое встречалось бы часто, является использование RAID 0 для данных. Можно убедительно обосновать выделение небольшого дискового массива исключительно для ОС и данных приложений, восстановить которые в случае потери массива было бы хлопотно, — с применением RAID 1, — тогда как дата-массив RAID 0 будет отдельным. Таким образом, восстановление системы могло бы быть очень быстрым, а не требовать полного восстановления системы с нуля: данные нужно было бы просто воссоздать.
Предполагая, что мы исключили случаи, когда данные не требуют защиты, будем считать во всех остальных случаях, что данные весьма важны и мы хотим защитить их, пусть и с определёнными затратами. Будем считать, что защита данных в том виде, в котором они существуют в активном хранилище, важна — как правило, потому, что мы хотим избежать простоя или потому что хотим обеспечить целостность данных, поскольку данные на диске не являются статичными и отказ массива также означал бы потерю данных. С этим допущением продолжим.
Если у нас массив только из двух дисков, ответ очень прост — выбираем RAID 1. При таком размере другого варианта нет, поэтому решение принимать не нужно. В теории мы должны планировать наши массивы комплексно, а не после того, как количество дисков уже определено; выбор количества дисков и типа массива следует делать совместно, а не покупать диски, а затем определять их использование исходя из этого произвольного числа. Но корпуса с двумя дисками настолько распространены, что стоит упомянуть это как отдельный случай.
Аналогично, при массиве из четырёх дисков единственный реальный вариант для рассмотрения — RAID 10. Дополнительного анализа не требуется. Просто выберите RAID 10 и продолжайте.
Неудобный случай — массив из трёх дисков. Ситуация, когда мы ограничены тремя дисками, крайне редка: единственным распространённым корпусом с ограничением в три диска была Apple Xserve, которая давно снята с производства, поэтому принятие решений для трёхшпиндельных массивов должно быть крайне маловероятным. В случае трёх дисков зачастую лучше обратиться за консультацией, но наиболее распространённые подходы — добавить четвёртый диск и выбрать RAID 10 или, если ёмкость более одного диска не нужна, объединить все три диска в одно зеркало с тремя копиями (RAID 1).
Таким образом, во всех остальных случаях мы работаем с пятью-двадцатью пятью дисками. Поскольку мы исключили ситуации, когда применялись бы RAID 0 и RAID 1, во всех типовых сценариях выбор сводится к RAID 6 и RAID 10 — они охватывают подавляющее большинство случаев. Выбор между RAID 6 и RAID 10 становится главной задачей, поскольку необходимо ориентироваться исключительно на “мягкие” потребности в надёжности, производительности и ёмкости.
Выбор между RAID 6 и RAID 10 не должен быть чрезмерно сложным. RAID 10 идеален, когда приоритетами являются производительность и безопасность. RAID 10 обеспечивает значительно более высокую производительность записи и безопасен вне зависимости от типа используемых дисков (недорогие потребительские диски могут быть исключительно надёжными даже в крупных массивах). RAID 10 хорошо масштабируется до чрезвычайно больших размеров — значительно больших, чем следует реализовывать, опираясь только на практические рекомендации! RAID 10 — самый безопасный из всех вариантов, он быстрый и надёжный. Очевидный недостаток в том, что RAID 10 обеспечивает меньшую ёмкость хранения при том же количестве дисков и является более дорогостоящим с точки зрения ёмкости на единицу затрат. Необходимо упомянуть, что RAID 10 может использовать только чётное количество дисков — диски добавляются парами.
RAID 6 в целом безопасен и быстр, однако никогда не настолько безопасен или быстр, как RAID 10. RAID 6 особенно страдает от низкой производительности записи, поэтому очень плохо подходит для рабочих нагрузок типа баз данных и интенсивных смешанных нагрузок, как в крупных системах виртуализации. RAID 6 экономически эффективен и делает акцент на доступной ёмкости по сравнению с RAID 10. Когда бюджеты ограничены или потребности в ёмкости превалируют над требованиями к производительности, RAID 6 является идеальным выбором. Разница в безопасности между RAID 10 и RAID 6 редко является серьёзным поводом для беспокойства, за исключением очень крупных систем с потребительскими дисками. RAID 6 подвержен дополнительному риску при использовании потребительских дисков — риску, которого не испытывает RAID 10, — что может вызывать определённые опасения относительно надёжности в более крупных массивах RAID 6, например в тех, что превышают приблизительно 40 ТБ при использовании потребительских дисков.
В сегменте малого бизнеса в особенности большинство систем будут использовать RAID 10 просто потому, что массивы редко требуют более четырёх дисков. Когда массивы крупнее, RAID 6 является более распространённым выбором из-за относительно ограниченных бюджетов и, как правило, невысоких требований к производительности. Оба варианта — RAID 6 и RAID 10 — являются безопасными и эффективными решениями почти для всех сценариев использования: RAID 10 доминирует там, где ключевыми факторами являются производительность или экстремальная надёжность, а RAID 6 — там, где основные требования связаны со стоимостью и ёмкостью. И, конечно, когда требования к хранению данных крайне нестандартны или очень велики — например, более двадцати пяти шпинделей в массиве — помните, что стоит привлечь консультанта по хранению данных, поскольку сценарий может легко стать очень сложным. Хранение данных — это область, в которой стоит быть особенно внимательным: от него зависит очень многое, ошибки совершаются легко, а возможности изменить что-либо после факта крайне малы.
