LINUX.ORG.RU
решено ФорумAdmin

Скорость чтения с програмного raid1


0

2

Доброго времени суток.

Всегда считал, что

<верхний предел для скорости чтения с raid1> = <число дисков> * <скорость чтения с самого медленного диска>

А у меня всё время получается, что скорость равна скорости чтения самого медленного диска. Причём в случае чтения с массива видно, что половина запросов идёт на один диск, половина на второй, но в результате скорость не превышает скорости одного диска.

1) чтение с raid1:

jb:~/initrd# dd if=/dev/md3 of=/dev/null bs=128k count=20000
20000+0 записей считано
20000+0 записей написано
 скопировано 2621440000 байт (2,6 GB), 23,409 c, 112 MB/c

кусок вывода iostat -x 2

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdc             371,00     0,00  166,00    0,00 126144,00     0,00   759,90    10,85   65,17   4,72  78,40
sda             395,50     0,00  181,50    0,00 135680,00     0,00   747,55     8,76   47,94   4,30  78,00
md3               0,00     0,00 1117,00    0,00 263928,00     0,00   236,28     0,00    0,00   0,00   0,00
dm-17             0,00     0,00 1117,00    0,00 263928,00     0,00   236,28    70,83   63,11   0,88  98,60

2) чтение с одного диска:

jb:~/initrd# dd if=/dev/sda of=/dev/null bs=128k count=20000
sda   sda1  sda2
jb:~/initrd# dd if=/dev/sda of=/dev/null bs=128k count=20000
20000+0 записей считано
20000+0 записей написано
 скопировано 2621440000 байт (2,6 GB), 23,3692 c, 112 MB/c

кусок вывода iostat -x 2:

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdc               1.50     0.00    2.00    0.00   432.00     0.00   216.00     0.02    9.00   9.00   1.80
sda           29373.50     0.00  950.50    0.00 243040.00     0.00   255.70     2.07    2.10   1.05 100.00
md3               0.00     0.00    8.00    0.00  1040.00     0.00   130.00     0.00    0.00   0.00   0.00
dm-17             0.00     0.00    8.00    0.00  1040.00     0.00   130.00     0.36   24.75  24.00  19.20

3) конфигурация

/proc/mdstat

md3 : active raid1 sda2[2] sdc2[3]
      1952988760 blocks super 1.2 [2/2] [UU]

оба диска:

Model Family:     Western Digital Caviar Green (Adv. Format) family
Device Model:     WDC WD20EARS-00MVWB0

Как бы это объяснить без мистики? Может ли это быть проверкой целостности данных на лету? (но тогда в выводе iostat скорость чтения с обоих дисков должна быть раза в два выше)

★★★★★

Как бы это объяснить без мистики?

В твоём mdadm используется последовательный алгоритм распределения обращений к дискам — «round-robin».

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

На это я и надеюсь :) Но какого лешего суммарная скорость совпадает со скоростью диска?

router ★★★★★
() автор топика
Ответ на: комментарий от router

Упс, ступил.

Т.е. mdadm читает n секторов с первого диска, ждёт окончания операции, потом читает n секторов со второго диска? Жесть. А это лечится?

router ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Т.е. raid0 в mdadm таки распараллеливает чтение? К сожалению, не пойдёт - ещё два диска не влезут :\

router ★★★★★
() автор топика

Ладно, понял что слишком много хочу от програмного рейда. Закатал губу обратно и вытер слюни с клавиатуры :)

Всем спасибо.

router ★★★★★
() автор топика

Как бы это объяснить без мистики?

Элементарно, Ватсон! При последовательном однопоточном чтении ядро, собранное без поддержки libastral, никак не может распараллелить запросы на оба диска одновременно =).

Deleted
()
Ответ на: комментарий от GotF

не-не-не, я такого не предлагал, я говорю именно о четырех дисках, которые ТС не подходят. В этом случае я бы просто объединил их LVM, получив снапшоты и миграцию экстентов, забив на удвоение скорости чтения

