Что такое контроллер raid: FAQ по практической реализации RAID / Накопители – RAID — Википедия

Содержание

Краткий обзор RAID-контроллеров

Краткий обзор RAID-контроллеров

Что такое «RAID»?

В 1987 году Паттерсон (Patterson), Гибсон (Gibson) и Катц (Katz) из калифорнийского университета Беркли опубликовали статью «Корпус для избыточных массивов из дешевых дисководов (RAID)» (A Case for Redundant Arrays of Inexpensive Disks (RAID)). В этой статье описывались разные типы дисковых массивов, обозначаемых сокращением RAID — Redundant Array of Independent (или Inexpensive) Disks (избыточный массив независимых (или недорогих) дисководов). В основу RAID положена следующая идея: объединяя в массив несколько небольших и/или дешевых дисководов, можно получить систему, превосходящую по объему, скорости работы и надежности самые дорогие дисководы. Вдобавок ко всему такая система с точки зрения компьютера выглядит как один единственный дисковод.

Известно, что среднее время наработки на отказ массива дисководов равно среднему времени наработки на отказ одиночного дисковода, деленному на число дисководов в массиве. Вследствие этого среднее время наработки на отказ массива оказывается слишком малым для многих приложений. Однако дисковый массив можно несколькими способами сделать устойчивым к отказу одного дисковода.

В данной статье было определено пять типов (уровней) дисковых массивов: RAID-1, RAID-2, …, RAID-5. Каждый тип обеспечивал устойчивость на отказ, а также различные преимущества по сравнению с одиночным дисководом. Наряду с этими пятью типами популярность приобрел также дисковый массив RAID-0, НЕ обладающий избыточностью.

Какие существуют уровни RAID и какой из них выбрать? RAID-0. Обычно определяется как НЕ избыточная группа дисководов без контроля четности. RAID-0 по способу размещения информации по дисководам, входящим в массив, иногда называется «Striping» («полосатый» или «тельняшка»):

Так как RAID-0 не обладает избыточностью, авария одного дисковода приводит к аварии всего массива. С другой стороны RAID-0 обеспечивает максимальную скорость обмена и эффективность использования объема дисководов. Поскольку для RAID-0 не требуются сложные математические или логические вычисления, затраты на его реализацию минимальны.

Область применения: аудио- и видео приложения требующие высокую скорость непрерывной передачи данных, которую не может обеспечить одиночный дисковод. Например, исследования, проведенные фирмой Mylex, с целью определить оптимальную конфигурацию дисковой системы для станции нелинейного видео монтажа показывают, что, по сравнению с одним дисководом, массив RAID-0 из двух дисководов дает прирост скорости записи/чтения на 96%, из трех дисководов — на 143% (по данным теста Miro VIDEO EXPERT Benchmark).

Минимальное количество дисководов в массиве — 2.

RAID-1. Более известен как «Mirroring» («дисковое зеркало») или пара дисководов, содержащих одинаковую информацию и составляющих один логический диск:

Запись производиться на оба дисковода в каждой паре. Тем не менее, дисководы, входящие в пару, могут совершать одновременные операции чтения. Таким образом «зеркалирование» может удваивать скорость чтения, но скорость записи остается неизменной. RAID-1 обладает 100% избыточностью и авария одного дисковода не приводит к аварии всего массива — контроллер просто переключает операции чтения/записи на оставшийся дисковод.

RAID-1 обеспечивает наивысшую скорость работы среди всех типов избыточных массивов, особенно в многопользовательском окружении, но наихудшее использование дискового пространства. Поскольку для RAID-1 не требуются сложные математические или логические вычисления, затраты на его реализацию минимальны.

Минимальное количество дисководов в массиве — 2.

Для увеличения скорости записи и обеспечения надежности хранения данных несколько массивов RAID-1 можно, в свою очередь, объединить в RAID-0. Такая конфигурация называется «двухуровневый» RAID или RAID-10 (RAID 0+1)

Минимальное количество дисководов в массиве -4.

Область применения: дешевые массивы, в которых главное — надежность хранения данных.

RAID-2. Распределяет данные по страйпам размером в сектор по группе дисководов. Некоторые дисководы выделяются для хранения ECC (код коррекции ошибок). Так как большинство дисководов по умолчанию хранят коды с ECC для каждого сектора, RAID-2 не дает особых преимуществ по сравнению с RAID-3 и, поэтому, практически не применяется.

RAID-3.

Как и в случае с RAID-2 данные распределяются по страйпам размером в один сектор, а один из дисководов массива отводится для хранения информации о четности:

RAID-3 полагается на коды с ECC, хранящиеся в каждом секторе для обнаружения ошибок. В случае отказа одного из дисководов восстановление хранившейся на нем информации возможно с помощью вычисления исключающего ИЛИ (XOR) по информации на оставшихся дисководах. Каждая запись обычно распределена по всем дисководам и поэтому этот тип массива хорош для работы в приложениях с интенсивным обменом с дисковой подсистемой. Так как каждая операция ввода-вывода обращается ко всем дисководам массива, RAID-3 не может одновременно выполнять несколько операций. Поэтому RAID-3 хорош для однопользовательского однозадачного окружения с длинными записями. Для работы с короткими записями требуется синхронизация вращения дисководов, так как иначе неизбежно уменьшение скорости обмена. Применяется редко, т.к. проигрывает RAID-5 по использованию дискового пространства. Реализация требует значительных затрат.

Минимальное количество дисководов в массиве -3.

RAID-4. RAID-4 идентичен RAID-3 за исключением того, что размер страйпов много больше одного сектора. В этом случае чтение осуществляется с одного дисковода (не считая дисковода, хранящего информацию о четности), поэтому возможно одновременное выполнение нескольких операций чтения. Тем не менее, так как каждая операция записи должна обновить содержимое дисковода четности, одновременное выполнение нескольких операций записи невозможно. Этот тип массива не имеет заметных преимуществ перед массивом типа RAID-5.

RAID-5. Этот тип массива иногда называется «массив с вращающейся четностью». Данный тип массива успешно преодолевает присущий RAID-4 недостаток – невозможность одновременного выполнения нескольких операций записи. В этом массиве, как и в RAID-4, используются страйпы большого размера, но, в отличие от RAID-4, информация о четности хранится не на одном дисководе, а на всех дисководах по очереди:

Операции записи обращаются к одному дисководу с данными и к другому дисководу с информацией о четности. Так как информация о четности для разных страйпов хранится на разных дисководах выполнение нескольких одновременных операций записи невозможно только в тех редких случаях, когда- либо страйпы с данными, либо страйпы с информацией о четности находятся на одном и том же дисководе. Чем больше дисководов в массиве, тем реже совпадает местоположение страйпов информации и четности.

Область применения: надежные массивы большого объема. Реализация требует значительных затрат.

Минимальное количество дисководов в массиве -3.

RAID-1 или RAID-5?

RAID-5 по сравнению с RAID-1 более экономно использует дисковое пространство, так как в нем для избыточности хранится не «копия» информации, а контрольное число. В результате в RAID-5 можно объединить любое количество дисководов, из которых только один будет содержать избыточную информацию.

Но более высокая эффективность использования дискового пространства достигается за счет более низкой скорости обмена информацией. Во время записи информации в RAID-5 надо каждый раз обновлять информацию о четности. Для этого надо определить, какие именно биты четности изменились. Сначала считывается подлежащая обновлению старая информация. Затем эта информация перемножается по XOR с новой информацией. Результат этой операции – битовая маска, в которой каждый бит =1 означает, что в информации о четности в соответствующей позиции надо заменить значение. Затем обновленная информация о четности записывается на соответствующее место. Следовательно, на каждое требование программы записать информацию, RAID-5 совершает два чтения, две записи и две операции XOR.

За то, что более эффективно используется дисковое пространство (вместо копии данных хранится блок четности) приходится платить: на генерацию и запись информации о четности уходит добавочное время. Это означает, что скорость записи на RAID-5 ниже, чем на RAID-1 в соотношении 3:5 или даже 1:3 (т.е. скорость записи на RAID-5 составляет от 3/5 до 1/3 от скорости записи RAID-1). Из-за этого RAID-5 бессмысленно создавать в программном варианте. Их также нельзя рекомендовать в тех случаях, когда именно скорость записи имеет решающее значение.

Какой выбрать способ реализации RAID – программный или аппаратный? Прочитав описание различных уровней RAID можно заметить, что нигде не упоминаются какие-либо специфические требования к аппаратуре, которая необходима для реализации RAID. Из чего можно сделать вывод, что все, что нужно для реализации RAID – подключить необходимое количество дисководов к имеющемуся в компьютере контроллеру и установить на компьютер специальное программное обеспечение. Это верно, но не совсем!

Действительно, существует возможность программной реализации RAID. Примером может служить ОС Microsoft Windows NT 4.0 Server, в которой возможна программная реализация RAID-0, -1 и даже RAID-5. Однако данное решение следует рассматривать, как крайне упрощенное, не позволяющее полностью реализовать возможности RAID массива. Достаточно отметить, что при программной реализации RAID вся нагрузка по размещению информации на дисководах, вычислению контрольных кодов и т.д. ложиться на центральный процессор, что естественно, не увеличивает производительности и надежности системы. По тем же причинам, здесь практически отсутствуют какие-либо сервисные функции и все операции по замене неисправного дисковода, добавления нового дисковода, изменения уровня RAID и т. п. производятся с полной потерей данных и при полном запрете выполнения каких-либо других операций. Единственное достоинство программной реализации RAID – минимальная стоимость.

