Блог Монашёва Михаила
Без бэкапа по жизни.
Привет, Гость
  
  • Войти…
• Регистрация
• Завести дневник
  • Кто, Где, Когда
• Что тут делать?
• Дуэли
  • Опросы
• Аватарки
• Интересы
  • Города и Страны
• Случайный дневник
• Поиск пользователей
  • Поиск
• Игры
• Тесты
• MindMix
  • Сообщества
• Talxy-чат
• Гороскоп
• В онлайне
Отключить дизайн
Получи свой дневник!

Блог Монашёва Михаила > Результаты тестирования graid5, graid3+gcache и raidz.  22 сентября 2007 г. 07:03:09

  О себе:      
  Мне подарили:
  На меня ссылаются:
  Мои категории:
  Мои ссылки: 
  Мои друзья:
  Меня читают:
  Я читаю дневники:
  Последние комментарии:
  В дневниках:

Результаты тестирования graid5, graid3+gcache и raidz.

Михаил 22 сентября 2007 г. 07:03:09
 Цель тестов - выбрать самый быстрый на чтение софтовый raid с возможностью восстановления данных в случае выхода из строя одного из 5 дисков. С этих дисков планируется раздавать картинки nginx-ом.

Конфигурация:

Железо.
Сервер Kraftway Express ISP ES24: http://kraftway.ru/products/product.php?SECTION_ID=271&PRODUCT_ID=340
Платформа
Системная плата Intel S5000PAL (Alcolu), Intel E5000P чипсет, 667/1066/1333 MHz FSB,
Корпус Intel SR2500 (Driskill 2)
CPU Dual-Core Intel Xeon 5130 2,00 GHz, cache 4 MB, FSB 1333 MHz
RAM 4 GB DDR2-677 Fully Buffered ECC (2*2 GB)
HDD SATA Seagate 750Gb 7200 rpm
HDD SATA Seagate 750Gb 7200 rpm
HDD SATA Seagate 750Gb 7200 rpm
HDD SATA Seagate 750Gb 7200 rpm
HDD SATA Seagate 750Gb 7200 rpm
HDD SATA Seagate 750Gb 7200 rpm

Софт.

FreeBSD 7.0-CURRENT amd64

# mount
/dev/ad4s2d on /home (ufs, local, noatime, soft-updates)
/dev/ad4s1h on /opt/log (ufs, local, noatime, soft-updates)
...
tank/opt on /opt (zfs, local)
tank on /tank (zfs, local)
/dev/raid3/g3 on /opt2 (ufs, local, noatime, soft-updates)
/dev/raid5/g5 on /opt3 (ufs, local, noatime, soft-updates)

# zpool status
pool: tank
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ad6s1 ONLINE 0 0 0
ad8s2 ONLINE 0 0 0
ad10s3 ONLINE 0 0 0
ad12s1 ONLINE 0 0 0
ad14s2 ONLINE 0 0 0

errors: No known data errors


# gcache list
Geom name: cache_ad6s2a
WroteBytes: 98304
Writes: 42
CacheFull: 63546
CacheMisses: 70050
CacheHits: 647
CacheReadBytes: 99614208
CacheReads: 7151
ReadBytes: 1494126592
Reads: 92918
InvalidEntries: 0
UsedEntries: 6
Entries: 6
TailOffset: 250048479232
BlockSize: 65536
Size: 100
Providers:
1. Name: cache/cache_ad6s2a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
Consumers:
1. Name: ad6s2a
Mediasize: 250048503808 (233G)
Sectorsize: 512
Mode: r1w1e1

Geom name: cache_ad8s3a
WroteBytes: 98304
Writes: 42
CacheFull: 63659
CacheMisses: 70150
CacheHits: 652
CacheReadBytes: 99899904
CacheReads: 7143
ReadBytes: 1492060160
Reads: 92918
InvalidEntries: 0
UsedEntries: 6
Entries: 6
TailOffset: 250048479232
BlockSize: 65536
Size: 100
Providers:
1. Name: cache/cache_ad8s3a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
Consumers:
1. Name: ad8s3a
Mediasize: 250048503808 (233G)
Sectorsize: 512
Mode: r1w1e1

Geom name: cache_ad10s1a
WroteBytes: 98304
Writes: 42
CacheFull: 63679
CacheMisses: 70164
CacheHits: 625
CacheReadBytes: 99901952
CacheReads: 7110
ReadBytes: 1491070464
Reads: 92918
InvalidEntries: 0
UsedEntries: 7
Entries: 7
TailOffset: 250048413696
BlockSize: 65536
Size: 100
Providers:
1. Name: cache/cache_ad10s1a
Mediasize: 250048471040 (233G)
Sectorsize: 512
Mode: r1w1e1
Consumers:
1. Name: ad10s1a
Mediasize: 250048471552 (233G)
Sectorsize: 512
Mode: r1w1e1

