VMware показала весьма интересный документ: Achieving a Million I/O Operations per Second from a Single VMware vSphere 5.0 Host. В данном документе приводятся результаты различных тестов, из которых видно, что один хост с vSphere 5.0 может генерировать свыше одного миллиона IOps. Документ построен таким образом, что сначала нам приводятся результаты Multi-VM теста (тест, когда на одном хосте ESXi 5.0 запущены 6 виртуальных машин, и они все одновременно генерируют к хранилищу IOps), а затем результаты Single-VM теста (когда только одна виртуальная машина на хосте ESXi 5.0 генерирует IOps к хранилищу). Чуть ниже я привел основные моменты, касающиеся данных тестов.
Чтобы вы долго не искали конечные результаты ниже приведенных тестов, приведу их здесь:
Для того, чтобы попробовать сгенерировать миллион IOps, нужно создать, прям скажем, очень и очень хороший испытательный стенд. Что и было сделано.
Для эксперимента был задействован один физический сервер под управлением VMware vSphere 5. На данном хосте было создано шесть идентичных виртуальных машин. Также на этом хосте было установлено 6 двухпортовых 8Gbps FC HBA. Все 12 FC портов этих адаптеров были подключены к FC свичу. VMAX был подключен к одному FC свичу через 60 8Gbps FC линков, при этом каждый линк подключен к отдельному FC порту на массиве.
В общей сложности в массиве было создано 480 RIAD-1 групп с использованием 960 FC дисков. В каждой RAID группе был создан один LUN. Затем был создан 250 GB metaLUN из 8 обычных LUN. В общей сложности получилось 60 metaLUN, которые тут же были презентованы хосту vSphere 5. На каждом metaLUN создано VMFS хранилище. Для достижения максимальной производительности, для каждого VMFS хранилища был настроен фиксированный путь (fixed path) через выделенный FC порт на массиве.
На каждом VMFS-датасторе был создан толстый диск. Виртуальные диски были распределены по виртуальным машинам следующим образом:
Переходя к тесту, на шести виртуальных машинах был запущен IOmeter (размер блока 8Kb) для генерирования нагрузки. И вот, что получилось:
Как видно из диаграммы выше, когда все шесть машин одновременно генерируют I/O нагрузку, то общее количество операций I/O в секунду, направленное от хоста VMware vSphere 5.0 к массиву, составляет чуть более миллиона. Причем значение "Latency" на протяжении всего теста меняется совсем незначительно (не более 10%). Далее тест повторяется, только на этот раз с различным размером блока, установленным в IOmeter, и для различных SCSI контроллеров:
Как видно, PVSCSI выигрывает по всем параметрам. Причем PVSCSI контроллер создает меньшую нагрузку на CPU:
PVSCSI контроллер обеспечивает на 8% лучшую пропускную способность, при этом используя на 10% меньше процессорного ресурса. Эти результаты явно показывают, что использование PVSCSI контроллера дает лучшую производительность по сравнению с LSI Logic SAS контроллером.
Теперь настало время протестировать, какое количество IOps сможет сгенерировать только одна виртуальная машина, расположенная на хосте VMware vSphere 5.0. Для этого немного меняем наш экспериментальный стенд.
Server
Storage Area Network
Virtual Platform
Virtual Machines
На сервере vSphere 5.0 была создана одна виртуальная машина с 4 vCPU и 16GB памяти. IOmeter был настроен для использования, в общей сложности, 40 виртуальных дисков. Все 40 виртуальных дисков были назначены на одну тестовую ВМ. vSphere 5 поддерживает до 4 PVSCSI контроллеров на одну ВМ. Поэтому на каждый PVSCSI контроллер пришлось по 10 дисков. На хосте vSphere 5.0 для соединения с массивом было установлено 4 двухпортовых HBA.
Как и в предыдущих тестах, для генерирования нагрузки использовался IOmeter:
Из диаграммы, приведенной выше, видно, что количество IOps линейно возрастает с увеличением количества виртуальных SCSI контроллеров. При этом "I/O Latency", после увеличения количества контроллеров с одного до двух, практически не меняется. Основываясь на результате этого теста, можно сделать вывод, что одна виртуальная машина с четырьмя (4) PVSCSI контроллерами может генерировать до 300,000 тысяч IOps.