Гораздо больше возможностей дает аппаратная реализация RAID при помощи специальных RAID контроллеров:

специализированный контроллер значительно разгружает центральный процессор от операций с RAID, причем эффективность контроллера тем более заметна, чем выше уровень сложности RAID; контроллеры, как правило, снабжены драйверами, позволяющими создать RAID практически для любой популярной ОС; встроенный BIOS контроллера и прилагаемые программы управления позволяют администратору системы легко подключать, отключать или заменять дисководы, входящие в RAID, создавать несколько RAID массивов, причем даже разных уровней, контролировать состояние дискового массива и т.д. У «продвинутых» контроллеров эти операции можно производить «на лету», т.е. не выключая системный блок. Многие операции могут быть выполнены в «фоновом режиме», т.е. не прерывая текущую работу и даже дистанционно, т.е. с любого (конечно при наличии доступа) рабочего места; контроллеры могут оснащаться буферной памятью («кэш»), в которой запоминаются несколько последних блоков данных, что, при частом обращении к одним и тем же файлам, позволяет значительно увеличить быстродействие дисковой системы. Недостатком аппаратной реализации RAID является относительно высокая стоимость RAID контроллеров. Однако, с одной стороны, за все (надежность, быстродействие, сервис) надо платить. С другой стороны, в последнее время, с развитием микропроцессорной техники, стоимость RAID контроллеров (особенно младших моделей) стала резко падать и стала сравнимой со стоимостью обыкновенных дисковых контроллеров, что позволяет устанавливать RAID системы не только в дорогие мэйнфреймы, но и в сервера начального уровня и даже в рабочие станции.

Современные RAID-контроллеры | Открытые системы. СУБД

За последние несколько лет значительно повысилась мощность и быстродействие всех классов компьютеров — сегодня даже небольшая фирма может позволить себе иметь локальную сеть, один или несколько серверов, выход в Сеть. Большое количество программного и аппаратного обеспечения, множество вариантов готовых комплексных решений позволяют быстро развернуть и настроить работу офиса. Одна из серьезнейших задач, связанных с обеспечением этого процесса, — получение максимального быстродействия и надежности при минимуме затраченных средств. Как правило эти требования предъявляются, в первую очередь, к машинам, реализующим групповую работу: файловые серверы, серверы приложений, почтовые хосты, мультимедийные графические станции. Многие из этих компьютеров должны, не выключаясь годами, обеспечивать устойчивую работу на протяжении всего срока эксплуатации при 100% сохранности данных и минимальном времени восстановления — в идеале стремящемуся к нулю. Как известно, самыми слабыми по надежности местами в компьютере являются оперативная память и жесткие диски, которые представляют собой еще и одно из самых медленных звеньев в компьютере. Одним из вариантов организации работы дисковой системы являются RAID-матрицы, гарантию надежности и быстродействия работы которых обеспечивают современные RAID-контроллеры.

Если вы имеете в машине самый быстрый на сегодняшний день процессор, большое количество оперативной памяти и процессорного кэша, но если дисковая система компьютера будет работать медленно и нестабильно, то общая производительность вашей конфигурации окажется крайне низкой. Такую машину вряд ли захочется использовать в качестве сервера или графической станции — налицо неоправданные затраты средств на быстрые процессоры и память, которые являются мертвым капиталом, если заранее не позаботится о выборе соответствующей системы работы с жесткими дисками. Одним из вариантов организации работы дисковой системы являются RAID-матрицы, которые создаются из стандартных SCSI- или SSA-дисков с помощью специальных контроллеров. Эта технология, порожденная еще мэйнфреймами и мощными RISC-компьютерами, все больше и больше находит свое место и в ПК платформах. Низкая цена, стопроцентная совместимость с основными операционными системами, поддержка распространенного программного обеспечения и наличие вспомогательных утилит делают возможным создание на базе недорогих ПК, быстрых и надежных серверов масштаба среднего предприятия или подразделения крупной компании.

Сегодня решения, предполагающие использование RAID-контроллеров, предлагаются всеми известными поставщиками компьютерного оборудования, активно работающими и на отечественном рынке. Наибольшую популярность среди brand name производителей серверов получили модели контроллеров на процессоре i960, что объясняется его высокой производительностью, поддержкой технологии горячей замены и обеспечения большого количества сервисных функций. С такими моделями сейчас поставляются основные марки ПК серверов фирм IBM, HP, Compaq, Intel, Digital, ALR и др. Все они обычно поставляются в двух конфигурациях: с RAID-системами и без них. Хотя преимущества RAID очевидны, у заказчика не всегда хватает средств для приобретения варианта с RAID. К счастью, современные модели контроллеров дисковых массивов достаточно стандартны и универсальны. Но, с другой стороны, практически все модели brand name поставляются только с двухканальными вариантами RAID-контроллеров, что лишает администраторов сетей и технических специалистов возможности использовать потенциал различных моделей. Известны случаи, когда заказчики отказывались от RAID-матриц brand name по причине нехватки финансовых средств, хотя денег было достаточно для установки небольшого RAID-массива. Ведь сейчас на отечественном рынке минимальная матрица из одного RAID-контроллера на базе i960 и 2-х дисков 1 Гбайт SCSI имеет стоимость всего около 1.6 тыс. долл. Правда, если вы установили сервер без RAID, а потом нашли возможность приобрести и его, это легко осуществимо как с помощью фирмы производителя, так и самостоятельно. Этим пользуются многие организации, желающие приобрести хороший сервер немного дешевле.

В нашей практике приходилось ставить RAID-контроллеры фирмы Mylex практически на все модели серверов фирм IBM 320, Intel Altair, Xpress, Digital Prioris и др. Самая большая проблема, которую можно встретить на этом пути, — это замена оригинального BIOS-контроллера на разработанный под вашу конкретную модель. Тем не менее создавая свою собственную дисковую систему можно построить очень гибкую конфигурацию, сделав акцент на максимально быструю, или на максимально экономичную, или же на максимально надежную систему. Вы всегда сможете предусмотреть возможность расширения, резервирования и перестройки конфигурации. Современный российский компьютерный рынок всегда славился своими «умельцами», способными быстро и качественно собрать компьютеры почти и любой конфигурации. Сейчас это можно сказать и про мощные серверы, благодаря доступности RAID-технологии для конечных пользователей — единственный пока недостаток состоит в отсутствии информации о возможностях работы и способах создания RAID-матриц.

Что такое RAID-контроллер

Принятые на практике RAID-алгоритмы

На определенном этапе развития технологии средств вычислительной техники возникла необходимость создавать один или несколько виртуальных дисков большой емкости из совокупности недорогих и небольших устройств. Для реализации этой задачи были разработаны и стандартизованы алгоритмы объединения дисков, известных сейчас как RAID-алгоритмы. Общие принципы их работы были неоднократно описаны в российской прессе и приведены здесь вкратце.

Основная идея этих алгоритмов заключается в том, что входной поток информации делится на блоки, которые, в свою очередь, записываются на диски. При считывании происходит обратный процесс — блоки информации собираются с накопителей и преобразовываются в единый поток. Таким образом, программа работы с этой системой может и не подозревать, что вместо одного накопителя она взаимодействует с несколькими. На практике существуют много применений таких алгоритмов, но самое большое распространение в компьютерной области получили именно матрицы жестких дисков — RAID (Redundant Array of Inexpensive Disks). В зависимости от способа распределения блоков в дисковом массиве различают несколько уровней RAID, с нулевого по пятый. На практике получили распространение, в основном, 0,1 и 5 уровни. Сейчас можно встретить контроллеры с 6, 7 и т.д. уровнем RAID. Так как изначально были стандартизированны только пять алгоритмов, то все остальные способы реализации работы дисковых массивов являются продолжением развития RAID-технологии и могут отличаться у разных поставщиков. Для организации работы компьютера с матричной дисковой подсистемой достаточно знать 0,1 и 5 алгоритмы, которые, как правило, покрывают все необходимые проблемы, просты в использовании и достаточно эффективны.

RAID0 — алгоритм, при котором каждая порция информации входного потока делиться на N фиксированных блоков (где N — число дисков в матрице), а затем каждый блок последовательно записывается на свой диск. В связке контроллер — шина — диск самым медленным устройством является диск. Используя большое количество дисков, можно получить увеличение скорости записи/считывания системы до тех пор, пока позволяет пропускная способность интерфейсной шины. RAID0 не создает никакой избыточности и не обеспечивает стопроцентной сохранности данных при возникновении проблем с одним из дисков. Его назначение — сделать максимально быструю дисковую систему, скорость которой в идеале в N раз превышает быстродействие одного диска.