Geom name: cache_ad12s2a
WroteBytes: 98304
Writes: 42
CacheFull: 63587
CacheMisses: 70099
CacheHits: 633
CacheReadBytes: 100357120
CacheReads: 7145
ReadBytes: 1493531648
Reads: 92918
InvalidEntries: 0
UsedEntries: 6
Entries: 6
TailOffset: 250048479232
BlockSize: 65536
Size: 100
Providers:
1. Name: cache/cache_ad12s2a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
Consumers:
1. Name: ad12s2a
Mediasize: 250048503808 (233G)
Sectorsize: 512
Mode: r1w1e1

Geom name: cache_ad14s3a
WroteBytes: 98304
Writes: 42
CacheFull: 28268
CacheMisses: 31194
CacheHits: 213
CacheReadBytes: 43265536
CacheReads: 3139
ReadBytes: 662387200
Reads: 41258
InvalidEntries: 0
UsedEntries: 7
Entries: 7
TailOffset: 250048479232
BlockSize: 65536
Size: 100
Providers:
1. Name: cache/cache_ad14s3a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
Consumers:
1. Name: ad14s3a
Mediasize: 250048503808 (233G)
Sectorsize: 512
Mode: r1w1e1


# graid3 list
Geom name: g3
State: COMPLETE
Components: 5
Flags: ROUND-ROBIN
GenID: 0
SyncID: 1
ID: 3868124998
Zone64kFailed: 0
Zone64kRequested: 198128
Zone16kFailed: 0
Zone16kRequested: 152096
Zone4kFailed: 0
Zone4kRequested: 62766
Providers:
1. Name: raid3/g3
Mediasize: 1000193882112 (932G)
Sectorsize: 2048
Mode: r0w0e0
Consumers:
1. Name: cache/cache_ad6s2a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Flags: NONE
GenID: 0
SyncID: 1
Number: 0
Type: DATA
2. Name: cache/cache_ad8s3a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Flags: NONE
GenID: 0
SyncID: 1
Number: 1
Type: DATA
3. Name: cache/cache_ad10s1a
Mediasize: 250048471040 (233G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Flags: NONE
GenID: 0
SyncID: 1
Number: 2
Type: DATA
4. Name: cache/cache_ad12s2a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Flags: NONE
GenID: 0
SyncID: 1
Number: 3
Type: DATA
5. Name: cache/cache_ad14s3a
Mediasize: 250048503296 (233G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Flags: NONE
GenID: 0
SyncID: 1
Number: 4
Type: PARITY

# graid5 list
Geom name: g5
State: COMPLETE CALM
Status: Total=5, Online=5
Type: AUTOMATIC
Pending: (wqp 0 // 0)
Stripesize: 65536
MemUse: 0 (msl 0)
Newest: -1
ID: 1151162121
Providers:
1. Name: raid5/g5
Mediasize: 1000193916928 (932G)
Sectorsize: 512
Mode: r0w0e0
Consumers:
1. Name: ad6s3
Mediasize: 250048512000 (233G)
Sectorsize: 512
Mode: r1w1e1
DiskNo: 0
Error: No
2. Name: ad8s1
Mediasize: 250048479744 (233G)
Sectorsize: 512
Mode: r1w1e1
DiskNo: 1
Error: No
3. Name: ad10s2
Mediasize: 250048512000 (233G)
Sectorsize: 512
Mode: r1w1e1
DiskNo: 2
Error: No
4. Name: ad12s3
Mediasize: 250048512000 (233G)
Sectorsize: 512
Mode: r1w1e1
DiskNo: 3
Error: No
5. Name: ad14s1
Mediasize: 250048479744 (233G)
Sectorsize: 512
Mode: r1w1e1
DiskNo: 4
Error: No

Результаты тестов.

raidtest. 10 одновременных чтений:


graid3 без round-robin reading.

# raidtest test -d /dev/raid3/g3 -n 10
Read 50000 requests from raidtest.data.
Number of READ requests: 50000.
Number of WRITE requests: 0.
Number of bytes to transmit: 3316146176.
Number of processes: 10.
Bytes per second: 9303561
Requests per second: 140

graid3 с включённым round-robin reading.

# raidtest test -d /dev/raid3/g3 -n 10
Read 50000 requests from raidtest.data.
Number of READ requests: 50000.
Number of WRITE requests: 0.
Number of bytes to transmit: 3316146176.
Number of processes: 10.
Bytes per second: 11398078
Requests per second: 171

graid5.

# raidtest test -d /dev/raid5/g5 -n 10
Read 50000 requests from raidtest.data.
Number of READ requests: 50000.
Number of WRITE requests: 0.
Number of bytes to transmit: 3284773376.
Number of processes: 10.
Bytes per second: 19700939
Requests per second: 299

raidz. ( http://lists.freebsd.org/pipermail/freebsd-geom/2007-September/002593.html )

# raidtest test -d /dev/zvol/tank/vol -n 10 -w
Read 50000 requests from raidtest.data.
Number of READ requests: 0.
Number of WRITE requests: 50000.
Number of bytes to transmit: 3281546240.
Number of processes: 10.
Bytes per second: 120195634
Requests per second: 1831
# zpool export tank
# zpool import tank
# raidtest test -d /dev/zvol/tank/vol -n 10 -r
Read 50000 requests from raidtest.data.
Number of READ requests: 50000.
Number of WRITE requests: 0.
Number of bytes to transmit: 3281546240.
Number of processes: 10.
Bytes per second: 69264127
Requests per second: 1055
# raidtest test -d /dev/zvol/tank/vol -n 10 -r
Read 50000 requests from raidtest.data.
Number of READ requests: 50000.
Number of WRITE requests: 0.
Number of bytes to transmit: 3281546240.
Number of processes: 10.
Bytes per second: 659851727
Requests per second: 10053


раздел одного диска.

# raidtest test -d /dev/ad4s1h -n 10
Read 50000 requests from raidtest.data.
Number of READ requests: 50000.
Number of WRITE requests: 0.
Number of bytes to transmit: 3290731520.
Number of processes: 10.
Bytes per second: 9067004
Requests per second: 137


dd:

raidz.

# dd if=/dev/zero of=/opt/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 66.627487 secs (125903112 bytes/sec)
# dd of=/dev/null if=/opt/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 34.686560 secs (241840297 bytes/sec)

graid3 с включённым round-robin reading.

# dd if=/dev/zero of=/opt2/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 54.425021 secs (154131461 bytes/sec)
# dd of=/dev/null if=/opt2/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 64.300645 secs (130459158 bytes/sec)

graid5.

# dd if=/dev/zero of=/opt3/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 138.592430 secs (60527173 bytes/sec)
# dd of=/dev/null if=/opt3/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 64.681915 secs (129690162 bytes/sec)

обычный диск.

# dd if=/dev/zero of=/home/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 148.426179 secs (56517038 bytes/sec)
# dd of=/dev/null if=/home/22 bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes transferred in 103.032438 secs (81417155 bytes/sec)

Выводы

graid3 без включённого round-robin reading читает только с четырёх дисков. А диск с данными о чётности не используется и простаивает.

Включение round-robin reading в graid3 позволяет использовать пятый диск для чтения и вычислять непрочитанные данные налету на основе блока чётности: http://www.freebsd.­org/cgi/cvsweb.cgi/s­rc/sys/geom/raid3/g_­raid3.c?r1=1.7#rev1.­7 .

graid5 оказался быстрее graid3 с round-robin reading видимо из-за того, что gcache не всегда получается эффективно работать на случайном чтении и всё равно выходит много чтений мелких блоков по 512 байт. А graid5 читает по 64kb и потому быстрее.

Довольно странные результаты показал raidz. Он оказался быстрее всех, хотя должен был оказаться медленее всех. :-)­

Сброс кэша, как рекомендовал Pawel Jakub Dawidek ( http://lists.freebs­d.org/pipermail/free­bsd-geom/2007-Septem­ber/002595.html ), dидимо не позволяет полностью избавиться от кэширования и приводит к тому, что скорость чтения с raidz, состоящего из 5 дисков, в 7.7 раз превосходит скорость чтения с одного диска. А при повторном запуске теста эта скорость увеличивается ещё в 10 раз!

UPD:
ZFS работает быстрее из-за префетчинга: http://lists.freebs­d.org/pipermail/free­bsd-geom/2007-Septem­ber/002596.html

UPD2:
От ZFS пришлось отказаться. Очень сильно грузил диски. Переделали всё через gmirror, gstripe, gconcat и gjournal и заработало намного быстрее.

Огромное спасибо
Сергею Светову http://www.svetoff.­org/ за настройку всего софта

а также:
Дмитрию Морозовскому за помощь c gcache
Максиму Дунину http://mdounin.ru/ за умные мысли
Pawel Jakub Dawidek http://www.wheel.pl­/ за помощь в тестирование ZFS

и фирме Kraftway, за предоставленный на тестирование сервер.

Буду благодарен за любые комментарии.

Категории: Graid5Graid3GcacheRaidzZfs
Дoбавить кoммeнтарий
tabacci 22 сентября 2007 г. 07:23:01 постоянная ссылка ]
странно, что graid3 вообще поддерживается: последнее обновление 05.06.07
насколько я представляю, graid3 в graid5 довольно просто переделывается..
Дoбавить кoммeнтарий
Михаил 22 сентября 2007 г. 07:26:31 постоянная ссылка ]
 graid3 поддерживается видимо по той причине, что он не подвержен write hole, в отличие от RAID5.
Дoбавить кoммeнтарий
tabacci 22 сентября 2007 г. 07:52:28 постоянная ссылка ]
а у raidz, raidz2.. там по идее не должно быть проблемы write hole?
Дoбавить кoммeнтарий
Михаил 22 сентября 2007 г. 07:53:37 постоянная ссылка ]
 Да, у них её нету.
