Настраиваем виртуальные машины правильно

21 ноября 2018, 16:02
Настраиваем виртуальные машины правильно

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

Предварительное планирование

Среди подготовительных мер, которые мы рекомендуем выполнить, особое внимание следует уделить сайзингу — размеру будущей инфраструктуры. В облачной инфраструктуре не всегда работает правило «больше, значит лучше», ресурсы необходимо выделять, проанализировав данные мониторинга. Полученные сведения позволят определить объем ресурсов, которые потребуются для будущих виртуальных машин в облаке провайдера.

Перенос приложений из локальной инфраструктуры в облачную требует обязательного контроля корректности работы программного обеспечения. Работа приложения внутри виртуальной машины может отличатся от локальной, прежде чем его запускать его в «продакшен» необходимо выполнить тестирование. Следующая методика позволит оценить корректность работы:

  • Необходимо запустить ВМ на одном из серверов ESXi и зарезервировать на нем ресурсы процессора и памяти.
  • Провести тестирование производительности и стабильности работы приложения.
  • Результаты теста занести в baseline. Результаты должны содержать информацию о работе приложения на архитектуре виртуальной среды в отсутствии рабочей нагрузки на хосте. 
  • После сбора статистики хост нагружается — на нем запускаются дополнительные виртуальные машины, за каждой из которых также закреплены выделенные ресурсы процессора и памяти.
  • Запускается новый тест производительности, а результаты сравниваются с записями в baseline.
  • Анализируя полученные данные важно понять, остается ли производительность ВМ на уровне, достаточном для функционирования сервисов. Если это так, то можно добавлять еще нагрузки, отслеживать распределение ресурсов и выяснить предельную нагрузку для данного хоста.

Данная методика позволит грамотно рассчитать нагрузку на хост арендуемой виртуальной инфраструктур и не допустить падения производительности приложений в рабочем режиме.  

Особенности правильной настройки виртуальных машин

Большинство облачных провайдеров используют платформу VMware для предоставления услуги виртуальной инфраструктуры IaaS. Настраивая виртуальные машины в этой среде, важно обратить внимание на число виртуальных процессоров. Рекомендуем не использовать больше 8 vCPU. Ограничения обусловлены использованием архитектуры неравномерного доступа к памяти — NUMA. Если виртуальной машине назначено больше ядер и оперативной памяти, чем физически приходится на один процессор, она начнет обращение к другому процессору, это процесс медленный и снижает производительность ВМ. В NUMA-архитектуре для каждого процессора выделяется собственная локальная память, совокупность CPU и RAM объединяется в NUMA-узел. Если ВМ не хватает ресурсов своего узла, она обращается к памяти другого, скорость такой транзакции медленнее чем при работе с локальной RAM. Идеально, когда виртуальная машина работает с одним физическим NUMA-узлом. Используя параметр cores per socket можно определить варианты отображения нескольких виртуальны процессоров внутри одной ВМ — один CPU с несколькими ядрами, несколько CPU с одним ядром и другие. Если ВМ будет работать на одном физическом NUMA-узле, тогда любой из вариантов cores per socket не скажется на производительности, работа конкретного приложения будет зависеть от его способности работать с многопроцессорной или многоядерной системой.

Для примера возьмем процесс переноса в облако IaaS базы данных SQL Server 2012 версии Standard. Даная база данных не может использовать больше 4 процессорных сокетов. Следовательно, для того чтобы запустить ее на виртуальной машине с 32 виртуальными процессорами или потоками, необходимо в настройках ВМ указать комбинацию 4 сокетов CPU по 8 ядер на каждом.

Как добавлять ресурсы ВМ на лету

Если в процессе работы виртуальной машины ее производительности становится недостаточно, платформа WMware позволяет добавить вычислительные ресурсы без остановки машины — на лету. Для этого необходимо воспользоваться опцией Hot Add, с помощью которой можно увеличить ресурсы процессора и объем назначенной оперативной памяти.

Однако, Hot Add для процессора (в настройках ВМ — Hot Plug) отключает vNUMA.

В результате, операционная система ВМ будет расценивать всю свободную память как доступную без разделения по узлам NUMA, что может привести к падению производительности, так как доступ к памяти другого процессора более медленный. Прежде чем включить Hot Add для процессора необходимо проанализировать как это скажется на конкретном приложении. 

Разница в подходах масштабирования Scale UP и Scale OUT

Вариант вертикального масштабирования Scale UP выбирают, как наиболее простой и понятный. Все приложения и базы данных с одного мощного локального хоста переносят на одну виртуальную машину, а в случае, когда ее ресурсов начинает не хватать, администратор добавляет еще оперативной памяти и число процессоров или ядер. Подробнее о таком подходе можно прочитать в статье Виртуальный ЦОД.

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

Настройка использования оперативной памяти

В процессе распределения оперативной памяти между виртуальными машинами следует помнить про обслуживание физического хоста. Для его нормального функционирования требуется зарезервировать несколько гигабайт RAM, который не будет задействован при создании ВМ. 

Платформа VMware позволяет выделять виртуальным машинам виртуальной оперативной памяти больше, чем ее есть физической. Например, создав на хосте, оснащенном 140Гб физической оперативной памяти 5 виртуальных машин, каждой из которых назначены по 32Гб виртуальной памяти, конфигурация будет работать. Виртуальные машины будут обращаться к свободной в данный момент RAM и считать, что она доступна в полном объеме, но в случае пиковой нагрузки производительность резко упадёт. Такой сценарий лучше не использовать. Заранее спланируйте как будет распределяться доступная физическая память между созданными виртуальными машинами. 

Заключение

Настройка виртуальных машин в облаке провайдера — это один из важных процессов миграции, от которого зависит успех переноса инфраструктуры и ее успешный запуск. Итоговый вариант конфигурации виртуальных машин будет сильно зависеть от компании и выбранной стратегии, однако, выполнение описанных рекомендаций позволит избежать ошибок, а также обеспечит максимальную производительность и эффективность переносимых приложений. 

Обсуждение