RAID1 или зеркалирование (mirroring) требует четного числа дисков и осуществляет попарное дублирование информации. Этот алгоритм уже дает стопроцентную гарантию сохранности данных при сбое любого из дисков и теоретическое увеличение скорости в N/2 раза, но стоимость дискового пространства увеличивается вдвое. Алгоритм применяется в системах, где необходима надежность сохранности данных и обьем дисковой матрицы незначителен. RAID5 представляет собой что-то среднее между 0 и 1 и наиболее популярен для организации серверных дисковых матриц. Порция информации из входного потока разделяется на N-1 блоков, а N-й блок вычисляется из N-1 первых и является контрольным. В случае безвозвратной потери одного из N блоков, информация однозначно восстанавливается из N-1 других. Контрольный блок каждый раз от цикла к циклу записывается на новый диск, совершая как бы «круговой обход». Таким образом все диски в матрицы являются равнозначными, подвержены одинаковому износу, и, в случае сбоя любого блока на диске или всего диска целиком, информация восстанавливается без потерь. Стоимость дискового пространства в N/(N-1) раз больше, чем одного диска — при увеличении числа дисков цена уменьшается, а теоретическая скорость записи/чтения тоже в N/(N-1) раз больше, чем одиночного.

Конструкция RAID-контроллера

RAID-контроллер представляет собой интеллектуальный SCSI- или SSA-контроллер, с помощью которого можно организовать алгоритмы RAID на дисковых матрицах. Современные модели имеют 1,2 или 3 SCSI-канала, к каждому из которых можно подключать от 1 до 7 SCSI-устройств в случае SCSI- шины и 127 в случае SSA. Наибольшее распространение на сегодняшний день имеют SCSI-устройства. Конструктивно, практически все современные SCSI RAID-контроллеры одинаковы и представляют собой плату слота расширения на шины PCI, EISA или внешнее устройство на шину SCSI. Подавляющее большинство RAID-контроллеров создано на базе RISC процессора Intel i960, и почти все они аппаратно одинаковы и различаются только версиями BIOS. Как и в других областях, в сфере RAID-контроллеров имеются законодатели рынка, предлагаемые решения которых обычно становятся стандартом де-факто. Сегодня основной OEM-поставщик и производитель этих устройств — фирма Mylex. На мировом рынке имеются ряд фирм, продающих эти устройства с небольшими конструктивными отличиями, например MegaRAID. Среди моделей хорошо представленных в России различия существуют у моделей, применяемых для серверов фирмы Intel и для IBM с шиной SSA. Различия не принципиальны и не могут влиять на совместимость их друг с другом.

Другой вариант организации RAID-контроллеров — на базе серии процессоров 68000/68020/ 68030 фирмы Motorola. Модели под различные шины (ISA, EISA, PCI) для стандарта SCSI известны под маркой фирмы DPT. Эти контроллеры известны во всем мире и также представлены на отечественном рынке, хотя менее популярны, чем построенные на базе чипа фирмы Intel. Типичная конструкция контроллеров на процессоре i960 представляет собой плату с впаянным полноразмерным или «облегченным» вариантом этого чипа (рис.1).

Picture 1 (1×1)

Рис. 1.  Пример общей компоновки контроллера RAID 960

Как и для любого микропроцессорного устройства, контроллеру необходима оперативная память, минимальный размер которой в большинстве моделей составляет 2 Мбайт. При наличии памяти большей емкости контроллер использует ее для кэширования данных. Верхний предел ограничен объемом SIMM (32 — 64 Мбайт). Устройство имеет собственный заменяемый BIOS, выполненный по технологии FLASH или в виде съемной микросхемы ПЗУ. В зависимости от количества SCSI-каналов на плате располагаются соответственно 1,2 или 3 SCSI чипа — NCR53C720. На плате RAID-контроллера имеются перемычки для включения и выключения SCSI-каналов (JP1, JP2, JP3), необходимые для возможности его установки на конечном устройстве, и выводы индикации состояния шин и кэша (JP5). Индикация может быть подключена к обычным светодиодам на корпусе компьютера, отображая активность устройств или состояние «полный кэш». На внешней стороне платы обычно существуют один или два разъема под внешний SCSI-кабель. С помощью этих разъемов возможно подключение внешних SCSI-устройств или дисковых массивов.

Каждое устройство может комплектоваться или уже укомплектовано аккумулятором поддержки питания кэша и переходником WIDE FAST SCSI-2 на FAST SCSI-2, который необходим при использовании разных стандартов SCSI на плате и на дисках. В программе процессора контроллера имеется большое количество функций работы с дисками, которые настраиваются при помощи конфигурационной утилиты. Все операции управления логическими матрицами, алгоритмы RAID и управления кэш памятью, проводятся самим контроллером без обращения к центральному процессору и шине данных. Используя режимы Bus Mastering для шин EISA и PCI, устройство способно передавать данные со скоростью 33 Мбайт/с и 132 Мбайт/с.

Технология Hot Swap. Резервные диски.

Жесткие диски — один из немногих компонентов, в котором есть механическая часть, в первую очередь подверженная износу при долговременной работе. И какие бы хорошие и надежные диски не использовались, всегда имеется вероятность выхода их из строя, увеличивающаяся со временем эксплуатации. Хотя в случае применения, скажем, RAID5 выход из строя диска не повлечет за собой потерю данных, система останется без избыточности — это будет сигналом для администратора сети бить тревогу. Если организация работы сервера допускает его остановку, то замена неработающего диска не составит труда. Но, как правило, все компьютеры со статусом «сервер» не могут быть выключены в любой момент времени без ощутимых последствий. RAID-контроллеры позволяют решить эту проблему за счет поддержки функций горячей замены и технологии резервных дисков. В случае поломки диска или каких-либо других проблем, вследствие которых контроллер не может в дальнейшем его эксплуатировать, например превышение допустимого количества плохих блоков, диск помечается как «мертвый» (Kill Drive) и не участвует в дальнейшей работе. В этом случае оператор может вынуть этот диск из системы и заменить другим. После подключения и обнаружения RAID-контроллером нового диска произойдет его форматирование (если необходимо) и будет выполнена операция перестройки матрицы (Rebuild). Таким образом, система опять восстановит свой прежний вид.

Так может продолжаться пока в запасе имеются резервные диски или до тех пор, пока при режиме работы без избыточности не выйдет из строя еще один диск. Это может случиться, если плохой диск не заменили сразу. Как правило, не всегда бывает возможность немедленно заменить диск и время реакции может быть достаточно продолжительным (если нет круглосуточного поста квалифицированного оператора). Современные RAID-контроллеры позволяют решить эту проблему без участия человека — в матрицу заранее устанавливается диск или несколько дисков, которые при конфигурации RAID-матрицы помечаются как резервные (StandBy). В этом случае на резервные диски не подается команда раскрутки шпинделя, они никак не эксплуатируются, а значит, не изнашиваются. При возникновении «мертвого» диска, резервный из режима StandBy сразу же автоматически переводится в рабочий и осуществляется Rebuild. В таком режиме сервер будет работать до тех пор, пока не кончатся резервные диски. Замена «мертвого» на новый резервный может быть произведена в любое удобное время.

Применение технологии резервных дисков предпочтительней по ряду причин: во-первых, стоимость хороших конструктивов, обеспечивающих корректное и надежное размыкание и обратное подключение SCSI-шины, достаточно велика и, на данный момент, сравнима со стоимостью 1 Гбайт SCSI-диска; во-вторых, положение вещей на рынке жестких дисков за последние несколько лет таково, что, возможно, через год после приобретения накопителей вы не сможете найти точно такую же модель, по крайней мере за короткий срок. Использование же в матрице разных моделей жестких дисков может привести к большим проблемам вплоть до невозможности работать вместе.

RAID-системы и альтернативные варианты

Программные и аппаратные реализации зеркалирования

На сегодняшний день существует много способов организации дисковых систем помимо RAID-матриц. Наибольший интерес представляет организация RAID1 — зеркалирования. Этот способ может быть реализован как программно (в Novell NetWare, Windows NT), так и аппаратно (на SCSI контроллерах Adaptec, Tekram и т.д.). Хотя способы безусловно недорогие, они обладают рядом существенных недостатков. Программное зеркалирование сильно нагружает вычислительную мощность компьютера. Выполнение программ обслуживания дисков занимает какое-то время, что непосредственно сказывается на быстродействии дисковой системы. Кроме того, при программной реализации всегда существует вероятность потери данных при аварийном отказе операционной системы, случайной аппаратной перезагрузки или пропаже питания в компьютере. Такой вариант реализации зеркалирования, конечно, имеет место в современных решениях, но должен применяться только на надежных машинах и в условиях экономии финансовых средств.

Аппаратный RAID1 — более надежное решение. Возможно, это не плохой вариант реализации дисковой системы компьютера при небольших дисковых матрицах из 2 или 4 дисков. К тому же SCSI-контроллер, позволяющий сделать зеркалирование относительно недорогим. Основными недостатками этого решения является то, что при наращивании матрицы система становиться все дороже и дороже по сравнению с RAID5, а скорость общения с дисками остается низкой. При каком-то значении объема дисковой матрицы наступает переломный этап, когда RAID5 становиться выгодней. Таким образом, реализуя зеркалирование на одном из недорогих SCSI-контроллеров, вы лишаете себя возможности дополнительного недорогого расширения дисковой системы. К тому же опыт подсказывает, что, несмотря на аппаратное выполнение функций зеркалирования, возможна потеря производительности системы до 25% по сравнению с одиночным диском.

