Программный RAID 10 не быстрее, чем программный RAID 5 на Ubuntu 14.04, почему?
Мы проводим некоторые тесты на новом сервере базы данных с 4 x 240 ГБ SSD-дисками. Из того, что я прочитал, RAID 10 должен быть быстрее RAID 5 с той же избыточностью "потеря одного диска в порядке".
Однако при тестировании с bonnie++ кажется, что RAID 10 не быстрее, чем RAID 5. Есть идеи, почему?
- 4 x 240 ГБ SSD-диска, программный RAID, Ubuntu 14.04
- Intel® Xeon® E5-1650 v2 Hexa-Core Ivy Bridge-E вкл. Технология Hyper-Threading 128 ГБ ECC RAM
- http://www.hetzner.de/en/hosting/produkte_rootserver/px120ssd
RAID5 (все 4 диска):
# cat /proc/mdstat
md2 : active raid5 sdd3[4] sdc3[2] sda3[0] sdb3[1]
688730112 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 647G 1.6G 613G 1% /
# bonnie++ -d /tmp -u root
Version 1.97 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
db1a 252G 1113 99 474860 26 327393 16 5943 99 1192788 23 +++++ +++
Sequential write: 0.474 G/s
Sequential rewrite: 0.327 G/s
Sequential read: 1.192 G/s
RAID10:
# cat /proc/mdstat
md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
459153408 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 431G 1.6G 408G 1% /
# bonnie++ -d /tmp -u root
Version 1.97 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
db1a 252G 1221 99 492972 27 323392 15 5688 100 1178194 23 +++++ +++
Sequential write: 0.492 G/s
Sequential rewrite: 0.323 G/s
Sequential read: 1.178 G/s
Обновить
Я запустил тест RAID 10 с iozone, чтобы посмотреть, будет ли многопоточный тест работать лучше, если предположить, что 99%-100% ЦП, о котором сообщает bonnie++, может указывать на узкое место:
# iozone -R -i 0 -i 1 -l 12 -u 12 -r 8k -s 22G
(12 threads, 8k block size, total file size of 264G)
" Initial write " 538817.21 0.538 G/s
" Rewrite " 511450.04 0.511 G/s
" Read " 1087437.45 1.087 G/s
" Re-read " 1201127.73 1.201 G/s
" Random read " 576435.70 0.576 G/s
" Random write " 400612.46 0.400 G/s
Результаты немного лучше, чем у Бонни ++, но не намного.
Результаты iozone для RAID 5:
" Initial write " 516469.10 0.516 G/s
" Rewrite " 489970.21 0.489 G/s
" Read " 1116074.84 1.116 G/s
" Re-read " 1116666.97 1.116 G/s
" Random read " 611738.43 0.611 G/s
" Random write " 199486.44 0.199 G/s
Таким образом, как объясняется в ответах, производительность произвольной записи RAID 10 в два раза выше, чем у RAID 5, но все остальные характеристики аналогичны или немного лучше.
2 ответа
Из того, что я прочитал, RAID 10 должен быть быстрее RAID 5 с той же избыточностью "потеря одного диска в порядке".
Я не согласна
Давайте посмотрим на прочтение - здесь нет причин для различий. Оба позволяют считывать данные со всех четырех дисков и использовать их полную пропускную способность. При использовании RAID 5 четность не читается, если только она не нужна, поэтому никакой разницы нет.
Теперь давайте посмотрим на записи. Для RAID 10 пропускная способность уменьшается вдвое, поскольку каждая запись должна выполняться дважды. С RAID 5 все не так плохо. Мы должны выписать четность, но только 1/4 данных является четностью (на каждые 3 байта данных, которые мы пишем, мы должны записать один байт четности). Таким образом, RAID 10 уменьшает пропускную способность вдвое, RAID 5 имеет штраф 33%. Так что RAID 10 здесь чуть хуже.
Почему RAID 10 должен быть лучше? (При условии отсутствия сбоев устройства.)
Я не думаю, что чередование RAID полезно с SSD. Чередование дистрибутивов работает на нескольких дисковых головках, но SSD уже имеют отличный произвольный доступ.