ГлавнаяКонтактыКарта сайта
ЕПОС
О компанииКомпьютерная криминалистикаВосстановление информацииЗащита информацииПроизводство и ITСервисНаши разработки

Расследование инцидентов, компьютерная криминалистика, информационная безопасность

Книжная серия Взгляд на жесткий диск изнутри




Архив статей


24.09.1999
Современные RAID-системы для серверов начального уровня

Вячеслав ОВСЯННИКОВ
ведущий специалист фирмы «ЕПОС»

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

Прогресс в области производительности жестких дисков значительно уступает прогрессу в области повышения производительности процессоров. В современных серверах даже начального уровня устанавливаются процессоры с частотой 350...400 МГц. Мощности процессора более чем достаточно, и «тонким местом» сейчас, как правило, является дисковая система. Поэтому в последнее время, наряду с надежностью хранения информации, применение RAID обуславливается и другой их способностью: существенным повышением производительности дисковой системы.

Будем полагать, что читатель знаком с общими принципами построения RAID-систем и характеристиками различных уровней RAID. Данному вопросу посвящено много публикаций. В частности, развернутое обсуждение архитектуры RAID приведено в «Компьютерном обозрении», №25. В этом же номере приведено краткое описание современных RAID-контроллеров, в том числе: Mylex, модели AcceleRAID 150, 200 и 250, AMI, модели MegaRAID Express 762 и 466, DPT, модели Decade и Century. Возникает вопрос: почему журнал стал рекламировать эти изделия? Они действительно так хороши? Или они просто продаются в красивой упаковке?

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

Особенности реализации RAID в серверах начального уровня

Основной отличительной чертой серверов начального уровня является то, что это изделия «минимальной стоимости». В их конструкции применяются элементы массового и, соответственно, дешевого производства. Поэтому сервер начального уровня – это почти всегда сервер интеловской архитектуры. В таких серверах устанавливается, как правило, от 2-х до 4-х жестких SCSI-дисков. Из жестких дисков формируется RAID-массив уровня 1, 5 или, в отдельных случаях, комбинированного уровня 0+1. RAID-массив может быть сформирован программным способом или аппаратно.

Программно, RAID реализуется средствами операционной системы. Это RAID или уровня 1 (зеркальный диск), в операционных системах Novell, Windows NT, или уровня 5 в операционной системе Windows NT.

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

В свете сказанного понятно, что программная реализация RAID допустима только в самых дешевых серверах.

Хорошие серверы всегда имеют в своем составе RAID, реализованный аппаратно. В серверах начального уровня для аппаратной реализации RAID применяются, как правило, "PCI-to-SCSI" RAID-контроллеры. По нашему мнению, наилучшими для серверов начального уровня, которые используют самые современные технологии, являются именно упомянутые выше контроллеры. Они отличаются относительно низкой ценой при хорошей производительности.

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

Основные особенности архитектуры современных контроллеров это – применение технологии I2O и применение кэш-памяти большого объема, с использованием различных, в том числе и адаптивных, алгоритмов кэширования.

Технология I2O в RAID-контроллерах

I2O (Intelligent Input/Output) – это спецификация, которая определяет стандартную архитектуру интеллектуального ввода-вывода и не зависит от конкретных устройств и операционной системы.

Идея технологии I2O заключается в том, чтобы за счет применения отдельного процессора ввода-вывода разгрузить центральный процессор. Все низкоуровневые прерывания, поступающие от периферийных устройств, обрабатываются не центральным процессором, а специализированным процессором ввода-вывода (IOP). Конечно, специализированные процессоры ввода-вывода применялись очень давно, еще в «больших» ЭВМ. Но наличие отдельного процессора, даже занятого операциями ввода-вывода, еще не означает технологии I2O. В конце концов, сейчас микропроцессоры встроены в каждый жесткий диск. В данном случае речь идет о новом витке в применении известного решения.

Спецификация I2O определяет разбиение драйвера устройства на две части: ОС-зависимого модуля (OSM – Operation System Services Module) и аппаратно-зависимого модуля (HDM – Hardware Device Module). Благодаря этому в значительной мере решается задача устранения зависимости от конкретной операционной системы. Под конкретную операционную систему разрабатывается только драйвер OSM. По идеологии любое I2O-совместимое устройство (в нашем случае контроллер) не требует установки каких-либо драйверов. Так, например, мы подключаем жесткие диски. Операционная система сама должна «узнать» устройство. Честно говоря, до этого пока дело не дошло. Вам придется инсталлировать драйвер изготовителя конкретного контроллера. Но какова идея!

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

Во-первых, спецификация предусматривает также и наличие так называемых промежуточных служебных модулей ISM (Intermediate Service Module). Эти модули могут решать задачи связанные с обработкой данных, но не имеющих к вводу/выводу непосредственного отношения. В рассматриваемом случае это, например, алгоритмы вычисления избыточной информации. Кроме того, промежуточные служебные модули обеспечивают непосредственный обмен данными между периферийными устройствами.

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

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

Буферизация и кэширование в RAID-контроллерах