Дoбавить кoммeнтарий
Гость 2 ноября 2007 г. 20:20:52 постоянная ссылка ]
 Думаю, что тут засада не только и не столько в ZFS, сколько в реализации ZFS на FreeBSD. У меня на машинке на одном ZFS'ном томе стоят Солярис и FreeBSD. Так вот, FreeBSD работает ощутимо медленнее, хотя параметры я подбирал настолько тщательно, насколько это вообще возможно (в противном случае FreeBSD падает в панику при операциях на неимоверном количестве инодов, например, при "cvs update" на /usr/ports), а Солярис не tweak'ал совсем (не умею пока :)­.
Скажем так, распаковка установленного Соляриса (это 5,5 гигабайта в .tar.gz) на UFS и ZFS идёт примерно одинаковое время. За FreeBSD такого сказать, прямо скажем, нельзя. ;)
Дoбавить кoммeнтарий
Гость 2 ноября 2007 г. 20:22:35 постоянная ссылка ]
 А вообще, конечно, приятно читать тесты, в которых поучаствовали бывшие коллеги по двум работам сразу (Морозильник и Борман). ;)
Дoбавить кoммeнтарий
Михаил 2 ноября 2007 г. 22:20:52 постоянная ссылка ]
 
А вообще, конечно, приятно читать тесты, в которых
поучаствовали бывшие коллеги по двум работам сразу (Морозильник и
Борман). ;)

