Как построить "быстрочитаемый" массив?

Конфигурирование, планирование RAID систем, возможности, технологии, теория. Qlogic, LSI Logic, Adaptec ...

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
Igor Izylmetyev
Junior member
Сообщения: 2
Зарегистрирован: 17 фев 2004, 13:27

Как построить "быстрочитаемый" массив?

Сообщение Igor Izylmetyev » 19 фев 2004, 15:06

Просьба к специалистам Тринити обрисовать общие принципы построения отказоустойчивого массива для хранения части БД, интенсивно используемой на чтение. Размер этой части от десятков до сотен Гб. Иформация считывается блоками в несколько Мб и предаётся сетевым вычислителям. Вопрос: как и какими средствами обеспечить максимально возможную скорость чтения?

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16622
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 19 фев 2004, 15:14

Это вообще-то вопрос бюджета и требуемой скорости. Если он потянет тысяч 30 (навскидку), то идеальный вариант - внешняя FC система Chaparral RIVA http://www.chaparralnet.com/prod/product.php?category=1. Этот аппарат тянет до 600МБ/с на чтение (через несколько FC каналов естественно и при достаточном числе винтов).

Аватара пользователя
Курдиков Сергей
Advanced member
Сообщения: 199
Зарегистрирован: 27 авг 2002, 14:35
Контактная информация:

Сообщение Курдиков Сергей » 19 фев 2004, 17:05

Но это всё мечты. А реально следует обратить внимание на следующие моменты:

1. Чем больше дисков, тем быстрее выполняется процесс чтения. Обусловлено тем, что большинство современных RAID-контроллеров отчётливо понимает, что время позиционирования головок HDD на требуемый цилиндр составляет весьма значительный процент от общего времени, затрачиваемого условно говоря, на один цикл чтения. Конкретных цифр не буду приводить. Не знаю, да и для разного железа они разные. Проще говоря, время позиционирования на порядок (два, три) больше, нежели сам процесс считывания и передачи данных. Отсюда, выделяется чёткая заинтересованность распараллеливания (читаем, сокращения) времени, затрачиваемого на дёрганье головами. Увеличивая кол-во одновременно работающих шпинделей, уменьшаем среднее затрачиваемое время.

2. Чем проще алгоритм устройства рэйд-массива, тем меньше нагрузка на процессор контроллера. Пятый рэйд, очевидно, является самым нагружающим на текущий момент времени. Возможно, что в науке разработаны и более нагруженные алгоритмы. Я же говорю о том, что в действительности реализовано. Очевидно, уровень 0+1 (минимум 4 винта), который можно трактовать, как два страйпа в зеркале (или как два зеркала в страйпе :D ), представляет для поставленной задачи лучший интерес.

3. Несколько каналов. При достаточном кол-ве дисков пропускной ресурс канала от винтов до контроллера может быть недостаточен. При оценке работает простая арифметика. Положим, что имеет канал SCSI U160. Т.е. на лицо 160МБ/с. Условно. Всё это условно. Положим, что имеем на канале 8 HDD 10000rmp. Положим, что каждый HDD в идеальной ситуации отдаёт контроллеру 40МБ/с. Положим так. Тогда, в этой самой идеальной ситуации имеем винтоотдачу в 320МБ/с, что превышает ресурс канала в два раза.
Однако, идеальная ситуация далеко не характерна для реального режима работы. В зависимости от рода нагрузки, производительность винчестеров может резко снижаться. Причиной тому всё тоже время позиционирования головок.

4. Пропускная способность шины. К примеру, PCI-магистрали. Мы реально сталкивались с проблемой в контроллерах Mylex AcceleRAID 170, которым явно не хватало 33МГц на 32 бита. Сколько HDD не повесь, какой уровень не организуй - 90МБ/с и баста. Конкретный, кстати, пример.

Вот, собственно, основные выкладки для размышления. Хотя что тут размышлять, всё разжёвано. :wink:

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16622
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 19 фев 2004, 17:20

1. Серега, почитай еще раз пост - чтение блоками по несколько метров. Механика головок в значительной степени отпадает.
2. Рэйд5 на чтение работает впалне нормально.
3. Производительность рэйд систем на линейном трафике не имеет ничего общего с производительностью винтов и определяется мощью контроллера.

Нужно больше информации о бюджете и требуемой скорости - только после этого можно дальше говорить.

Igor Izylmetyev
Junior member
Сообщения: 2
Зарегистрирован: 17 фев 2004, 13:27

Сообщение Igor Izylmetyev » 20 фев 2004, 13:07

Всем признателен! Пока о бюджете и какой-либо конкретике речи нету. Я пока хочу осознать ускоряющие факторы и ограничивающие факторы. Правильно ли я понял по первой части:
1. RAID 10\01
2. количество дисков (можно ли приближенно считать, что удвоение количества дисков повышает скорость чтения вдвое?)
3. параметры дисков ( скорость вращения, время позиционирования, интерфейс).
4. количество каналов (как я понял, канал по пропускной способности не должен быть перегружен дисками).
Просьба в этой части объяснить: даст ли что-нибудь согласование размера считываемого блока и размера страйпа.

По второй части
1. пропускная способность сети ( нет нужды читать быстрее, чем можно передать)
2. шина сервера
3. пропускная способность канала контроллера
4. скорость считывания с диска

Вот это замечание уважаемого gs осталось мне непонятным:
3. Производительность рэйд систем на линейном трафике не имеет ничего общего с производительностью винтов и определяется мощью контроллера.

ВТБ!
free-lance moderator
Сообщения: 213
Зарегистрирован: 06 ноя 2002, 11:00
Контактная информация:

Re: Как построить "быстрочитаемый" массив?

Сообщение ВТБ! » 20 фев 2004, 13:58

Igor Izylmetyev писал(а):интенсивно используемой на чтение
Дайте, пожалуйста, количественную оценку.
Сколько "вычислителей"? Какая среда передачи к ним?
Данные только на чтение?

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16622
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 24 фев 2004, 13:36

Про производительность контроллера на линейном трафике.
Дело в том, что теория рэйда написана математиками и предполагает, что все операции контроллер производит несравнимо быстрее, чем диски.
На практике это не так. Как правило на рэйд контроллерах стоят очень слабые процессоры и пересылка десятков-сотен мегабайт в секунду для них предствляет весьма тяжелую задачу. В общем и целом, производительность современных PCI RAID контроллеров на линейном чтении составляет в лучшем случае 200МБ/с - быстрее не способны пересылать данные их процессоры. С записью дело обстоит еще хуже (считать больше приходится). И это при том, что современные диски запросто могут десятки метров в секунду лить что на запись, что на чтение.
Оговорка про ЛИНЕЙНОЕ чтение касалась того, что производительность диска очень сильно (на порядки) падает, когда начинаются обращения не к последовательно расположенным секторам, а вразброс. Вот на таких задачах мощность контроллеров уже не является ограничивающим фактором (хотя тут она тоже нужна для кэширования).

Вообще, правильно говорить о двух параметрах скорости контроллера:
1. Линейное чтение и запись.
2. Число операций ввода-вывода в секунду (IOps).
Они характеризуют работу контроллера в различных условиях.

Ответить

Вернуться в «Массивы - RAID технологии.»