Все для Joomla. Беспланые шаблоны и расширения.

Тестирование производительности системы хранения данных

Часть 1. Дисковая подсистема

 

В современных информационных инфраструктурах типа "облаков" или крупных вычислительных кластеров значительное влияние на общую производительность и качество работы оказывает подсистема хранения данных. В отличие от вычислительной мощности и объемов памяти, наращиваемых путем добавления серверов в инфраструктуру - хранилище значительно сложнее поддается масштабированию, что заставляет особенно тщательно подходить к подбору его конфигурации.

 

Массирование применение технологий виртуализации и широкое распространение SSD-носителей создали одновременно и новые потребности и новые возможности в области построения систем хранения данных. Как следствие - в последнее время появился ряд новых способов организации системы хранения данных, в которых активно применяются нетривиальные подходы, такие как многоуровневое кэширование, гетерогенные носители, виртуализация системы хранения. Их поведение под разной нагрузкой не всегда прогнозируемо и оценка эффективности прменения того или иного решения требует расширенного тестирования.

Архитектура систем хранения

Традиционные системы хранения

DAS (direct attached storage) - хранилище с прямым подключением. Обычно представляет из себя RAID-контроллер к которому подключаются корзины с дисками. Корзины могут быть как встроенными непосредственно в сервер, так и в дополнительное шасси со своим источником питания.

SAN (storage area network) - сеть хранения данных (СХД). Это один или несколько дисковых массивов с собственными RAID-контроллерами (зачастую дублированными) и дополнительными дисковыми полками, объединенных с помощью сетевого оборудования. Наиболее распространены специализированные оптоволоконные сети с протоколом FC и сети на базе Ethernet c протоколом iSCSI. В небольших СХД возможно использование протокола SAS. Доступ к СХД со стороны серверов осуществляется посредством специальных адаптеров (HBA - host bus adapter). HBA не является RAID-контроллером. В случае использования протокола iSCSI роль HBA может выполнять обычная сетевая карта.

NAS (network attached storage) - хранилище, подключаемое по сети. Фактически - это файл-сервер, интегрированный с DAS или SAN.

 

 

Системы хранения, основанные на трансляции адресов

NetApp  ZFS 

В стремлении избежать недостатков, присущих традиционным RAID-алгоритмам, в компании NetApp изобрели WAFL (Write Anywhere File Layout) - систему рзмещения данных по дискам, объединяющую функции файловой системы, менеджера томов и механизма защиты данных с помощью контрольных сумм. Аналогичную технологию предложила фирма Sun позднее поглощенная Oracle в своей файловой системе ZFS.

Помимо избавления от проблем с производительности при случайном доступе на запись эти технологии позволяют

 

Виртуализаторы (IBM SAN Volume Controller, quadstor) - это программные (или программно-аппаратные) надстройки над существующими системами хранения.  Основная возможность - представление множества устройств хранения как единого виртуального хранилища, которое возможно более гибко распределять между потребителями. Поскольку в основе работы виртуализаторов в той или иной степени лежит механизм трансляции адресов - эта технология позволяетвыполнять дедупликацию данных.

С массированным применением технологий виртуализации для десктопной информаструктуры (VDI - virtual desktop infrastructure) к системам хранения данных появилось новое требование - эффективно поддерживать большие количества слаборазличающихся наборов данных (образы виртуальных машин в основном являются многочисленными копиями операционной системы). 

SSD

Кластерные системы

Для высокопроизводительный вычислительных систем и систем, ориентированных на обработку транзакций более важной характеристикой производительности является латентность, т.е.время ожидания реакции на запрос. Предыдущие способы организации СХД используют хорошо масштабируемые, но относительно медленные интерфейсы между приложением, потребляющим данные и собственно дисками. Для специализированных кластерных СХД характерно использование дисковых массивов на основе SSD, прямое подключение массивов к вычислительным узлам с помощью стандартных HBA или HBA, обеспечивающих связность самого кластера (например Infiniband) и использование специализированных файловых систем для объединения емкости нескольких массивов в единое пространство.

 