anonymous
()
Ответ на: комментарий от router

А это лечится?

Подключи винчестеры к разным каналам I/O контроллёра. Если скорость будет такая же, то нужно смотреть на настройки mdadm: может быть есть какая-то опция, переводящая его на один из «параллельных» алгоритмов обработки транзакций с дисковыми устройствами.

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

>В случае ТС'а, я бы просто....

медленнофикс

anonymous
()
Ответ на: комментарий от GotF

После чтения документации по mdadm передумал экспериментировать. Пример по ссылке создаст из raid10 не raid1, а raid0 с деградировавшим raid1

router ★★★★★
() автор топика
Ответ на: комментарий от router

А, собственно, что не так? В однодисковом raid1 каждый диск самодостаточен. Для результирующего raid'a этот режим тоже не является аварийным.

YAR ★★★★★
()
Ответ на: комментарий от YAR

Ты сам подумай, что сказал :D Ты предлагаешь raid0 вместо raid1 и говоришь, что оно будет работать, так что без разницы :D

router ★★★★★
() автор топика
Ответ на: комментарий от adepto

1)обычно наоборот пишут: ник от имени анонимуса, а не подпись «анонимус» от имени ника

2)на что похож однодисковый рейд1? это деградированый массив из двух или два раздела на одном диске? во втором случае, какой смысл в полученном поделии?

anonymous
()
Ответ на: комментарий от anonymous

> это деградированый массив из двух или два раздела на одном диске?

Это raid1, но без зеркалирования.

// Чуть позже покажу, что и как, память тестится...

YAR ★★★★★
()
Ответ на: комментарий от anonymous

>1)обычно наоборот пишут: ник от имени анонимуса, а не подпись «анонимус» от имени ника

В контексте данного треда я фигурирую как Анонимус, т.к. по ссылке ответ на моё сообщение в этой роли :)

2)на что похож однодисковый рейд1? это деградированый массив из двух или два раздела на одном диске? во втором случае, какой смысл в полученном поделии?

Тоже хочу узнать. Я пока не решился такую схему попробовать.

adepto
()
Ответ на: комментарий от iZEN

>>Если скорость будет такая же, то нужно смотреть на настройки mdadm:

вроде тут же и проскакивало про эту «особенность» mdadm, только робин, но не уверен )

EvgGad_303 ★★★★★
()
Ответ на: комментарий от YAR

На этот случай есть резервное копирование. А вопрос давно назрел, пора заниматься.

adepto
()
Ответ на: комментарий от YAR

И рыбку съесть и RAID собрать.

Это raid1, но без зеркалирования.

Таки поясните, в чём профит от

mdadm -C -l10 -p f2 -n2 /dev/md0 /dev/sda1 /dev/sdb1
Есть ли в этом случае избыточность/резервирование, или это эквивалентно RAID-0?

Camel ★★★★★
()
Ответ на: Сам нашёл. от Camel

Кстати, да, немного неправильно выразился тогда. Это не RAID0, это, скорее, асимметричный RAID1, за счет чего и достигается увеличение скорости

man mdadm:

 
              Finally, the layout options for RAID10 are one of 'n', 'o' or 'f' followed by a small number.  The default is    
              'n2'.  The supported options are:                                                                                
                                                                                                                               
              'n' signals 'near' copies.  Multiple copies of one data block are at similar offsets in different devices.       
                                                                                                                               
              'o' signals 'offset' copies.  Rather than the chunks being duplicated within  a  stripe,  whole  stripes  are    
              duplicated  but  are  rotated  by  one  device so duplicate blocks are on different devices.  Thus subsequent
              copies of a block are in the next drive, and are one chunk further down.

              'f' signals 'far' copies (multiple copies have very different offsets).  See  md(4)  for  more  detail  about
              'near', 'offset', and 'far'.
YAR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.