RAID 5-го уровня и зеркалирование, что выгоднее?

При проектировании дисковой системы немаловажным фактором является ее стоимость. Для того чтобы максимально эффективно использовать выделенные средства для реализации этой задачи, необходимо грамотно подойти к выбору типа дисковой матрицы. Приведем небольшой расчет для RAID5 и RAID1, помогающие это сделать. Оба алгоритма позволяют обеспечить работу со стопроцентной надежностью сохранения данных при сбое. Рассмотрим два альтернативных варианта. Первый — дисковая система на основе младшей модели RAID-контроллера, второй на одном из простых моделей SCSI-устройства. Для примера возьмем одни из самых популярных на нашем рынке контроллеров Adaptec 2940 для RAID1 (250 долл.) и Mylex DAC960PL-1 (1000 долл.) для RAID5. За основу матриц выберем некие условные диски (модель не имеет значения) емкостью 1 Гбайт (350 долл.). Для организации RAID5 необходимо минимум 3 диска, для зеркалирования — 2.

Как видно из графика зависимости стоимости от используемого дискового пространства, приведенного на рис. 2., при таких исходных данных реализация дисковой системы на RAID1 хороша при используемом дисковом пространстве 1 или 2 Гбайт. При большем объеме матрицы лучшим решением будет RAID5. Надо заметить, что всегда необходимо учитывать возможность расширения системы. Поэтому в случае объема 3 Гбайт в приведенном примере, лучше выбрать RAID5. В этих рассуждениях не учитывается еще тот факт, что при организации зеркалирования скорость доступа ко всем дискам меньше, чем к одному, а при организации RAID5 больше. К тому же следует принять во внимание тот факт, что функций у DAC960 значительно больше и среди них такие немаловажные, как горячая замена и возможность установки резервных дисков.

Picture 2 (1×1)

Рис. 2.  Изменение стоимости дисковой системы в зависимости от объема пространства на дисках

Исходя из этих рассуждений можно сделать общий вывод для данного примера. При организации дискового массива объемом 1-3 Гбайт можно использовать разные, включая программные, алгоритмы создания дисковых серверных систем. При создании же матрицы большего объема нужно серьезно задуматься о применении контроллеров с RAID 5. Приведенные рекомендации носят, естественно, условный характер. Каждый конструктор должен сам оценить необходимость применения той или иной технологии в зависимости от конкретных условий.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

С какими операционными системами работает RAID? RAID-контроллеры, например фирмы Mylex, совместимы со стандартной ПК платформой и имеют сертификаты для работы с MS-DOS; Novell Netware; Windows NT и Advanced Server; IBM OS/2; SCO UNIX; UnixWare.

В стандартной поставке к контроллеру прилагаются драйверы для работы с этими ОС (DAC Software kit) вместе с описанием настройки и конфигурации. Созданы работающие модели серверов с RAID, эксплуатируемым в среде Solaris. Работа с Windows 95 возможна с RAID даже с драйверами под DOS. Вполне возможно, что список ОС этим не ограничен, здесь приведены только реально проверенные факты.

Какой необходимо иметь объем кэша контроллера? Конечно, чем больше, тем лучше — кэшем контроллер не испортишь. Но чтобы реально подойти к оптимальному выбору объема кэш-памяти, необходимо хотя бы приблизительно представлять себе, какой обьем оперативной информации постоянно работает с дисковой системой. Минимальный обьем 2 Мбайт используется для работы процессора контроллера. Четких рекомендаций здесь дать трудно, но по сложившемуся опыту работы лучше придерживаться следующих параметров: для матриц емкостью 5 Гбайт — 4-8 Мбайт кэша, для матриц 5-10 Гбайт — минимум 8 Мбайт кэша, для матриц 10-20 Гбайт — минимум 16 Мбайт. Кэш-память контроллера представляет собой обычный 72 pin SIMM и легко может быть заменена. При самостоятельном выборе кэша следует обратить внимание на то, чтобы SIMM был с реальной четностью и хорошими динамическими характеристиками. У нас бывали прецеденты, когда некоторые неизвестные модули памяти из материнской платы не работали в RAID.

Как правильно выбрать режим работы кэша? У кэша RAID-матрицы есть два режима работы: сквозная запись (Write Through) и отложенная запись (Write Back). При первом режиме контроллер не дает подтверждения записи, пока данные не попали на диски, при втором достаточно того, чтобы данные попали в кэш. Второй режим помогает значительно увеличить производительность RAID-системы. Особенно это сказывается при наличии большого кэша и режима записи/чтения маленьких объемов информации. Существенный недостаток его в том, что при потере питания на контроллере или аппаратной перезагрузки информация безвозвратно теряется, так и не попав на диски. Здесь возможны три варианта: отказ от дополнительного быстродействия RAID-системы в пользу надежности; пренебрежение возможностью потерять данные из кэша в пользу производительности; приобретение дополнительного аккумулятора (Battery BackUp) для поддержания питания SIMM при отсутствии питания на плате.

Возможно ли улучшить производительность чтения длинных файлов? Да. Жесткие диски показывают плохую производительность при чтении случайных секторов. Можно повысить этот показатель, если читать предполагаемый сектор заранее. Для этого в конфигурационной утилите контроллера существует опция «чтение вперед» (Read ahead). Если в данных имеются часто используемые длинные файлы необходимо установить параметр с состояние «активно».

Как определить состояние контроллера при зависании сервер?а? Какие бы не были надежные сервера и операционные системы, нельзя быть уверенным, что система не зависнет. Самое неприятное в этой ситуации — необходимость делать аппаратную перезагрузку, не представляя себе, что происходит с дисковой системой. Предотвратить эту ситуацию можно при аппаратной установке RAID. На плате контроллера имеется разъем для трех индикаторов: активность SCSI-шины, активность шины PCI (EISA), «полный кэш» (данные в кэше еще не попали на диск). Желательно последний из них вывести на светодиод корпуса сервера. По состоянию этих индикаторов можно определить активность контроллера. При «чистом» кэше можно смело делать перезагрузку, не опасаясь потери данных. По рекомендации производителя необходимо выждать не менее 15 сек. после зависания или не менее 3 сек. после выключения индикатора «полный кэш» прежде чем делать перезагрузку.

Чем отлич?аются модели MYLEX DAC960PL и MYLEX DAC960PD? Эти два контроллера для шины PCI стандарта WIDE FAST SCSI-2. Принципиальное различие в типе процессора I960. На модели PD имеется полноразмерный чип, на модели PL уменьшенный вариант той же микросхемы. Обе модели работают со стандартными SIMM любой емкости (2-64 Мбайт), но модель PD поддерживает еще EDRAM — память со статичными регистрами, позволяющую увеличить скорость доступа (не путать с EDO для chipset Triton). Общее различие: модель PD более производительная, PL — более экономичная. Когда собирается матрица небольшого объема (до 10 Гбайт) без большой нагрузки на диски целесообразней выбрать контроллер типа PL. Если же объем дискового пространства больше 20 Гбайт или нужна хорошая производительность, то для этого требуется модель PD.

Какими средствами можно конфигурировать RAI?D? С любым RAID-контроллером должна поставляться утилита конфигурации под MS-DOS (daccf.exe). После физической установки RAID-контроллера можно загрузиться с дискеты или дополнительного винчестера и запустить утилиту. После создания матрицы и системных дисков всю конфигурацию можно сохранить на дискете прямо из программы. После окончания работы и перезагрузки получаются готовые для работы системные диски. Для изменения конфигурации RAID необходимо останавливать сервер и запускать эту программу. Этого можно избежать, используя клиент-серверную утилиту Global Array Maneger под Novell NetWare. Серверная часть, в виде модуля nlm, загружается под NetWare и администратор со своей рабочей станции может наблюдать за работой дисков, вносить изменения вплоть до «убийства» диска (kill drive). Утилита Global Array Manager также входит в стандартную поставку RAID-контроллера.

Как правильно сделать RAID-систему

Планирование дисковой системы RAID должно начинаться задолго до приобретения контроллера с дисками или готового сервера с RAID. Администратор должен четко представлять характер задач, нагружающих дисковую систему, и способы увеличения быстродействия в соответствии с затратами. Немалую роль в этом играет выбор операционной системы и программного обеспечения. В случае самостоятельной установки RAID или полной сборки сервера необходимо иметь представление, какое оборудование и какая его организация позволит получить максимальную производительность при минимальных затратах. Трехлетний опыт работы в области RAID-серверов и дисковых подсистем предоставляет несколько рекомендаций для пользователей, желающих перейти на эту, пока еще относительно неизвестную, технологию.

Рекомендации будут строиться на следующих фактах: большое распространение в России получили RAID-контроллеры производства американской фирмы Mylex, а наиболее актуальными на сегодняшний момент RAID-контроллерами являются системы с каналами WIDE/FAST SCSI-2 на шины PCI и EISA.

Какие диски выбрать?