Современные контроллеры для серверов начального уровня обычно позволяют использовать кэш-память объемом от 4 до 128 Мб. Расширение кэш может осуществляться установкой дополнительных микросхем SIMM или установкой дополнительного фирменного модуля (в контроллерах DPT). Не думаю, что сейчас необходимо кому-то доказывать, что кэш-память значительно повышает производительность обмена. Подчеркну лишь, что контроллер предназначен для выполнения строго определенных и конкретных задач. Это позволяет применять очень эффективные именно для этих задач алгоритмы кэширования. В частности, в контроллерах DPT применяется так называемая «виртуальная кэш». Часть памяти отводится не для хранения данных, а для хранения адресов этих данных. Как правило, в реальных условиях одни и те же данные требуются в одной и той же последовательности. Поэтому при поступлении запроса на чтение первой порции данных контроллер в состоянии предсказать какие данные будут запрошены в дальнейшем и заранее сосчитать эти данные с дисков в свою кэш.

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

В каких «попугаях» измеряется производительность сервера

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

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

Но сервер – это не индивидуальный компьютер. Он предназначен для обслуживания группы пользователей. Каждый из пользователей, независимо от других, вызывает появление своей серии запросов к дисковой системе. Современные операционные системы позволяют формировать несколько запросов одновременно. В этих случаях, при поступлении очередного запроса, система (RAID) может быть занята обслуживанием предыдущих запросов. Новый запрос становится в очередь, и время ожидания обслуживания для него увеличивается. Поэтому производительность дисковой системы сервера корректно оценивается по времени ожидания обслуживания при большом потоке заявок на чтение/запись. Но и этого мало.

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

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

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

Рис. 1. Загрузка центрального процессора при различных режимах работы

В данном тесте подключался только один диск, вначале – к интегрированному на материнской плате SCSI-контроллеру, а затем – к RAID-контроллеру. Проводилась серия измерений по обработке нескольких потоков запросов (до 100 потоков) на запись-чтение с последующим усреднением результатов. Никакие особенности RAID в этом случае, конечно, не влияют на результат. Из рис. 1 видно, что даже при установке только одного жесткого диска, технология I2O, применяемая в современных RAID-контроллерах, уменьшает загрузку центрального процессора примерно в 3,5 раза.

Уменьшение времени загрузки процессора, наверно, не является самоцелью. Гораздо важнее сопутствующее этому обещанное выше улучшение производительности. Результаты измерения производительности дисковой системы приведены на рис. 2.

Рис. 2. Результаты измерения производительности дисковой системы

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

А как же влияет на производительность объединение дисков в RAID? Для этого проведена серия измерения производительности RAID различных уровней при различном количестве дисков. В частности, на рис. 3 приведены результаты для RAID уровня 5 с контроллером AMI. Внутренняя кэш контроллера была выключена.

Рис. 3. Результаты измерения производительности RAID различных уровней при различном количестве дисков

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

Ну и, как говорят, «на закуску», посмотрим, как же помогает общей задаче повышения производительности кэш-память контроллера.

Для начала обратим внимание на некоторые нюансы работы кэш-памяти с дисковыми накопителями, особенно с RAID. На рис. 4 приведены результаты измерения производительности одного диска, подключенного к контроллеру AMI, полученные с помощью утилиты HDD Tech.

Рис. 4. Результаты измерения производительности одного диска, подключенного к контроллеру AMI

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

Если же к контроллеру подключен не один диск, а массив, то характер кривых значительно изменяется. Так, на рис. 5 приведены результаты для RAID уровня 5 из трех дисков.

Рис. 5. Результаты измерения производительности для RAID уровня 5 из трех дисков

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

Все рассмотренные выше технологические возможности, примененные в комплексе, позволяют даже в серверах начального уровня сформировать дисковую систему с просто уникальной производительностью. На рис. 6 приведены результаты измерения производительности RAID-систем различного уровня, сформированных на четырех жестких дисках с использованием контроллера Mylex AcceleRAID 250.

Рис. 6. Результаты измерения производительности RAID-систем различного уровня, сформированных на четырех жестких дисках с использованием контроллера Mylex AcceleRAID 250

Обратите внимание на значительное увеличение времени ожидания обслуживания для RAID уровня 3 и 5 по сравнению с RAID уровня 0+1, начинающееся при увеличении числа потоков более 50. Это связано с недостаточной производительностью собственно дисковой системы. Кэш-память заполняется очень быстро, и последующие запросы вынуждены ожидать, когда она сохранит накопившиеся данные на относительно медленных дисках. RAID уровня 0+1 является самым быстрым из всех уровней. В современных контроллерах он позволяет к тому же эффективнее всего использовать кэш контроллера, в связи с чем намного опережает другие разновидности RAID.

RAID уровня 5 и уровня 3 практически не отличаются друг от друга. Это связано отчасти с тем, что в контроллерах Mylex и AMI RAID уровня 3 реализован несколько иначе, чем рекомендовано RAB. Расслоение данных по дискам осуществляется поблочно, а не побитно. Кроме того, диски, естественно, не были синхронизированы. В контроллерах DPT RAID уровня 3 вообще не реализован, поскольку в серверах практически не применяется.

Надеюсь, что приведенные результаты позволят читателям самостоятельно найти правильный ответ на поставленный в начале статьи вопрос: «Они действительно так хороши, или они просто продаются в красивой упаковке?». Кстати, а вот упаковка-то у них совершенно невзрачная.


Поделиться информацией