Общепринятые методики тестирования.

В области тестирования ханилищ данных отраслевым, всем признанным стандартом является бенчмарк SPC (Storage Performance Council), в частности SPC-1, который оценивает производительность системы в IOPS - количестве операций ввода-вывода в секунду. Результаты независимых тестов оборудования различных производителей регулярно публикуются на сайте SPC http://www.storageperformance.org/results/benchmark_results_spc1. К сожалению инструментарий для проведения тестов SPC доступен только членам данной организации, что делает практически невозможным повторение теста или оценку влияния на производительность системы конфигурации СХД или других элементов инфраструктуры. 

Поскольку производительность сильно зависит как от конкретной конфигурвции, так и от характера нагрузки - существует потребность в тестах, которые может запустить конечный пользователь. Одним из таких средств тестирования производительности является утилита IOMeter, первоначально разработанная Intel, а затем переданная open source-сообществу. Подробно работа с IOMeter описана, например, на http://itband.ru/2010/01/iometer

IOMeter является синтетическим тестом, позволяющим гибко варьировать профиль создаваемой нагрузки: можно менять размер блоков ввода-вывода, характер доступа (случайный или последовательный), количество параллельных операций, а также комбинировать различные профили, имитируя нагрузку, хараткерную для реальных приложений. Возможно проведение распределенного тестирования, когда нагрузка генерируется сразу несколькими машинами, что позволяет приблизить условия теста к реальному информационному пространству.

В поставку IOMeter входят типовые вырожденные тесты, например 

- случайное чтение блоков по 4 Кб
- последовательное чтение  блоков по 4 Кб
- случайная запись блоков по 4 Кб
- последовательная запись блоков по 4 Кб

Также доступны (например на сайте http://docs.aboutnetapp.ru/iometer2.icf) тестовые паттерны Intel и StorageReview, предназначенные для создания нагрузки, характерной для некоторых реальных применений.

- NFS-сервер
- сервер БД
- web-сервер

 

Результаты тестирования большого количества оборудования c помощью IOMeter и данных паттернов, опубликованы в сети (http://www.fcenter.ru/hwbase/?). Причем тестируются как  отдельные накопители, так и дисковые массивы. Тестирование с помощью IOMeter часто используют при написании обзоров нового оборудования (например http://www.storagereview.com/synology_ds1512_nas_review )

тестируемые системы

 

 В нашем распоряжении оказались

1) одиночный диск SATA

2) одиночный диск SAS 10000rpm 300Gb

3) одиночный диск SSD 30Gb

4) дисковый массив RAID0 из трех дисков SAS 15000rpm созданный средствами контроллера, интегрированного в материнскую плату

5) дисковый массив SAN архитектуры FC-SAS (диски подключаются к хранилищу по SAS, хранилище подключается к хосту по FC) Sun 2540 c 5 SAS-дисками, объединенными в RAID5

6) дисковый массив SAN архитектуры FC-SATA (диски подключаются к хранилищу по SATA, хранилище подключается к хосту по FC) IBM 3400 c 10 SATA-дисками, объединенными в RAID6

7) сетевое хранилище NAS Synology c 5 SATA-дисками, объединенными в RAID5

 

методика тестирования

а что же мы на самом деле тестируем? связку сеть-ОС-файловая система - аппаратура хранилища

IOMeter позволяет работать с диском либо напрямую, как с блочным устройством, либо производя ввод-вывод в файл iobw.tst, размещаемый поверх файловой системы.

Первый режим более актуален для тестирования собственно дисковых устройств, поскольку операции ввода-вывода проходят минимальное количество промежуточных подсистем (кешей, планировщиков ввода-вывода итд). С помощью второго -

 

Команда сброса кеша на клиенте

while [ a = a ]; do echo 1 > /proc/sys/vm/drop_caches ;sleep 5; done

 

А  что нас на самом деле интересует? производительность в пакетном режиме и комфорт в интерактивном

 

 

исследование профилей нагрузки 