В первую очередь необходимо выбрать действительно надежные и качественные диски, способные бесперебойно работать продолжительное время. Среди прочих характеристик стоит обратить внимание на время наработки на отказ, которое в каталогах часто обозначается MTBF (hours). Желательно, чтобы этот показатель был не меньше 500000 часов. Помните, что вероятность отказа дисковой матрицы как целой системы увеличивается с увеличением количества дисков. Конструкция дисков условно делится на механическую и электронную часть — дисковый контроллер. Механическая часть полностью характеризуется тремя параметрами: скоростью вращения шпинделя (Spindle Speed), скоростью позиционирования головки (Track-to-Track Seek) и плотностью записи информации на один цилиндр. Современные модели жестких SCSI-дисков известных фирм производителей имеют скорость вращения шпинделя 5400 и 7200 оборотов с секунду (rps). Выбор таких дисков позволит сделать матрицу достаточно быстрой. Однако технология производства дисков на 7200 rps достаточно дорога и менее надежна. Несмотря на хорошие характеристики по каталогам диски на 7200 rps значительно дороже. Их реальная вероятность отказа в несколько раз выше, чем 5400 rps. Если первоочередная задача создания RAID-матрицы — скорость, то выбор этих дисков очевиден, если же требуется надежность и экономичность, то необходимы диски с 5400 rps.

Производительность дисковой матрицы зависит не только от производительности дисков, но и от их числа и правильной конфигурации. Контроллер диска в основном характеризуется интерфейсом (FAST SCSI-2, WIDE FAST SCSI-2 и др.) и размером кэша. Желательно чтобы объем кэша на диске был не менее 512 Кбайт. Этот, казалось бы, незначительный факт позволит увеличить производительность записи/чтения, особенно при частых и малых транзакциях — ведь в дисковой матрице этот кэш складывается и при 10 дисках, а в результате вы получите уже не менее 5 Мбайт. Кроме того, кэш значительно помогает работе с постоянно мультиплексируемой шиной SCSI. Выбор стандарта FAST SCSI-2 (8 бит данных) или WIDE FAST SCSI-2 (16 бит данных) обусловлен другими причинами. Стандартный FAST имеет пропускную способность до 10 Мбайт/с, и если принять среднюю скорость работы диска за 2Мбайт/с, то при наличии менее 5 устройств на шине, она не будет узким местом. При равном или большем количестве желательнее стандарт WIDE (20Мбайт/с). В ситуации, когда информация находится в кэше контроллеров дисков, WIDE-шина даст более быстрые результаты. При самостоятельной сборке RAID на шине WIDE можно столкнуться еще и с той проблемой, что кабели WIDE (68 pin) имеют другой шаг, и для изготовления собственного кабеля необходима точная обжимная аппаратура. Сделать его «в домашних условиях» не получится, а на российском рынке на данный момент представлены, в основном, стандартные кабели на 3 разъема. С покупкой или изготовлением по чертежу FAST (50pin) кабеля сейчас никаких проблем нет.

Важной задачей является выбор емкости жестких дисков. Например, при организации RAID5 с полезным объемом 8 Гбайт можно поставить 3 диска по 4 Гбайт, 5 дисков по 2 и 9 дисков по 1 Гбайт. В этом случае платить приходится за 12, 10 или 9Гбайт объема, соответственно. Большее количество дисков теоретически даст большую скорость работы матрицы. Ограничения здесь чисто конструктивные: количество посадочных мест в корпусе, вентиляция и мощность блока питания. При расчете необходимой мощности источника питания следует помнить, что диски потребляют максимум энергии при раскрутке. B RAID-контроллерах есть возможность устанавливать план раскрутки шпинделей дисков с целью распределения во времени максимальной нагрузки.

Немаловажную роль в дисковых системах играют и корпуса. Для непрерывной устойчивой работы дисков необходим корпус с хорошей вентиляцией и мощным блоком питания. Посадочные места под диски должны быть расположены таким образом, чтобы между ними было достаточно расстояния для прохода воздуха. Вентиляция должна быть проточной, а не замкнутой. Желательно если имеется возможность установить дополнительную вентиляционную панель. Сейчас на российском рынке появилось много недорогих корпусов для RAID и практически все они снабжены конструктивом горячей замены (Hot Swap). Приобретая такие корпуса для своей системы, важно обратить внимание — действительно ли эти модули позволяют корректно и безопасно разрывать и восстанавливать SCSI соединения при работающей машине. Всегда имеется возможность отказаться от Hot Swap модулей в пользу дополнительного диска (дисков), которые будут находиться в режиме горячего резерва. Если вам требуется действительно долгоработающий сервер, то настоятельно рекомендуется подумать о резервных дисках и не подвергать себя соблазну использовать их для увеличения объема матрицы. Практически наверняка через год или полтора вы уже не найдете эту модель диска на мировом рынке.

Какое количество SCSI каналов потребуется?

Современные модели RAID-контроллеров имеют обычно до 3 SCSI-каналов. Так как эти изделия достаточно сложны и дороги, следует правильно выбрать модель. Если задача пользователя создать максимально дешевую дисковую систему, то выбирается минимум каналов исходя из количества дисков, причем на один канал можно ставить не более 7 устройств. Если же задача состоит в получении максимальной надежности и быстродействия, то лучший вариант — это 3-х канальный контроллер. Если же необходим компромисс, то возможны варианты. Многоканальный RAID позволит увеличить быстродействие дисковой системы по той причине, что каналы работают независимо друг от друга. Обращение к дискам на разных каналах происходит параллельно, а обращение по одному SCSI-каналу — в мультиплексорном режиме. В случае работы RAID с кэшем контроллеров дисков скорость передачи информации ограничена только пропускной способностью SCSI-шины, и на многоканальном варианте RAID-контроллера этот показатель будет выше. Для создания матрицы дисков безразлично расположение устройств на SCSI шинах, главное, чтобы их количество было не меньше минимального для выбранного уровня RAID (рис. 1).

Picture 3 (1×1)

Рис. 1. Способы организации дисковых матриц

В идеале самая быстрая дисковая подсистема должна иметь 3-х канальный RAID-контроллер и один или два диска на каждый канал. Удобство многоканального RAID заключается и в том, что можно создать на каждом канале свою матрицу (Pack), определить каждую из них как системный диск и настроить работу пользователей таким образом, чтобы независимые группы общались с разными матрицами (рис. 2). При такой организации трафик одного системного диска практически не будет влиять на работу другого.

Picture 4 (1×1)

Рис. 2. Схема конфигурации матриц для различных групп пользователей

В масштабах локальной сети эффективность работы такого сервера может значительно увеличиться. Хотя RAID-контроллеры сами по себе надежны и почти не подвержены поломкам в процессе эксплуатации, при использование многоканального RAID существует дополнительная гарантия отказоустойчивости сервера, когда в случае выхода из строя одного из каналов, всегда есть возможность переставить диски на другие и продолжать работу. С технической точки зрения, установка одного или многоканального контроллера абсолютно одинакова. Многоканальный не требует дополнительных слотов расширения, дополнительного питания и т.д. Он использует те же утилиты для конфигурации и также полностью совместим со стандартной ПК платформой, а ограничения здесь только финансовые, например недорогая модель одноканального RAID-контроллера фирмы Mylex на сегодняшний день стоит около 1000 долл. Увеличение на один канал обойдется дополнительно где-то в 25%. В дополнение можно посоветовать будущим конструкторам RAID-систем не устанавливать на SCSI каналы RAID-контроллера медленные устройства типа CD или стримера. Хотя теоретических запретов на это нет, но практический опыт работы показывает, что эти устройства значительно замедляют работу матрицы, особенно если они подключены не на отдельный канал. Лучшее решение в этом случае — это поставить дополнительный недорогой SCSI-контроллер.

Выбор типа RAID-алгоритма

Для достижения максимальной производительности работы сервера необходимо правильно подойти к выбору RAID-алгоритма. Как известно, самый быстрый доступ к дисковой подсистеме обеспечивает RAID0. Этот алгоритм хорош для виртуальных дисков, используемых для промежуточного хранения информации в процессе работы программы или для организации файла подкачки. Возможно также использование этого алгоритма для хранения больших объемов информации, некритичных к возможной потере, копии которых всегда можно восстановить из архива. RAID0 не только самый быстрый, но и максимально использующий дисковое пространство алгоритм. RAID0 — лучшее решение для мощной графической станции, работающей с очень большими объемами мультимедиа-файлов в реальном времени, когда кэш уже не спасает. При такой организации нам удавалось достигать результатов записи/чтения файлов размером 200 и более Мбайт, когда использование кэша уже исключается, и получать производительность до 14 Мбайт/с. Пиковая скорость в этом случае при размерах файлов 15 Мбайт достигает 30 Мбайт/c (рис.3).

Picture 5 (1×1)

Рис. 3. Производительность чтения/записи RAID-системы в зависимости от длины файла

