Итак, я застрял в углу, у меня есть проект хранения, который ограничен 24 шпинделями и требует тяжелой случайной записи (соответствующая сторона чтения является чисто последовательной). Требуется каждый бит места на моих дисках, всего ~ 13 ТБ в n-1 raid-5, и должен работать быстро, более 2 ГБ / с.
Очевидный ответ - использовать Stripe / Concat (Raid-0/1) или, еще лучше, raid-10 вместо raid-5, но это запрещено по причинам, не зависящим от меня. Итак, я прошу помощи в получении неоптимальной конфигурации, которая будет настолько хорошей, насколько это возможно.
Массив построен на жестких дисках SAS-2 со скоростью вращения 10 000 об / мин с прямым подключением и контроллером серии ARECA 18xx с кэш-памятью 4 ГБ. 64k полос массива и файловая система XFS, выровненная по полосам 4K, с 24 группами распределения (чтобы избежать некоторых штрафов за рейд 5).
Суть моего вопроса заключается в следующем: в той же настройке с 6 шпинделями / AG я вижу ограниченную производительность диска при записи, ~ 100 МБ / с на шпиндель, на 12 шпинделях я вижу, что это падение до ~ 80 МБ / с и на 24 ~ 60 МБ / с.
Я ожидал, что с распределенной четностью и согласованными AG производительность должна масштабироваться с количеством шпинделей или хуже при малом количестве шпинделей, но этот массив работает наоборот.
Что мне не хватает?
Следует ли масштабировать производительность Raid-5 с количеством шпинделей?
Большое спасибо за ваши ответы и любые идеи, отзывы или рекомендации.
- Редактировать счет: Повышение производительности RAID Другая соответствующая ветка, которую мне удалось найти, обсуждает некоторые из тех же проблем в ответах, хотя по-прежнему оставляет меня без ответа о масштабировании производительности.
ЛЮБОЙ RAID 5 неоптимален, массив R5 с 24 дисками - это просто глупо, я не хочу показаться грубым, но большинство контроллеров аппаратных массивов не будут позволять вы создаете массив R5 из 24 дисков, подумайте, сколько данных вы можете потерять, даже не подозревая об этом. Кроме того, если вы делаете какое-либо количество записей любого типа в RAID5 или 6, это не путь вперед, на самом деле добавление дополнительных шпинделей может просто замедлить работу.
И с точки зрения производительности, и с точки зрения надежности вам НЕОБХОДИМО как можно скорее преобразовать это в RAID 10, это действительно единственный путь вперед, все остальное - просто полировка какашки.
Каковы различные широко используемые уровни RAID и когда их следует учитывать?
RAID-5 в таком масштабе может быть проблематичным (время восстановления, повышенная вероятность отказа массива). Ваша случайная скорость записи вообще не будет разумной (возможно, с пропускной способностью одного диска), и она не будет масштабироваться с помощью шпинделей.
Ваше ограничение здесь - ваш рейд-контроллер. Случайная запись, такая как большой кеш, и RAID на основе четности, как быстрый калькулятор четности. Чем больше дисков вы добавите в RAID-массив на основе четности (например, RAID 5 или 6) на локально подключенном контроллере, тем ниже будет производительность на шпиндель. Большое хранилище с прямым подключением (более 8 дисков или около того), как правило, имеет рейд 10, чтобы избежать этой проблемы. Единственная причина использовать RAID на основе четности (5 или 6) - получить выгоду от более высокого отношения полезного пространства. Обратной стороной является то, что, если вы потеряете диск, восстановление займет больше времени, если RAID был большим.
Если ваше оборудование исправлено, и вам нужно, чтобы это работало как можно лучше, тогда ваша лучшая производительность будет с RAID 10, однако вы потеряете половину доступного пространства. Кроме того, хотя сначала он кажется более устойчивым, поскольку вы можете потерять до половины дисков без сбоя, вы все равно можете потерять данные, если потеряете не те два диска.
Другой вариант для локально подключенного хранилища - ZFS. Я не утверждаю, что знаю его внутреннюю работу, но я понимаю, что он полностью игнорирует карту RAID и работает с базовыми дисками. Если вы правильно сконфигурируете его, он может иметь меньшее наказание за четность для небольших операций записи.
Если у вас есть деньги на решение этой проблемы, вам стоит инвестировать в лучший RAID-контроллер. Что-то с большим кешем и более быстрым процессором. Если вы решите использовать RAID на основе четности, лучше всего будет создать несколько RAID - предпочтительно 3 группы по 8 шпинделей в каждой.
Еще лучше было бы получить какое-то внешнее хранилище: что-то, что имеет контроллер хранилища, который обрабатывает все кэширование и вычисления четности и просто разрешает доступ к хранилищу через SAS или волоконный канал.