Мы уже не раз писали (тут и тут) про расширенные настройки (Advanced Settings) кластеров VMware HA в VMware vSphere (до версии 5.0 включительно). Эти настройки позволяют гибко настраивать различные параметры кластеров, их поведение, определять сетевые настройки и т.п. В этой статье мы приведем все эти настройки в единую таблицу и актуализуем для версии VMware vSphere 5.5.
Итак, ниже будут объединены все общедоступные на сегодняшний день расширенные настройки VMware HA (с учетом всего нового) для обеспечения высокой доступности сервисов в виртуальных машинах VMware vSphere 5.5 и более ранних версий. Отказоустойчивость обеспечивается двумя механизмами: средствами VMware HA на уровне хостов ESXi (на случай отказов оборудования или гипервизора) и средствами VMware VM Monitoring (зависание гостевой операционной системы).
На каждом хосте службой VMware HA устанавливается агент Fault Domain Manager (FDM), который пришел на смену агентам Legato AAM (Automated Availability Manager). В процессе настройки кластера HA один из агентов выбирается как Master, все остальные выполняют роль Slaves (мастер координирует операции по восстановлению, а в случае его отказа выбирается новый мастер). Теперь больше нет primary/secondary узлов. Одна из важных техник VMware HA - это Datastore Heartbeating, позволяющий мастер-серверу определять состояния хост-серверов VMware ESXi, изолированных от сети, но продолжающих работу с хранилищами.
Задать Advanced Options для VMware HA (иногда их называют Advanced Settings) можно, нажав правой кнопкой на кластер в vSphere Client и далее выбрав пункт "Edit Settings", где уже нужно вводить их как указано на картинке:
Если вы не знаете, как работает VMware HA, советуем начать тут.
Информация, приведенная ниже, основана на статье KB 2033250, однако много дополнено нашими комментариями и лучшими практиками. Не изменяйте Advanced Options, если точно не уверены, что вам это нужно. Документируйте изменения, чтобы потом не гадать, почему так странно ведет себя кластер HA.
Итак, VMware vSphere HA Advanced Options, которые приходится изменять чаще всего:
Версия vSphere
Название настройки
Описание настройки
Требуется ли Reconfigure for HA для хостов?
Тип опции
pre-5.0, 5.0, 5.1, 5.5
das.allowNetwork[n]
Имя management-интерфейса (например, Management network), который будет использоваться для обмена хартбитами. n – номер, который отражает в каком порядке это будет происходить. Важно! - не ошибитесь, НЕ пишите das.allowNetworkS.
Да
Кластер
pre-5.0, 5.0, 5.1, 5.5
das.ignoreRedundantNetWarning
Значение-флаг (true или false, по умолчанию false), который при установке в значение false отключает нотификацию об отсутствии избыточности в сети управления («Host xxx currently has no management network redundancy»). По умолчанию установлено в значение false.
Да
Кластер
5.0, 5.1, 5.5
das.ignoreinsufficienthbdatastore
Определяет, будет ли игнорировано сообщение о количестве имеющихся Heartbeat-хранилищ, которое меньше сконфигурированного в следующей настройке das.heartbeatdsperhost (по умолчанию - это 2 хранилища). То есть если Heartbeat-хранилище присутствует только одно - будет выведено следующее сообщение:
HA Error: The number of heartbeat datastores for host is 1, which is less than required: 2
Да
Кластер
5.0, 5.1, 5.5
das.heartbeatdsperhost
Определяет количество Heartbeat-хранилищ, которое можно регулировать данной настройкой (допустимые значения - от 2 до 5). По умолчанию, данное значение равно 2.
Да
Кластер
5.0
das.includeFTcomplianceChecks
Определяет, необходимо ли проводить проверку кластера на совместимость с Fault Tolerance во время общей проверки соответствия кластера. По умолчанию установлено значение true.
Значение в мегабайтах, используемое для механизма admission control для определения размера слота. При увеличении данного значения VMware HA резервирует больше памяти на хостах ESXi на случай сбоя. По умолчанию, значение равно 0 МБ.
Нет
Кластер
pre-5.0, 5.0, 5.1, 5.5
das.vmCpuMinMHz
Значение в мегагерцах, используемое для механизма admission control для определения размера слота. При увеличении данного значения VMware HA резервирует больше процессорных ресурсов на хостах ESXi на случай сбоя. По умолчанию, значение равно 32 МГц.
Нет
Кластер
5.0, 5.1, 5.5
das.slotCpuInMHz
Максимальный размер слота по CPU в мегагерцах, который будет использоваться для расчетов. По умолчанию предела нет.
Нет
Кластер
5.0, 5.1, 5.5
das.slotMemInMB
Максимальный размер слота по оперативной памяти в мегабайтах, который будет использоваться для расчетов. По умолчанию предела нет.
Нет
Кластер
Процесс перезапуска виртуальных машин
5.0+
das.maxvmrestartcount
Максимальное число попыток, которое предпримет Master-хост механизма FDM для запуска виртуальной машины. По умолчанию значение равно 5. Попытки будут продолжаться, пока не истечет время, заданное в настройке das.maxvmrestartperiod. Данный параметр не применим к виртуальным машинам, защищенным технологией Fault Tolerance (для них есть отдельная настройка das.maxftvmrestartcount).
Нет
Кластер
5.0+
das.maxvmrestartperiod
Максимальное время, которое может пройти до окончания попыток запуска виртуальной машины Master-хостом посредством механизма FDM. Не имеет дефолтного значения. Имеет приоритет над настройкой das.maxvmrestartcount.
Нет
Кластер
5.0+
das.maxftvmrestartcount
Аналогично настройке das.maxvmrestartcount (см. выше), однако применимо только для машин, защищенным технологией Fault Tolerance. Дефолтное значение также равно 5.
Нет
Кластер
5.0 U1+
das.maskCleanShutdownEnabled
Когда виртуальная машина выключается и ее рабочая директория становится недоступна, механизму HA нужно решить, должна ли такая виртуальная машина быть перезапущена. Если установлено значение false, FDM решает, что машину перезапускать не нужно, если же true - то машину перезапускают. По умолчанию в 5.0 U1 установлено значение false, а вот в 5.1 и более поздних версиях - уже установлено по-дефолту true.
Нет
Кластер
5.5
das.respectVmVmAntiAffinityRules
Указывает, необходимо ли соблюдать заданные правила существования машин на хостах на уровне ВМ-ВМ (anti-affinity rules) при перезагрузке виртуальных машин (true). По умолчанию установлено значение false. Важная настройка для тех, кому важно соблюдение этих правил в случае сбоев.
Нет
Кластер
Действия Isolation Response
pre-5.0, 5.0, 5.1, 5.5
das.isolationAddressX
IP-адрес, который используется для определения события изоляции хостов. По умолчанию, это шлюз (Default Gateway) сервисной консоли. Этот хост должен быть постоянно доступен. Если указано значение n, например, das.isolationaddress2, то адрес также используется на проверку события изоляции. Можно указать до десяти таких адресов (диапазон n от 1 до 10).
Нет
Кластер
pre-5.0, 5.0, 5.1, 5.5
das.useDefaultIsolationAddress
Значение-флаг (true или false, по умолчанию - true), которое говорит о том, использовать ли Default Gateway как isolation address (хост, по которому определяется событие изоляции). Параметр необходимо выставить в значение false, если вы планируете использовать несколько isolation-адресов от das.isolationaddress1 до das.isolationaddress10, чтобы исключить шлюз из хостов, по которым определяется событие изоляции.
Нет
Кластер
5.1, 5.5
das.config.fdm.isolationPolicyDelaySec
Число секунд, которое агент FDM ждет перед тем, как начать исполнять политику Isolation Response, когда он обнаружил, что хост оказался изолированным. По умолчанию равно 30 секунд, и нельзя выставить значение, меньшее этого (если поставить меньше - все равно интервал будет 30).
Нет
Кластер
pre-5.0, 5.0
das.powerOffonIsolation
Значение флаг (true или false), используемое для перекрытия настройки isolation response. Если установлено как true, то действие «Power Off» - активно, если как false - активно действие «Leave powered On». Неизвестно, работает ли в vSphere 5.0, но в более ранних версиях работало.
pre-5.0, 5.0, 5.1, 5.5
das.isolationShutdownTimeout
Значение в секундах, которое используется как таймаут перед срабатыванием насильственного выключения виртуальной машины (power off), если не сработало мягкое выключение из гостевой ОС (shutdown). В случае выставления isolation response как shutdown, VMware HA пытается выключить ее таким образом в течение 300 секунд (значение по умолчанию). Обратите внимание, что значение в секундах, а не в миллисекундах.
Нет
Кластер
Механизм Virtual machine/App Monitoring
5.0, 5.1, 5.5
das.iostatsInterval
В случае, если FDM не получает хартбитов от VMware Tools в гостевой ОС, то проверяется, не было ли операций ввода-вывода за последнее, определенное в этом параметре, время. Если не было - то выполняется политика рестарта ВМ/приложения. По умолчанию значение равно 120 секунд.
Нет
Кластер
Fault Tolerance
5.0+
das.maxFtVmsPerHost
Определяет максимальное количество ВМ, защищенных технологией Fault Tolerance на хосте. По умолчанию установлено значение 4. Если хочется убрать лимит - то нужно установить значение -1 или 0. Это условие выполняется при старте машин пользователем, миграциях vMotion, а также механизмом DRS. Не учитывается это значение механизмом HA в целях ускорения восстановления ВМ после сбоя.
Нет
Кластер
Логгирование (logging)
pre-5.0, 5.0, 5.1, 5.5
das.config.log.maxFileNum
Определяет количество лог-файлов, в пределах которого будет происходить их ротация. Значение 1 отключает ротацию. Кроме того, для версий vSphere 5.0 U1 и выше для логирования в файлы нужно сначала включить этот механизм, задав расширенную настройку das.config.log.outputToFiles в значение true.
Да
Кластер
pre-5.0, 5.0, 5.1, 5.5
das.config.log.maxFileSize
Максимальный размер лог-файла, задаваемый в байтах.
Да
Кластер
pre-5.0, 5.0, 5.1, 5.5
das.config.log.directory
Путь для хранения лог-файлов VMware HA. По умолчанию логи пишутся сюда - /var/log/vmware/fdm. При задании настроек логов следует руководствоваться следующей таблицей (подробнее читайте тут на последних страницах).
Да
Кластер
Далее приведем список Advanced Settings для механизма VMware HA, которые приходится использовать нечасто:
Версия vSphere
Название настройки
Описание настройки
Требуется ли Reconfigure for HA для хостов?
Тип опции
Конфигурация кластера VMware HA
5.0+
vpxd.das.aamMemoryLimit
Максимум оперативной памяти, который может быть использован системным пулом ресурсов для VMware HA. По умолчанию равно 100 МБ.
Да, на всех хостах
Сервер vCenter
5.0+
vpxd.das.electionWaitTimeSec
Определяет как долго сервер vCenter ждет окончания выбора нового Master при сегментации сети или сбое одного из хостов. По умолчанию используется значение 120 секунд.
Нет (для 5.1+), для 5.0 - да
Сервер vCenter
5.0+
fdm.nodeGoodness
Это значение указывается для отдельного хоста, чтобы принудительно назначить его Master-хостом со стороны сервера vCenter (хост с наибольшим Goodness назначается мастером). Не используется для кластера в целом.
Нет, будет использовано при следующих выборах механизмом FDM
Хост
5.0+
vpxd.das.sendProtectListIntervalSec
Интервал в секундах, который используется для оповещения сервером vCenter Master-хоста о том, что необходимо защитить новую ВМ. То есть, это время обновления списка защищенных ВМ. По умолчанию равно 60 секундам.
Да, нужно перезапустить vCenter Server
Сервер vCenter
5.5
fdm.cluster.vsanDatastoreLockDelay
Это время необходимое для того, чтобы хранилище типа vSAN было принято хостом Master как Heartbeat-хранилище. Это нужно для того, чтобы не было дублированных запусков одной ВМ разными хостами. По умолчанию равно 30 секундам.
Да, на всех хостах
Хост
Admission Control
5.0+
vpxd.das.slotMemMinMB
Значение, которое используется на уровне vCenter для создания дефолтного выделения памяти (memory reservation) виртуальной машине. По умолчанию не задано.
Нет
Сервер vCenter
5.0+
vpxd.das.slotCpuMinMHz
Значение, которое используется на уровне vCenter для создания дефолтного выделения ресурсов процессора (CPU reservation) виртуальной машине. По умолчанию равно 32 МГц.
Нет
Сервер vCenter
Обнаружение сбоев
5.0+
das.config.fdm.hostTimeout
Таймаут, который мастер ожидает после события неполученного хартбита от FDM-агента хоста после чего он определяет является ли хост отказавшим (dead), изолированным (isolated) или в другом сегменте разделенной сети (partitioned). По умолчанию задано значение 10 (секунд). Сами же хартбиты между мастером и slave-хостами посылаются каждую секунду.
Да, на всех хостах
Кластер
5.0+
fdm.deadIcmpPingInterval
Интервал между пингами по протоколу ICMP для определения доступности Slave-хоста ESXi в сети со стороны Master, в случае, если нет коммуникации с FDM-агентом Slave-хоста (используется, чтобы определить - сломался агент FDM или хост вышел из строя). По умолчанию задано значение 10 (секунд).
Нет (для 5.1+), для 5.0 - да
Кластер
5.0+
das.config.fdm.icmpPingTimeout
Таймаут, который хост (мастер) ожидает перед получением ответа на пинг, при неполучении которого он считает один из хостов недоступным из сети (то есть время, которое он дает для ответа на пинг, после чего начинаются операции по восстановлению ВМ). По умолчанию задано значение 5 (секунд).
Нет (для 5.1+), для 5.0 - да
Кластер
5.0+
vpxd.das.heartbeatPanicMaxTimeout
Определяет как долго хост, выпавший в PSOD, должен поддерживать файловые локи на хранилище, не позволяющие перезапустить его ВМ. По умолчанию равно 60 секунд.
Да
Сервер vCenter
Процесс перезапуска виртуальных машин
5.0+
das.config.fdm.policy.unknownStateMonitorPeriod
Время, которое проходит с момента того, как Master-хост определяет сбой ВМ, до того, как он пытается перезапустить виртуальную машину. По умолчанию равно 10 секундам.
Нет
Кластер
5.0+
das.perHostConcurrentFailoversLimit
Определяет число одновременных восстановлений виртуальных машин в случае сбоя. По умолчанию равно 32. Это значение было определено эмпирически, чтобы минимизировать общую нагрузку на системы хранения при восстановлении ВМ.
Нет
Кластер
Координация работы виртуальных машин
5.0+
das.config.fdm.ft.cleanupTimeout
Когда сервер vCenter инициирует запуск Secondary-машины, защищенной с помощью Fault Tolerance, он информирует мастера HA о том, что он начал этот процесс. Далее мастер ждет время, выставленное в этой настройке, и определяет запустилась ли эта виртуальная машина. Если не запустилась - то он самостоятельно инициирует ее повторный запуск. Такая ситуация может произойти, когда во время настройки FT вдруг вышел из строя сервер vCenter. По умолчанию задано значение 900 (секунд).
Нет
Кластер
5.0+
das.config.fdm.storageVmotionCleanupTimeout
Когда механизм Storage vMotion перемещает виртуальную машину с/на хосты ESX 4.1 или более ранней версии, может возникнуть конфликт, когда HA считает, что это не хранилище ВМ переместилось, а сама ВМ отказала. Поэтому данная настройка определяет, сколько времени мастеру нужно подождать, чтобы завершилась операция Storage vMotion, перед принятием решения о перезапуске ВМ. См. также нашу заметку тут. По умолчанию задано значение 900 (секунд).
Нет
Кластер
Отчетность и логгирование
5.0 U1+
das.config.log.outputToFiles
Включение режима логгирования в файлы. По умолчанию установлено в false.
Да
Кластер
5.0+
das.config.fdm.stateLogInterval
Частота записи состояния кластера в лог-файл. По умолчанию выставлено в 600 (секунд).
Нет (для 5.1+), для 5.0 - да
Кластер
5.0+
das.config.fdm.event.maxMasterEvents
Определяет количество событий, которые хранит мастер операций HA. По умолчанию равно 1000.
Нет (для 5.1+), для 5.0 - да
Кластер
5.0+
das.config.fdm.event.maxSlaveEvents
Определяет количество событий, которые хранят Slave-хосты HA. По умолчанию равно 600.
Нет (для 5.1+), для 5.0 - да
Кластер
5.0+
vpxd.das.reportNoMasterSec
Время, по прошествии которого, север vCenter понимает, что он не может связаться с Master-хостом кластера. По умолчанию равно 120 секундам.
Да, надо перезапустить vCenter
Сервер vCenter
Настройки VM Monitoring
5.0+
das.vmFailoverEnabled
Значение-флаг (true или false). Если установлен в значение true – механизм VMFM включен, если false – выключен. По умолчанию установлено значение false.
Нет
Кластер
5.0+
das.FailureInterval
Значение в секундах, после которого виртуальная машина считается зависшей и перезагружается, если в течение этого времени не получено хартбитов. По умолчанию установлено значение 30.
Нет
Кластер
5.0+
das.minUptime
Значение в секундах, отражающее время, которое дается на загрузку виртуальной машины и инициализацию VMware Tools для обмена хартбитами. По умолчанию установлено значение 120.
Нет
Кластер
5.0+
das.maxFailures
Максимальное число автоматических перезагрузок из-за неполучения хартбитов, допустимое за время, указанное в параметре das.maxFailureWindow. Если значение das.maxFailureWindow равно «-1», то das.maxFailures означает абсолютное число отказов или зависаний ОС, после которого автоматические перезагрузки виртуальной машины прекращаются, и отключается VMFM. По умолчанию равно 3.
Нет
Кластер
5.0+
das.maxFailureWindow
Значение, отражающее время в секундах, в течение которого рассматривается значение параметра das.maxFailures. По умолчанию равно «-1». Например, установив значение 86400, мы получим, что за сутки (86400 секунд) может произойти 3 перезапуска виртуальной машины по инициативе VMFM. Если перезагрузок будет больше, VMFM отключится. Значение параметра das.maxFailureWindow может быть также равно «-1». В этом случае время рассмотрения числа отказов для отключения VMFM – не ограничено.