Назад | Перейти на главную страницу

Как предложения RAID 0 улучшают i / 0?

Возможный дубликат:
Каковы различные широко используемые уровни RAID и когда их следует учитывать?

Интересно, как RAID 0 предлагает лучший ввод-вывод.

Если я не ошибаюсь, данные RAID 0 разделяются и хранятся на разных жестких дисках.

в таком случае для каждого запроса на чтение не нужно сканировать весь массив для извлечения файлов.

Кто-нибудь может прояснить это?

Чтобы добавить к ответу и ответить на комментарий (который слишком длинный для ответа в комментарии)

Вы можете попытаться мыслить очень широкой картиной. Будет ли чтение с 2 дисков быстрее, чем с 1? И очевидный ответ - да. Если один диск способен читать только 100 Мбит / с, два диска, естественно, могут читать со скоростью 200 Мбит / с. И поэтому теоретическая скорость чтения raid 0 равна n, где n - количество дисков в массиве. То же самое и с рейдом 1 с чтениями. Имеется n дисков, и вы можете читать со всех их одновременно для большей скорости.

Однако raid 0 быстрее, чем raid 1, потому что есть не только чтение, но и запись. Raid 0 чередуется, поэтому только половина данных находится на одном диске, а другая половина - на другом. Raid 1 клонирован, поэтому данные есть с обеих сторон. Это означает, что при записи вам необходимо записать на оба диска все данные в raid 1. Итак, скорость записи в raid 0 снова равна n, здесь n - количество дисков в массиве по сравнению с raid 1, где скорость записи всегда 1; то же, что и запись на диск без рейда.

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

Предлагаю вам прочитать об этом подробнее в википедия насчет RAID.

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

Главное помнить, что данные распределяются по кускам, а не по битам или байтам. Размер блока (он же размер полосы) зависит от реализации и часто настраивается. Размер блока обычно составляет от 32 КБ до 2 МБ.

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

Или как Википедия помещает это.

Один из методов чередования - это чередование последовательных сегментов на устройствах хранения в циклическом режиме с начала последовательности данных.

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