Алгоритмы RAID5 и RAID1 применяют для виртуальных дисков, главное требование к которым — надежность хранения данных. Это файлы данных, резервного копирования, инсталлированное и настроенное программное обеспечение, операционные системы, рабочие модули и данные серверов печати, почтовых серверов и т.д. Эти диски можно выделять для хранения особо важных архивов и для ценных файлов, которые могут потребоваться в любой момент. Эти уровни сокращают полезный объем дискового пространства, но позволяют быть уверенными в гарантированной сохранности данных. Важной особенностью является то, что возможно сделать некоторое количество виртуальных системных дисков с разным уровнем RAID на одной дисковой матрице. Организация этих дисков не зависит ни от количества SCSI-каналов, ни от числа, ни от расположения физических дисков. Перед конфигурацией виртуальных дисков нужно четко представлять, какой обьем для какого уровня RAID необходим. Нежелательно создавать диски с объемом, равным необходимому на сегодняшний момент. Всегда оставляйте как минимум запас в 25% на расширение. Это связано с тем, что переделка объема виртуальных дисков может повлечь для администратора много проблем: архивацию всех данных на стриммер, остановку сервера, переконфигурацию, восстановление данных и т.д. В худшем случае, это простое непредвидение ситуации может обойтись как минимум днем работы администратора. Если у пользователя имеется строгие, разграниченные по функциям группы пользователей, то для них полезно сделать разные виртуальные диски, пусть даже с одинаковым уровнем RAID. Это облегчит администрирование и, возможно, даст увеличение производительности. Хорошим решением является создание виртуальных системных дисков для различных групп пользователей на разных матрицах (pack). В этом случае к минимуму сводится количество конфликтующих транзакций, что может существенно повысить производительность сервера. В заключении следует также предостеречь администратора от создания большого количества мелких дисков — в этом случае он рискует попасть в ситуацию, когда не хватит места ни на одном из них для инсталляции программного обеспечения, хотя общий объем дискового пространства позволил бы сделать это.

Сергей Романчиков ([email protected]) — генеральный директор компании “Крон-студия” (Москва).

Поделитесь материалом с коллегами и друзьями

Как грамотно выбрать RAID-контроллер

Нет нормальной IT-инфраструктуры, которая обошлась бы без RAID-контроллера. Производительность дисковой подсистемы и надежность хранения информации контролируется именно этой комплектующей, а кто же сегодня обходится без оптимизации производительности или объединения диски в RAID-массивы? Естественно, для таких сложных задач нужно уметь выбирать контроллер!

Контроллеры выпускаются многими фирмами, но самые эффективные и надежные из них принадлежат, конечно, большой тройке производителей. Однако во всем давайте разбираться по порядку.


Зачем нужен RAID-контроллер?

Как мы уже упомянули выше, RAID-контроллеры используются для создания RAID-массивов, объединяющих диски в более производительное или же в отказоустойчивое целое. Вообще для серверных задач бесполезно использовать только один диск — разве что если сохранность данных не интересует, как и скорость работы; а вот где больше одного диска — там уже есть место массиву.

Во многом потому, что чем больше дисков — тем больше шансов на отказ! Даже самые надежные накопители все равно остаются сравнительно расходными комплектующими и ломаются гораздо чаще всех прочих. Есть много разных видов массивов, каждый для своих целей, частично их нужно будет выбирать под ваши задачи, а частично — под RAID-контроллер, которые бывают:

  • Программными — виртуальными, то есть эмулируемыми процессором. Самые слабые: фактически, это просто часть мощностей процессора, а не самостоятельный контроллер.
  • Интегрированными — то есть встроенными в материнку. Это не отдельная комплектующая, но хотя бы самостоятельный чип; тоже нагружает ЦПУ!
  • Аппаратными — в виде отдельной комплектующей. Оборудованы процессором, быстры, надежны, поддерживают множество видов RAID-массивов.
  • Внешними — для подключения внешних дисковых подсистем.

Также контроллеры могут иметь кэш-память, оптимизирующей операции ввода-вывода, батарейку или дополнительную флэш память для решения проблемы хранения данных при сбое питания.


Что в наличии и как выбрать?

За последние годы лидеры отрасли произведения серверов произвели целые линейки надежных, скоростных и теперь уже сравнительно дешевых, но все еще актуальных по мощности контроллеров. RAID-контроллеры от Hewlett-Packard различаются по поколениям так же, как и серверы (Gen7, Gen8, etc), контроллеры Dell тоже — разве что у них больше поколений (Gen11, Gen 12, Gen 13, etc), а у IBM таких поколений сильно меньше (M3, M4, M5). Большинство комплектующих этого вида от HP и Dell поддерживают почти все виды массивов, а вот у IBM таких почти нет, придется устанавливать апгрейды прямо на контроллер.

При выборе необходимо сначала определиться с задачей. Нужна оптимизация производительности, а сохранность данных не очень? Или же наоборот? Нужен будет контроллер, поддерживающий RAID0 или RAID1, можно даже без кэша — решение будет недорогим.

Нужно сэкономить на дисках или разогнать те, что уже есть? Ориентируйтесь на RAID5 или RAID50, которые подойдут также для создания архивов, но тут уже понадобится хотя бы средний объем кэша.

Наконец, высокоскоростные и отказоустойчивые массивы, а также объемные хранилища потребуют более производительных RAID-контроллеров, да и внушительного объема кэша в них. Тут экономить не стоит!

Как обеспечить безопасность Windows Server

4 Апреля 2019

Читать

Как вычислить совокупную стоимость владения серверным оборудованием?

16 Апреля 2019

Читать

Доступное решение для организации SAN на среднем предприятии

29 Июня 2018

Читать

Экономим на RAID-контроллере, или как накормить Варю иопсами / Habr

В наш век облачных сервисов, AWS Lambda и прочих шаред хостингов абсолютно неосязаемых вычислительных ресурсов иногда хочется немножко своего. Кроме желания, иногда бывают и потребности вдумчиво покрутить тот или иной программный продукт с минимальными затратами на платформу. Найти какие-то излишки матчасти можно почти всегда, иногда даже получается собрать всё вместе и включить. Если излишки эти представляют собой CPU хотя бы на 4-6 ядер и памяти от 64ГБ — вообще отлично, можно брать ESXi и работать с чем угодно. Одна проблема: с дисковой ёмкостью на бытовом железе у VMWare — совсем никак. Производительность локальных одиночных HDD невысокая, а уж утратить содержимое отдельно взятого, сферического в вакууме винта в 21м веке — это как здрасьте. Попробуем подключить что-нибудь по сети.

TL;DR> объединение, балансировка, rr limit, вот это вот всё.

Собственно, текст далее не про то, что это вообще возможно или ноу-хау какое-то. Интернет полон статьями для чайников (вот здесь ставим галочки, затем Next, Next, Done) о том, как подать дисковую ёмкость по iSCSI. Пишу как раз для того, чтобы исключить «ошибки выживших» и поделиться моментами, когда «всё пойдёт не так» (а оно пойдёт, Мерфи был прав), и при попытке нагрузить решение оно просто падает.

Итак, мы попробуем раздушить наш «бытовой гипервизор» внешним дисковым массивом, подключенным по сети. Поскольку у нас всё крутится вокруг «недорого», пусть это будет FreeNAS и 4 SATA-диска, которые обслуживает средненький 3 ГГц 45-нм проц. Смотрим на Ebay, и за сравнимые с б/у RAID-контроллером деньги тащим оттуда пару сетевых карточек i350-T4. Это четырёхпортовые гигабитные адаптеры от Intel. По ним и будем связывать хранилку с гипервизором.

Немножко посчитаем. Средняя скорость передачи данных среднего SATA диска — 160-180 МБ/сек при ширине интерфейса в 6 Гбит/с. Фактически, реальная скорость передачи данных с HDD не превышает 2 Гбит/с. Не такая уж большая цифра, учитывая, что связь мы планируем по 4м гигабитным портам (как именно превратить 4×1Гбит в 4 Гбит — обсудим далее). Намного хуже все со скоростями произвольного доступа — здесь всё падает чуть ли не до уровня дискет.


Учитывая, что профиль дисковой нагрузки от множества гостевых ОС — далёк от линейного, хотелось бы видеть более веселые цифры. Для исправления ситуации в файловой системе гипервизора ( VMFS v6) размер блока составляет 1 МБ, что способствует уплотнению множества случайных операций и ускоряет доступ к данным на виртуальных дисках. Но даже с этим одного физического диска будет недостаточно для обработки операций ввода-вывода от всех «гостей».

Сразу оговорюсь — всё дальнейшее имеет смысл, если у вас адаптеров для «сети хранения» больше двух. ESXi с бесплатной однопроцессорной лицензией умеет подключаться, кроме локальных дисков, к хранилищам двух типов — NFS и iSCSI. NFS предполагает доступ файлового уровня и тоже по-своему хорош. На нем можно развернуть гостей, нетребовательных к дисковой производительности. Бэкапить их — одно удовольствие, т.к. можно открыть эту же NFS шару ещё куда-либо и копировать снапшоты вм. В общем, с одним сетевым интерфейсом (если это не 10GE, конечно) — NFS ваш выбор.

У iSCSI есть ряд преимуществ перед NFS. Для того, чтобы реализовать их в полной мере, мы уже подготовились — заложив для сети хранения аж 4 гигабитных порта. Как обычно происходит расширение пропускной способности сети при известной скорости интерфейсов? Правильно, агрегацией. Но для полной утилизации агрегированного канала нужен целый ряд условий, и это подходит больше для связи коммутаторов между собой либо для сетевого аплинка гипервизора. Реализация протокола iSCSI предусматривает такую функцию, как multipathing (дословно, много путей) — возможность подключения одного и того же тома через разные сетевые интерфейсы. Само собой, про возможность балансировки нагрузки там тоже есть, хотя основное назначение — отказоустойчивость сети хранения. (Справедливости ради, NFSv4.1 поддерживает session trunking на базе совершеннейшей магии типа RDMA и MPTCP, но это попытка переложить проблемы файлового доступа с больной головы на здоровую на нижние уровни.)

