AHV Turbo mode

Наш сотрудник, Josh Odgers, ведущий свой блог тут: http://www.joshodgers.com, недавно опубликовал интересное описание того, как работает AHV Turbo, особый режим работы ввода-вывода, сокращающий путь от UVM (User VM) к CVM (Controller VM) и непосредственно к «железу» через гипервизор.
Как вы уже знаете, CVM у нас находится в User Space гипервизора, и, в отличие от схемы ввод-вывода, например, VSAN, где он осуществляется в Kernel Space. И VMware это все еще позиционирует как большое преимущество, мотивируя это тем, что, дескать, работа в kernel-space более эффективна и более производительна. С одной стороны это так, конечно. С другой, как показывает Nutanix, разница в производительности в данном случае не так значительна, а, между тем, работа в user-space имеет множество преимуществ с точки зрения защищенности и изолированности, безопасности, простоты обновлений и гипервизоро-независимости. Хорошо спроектированная архитектура для user-space практически нивелирует преимущества в производительности для kernel-space, и при этом у нас еще не закончились фичи, позволяющие нам оптимизировать и улучшать процесс ввода-вывода, в особенности если ниже, под CVM и пользовательскими VM лежит наш собственный гипервизор.
Вот, например, как работает режим AHV Turbo, появившийся в новых версиях AHV, и предназначенный, в первую очередь, для оптимизации работы с новыми устройствами хранения, такими как NVMe и 3D Xpoint. В нем Nutanix сократил и спрямил Data IO path между пользовательской VM и «железом» серверной платформы.

На рисунке ниже показывается, как ввод-вывод пользовательской VM (UVM) проходит через подсистему Frodo (служебное имя для Turbo Mode) которая работает в User Space (не в kernel) и затем идет в Stargate (подсистема ввода-вывода) в Controller VM).

Еще одним преимуществом AHV и Turbo mode является то, что администратору не требуется конфигурировать множество адаптеров PVSCSI и распределять виртуальные диски по контроллерам. При добавлении виртуального диска в VM под AHV, многопоточная и много-очередная архитектура используется автоматически, что повышает производительность ввода-вывода как на запись, так и на чтение.
Много-очередной поток ввода-вывода обслуживается с помощью множественных тредов модуля frodo (Turbo mode) и проходит через stargate.

Как показано на рисунке выше, Nutanix с Turbo mode устраняет узкие места, характерные для традиционных гипервизоров, например — причину, по которой VMFS datastore требуется использовать VAAI Atomic Test and Set (ATS) для устранения проблем с большим количеством VM на датасторе (например более 25). Напомню, в классическом VMFS существует ряд операций, которые блокируют датастор целиком, например это любые изменения в метаданных датастора, вызываемые, например, созданием или включением VM, созданием ее снэпшота, запуск Storage vMotion, и так далее. В случае таких операций, без использования VAAI ATS, будет на определенное время, при выполнении этих операций, блокирован ввод-вывод на датастор целиком, для ВСЕХ VM на нем находящихся. Это не слишком страшно, если у вас всего несколько VM на датасторе, и является существенной проблемой когда этих VM на датасторе много, не только потому, что это «тормозит» гораздо больше приложений, но и потому, что при большом количестве VM операции, связанные с блокировкой VMFS, возникают чаще. В случае AHV при использовании Turbo mode, не только каждый vdisk будет иметь свою собственную очередь команд (вместо одной на датастор или контейнер в «классике») но также добавляется и очередь per-vcpu на уровне виртуальных контроллеров.

Вот какие результаты работы AHV Turbo приводит у себя в блоге Джош:

На четырехнодовом блоке четырехлетней давности NX-3450, стоящей в лабе, с двумя SATA SSD на ноду и с отключенным memory read cache, результаты от включения AHV Turbo:
На 25% ниже загрузка CPU на задаче sequential write, при том, что значение производительности практически не изменилось (2929 MBps vs 2964 MBps)
На 27.5% выше sequential read performance (9512 MBps vs 7207 MBps)
На 62.52% увеличилась производительность random read IOPS (510 121 vs 261 265)
На 33.75% увеличилась производительность random write IOPS (336 326 vs 239 193)

И еще из интересного оттуда же. У нас есть клиент, у которого эксплуатируется под Acropolis Hypervisor 1750 нод!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *