балансинг по жестким дискам

Olexander Shtepa isk at idegroup.com
Mon Jan 12 14:51:04 MSK 2009


> ММ> Видимо  при большой конкурентности запросов на чтение лучше, если один
> ММ> файл   целиком   читается  с  одного  диска.  В  случае  использования
> ММ> зеркалирования  большие  файлы  елятся  на кусочки и запросы на чтение
> ММ> этих  кусочков  распределяются  по  дискам  в зеркале. Получаем больше
> ММ> позиционирований головок дисков.
> 
> "файлы делятся на кусочки" - это RAID-0 / RAID-10 / RAID-5 / etc.
> 
> mirror / зеркалирование - это RAID-1. здесь нет никаких кусочков.
>
> у RAID-1 на N винтах производительность выше примерно в N раз по сравнению с 1 винтом.
>
> http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_1_performance
> 
> Since all the data exists in two or more copies, each with its own hardware,
> the read performance can go up roughly as a linear multiple of the number of copies.

Это в идеальном случае. Я бы сказал что это соответствует средним нагрузкам.
В предельных случаях (min, max) ситуация уже зависит от алгоритма работы конкретной
реализации RAID-1.

В линуксе это так:
 * This routine returns the disk from which the requested read should
 * be done. There is a per-array 'next expected sequential IO' sector
 * number - if this matches on the next IO then we use the last disk.
 * There is also a per-disk 'last know head position' sector that is
 * maintained from IRQ contexts, both the normal and the resync IO
 * completion handlers update this position correctly. If there is no
 * perfect sequential match then we pick the disk whose head is closest.


More information about the nginx-ru mailing list