Итак, для начала опубликуем наш таргет. Считаем, что FreeNAS установлен, IP-адрес управления исправно отгружает нам web-интерфейс, массив и zvol на нём мы нарезали в полном соответствии с нашими внутренними убеждениями. В нашем случае это 4 х 500ГБ диска, объединённых в raidz1 (что даёт всего 1,3 ТиБ эффективной ёмкости), и zvol размером в 1 ТБ ровно. Настроим сетевые интерфейсы i350, для простоты принимаем, что все будут принадлежать разным подсетям.


Затем настраиваем iSCSI-шару методом «Next, Next, Done». При настройке портала не забываем добавить туда все сетевые интерфейсы, выделенные для iSCSI. Выглядеть должно примерно так, как на картинках.

Чуть больше внимания потребуется уделить настройке extent — при презентации тома необходимо форсировать размер блока 512 байт. Без этого инициатор ESXi вообще отказывался опознавать презентованные тома. Для верности лучше отключить проброс размеров физ блока (которого на zvol нет и быть не может) и включить режим поддержки Xen.
С FreeNAS пока всё.

На стороне ESXi немного сложнее с настройкой сети. Опять же, считаем, что сам гипервизор установлен и также управляется по отдельному порту. Потребуется выделить 4 интерфейса VM Kernel, принадлежащих 4м разным порт-группам в 4х разных виртуальных коммутаторах. Каждому из этих коммутаторов выделяем свой физический порт аплинка. Адреса vmk# берём, разумеется, в соответствующих подсетях, аналогично настройке портов хранилища. Порядок настройки адресов, в общем случае, важен — либо мы соединяем карточки «порт-в-порт» без коммутатора, либо отдаём разные линки в разные сети (ну, это если по-взрослому), поэтому физическое соответствие портов имеет значение.




Особое внимание при настройке сети под iSCSI уделяем параметру MTU. Это как раз тот случай, когда «размер имеет значение» — берём максимум, который позволяют установить все компоненты сети. Если карточки соединены напрямую, можно указать mtu 9000 на обоих сторонах, на ESXi и FreeNAS. Впрочем, нормальные коммутаторы это значение поддержат. Пингуем, видим, что сеть у нас в норме, и пакеты требуемого размера проходят. Отлично. Поджигаем инициатор.

Включаем iSCSI, добавляем IP-адреса в динамическую секцию настройки (Storage -> Adapters -> Configure iSCSI -> Dynamic targets). После сохранения будет выполнен опрос iSCSI порталов по этим адресам, инициатор определит, что за каждым из них стоит один и тот же том, и подключится к нему по всем доступным адресам (тот самый multipath). Дальше нам потребуется создать datastore на появившемся устройстве.

После этого можно раскатать виртуальную машинку и замерить, что у нас получилось.


Не такие уж впечатляющие результаты. Открываем консоль хранилища, выводим текущее состояние сети и запускаем тесты.

root@freenas:~ # systat -ifstat

Что видим?
                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average

      Interface           Traffic               Peak                Total
            lo0  in      0.319 KB/s          0.893 KB/s            3.041 MB
                 out     0.319 KB/s          0.893 KB/s            3.041 MB

           alc0  in      0.478 KB/s          1.233 KB/s            3.934 MB
                 out     0.412 KB/s          1.083 KB/s            2.207 MB

           igb3  in      0.046 KB/s          0.105 KB/s          181.434 KB
                 out     0.073 KB/s          0.196 KB/s          578.396 KB

           igb2  in      0.046 KB/s          0.105 KB/s          120.963 KB
                 out     0.096 KB/s          0.174 KB/s          517.221 KB

           igb1  in      4.964 MB/s        121.255 MB/s           10.837 GB
                 out     6.426 MB/s        120.881 MB/s            3.003 GB

           igb0  in      0.046 KB/s          0.105 KB/s          139.123 KB
                 out     0.073 KB/s          0.210 KB/s          869.938 KB


Утилизирован лишь один сетевой порт из четырёх (igb1). Происходит это потому, что механизм балансировки, предусмотренный по умолчанию для multipath, с каждым пакетом данных выбирает один и тот же адаптер. Нам же надо задействовать из все.
Подключаемся к гипервизору по SSH и командуем.
Для начала глянем, какой ID у луна с multipath, и как он работает:

[root@localhost:~] esxcfg-mpath -b
naa.6589cfc000000b478db42ca922bb9308 : FreeNAS iSCSI Disk (naa.6589cfc000000b478db42ca922bb9308)

[root@localhost:~] esxcli storage nmp device list -d naa.6589cfc000000b478db42ca922bb9308 | grep PSP
Path Selection Policy: VMW_PSP_MRU

Политика выбора путей — MRU, то бишь most recently used. Все данные идут в один и тот же порт, перевыбор пути происходит только при недоступности сетевого соединения. Меняем на round-robin, при которой все интерфейсы меняются по очереди после какого-то числа операций:

[root@localhost:~] esxcli storage nmp device set -d naa.6589cfc000000b478db42ca922bb9308 -P VMW_PSP_RR

Перезагружаем ESXi, открываем мониторинг, запускаем тесты. Видим, что нагрузка распределяется по сетевым адаптерам равномерно (как минимум, пиковые значения, лишнее поскипано), результаты теста тоже повеселее.

      Interface           Peak

           igb3  in     43.233 MB/s 
                 out    46.170 MB/s

           igb2  in     42.806 MB/s
                 out    45.773 MB/s

           igb1  in     43.495 MB/s
                 out    45.489 MB/s

           igb0  in     43.208 MB/s
                 out    46.079 MB/s

Есть некоторые отклонения по портам, это возникает из-за лимитов Path Selection Policy — числа операций либо байт, после которого происходит переключение на другой порт. По умолчанию 1000 IOPS, то есть если обмен данными уложился в 999 операций — он пройдет через один сетевой порт. Можно менять, сравнивать и подбирать подходящее значение. Можно не менять, дефолта достаточно для большинства задач.

Делаем замеры, тестируем, работаем. Полученные результаты ощутимо превосходят возможности одиночного диска, так что теперь наши виртуальные машинки могут не толкаться локтями на операциях ввода-вывода. Итоговые значения скоростей и отказоустойчивость массива будут зависеть от железа и того, как выполнена конфигурация тома.

Какие бывают RAID-массивы и какие для них нужно подбирать RAID-контроллеры

Мы уже писали о том, как выбрать RAID-контроллер, и во многом статья свелась к тому, что при его выборе нужно будет понимать, какие RAID-массивы вы будете использовать.

RAID-массивы — неотъемлемая часть современных IT-инфраструктур, их популярность — дань надежности: ни один жесткий диск не застрахован от поломки, а стоимость информации на нем может быть выше, чем стоимость всех дисков в системе!

Чтобы данные были в полной безопасности и не зависели от выхода из строя расходных комплектующих, а также чтобы оптимизировать и ускорить их работу и служат RAID-массивы. Разные типы таких массивов называются по номерам 0, 1, 2, 3, 4 и т.д., и выполняют разные функции; о них и пойдет речь в статье.


RAID 0, 1, 2, 3, 4, 5, 6, 10, 50 — что такое, с чем едят

Самый первый RAID, нулевой (его еще называют «страйпом», striping) обычно используется для ускорения работы жестких дисков. Как правило в RAID 0 объединяют 2-4 диска, информация на них разбивается на блоки и поочередно записывается на все доступные диски. Так они работают в разы быстрее — но стоит любому из них поломаться и на том работа заканчивается.

Поэтому появился RAID 1 — «зеркальный». Это основа всей логики RAID-массивов: берем два диска и записываем их байт в байт одинаково. Теперь при поломке одного из них данные не пострадают вообще. Правда, на диски придется потратить двое больше денег, а они от этого станут только менее производительными.

RAID 2, 3 и 4 используются редко — для них применяются коды Хэмминга или же разбиение на блоки и контрольные суммы — производительность так не страдает (или почти), а хранение становится надежнее.

Более распространен пятый RAID, для которого уже понадобится три жестких диска. В RAID 5 используется независимой доступ к дискам, то есть параллельные запросы на ввод и вывод. Это добавляет дискам производительности.

Самые востребованные массивы — RAID 10 и 50. Это сочетания 0 массива с 1 и 5, то есть удачная попытка сделать производительные системы отказоустойчивыми. Впрочем, RAID 10 менее надежен, чем RAID 5, а требуется для него больше дисков.

Есть также шестой RAID, защищающий данные от одиночных и двойных неисправностей — но он требует больших мощностей процессора, чем пятый, а дисков — от пяти штук! Вообще же их должно быть не абы сколько, а количество равное простому числу — пять, семь, одиннадцать, тринадцать и так далее.


Причем тут выбор контроллера?