Новая таблица - IOMeter 1.1.0 rc 1

 Диск  10GB 4krr 4krw 4ksr 4ksw  nfs db web

 SATA

 

   86-99  170-186  22905 (93) - 25376 (107)  14232 (58) - 19192 (78) 95-97  104-108  90-93

 SAS

 

               

 SSD

 

  26404-27262 26679-28761  28625-29298 26754-28368  25631-27161 27668-27986 26244-26466

 77.5

 

               

 77.5  nfs

 

  718-25891 1141-1107 23492 (96) - 28763 (117)  138--209 1228-2196  1153-2962 1829-9454

 70.6

 

  478-483 571-565 35482 (145) - 35842 (146)  22376 (91) - 19939 (81)  356-441 427-440 399-392

 70.6 nfs

 

  27114 (111) - 27753 (113)  422-351 20001 (82) - 28787 (117) 90-90 850-697 643-652  998-930
                 

 77.6

 

  113-741(300)  1732-2073 13060 (53) - 13162 (54) 17371 (71) - 17683 () 109-298 116-246 104-378

 77.6 nfs

 

  270-268 171-188 23114 (94) - 20033 (82) 693-704 190-181 166-133 141-151

 zfs over R5

 

   404-420 296-288 23303 (95) - 25947 (106)  269-310 292-264 276-303  317-371

 zfs over RZ

 

55m/s              
                 
 77.5nfs drc   97-98 1826-3464 1225-1223 1050-1229 89-89 107-107  83
 77.6nfs drc      10837          
 70.6nfs drc                
 zfs over R5 nfs drc   191-165 2377-2435 3181-3091 1078-1090 154-169 184-181  164-134
                 
                 
                 

 

 

 

 

 Старая таблица

 

 Диск  Создание 10Gb файла
для IOmeter, MB/sec
NFS server pattern
IOPS
Database pattern
IOPS
WEB server pattern
IOPS
4Kb random read
IOPS
 4Kb random write
IOPS
 4kb sequential read
IOPS
4kb sequential write
IOPS
 Одиночный SAS 10000rpm 300Gb   - прямой доступ 317 =218 211-213 =229 234-235 187-188 2619-3187 =165
 Одиночный SATA                            - прямой доступ  62 88-89 97-107  93  94-96 =157    

 Одиночный SSD  (старый)

 - прямой доступ (win)

 55  291-300  195-198  2000-2002  2397-2403  83-97  13092-13114  =12412
 Одиночный SSD  (старый) - прямой доступ (lin)  32  213-430  146-308  1240-1407  1620-1636
2548-
 56-71  2379-3459
25164-
 4734-6396
 Аппаратный RAID0 из 3х SAS          - прямой доступ 129 2123-2158  1434-1441 8991-8731 10076-10139 542-578 10706-11007 9622-9720
 Аппаратный RAID0 из 3х SAS          - NFS доступ 70 897-902 537-538 4442-4492  8628-8812  186-187 8545-8584 =187 ???
 Аппаратный* RAID5 из 5x SAS         - прямой доступ 78 558-600 407-601 544-609 424-523 ???  683-698  42628-42722  22667-23321
 Аппаратный* RAID5 из 5х SAS         - NFS доступ 31  257-278 189-200 612-765 4592-5240 =75 8855-8910 121-125 ???
 Аппаратный* RAID6 из 10х SATA      - прямой доступ 140              
 Аппаратный* RAID6 из 10х SATA      - NFS доступ 32  185-244  203  206 556  229    
 Аппаратный RAID6 из 10х SATA       - прямой доступ   278-280  231-239  349-362 =132 ??? 744-753  13621-18745  17254-17703
 Аппаратный RAID6 из 10х SATA       - NFS доступ 32 242-259  176-196  286-320  517-2611(5500) 186-191 5097-5866 665-674
 Synology RAID5 из 5x SATA (async)  - NFS доступ 83 294-298 275-288 284-291 352-505 972-975  5086-5468 5258-5274
 Synology RAID5 из 5x SATA (sync)    - NFS доступ  79 153-155 =134 269-271 460-558 73-79  5587

96-99