Демо VAAI шаг за шагом: на 58% быстрее

Если передавать пакетные данные внутри СХД через сервер, это все равно, что ехать на фуре из Троицка в Одинцово  через Москву, хотя по прямой — рукой подать.

Так что выгрузка избыточных серверных операций на уровень СХД – обычная практика, но так близко к уровню приложений эти техники еще не приближались.

При помощи VAAI СХД научились согласовывать операции по переносу данных непосредственно с гипервизором. И это явление не может меня не радовать.

VAAI – это протокол VMware  (vStorage APIs for Array Integration) созданный специально для оптимизации операций с дисковой подсистемой, и разгрузки серверных ресурсов от избыточной нагрузки по передаче данных. В самом деле, есть ряд операций, в которых ESX сервер явно является лишним звеном. Это клонирование и миграция виртуальных машин, а так же инициализация VMFS DataStore.

Все эти операции связаны с передачей потенциально больших объемов данных, и в тоже время могут быть осуществлены непосредственно на уровне СХД. Их выгрузка на уровень СХД позволит выполнить их а) быстрее и б) без нагрузки на процессоры сервера.

В итоге, администратор VMware получает ускорение работы, которое экономит ему время, а для конечных пользователей обеспечивает более быстрое время развертывания новых приложений.

Маркетинг заявляет, что ускорение происходит благодаря разгрузке каналов между СХД и сервером, и разгрузки процессорных ресурсов. Меня это как-то всегда интуитивно слабо убеждало, потому, что сказываться это должно либо

А) при очень слабых каналах между сервером и СХД, либо б) при очень слабых процессорах сервера.

И то, и другое – сравнительная редкость и экзотика. Поэтому, говорить о том, как хорошо стало жить заказчикам и администратором с изобретением и распространением VAAI получалось как-то не очень убедительно. Что называется, «без внутреннего огня».

И вот, наконец, дошли руки до того, чтобы взять и посмотреть самому что там и как.

Небольшой экскурс в теорию

VAAI состоит из следующих основных уровней:

Bulk Zero, для быстрой инициализации новых датасторов.

Bulk Copy, для быстрого клонирования виртуальных машин и их перемещения между датасторами

Advanced Locking оптимизации блокировок VMFS, которые теперь могут выполняться не на уровне датасторов, а на уровне отдлельных блоков.

Тестирование Locking механизмов я здесь не делал, но есть желание тоже попробовать и измерить разницу.

А в приведенном примере я хочу показать, как работает на VNX пакетное копирование, и сравнить два подхода – с включенным VAAI и выключенным.

Включение/выключение делается в разделе Advanced Settings ESX сервера – вкладка которая за это отвечает – DataMover.

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

Надо сказать, что для того чтобы получить этот результат на vSphere 5.0 пришлось немного помучаться. Дело в том, что VMware в пятой версии гипервизора написала свои драйвера, которые раньше поставлялись каждым производителем СХД в отдельности. В результате, VAAI не работает во время Storage vMotion для СХД нескольких производителей, включая VNX. Я с этим разобрался, найдя соответствующую статью в интернете, и ссылку на кейс в базе знаний. В vSphere 5.1 проблему обещали исправить.

При этом заявлялось, что при клонировании VAAI XCopy (Bulk Copy) работает исправно, в чем я вскоре и убедился.

Для целей тестирования я создал на моем тестовом датасторе (4 диска 300ГБ 10к в RAID5(3+1 ) ) виртуальную машину размером 100ГБ. Виртуальную машину я сделал с полной инициализаицей хранения, потому что хочу делать полное копирование всего логического объема данных.

Теперь запускаем клонирование виртуальной машины в рамках того же датастора.

По журналу видим, что операция заняла «от и до» 17 минут 3 секунды, или 1023 секунды.

А теперь – включаем VAAI и смотрим что происходит:

По журналу видно, что теперь время уменьшилось до 10 минут 55 секунд, или 655 секунд, что примерно на 36% быстрее, чем без акселератора. Случилось небольшое чудо 🙂

Если взглянуть на уровень VNX, через Unisphere Analyzer, мы увидим, как это выглядело с точки зрения СХД.

На этом скриншоте показана Front End нагрузка на контроллеры VNX, передающие данные между дисками и серверами. Видно, что передача данных происходила только в первом случае, когда VAAI был выключен. Суммарная скорость передачи данных составляла около 200 МБ/сек.

Второй скриншот показывает, что передача данных в первом случае напополам состояла из чтения и записи — 100 МБ/сек на чтение и 100 МБ/сек на запись. Во втором случае – передачи данных через Front-End порты не было. Но виртуальная машина была склонированаа, мы в этом убедились ранее. Давайте докопаемся на каком уровне это произошло.

На уровне LUN-а – видим ту же картину, что и на уровне Front-End. Т.е. во время клонирования с включенным VAAI на луне не происходит никаких операций. Связано это с тем, что LUN – это тоже Front-End.

И только опустившись при помощи Unisphere Analyzer-а на уровень RAID Group и отдельных дисков, мы, наконец, можем увидеть, где происходило копирование данных. Любопытно заметить, что копирование, запущенное через протокол VAAI было более быстрым даже на уровне жестких дисков.

В первом случае данные читались со скоростью 25МБ/сек с диска, и писались со скоростью 34МБ/сек

Во втором случае данные читались со скоростью 40МБ/сек с диска, и писались со скоростью 53 МБ/сек

То есть, на уровне дисков средняя скорость копирования была больше примерно на 58%.

Это полностью объясняет выигрыш, полученный во времени копирования.

В самом деле:

В первом случае 100ГБ/25МБ/сек/4диска=1024 секунды

Во втором случае 100ГБ/40МБ/сек/4диска=640 секунд

Оставшиеся несколько секунд разницы, я думаю «набегают» за счет погрешности измерения скорости.

И снижение загрузки процессора и каналов здесь не играет сколь либо заметной роли.

Для меня это оказалось маленьким, но приятным открытием, потому, что я думал, что выигрыш VAAI дает только за счет разгрузки серверных ресурсов.

Увеличение скорости работы дисков может быть связано это с тем, что размер блока, который использует VAAI для пакетного копирования данных более эффективен, чем стандартный размер блока VMware. Это надо проверить отдельно, или посмотреть документацию, когда дойдут руки.

Результат испытания:  при прочих равных условиях, VAAI протокол дает увеличение скорости клонирования примерно на 58%, и позволяет сократить время выполнения операций на 36%.

Стоит напомнить, что это ускорение достигалось без узких мест на процессоре и каналах соединяющих сервер и СХД. Если бы такие узкие места возникали — получаемое ускорение было бы в разы выше.

Такое вот интересный эксперимент 🙂

P.S. Если кому интересно – я могу посмотреть в архиве производительности какой был размер блока во время VAAI клонирования. А может подскажет кто?

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s