Как мы уже писали, вам нужно будет выбрать RAID и под него уже контроллер. В самых простых случаях хватит нулевого или первого в зависимости от того, нужны вам производительность или надежность — под простенький веб-сервер или для нужд разработки. Под него и контроллер подойдет простенький: HP P212/3gbit/256 Mb Cache/1 ext 1 int.

У вас задачи более серьезные, вам нужен RAID 5 или даже 50 с созданием архивов и достаточной кэш-памятью? Тогда понадобится и контроллер получше: RAID Контроллер LSI 9211-4i.

Ну и в случае, когда ни на производительности, ни на сохранности данных экономить просто нельзя, вам нужно будет закупаться серьезным и надежным оборудованием: Adaptec ASR 31605/3gbit/256Mb Cache/4 int.

Однако решение это очень важное и может отразиться на работе всей вашей IT-инфраструктуры. Поэтому лучшим выбором будет согласовать выбор из всего ассортимента с одним из наших консультантов!

Несколько причин пересмотреть свой план на случай ЧС в серверной

16 Декабря 2018

Читать

Почему покупать серверное оборудование комплектами выгодно

8 Октября 2019

Читать

Чем чистить серверное оборудование от пыли

31 Августа 2018

Читать

RAID контроллеры программные интегрированные аппаратные HDD

Чтобы объединить несколько жестких дисков в RAID-массив, помимо наличия самих дисков потребуется еще и контроллер. RAID-контроллер — это своего рода прораб, управляющий бригадой HDD. Они делятся на три тина: программные, интегрированные и аппаратные. Для построения RAID-массивов высоких уровней с более чем 6-8 дисками лучше использовать аппаратные контроллеры, так как при высокой нагрузке они обеспечивают минимальную задержку в работе. Кроме того, громоздкие RAID-массивы, управляемые программно, создают серьезную нагрузку на процессор компьютера.

Несмотря на очевидные преимущества RAID-массивов, нужно помнить и о недостатках: высоком уровне шума (чем больше дисков, тем больше шум) и трудностях в случае переноса массива на другой компьютер. Даже при подключении того же самого контроллера на другом компьютере и дисков в том же порядке теми же кабелями нет гарантии, что на другом «железе» RAID заработает. Гарантированно он будет работать на запись и чтение только на том оборудовании, на котором был создан, а в случае малейшего изменения комплектующих могут возникнуть проблемы, требующие дополнительных настроек.

Программные RAID контроллеры

Под программными RAID-контроллерами, как правило, подразумеваются решения для организации RAID-массивов на уровне драйверов операционной системы. Mac OS X, многие Linux-дистрибутивы, а также некоторые профессиональные редакции Windows имеют встроенные средства для создания простейших дисковых массивов стандарта RAID 0,1,0+1 и, реже, RAID 5. Таким образом, имея парочку HDD, можно легко организовать массив средствами операционной системы. Правда, в этом случае ожидать высокой производительности не стоит: такой способ организации RAID полностью зависит от «железа- вашего компьютера, поскольку для координации работы дисков за действу ются ресурсы центрального процессора и памяти, что может привести к снижению производительности системы в целом. Кроме того, организовывать RAID-массивы для хранения важных данных на уровне операционных систем не рекомендуется — такие массивы крайне неустойчивы к сбоям и ошибкам, поэтому риск потерян, информацию при сбое операционной системы очень велик.

Интегрированные RAID контроллеры

Если раньше RAID-массивы интересовали лишь профессионалов, то сегодня интегрированные RAID-контроллеры с поддержкой базовых уровней (достаточных для удовлетворения нужд домашнего пользователя) можно встретить не только на серверных материнских платах, но и на обычных моделях, предназначенных для сугубо домашних ПК. Как правило, это все же «полуаппаратные» решения, то есть установлен шли па плате чип координирует работу, но для вычислений все равно обращается к ЦПУ, поскольку не имеет на борту своего собственного процессора. Тем не менее в отличие от полностью программных контроллеров такие решения работают гораздо стабильнее (RAID-массив «определяется* еще до загрузки ОС), так как аппаратная ‘Подмена» происходит па уровне прошивки материнской платы. С RAID-массивами в таких системах можно работать не только в ОС, но и в оболочках загрузочных дисков и дисковых менеджеров. Интегрированные контроллеры на современных материнских платах, как правило, поддерживают базовые уровни RAID 0,1.5 и 10 (обычно из расчета использования в системе не более 6-8 дисков) и обеспечивают очень высокую скорость работы в массивах из традиционных жестких дисков. Таким образом, для организации домашнего RAID-массива из небольшого количества жестких дисков возможностей интегрированного в материнскую плату контроллера зачастую более чем достаточно.

Аппаратные RAID контроллеры

Для создания высокопроизводительных RAID-массивов с большим количеством жестких дисков существуют контроллеры, выполненные в виде отдельных плат с интерфейсом PCI Express. Их стоимость варьируется в большом диапазоне, и топовые решения могут стоить в десятки раз больше, чем все «железо» современного десктопа вместе взятое. Дело в том. что такие платы, по сути, являются ^микрокомпьютерами» в компьютере, то есть имеют свой собственный вычислительный процессор и даже память для координации массивов из большего количества жестких дисков и делают все это с минимальными задержками и без лишних обращений к центральному процессору. Ввиду высокой стоимости использовать их в домашних системах вряд ли стоит, тем более что в простейших схемах RAID 0 или RAID 1 с двумя жесткими дисками прироста производительности по сравнению с хорошим интегрированным контроллером скорее всего не будет.

Аппаратные контроллеры могут дать больший прирост производительности по сравнению с интегрированными решениями при создании массивов из SSD-накопителей или при создании RAID-массивов высоких уровней из более чем шести традиционных дисков. Кроме того, дорогостоящие аппаратные RAID-контроллеры часто совместимы с профессиональными скоростными жесткими дисками с интерфейсом SAS (он обычно используется в серверах) и могут иметь дополнительные средства для повышения отказоустойчивости: собственную кэш-память на плате, возможность работы от аккумулятора для сохранения содержимого кэш-памяти в случае сбоя электропитания и средства аппаратной коррекции ошибок налету.

Разумеется, аппаратные контроллеры, в отличие от программных и интегрированных, поддерживают гораздо больше схем RAID, некоторые даже предоставляют возможность использовать нестандартные уровни, а также позволяют строить сложные гибридные массивы из разных уровней RAID с одновременным задействованием жестких и твердотельных дисков.

Похожие статьи

Типы RAID-контроллеров

Типы RAID-контроллеров

Выделяют несколько типов RAID-контроллеров в зависимости от их функциональных возможностей, конструкции и стоимости:

1. Контроллеры дисковода с функциями RAID

Это обыкновенный дисковый контроллер, который благодаря специальной прошивке BIOS позволяет объединять дисководы в RAID-массив (обычно уровня не выше 1).

2. RAID-контоллеры, работающие в паре с уже имеющимся дисковым контроллером

Данные RAID-контроллеры рассчитаны на работу с материнскими платами, на которых интегрирован дисковый контроллер. Таким образом, на плате контроллера находиться только логическая часть RAID-контроллера, а функции ввода/вывода возложены на дисковый контроллер, интегрированный на системной плате. Такие «усеченные» контроллеры реализуют многие возможности полнофункциональных RAID-контроллеров, и, в тоже время, стоят намного дешевле. Однако данное решение не лишено недостатков. Главное из них — каждый «усеченный» контроллер жестко привязан к конкретному типу микросхем дискового контроллера и, следовательно, будет работать только на совместимых системных платах.

3. Полнофункциональные RAID-контоллеры

Данные RAID-контроллеры содержат все необходимое для работы с высокопроизводительными дисковыми системами: BIOS, позволяющий независимо от используемой ОС конфигурировать RAID любого уровня, RISC-процессор для быстрого вычисления контрольных сумм и коррекции ошибок «на лету», и многое другое. Такие RAID-контоллеры выпускаются в виде платы для установки в шину PCI. Таким образом, они управляются и получают напряжение питания через внутреннюю PCI шину системной платы. Следовательно, сбои системной платы могут привести к искажениям или потере данных в RAID-массиве. Однако от этого недостатка свободны внешние RAID-контроллеры.

4. Внешние RAID-контроллеры

Внешние RAID-контроллеры размещаются в отдельном корпусе (обычно вместе с самим RAID-массивом), имеющем свой независимый блок питания и управляются через внешний канал SCSI-контроллера, подключенного к системной плате. Внешние RAID-контроллеры обеспечивают самый высокий уровень производительности и надежности из всех типов RAID-контроллеров и их рекомендуют для серверов среднего и верхнего уровней. Наличие же каналов Fibre Channel позволяет разнести сервер и RAID-массив на значительное расстояние для защиты данных. Единственный недостаток — относительно высокая цена, однако, в ряде случаев, применение внешнего RAID-контроллера может дать экономию средств. Например, если в системе должны работать два сервера с RAID-массивами, то применение одного внешнего RAID-контроллера с общим дисковым массивом, подключенного к SCSI контроллерам каждого из серверов, позволит сэкономить стоимость внутреннего RAID-контроллера, рационально использовать дисковое пространство, упростить настройку и обслуживание.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *