Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Тестируем
производительность
распределенных систем
хранения данных
Киров Александр
Parallels
О себе
5+ лет в Parallels
Деятельность:
• Анализ производительности Parallels Plesk Panel
• Анализ производительности серв...
Чем важен доклад
• Что тестировать и как? (консистентность, производительность)
• На что нужно обращать внимание в первую ...
Мы знаем о хранении данных
Диски подключенные в кластер
Индивидуальные диски
1TB
1TB
1TB
3TB
Parallels Cloud Storage
Высок...
File:
101110
011001
101100
File:
000111
010101
101010
File:
111000
011101
001010
Как тестировать?
Определиться что хотим получить
• Понять какая предполагается нагрузка на систему
• Что и сколько хотим получить от систем...
Различия сценариев
Файловый
сервер
VPS хостинг
VPS кластер
=VM
Не используйте хорошо сжимаемые
шаблоны данных
dd if=/dev/urandom of=/tmp/rnd_f size=1M
dd if=/tmp/rnd_f of=/dev/sda size=...
Используйте большой working set
Пример плохого теста: iozone имеет маленький working set, поэтому
меряет память
Пример как...
Кстати, о RAID - контроллерах
Model Seq. write
LSI MegaRAID 2008M-8i 298 MB/s
MegaRAID 9271CV-8i 834 MB/s
Производительнос...
Не пренебрегайте статистикой
• Отведите не меньше минуты на проведение теста
• Лучше – дольше
• Проводите один тест нескол...
Убедитесь, что сравнение честное
Всегда сравнивать только «Яблоки с Яблоками»:
• Одинаковое железо
• Одинаковая нагрузка
•...
Тестируем Sync()
• Write() и Read() – это не все операции
над блочным хранилищем
• Необходимо тестировать sync()
• Операци...
Масштабируемость Sync()/flush
Тип Входящих дисков Кол-во Sync() / сек
1 disk 1
RAID 1 N
RAID 0 N
RAID 10 N
RAID 5/6 N
Во с...
Sync() в распределенной системе
File:
101110
011001
101100
Kernel
HW
Результат тестирования
*Parallels Cloud Storage 6.0: pstorage-5.0.1-440 ; OnApp Cloud 3.0: onapp-store-install-3.0.0-24, o...
Как тестируем?
IO workloads:
• Sequential read of 16MB block
• Sequential write of 16MB block
• Random read of 4KB block
•...
At_io_iops
at_io_iops --read --rand -s 4K --iops -p 4 -t 60 -u 16G -S -f
/pstorage/<cluster_name>/<benchmark_dir>
• Умеет ...
Результаты: Read Performance
HW: Core i5 2400, 16 GB RAM, HDD 2x2TB SATA, Intel 82574L 1Gbit, Cisco Catalyst 2960
Результаты: Write Performance
HW: Core i5 2400, 16 GB RAM, HDD 2x2TB SATA, Intel 82574L 1Gbit, Cisco Catalyst 2960
Раздатка
Скачать методологию: Скачать at_io_iops:
http://goo.gl/aWAiVZhttp://goo.gl/dIuxLI
Консистентность
Консистентность
• Строгая консистентность (англ. strict consistency) гарантировано
возвращает значение, записанное самой п...
Как проверять консистентность?
Решение:
• Записать данные и прочитать их
Проблемы:
• Кеши
• Распределенность системы
• Кон...
Чем проверять консистентность?
Утилита «hw_flush_check»
Принцип работы:
1. Клиент записывает данные и посылает Sync() (сбр...
Раздатка
Скачать hw_flush_check:
http://goo.gl/dIuxLI
Как железо влияет на системы хранения?
Консистентность данных на SSD
Тот же подход применим к тестированию железа:
SSD, RAID-контролеров, SAN
Ищите в спецификаци...
Консистентность. Выводы
• SW и HW необходимо тестировать на сохранность данных
• Используем для этого утилиту hw_flush_che...
Наработка на отказ
The mean time to data loss (MTTDL) — среднее время наработки
до потери данных:
MTTDL ~= 1 / T^2
T – вре...
Как проверить?
Сценарий:
1. Записать значительный объем данных
2. Отключить компонент
3. Замерить время до полного восстан...
Время восстановления RAID
Тип Чтение с рабочих дисков Запись на новый диск
RAID 0 n/a n/a
RAID 1 1 Скорость 1 диска
RAID 5...
Сравнение скорости восстановления
HW: Core i5 2400, 16 GB RAM, HDD 2x2TB SATA, Intel 82574L 1Gbit, Cisco Catalyst 2960
Попробовать Parallels Cloud
Storage
http://goo.gl/kdXxLF
Parallels Cloud Storage в PCS:
http://sp.parallels.com/products/p...
Q&A
Киров Александр
Parallels®
akirov@parallels.com
+7-495-783-29-77 (76244)
Appendix
CEPH
Традиционные системы хранения
Резервируют всё на HW уровне:
• Дублированное питание
• Двойные «мозги»
• Дублированное подк...
Распределенные системы хранения
Резервируют всё на SW уровне:
• HW априори никогда не надежно
• Резервирование на уровне S...
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Upcoming SlideShare
Loading in …5
×

Тестируем производительность распределённых систем, Александр Киров (Parallels)

2,410 views

Published on

Доклад Александра Кирова на HighLoad++ 2014.

Published in: Internet
  • Be the first to comment

Тестируем производительность распределённых систем, Александр Киров (Parallels)

  1. 1. Тестируем производительность распределенных систем хранения данных Киров Александр Parallels
  2. 2. О себе 5+ лет в Parallels Деятельность: • Анализ производительности Parallels Plesk Panel • Анализ производительности серверной виртуализации • Program manager Parallels Cloud Storage
  3. 3. Чем важен доклад • Что тестировать и как? (консистентность, производительность) • На что нужно обращать внимание в первую очередь? • Как обойти множество подводных камней при тестировании? • Раздаем утилиты для тестирования
  4. 4. Мы знаем о хранении данных Диски подключенные в кластер Индивидуальные диски 1TB 1TB 1TB 3TB Parallels Cloud Storage Высокая производительность • Автоматическая балансировка данных • Out-of-the-box SSD-кеширование Масштабируемость • Легко расширяется, автоматически масштабируется, реорганизует кластер про добавлении новых дисков/серверов Отказоустойчивость • Автоматически управляет отказоустойчивостью и восстановлением • Прозрачная репликация данных
  5. 5. File: 101110 011001 101100 File: 000111 010101 101010 File: 111000 011101 001010
  6. 6. Как тестировать?
  7. 7. Определиться что хотим получить • Понять какая предполагается нагрузка на систему • Что и сколько хотим получить от системы Позволяет: • Понять что действительно важно, а что нет • Числено определить требования (IOPS, MB/s, ms) • Понять характер нагрузки, основные сценарии • Сколько машин работает с хранилищем
  8. 8. Различия сценариев Файловый сервер VPS хостинг VPS кластер =VM
  9. 9. Не используйте хорошо сжимаемые шаблоны данных dd if=/dev/urandom of=/tmp/rnd_f size=1M dd if=/tmp/rnd_f of=/dev/sda size=1M oflag=direct Правильно: dd if=/dev/zero of=/dev/sda size=1M Самый популярный неправильный тест: dd if=/dev/urandom of=/dev/sda size=1M Улучшенный вариант, но по-прежнему неправильный :
  10. 10. Используйте большой working set Пример плохого теста: iozone имеет маленький working set, поэтому меряет память Пример как working-set влияет на результат: Random 4K write на Adaptec RAID 71605 (12 SSD) при различном working set: Working set Random 4K write 512 MB 100’000 IOPS 2048 MB 3’000 IOPS
  11. 11. Кстати, о RAID - контроллерах Model Seq. write LSI MegaRAID 2008M-8i 298 MB/s MegaRAID 9271CV-8i 834 MB/s Производительность одного диска: Model Seq. write LSI MegaRAID 2008M-8i 118 MB/s MegaRAID 9271CV-8i 134 MB/s RAID-контроллеры иногда показывают удивительные вещи, если нагружать все диски параллельно (Sum Total Throughput across all 6 devices:)
  12. 12. Не пренебрегайте статистикой • Отведите не меньше минуты на проведение теста • Лучше – дольше • Проводите один тест несколько раз, чтобы сгладить отклонения • Делайте паузу между тестами
  13. 13. Убедитесь, что сравнение честное Всегда сравнивать только «Яблоки с Яблоками»: • Одинаковое железо • Одинаковая нагрузка • Одинаковый уровень отказоустойчивости
  14. 14. Тестируем Sync() • Write() и Read() – это не все операции над блочным хранилищем • Необходимо тестировать sync() • Операции sync() и fdatasync() требуют записи данных из кешей на диск User application write(),read(),… Kernel buffer RAID cache disk cache disk File: 101110 011001 101100 User Kernel HW Kernel
  15. 15. Масштабируемость Sync()/flush Тип Входящих дисков Кол-во Sync() / сек 1 disk 1 RAID 1 N RAID 0 N RAID 10 N RAID 5/6 N Во сколько раз массив из дисков способен сделать больше операций sync()/flush по сравнению с одним диском? Данные должны быть сброшены на каждом диске! Скорость одного диска Скорость одного диска Скорость одного диска Скорость одного диска Скорость одного диска
  16. 16. Sync() в распределенной системе File: 101110 011001 101100 Kernel HW
  17. 17. Результат тестирования *Parallels Cloud Storage 6.0: pstorage-5.0.1-440 ; OnApp Cloud 3.0: onapp-store-install-3.0.0-24, onapp-cp-install-3.0.0-20 Cluster: 7 nodes, 14 HDD, 1 Gbit
  18. 18. Как тестируем? IO workloads: • Sequential read of 16MB block • Sequential write of 16MB block • Random read of 4KB block • Random write of 4KB block + sync • Random write of 32x 4KB block + sync Масштабируемость: • 1, 10, 21 физических серверов в кластере • 1, 4, 16 IO workloads на каждом сервере
  19. 19. At_io_iops at_io_iops --read --rand -s 4K --iops -p 4 -t 60 -u 16G -S -f /pstorage/<cluster_name>/<benchmark_dir> • Умеет покрывать все необходимые сценарии • Правильно подготавливает данные для теста • Удобная настройка working set, потоков, нагружаемых файлов • Умеет тестирвать sync • Умеет aio/dio, cached/uncached • Через опцию “-vvv” пишет все вызовы
  20. 20. Результаты: Read Performance HW: Core i5 2400, 16 GB RAM, HDD 2x2TB SATA, Intel 82574L 1Gbit, Cisco Catalyst 2960
  21. 21. Результаты: Write Performance HW: Core i5 2400, 16 GB RAM, HDD 2x2TB SATA, Intel 82574L 1Gbit, Cisco Catalyst 2960
  22. 22. Раздатка Скачать методологию: Скачать at_io_iops: http://goo.gl/aWAiVZhttp://goo.gl/dIuxLI
  23. 23. Консистентность
  24. 24. Консистентность • Строгая консистентность (англ. strict consistency) гарантировано возвращает значение, записанное самой последней операцией "запись” Примеры: Parallels Cloud Storage, Lustre, … • Консистентность в конечном счете (англ. eventual consistency) гарантирует, что, в отсутствии изменений данных, в конечном счете все запросы будут возвращать последнее обновленное значение. Примеры: DNS, Amazon S3, …
  25. 25. Как проверять консистентность? Решение: • Записать данные и прочитать их Проблемы: • Кеши • Распределенность системы • Консистентность системы связана с её устойчивостью к сбоям
  26. 26. Чем проверять консистентность? Утилита «hw_flush_check» Принцип работы: 1. Клиент записывает данные и посылает Sync() (сбрасывает на диск) 2. По окончанию Sync(), посылает отчет аудитору 3. Моделируем отключение питания 4. Когда система запустится то клиент проверит сохранились ли данные disk Клиент Аудитор
  27. 27. Раздатка Скачать hw_flush_check: http://goo.gl/dIuxLI
  28. 28. Как железо влияет на системы хранения?
  29. 29. Консистентность данных на SSD Тот же подход применим к тестированию железа: SSD, RAID-контролеров, SAN Ищите в спецификации к SSD: • Intel: Enhanced Power Loss Data Protection • Samsung: Cache Power Protection • Kingston: Power-Failure Support • OCZ: Complete Power Fail Protection SSD не теряющие данные имеют конденсаторы
  30. 30. Консистентность. Выводы • SW и HW необходимо тестировать на сохранность данных • Используем для этого утилиту hw_flush_check • Не используем SSD для ноутбуков в серверах • Покупаем SSD с Power Loss Protection • Покупаем SSD с большим сроком службы (durability)
  31. 31. Наработка на отказ The mean time to data loss (MTTDL) — среднее время наработки до потери данных: MTTDL ~= 1 / T^2 T – время восстановления Вывод: Чем быстрее система восстанавливает данные, тем выше наработка на отказ Наработка на отказ связана со скоростью восстановления данных
  32. 32. Как проверить? Сценарий: 1. Записать значительный объем данных 2. Отключить компонент 3. Замерить время до полного восстановления данных Результат: Сильно зависит от архитектуры
  33. 33. Время восстановления RAID Тип Чтение с рабочих дисков Запись на новый диск RAID 0 n/a n/a RAID 1 1 Скорость 1 диска RAID 5/6 со всех Скорость 1 диска RAID 10 1 Скорость 1 диска Если на диски идёт нагрузка, то время будет значительно больше
  34. 34. Сравнение скорости восстановления HW: Core i5 2400, 16 GB RAM, HDD 2x2TB SATA, Intel 82574L 1Gbit, Cisco Catalyst 2960
  35. 35. Попробовать Parallels Cloud Storage http://goo.gl/kdXxLF Parallels Cloud Storage в PCS: http://sp.parallels.com/products/pcs/ Parallels Cloud Storage для OpenVZ: http://openvz.org/Parallels_Cloud_Storage http://goo.gl/4MXwRa
  36. 36. Q&A Киров Александр Parallels® akirov@parallels.com +7-495-783-29-77 (76244)
  37. 37. Appendix
  38. 38. CEPH
  39. 39. Традиционные системы хранения Резервируют всё на HW уровне: • Дублированное питание • Двойные «мозги» • Дублированное подключение • Централизованная система принятия решений
  40. 40. Распределенные системы хранения Резервируют всё на SW уровне: • HW априори никогда не надежно • Резервирование на уровне SW • Готова к отказу любого компонента • Не требует необычного железа • Распределенная система принятия решений

×