:-)­
Дoбавить кoммeнтарий
Гость 27 ноября 2007 г. 19:52:16 постоянная ссылка ]
 А как быстро чекается эта конструкция с журналом?
Ну и основная идея zfs - проверка целостности данных - что зеркалами не обеспечивается.
Дoбавить кoммeнтарий
Михаил 27 ноября 2007 г. 23:30:23 постоянная ссылка ]
 Здравствуйте Гость

А как быстро чекается эта конструкция с журналом?

Не знаю. Оно с журналом не бьётся просто. Поэтому и чекаться ему не
надо.

Ну и основная идея zfs - проверка целостности данных - что
зеркалами не обеспечивается.

ZFS пытается сохранить диски на сыплющихся дисках. Но если диск
начинает сыпаться, то это видно в смарте. Поэтому если смарт
показывает скорый каюк диска, его следует заменить и восстановить
зеркало. Данные на других дисках зеркала будут нормальными и данные не
потеряются.

P.S.
Основной идеи у ZFS нету. Их несколько. Но по сути это навороченный
вариант RAID 3 с несколькими приятными для админов рюшечками.
Дoбавить кoммeнтарий
Гость 14 октября 2008 г. 07:01:32 постоянная ссылка ]
 эмммм а скорпость чтения и записи от начала к концу диска разные. =,B­
Дoбавить кoммeнтарий
Гость 28 декабря 2008 г. 19:27:51 постоянная ссылка ]
 имхо zfs зря забраковали, тем более что можно было попробовать zfs поверх gstripe.
Дoбавить кoммeнтарий
 

Дoбавить нoвый кoммeнтарий

Как:
 
 
  
 
Пожалуйста, относитесь к собеседникам уважительно, не используйте нецензурные слова, не злоупотребляйте заглавными буквами, не публикуйте рекламу и объявления о купле/продаже, а также материалы нарушающие сетевой этикет или законы РФ. Ваш ip-адрес записывается.


Блог Монашёва Михаила > Результаты тестирования graid5, graid3+gcache и raidz.  22 сентября 2007 г. 07:03:09

  Copyright © 2001—2010 MindMix
Идея: Монашёв Михаил.
Авторами текстов, изображений и видео, размещённых на этой странице, являются пользователи сайта.
Помощь и задать вопросы можно в сообществе support.mindmix.ru.
Сообщения об ошибках оставляем в сообществе bugs.mindmix.ru.
Предложения и комментарии пишем в сообществе suggest.mindmix.ru.
Информация для родителей.
Пишите нам на .
Реклама
If you would like to report an abuse of our service, such as a spam message, please .
Если Вы хотите пожаловаться на содержимое этой страницы, пожалуйста .