Показаны сообщения с ярлыком ha. Показать все сообщения
Показаны сообщения с ярлыком ha. Показать все сообщения

четверг, 16 июня 2011 г.

HA Isolation and restart delay


Когда VMware HA обнаруживает отказавший сервер, то предпринимается несколько попыток перезапустить ВМ с проблемного сервера.

Зачем попыток несколько?

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

Но не суть.

Итак, попыток несколько. Если как Т обозначить момент фиксации сбоя, то попытки рестарта происходят по следующему расписанию:

T       – Рестарт
T+2   – Повтор 1 (через 2 минуты после предыдущего)
T+6   – Повтор 2 (через 4 минуты после предыдущего)
T+14 – Повтор 3 (через 8 минут после предыдущего)
T+22 – Повтор 4 (через 8 минут после предыдущего)
T+30 – Повтор 5 (через 8 минут после предыдущего)

т.е. через 2, 6, 14, 22 и 30 минут после момента отказа.

С одной стороны, вероятность того, что уже 2-3 попытка окажется безуспешной, а смысл продолжать пытаться будет - мне видится не очень большой.

С другой стороны, если изолированный сервер выключил свои ВМ, минуте на 15 после сбоя, то ждать 8 минут до следующей попытки рестарта может быть многовато.

С третьей стороны, сделать все равно ничего нельзя.

Однако есть информация о неподдерживаемом способе - VMware High Availability Isolation Event – Hack The Eight Minutes Delay:
  1.     Go to your ESXi host console (SSH)
  2.     And navigate to /opt/vmware/aam/ha
  3.     vi vmwaremanager.pl
  4.     Scroll down to line 37: “my $VM_RESTART_DELAY_MAX = 480; #8 min“
  5.     Change the value to whatever you want, i.e. 120
  6.     Save and quit
  7.     Restart the management agents: service mgmt-vmware restart and service vmware-vpxa restart
  8.     Tests :)




пятница, 3 июня 2011 г.

HA admission control



Последние несколько недель у меня происходило довольно много дискуссий по поводу вроде бы довольно банального VMware HA. Дело в том, что в какой-то момент я задумался над некоторыми его настройками, и нашел их менее очевидными, чем это мне казалось. И вот по этому поводу и хотелось бы немного вбросить.

Часть первая, введение

Итак, коллеги, начнем с банальностей.

Чем мы платим за высокую доступность, которую дает нам VMware HA?

Правильный ответ – ресурсами. Вернее, заначкой ресурсов на случай сбоя.

Эту заначку ресурсов мы учитываем

  1. При планировании инфраструктуры.
  2. При эксплуатации инфраструктуры.
В первом пункте это выглядит примерно так:

«Ага, нам надо будет запустить 40 ВМ по 2 ГБ ОЗУ каждая, всего 80 ГБ. Накинем еще

  • Запас на пиковые нагрузки;
  • Запас на рост на будущее;
  • Запас на случай отказа одного из серверов;
  • Запас на неправильные расчеты исходных ресурсов ВМ.
И получим (к примеру) 120 ГБ, которые и раскидаем по трем предлагаемым серверам, очевидно по 40 ГБ в каждом».



А во втором случае это выглядит примерно так:

«Ага, если нагрузка на мои сервера превысит 65%, то при отказе одного (двух\трех\...) серверов ресурсов остальных уже не хватит для всех виртуальных машин. Поимею-ка я это в виду…»

Часть вторая, контроль заначки ресурсов

Теперь, внимание, вопрос – а каким образом мы можем поиметь в виду недопустимость нагрузки на каждый из серверов выше порогового значения? Вариантов, в общем-то, два:

  1. Или сам администратор заявляет «Я не включу ни одной дополнительной виртуальной машины, пока не будет приобретен еще сервер-другой в мою вСферу». Или, как вариант, «Давайте купим еще сервер, иначе через месяц новые ВМ негде будет включать без опасения что ресурсов не хватит в случае отказа сервера».
  2. или при попытке администратора включить еще одну ВМ появится сообщение об ошибке вида как на рис. 1


Рисунок 1. Сообщение о невозможности включить ВМ из за настроенного Admission Control


Вольный перевод:
«VMware HA запрещает тебе, холоп, включать эту ВМ, ибо претендует она на мою заначку ресурсов на случай сбоя».



И какой вариант контроля выберете вы?


Давайте их обсудим.

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

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

Случай номер два, в принципе, выглядит неплохим. Мы поручаем работу по контролю нагрузки на инфраструктуру кластеру HA, и теперь система непрерывно следит «А можем ли мы себе позволить еще одну ВМ?». Однако, и вот моя самая главная претензия, способы оценки «можем\не можем» далеки от идеала, и именно этот тонкий момент мне хотелось бы проговорить.

Часть третья, настройки Admission Control

У кластера HA есть соответствующая настройка - Admission Control (рис.2).


Рисунок 2. Настройка контроля заначки ресурсов


В положении «Disable: Power on VMs…» HA не будет сам контролировать заначку. Как раз такая настройка нам подойдет, если мы этот контроль будем осуществлять сами.

А настройка «Enable: Do not power on VMs…» как раз и приведет к автоматическому контролю «заначки ресурсов», что может вызвать за собой сообщение с рис.1.

А три варианта настройки с рис.2 – это способы оценки заначки. Давайте про них поговорим.

Specify a failover host – сервер-запаска


Рисунок 3. Указание сервера-запаски


Самый простой вариант. Мы сами выбираем тот один сервер, на котором HA не позволит работать ни одной виртуальной машине. Даже DRS или мы сами не сможем мигрировать на него ВМ или включить. Но сам сервер работать будет все время, пустым. А остальные сервера HA не будет контролировать никак (рис. 4).


 


Рисунок 4. Пример статистики по нагрузке на сервера кластера


Мне этот вариант настройки нравится по следующим причинам:

  • Он простой и понятный. Вот сервер – запаска, вот – все остальные сервера, на которые контроль не распространяется.
  • Он дает хорошую гарантию достаточности ресурсов. Если допустить, что сервера у нас типовой конфигурации, то при отказе одного у нас есть 100% ресурсов такого же сервера – неплохая гарантия что после сбоя виртуалкам будет где подняться.
Однако минусы тоже есть:

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

Кстати, если вдруг откажут одновременно два сервера, один из которых - сервер запаска, то HA будет распихивать виртуальные машины по наиболее свободным серверам кластера из оставшихся в живых.

То же самое, насколько я понимаю, должно произойти если на сервере-запаске кончатся ресурсы, например из-за бут-шторма.

Percentage of cluster resources reserved as failover spare capacity – процент ресурсов

Второй вариант настройки резервирования ресурсов кластера на случай отказа – резерв указанного процента ресурсов на каждом сервере (рис. 5).


Рисунок 5. Резерв процента ресурсов


Проблем две.


Первая, не очень острая - а сколько процентов надо указать?


Вторая  проблема возникает в правильном понимании этих процентов. Как вы думаете, что они означают?

Наводящая картинка – как вы думаете, рис. 6 это чудеса фотошопа или реально возможная ситуация?

Рисунок 6. Статус резервирования для кластера и фактическая нагрузка на сервера кластера


Раскрою что здесь изображено - HA считает что ему надо резервировать 25% ресурсов, а реально у него еще свободно от резервов 97%. 
А на нижней части рисунка отображена реальная нагрузка на оба сервера кластера в 100%.


Так как - это возможно?


Правильный ответ – такая ситуация возможна, и вполне вероятна.

Для правильного понимания ситуации давайте немного отвлечемся.

Взгляните – вот информация по параметрам виртуальных машин (рис. 7).

Рисунок 7. Четыре разных параметра ОЗУ виртуальных машин


Здесь мы видим, что у виртуальной машины vCenter:

  • 3 гигабайта памяти – максимум;
  • 0.5 гигайбата – резерв;
  • 1.9 гигабайта гипервизор реально тратит на нее;
  • 7% от 3 гигабайт она активно использует.
Внимание, вопрос – какой из этих показателей контролируется HA Admission Control?

Правы те, кто ответил Reservation.

Т.е. резервирование 25% ресурсов каждого сервера означает, что на каждом сервере сумма резервов включенных виртуальных машин должна быть меньше-равна 75% ресурсов сервера.

А максимальное или реальное потребление ресурсов виртуальными машинами НЕ_УЧИТЫВАЕТСЯ_НИКАК.

Допустим:
  • У типового сервера 64 гигабайта оперативной памяти;
  • 4 ГБ занял гипервизор, 60 ГБ (для ровного счета) доступно виртуальным машинам;
  • Для HA мы указали зарезервировать 25% ресурсов – т.е. 15 ГБ памяти он зарезервировал;
  • Типовая виртуальная машина имеет 4 ГБ памяти как максимум, 0.1 ГБ как резерв, сколько-то потребляет де-факто.
Сколько типовых ВМ нам дадут запустить на этом типовом сервере с 25% резерва под HA?

Правильный ответ: До задницы много.Порядка 450 если учитывать только резервирования памяти.

Это означает, что

без указания адекватного reservation для каждой (или большей части) ВМ этот тип резервирования – фикция.

По той простой причине, что нам не очень радостно от того, что HA нам позволяет включить сотую ВМ, хотя уже на тридцатой сервер стал нагружен на 100%.

Кстати говоря, а какой должна быть настройка reservation?

Я вижу два основных варианта – или reservation = 100% от выданного ВМ объема памяти, или reservation равен среднему объему активно используемой памяти (рис. 8).

Рисунок 8. Активно потребляемая память


Именно на уровне каждой ВМ, не только пулов ресурсов или vApp!

Host failures cluster tolerates – по слотам

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


Рисунок 9. Резервирование "По слотам"


Далее, HA формирует размер «слота». «Слот» это всего лишь количество мегагерц и мегабайт. 

Формируется слот или автоматически – по наибольшему reservation среди всех ВМ в кластере, или (что правильнее) указывается вручную через Advanced settings.

Так или иначе размер слота выбран, теперь считаем статистику нашего кластера (рис. 10).

Рисунок 10. Статистика по слотам в кластере
Мы видим, что:

  • Один слот это 50 МГц и 100 МБ;
  • В кластере у нас 82 слота;
  • 14 слотов занято;
  • 9 слотов можно занять еще (9 а не 27 по той причине что серверы различны по конфигурации, а расчет идет по наихудшему сценарию – отказу самого мощного сервера).
(Эти подсчеты никак не связаны с параметрами виртуальных машин из предыдущих примеров).

Одна виртуальная машина может занять один, а может несколько слотов (как на рисунке 10 – включено всего 2 ВМ, однако занято 14 слотов). 

Внимание, вопрос – от чего это зависит?

Внимание, не самый радостный ответ – снова от reservation виртуальной машины.

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

Небольшая иллюстрация на рис. 11:


Рисунок 11. Размер кресла = размер слота, а реальный размер задницы соседей (= реальным аппетитам прочих ВМ) не учитывается


Этим чудесным хенд-мейд комиксом я хочу проиллюстрировать тот факт, что нам будет мало радости от того, что очередная виртуальная машина включиться (так как слот под нее есть), но работать будет плохо (так как достаточно ресурсов для нее нет) – рис. 12 или, что то же самое – рис. 6.


Рисунок 12. Иллюстрация оторванности подсчета слотов от реальных аппетитов ВМ


Некоторые факты и соображения

В инфраструктурах покрупнее кластеру HA впору опасаться не только отказа сервера, но и отказа группы серверов – из-за отказа шасси блейд-серверов.

В таком случае одним из вариантов решения проблемы может стать создание нескольких кластеров, каждый из которых размазан на несколько шасси (рис. 13).


Рисунок 13. Разбивка кластеров HA по шасси


В каждом шасси не более четырех серверов, потому что HA гарантированно переживает отказ максимум четырех серверов.


И теперь нас интересует настройка резервирования ресурсов для каждого кластера независимо. К сожалению, если отказ шасси влечет за собой отказ более одного сервера кластера, то простого способа гарантировать достаточность ресурсов для ВМ после сбоя нет. Ну или я не вижу :-)

Насколько я знаю, при старте каждой виртуальной машины тот хост, который выполняет роль Failover Coordinator, выбирает на каком сервере ей стартовать. Выбор идет в зависимости от нагрузки на процессор и память серверов.

Подведение итогов

Если ручной контроль запаса ресурсов на случай отказа сервера нам не подходит, то следует пользоваться автоматическим.

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

Варианты резервирования «процент ресурсов кластера» и «по слотам» мне видятся неприменимыми без указания адекватного reservation для каждой важной ВМ.

Обратите внимание - по данным опроса в прошлом посте 169 из 184 (на момент написания) ответивших не используют reservation для широкого круга ВМ - т.е. если у этих 92% ответивших  настроен первый или второй вариант Admission Control - это бессмысленно.

А стоит ли заморачиваться с reservation для работы этих вариантов Admission control – это отдельный вопрос, и не факт что ответ будет «да».

Еще одним вариантом как можно поступить является следующий:
  1. Как-то адекватно настроить admissions control – самое применимое это выбрать сервер-запаску или вообще отключить этот контроль.
  2. Создать набор пулов ресурсов, и распихать туда виртуальные машины в соответствии с их важностью для нас. В соответствие с важностью указать shares(и, может быть, reservation) на уровне пулов.
  3. Теперь мы получим гарантию, что нашим важным виртуальным машинам хватит ресурсов, пусть даже путем вытеснения неважных ВМ с процессоров и в своп если после срабатывания HA ресурсов на всех не хватает.
ИМХО, этот вариант лидер по соотношению сложности\эффективности.

Еще одним вариантом является добавление логики к работе HA при помощи самописных скриптов. Но это уже нефиговое такое джедайство, и я тут ничего конкретного посоветовать не могу.

понедельник, 16 мая 2011 г.

The HA and DRS Audit Script


Не так давно вышла книга "HA and DRS deepdive". Я ее купил, прочел, и, в целом, могу рекомендовать для тех, кому хочется понимать устройство этих кластеров. Как альтернативу придти ко мне на курсы пообщаться на эту тему ;-)

PowerCLI-гуру  Alan Renouf  "...прочел первые 50 страниц, возбудился, и, с разрешения авторов, накидал скрипт, проверяющий кластер на соответствие рекомендациям".

Выглядит эта штука шикаарно - после запуска скрипта в консоли PowerCLI можно наблюдать красочную форму для ввода параметров доступа к vCenter:

После себя остается не менее красочный html файл с выжимкой текущих настроек кластеров HA\DRS, и статистики по ним:




Посмотреть этот отчет по моему кластеру можно вот тут.

Видео как это все используется:

HA and DRS Audit Script from Alan Renouf on Vimeo.

Однако я пока глубокого смысла в этих данных не углядел.
Впрочем, кому-то может и пригодится, и, самое главное, стоит ждать доработки этого скрипта - так что страницу с ним стоит проверять - The HA and DRS Audit Script.


воскресенье, 15 мая 2011 г.

HA Slot sizes

Помнится мне, как-то на форуме VMware было довольно бурное обсуждение касаемо подсчета слотов для кластера HA.

Для интересующихся темой может быть интересной информация отсюда - HA Slot sizes – how do we get those numbers from vCenter?


пятница, 3 сентября 2010 г.

Имеет ли право быть HA без DRS?

Недавно у меня был пост - HA Advanced Options. В комментариях к нему была небольшая дискуссия, на тему:
Вот кластер HA. Вот умирает один из серверов ESX(i). ВМ, упавшие вместе с ним следует перезапустить на прочих серверах кластера. Однако как поступит HA если ресурсов для старта ВМ будет недостаточно на каком-то одном сервере?
Т.е. – часть машин стартовала, остальные не могут. Будет ли пытаться HA стартовать оставшуюся часть машин на прочих серверах кластера?
До недавних пор мне, в теории, казалось что ответ “нет” – и именно так я ответил в вышеупомянутой дискуссии.
Похоже, я ошибался. Впрочем, есть нюансы.
Итак, сначала из переписки. В городе Киев есть славная компания «СИТРОНИКС ИТ», и славна она толковыми инженерами. Один из них написал мне:


Михаил, приветствую!
Наконец дошли руки попробовать на практике поведение HA, о котором ты писал недавно (http://www.vm4.ru/2010/08/ha-advanced-options.html).
Дано:
- кластер из 4х хостов (ещё версии 3.5, но под управлением vc 4.0); HA (admission control enable), DRS (fully automated).
- vc – на физическом хосте.
Что делаю:
- в свойствах кластера полностью выключаю DRS.
- делаю hard power off одному из ESX. На нём 3 работающие машины – суммарно по памяти _все_ они могут поместиться только на одном из хостов (на 2х других - частично).
В итоге что имеем:
- пара машин поднимается на одном из выживших хостов (все на нём поместиться не смогли бы, как минимум по памяти), третья – на другом (без какого-либо моего вмешательства).
Т.о. случай когда:
> Миша, точнее сказать "часть ВМ *может* не включиться"
у меня на практике не получается.
Поясни, плиз, на чём основываются твои выводы о поведении HA в кластере без DRS (ссылки, доки, слухи) или укажи, что я не учитываю из исходных данных для получения описанного тобой случая, поскольку вопрос мне кажется достаточно важным.
Заранее спасибо.
..
Я ответил что высказанное в комментариях мнение у меня сложилось по чтению постов Дункана Эппинга и консультаций с коллегами.
Далее:
Из прочтения оригинала у Еппинга (ты же об этом - http://www.yellow-bricks.com/2010/06/16/which-host-is-selected-for-an-ha-initiated-restart/ так?) у меня складывается впечатление, что действительно механизм HA выбирает один хост (тот, на котором меньше всего суммарный резерв работающих на нём машин, что вполне логично) и пробует запускать упавшие машины. НО как только больше машин туда уже не поместится (например по памяти, как в моём случае) HA преспокойно выбирает следующий по минимальной сумме резервации хост для продолжения перезапуска машин.
Т.о. я не вижу вариантов, что часть ВМ _может_ не включиться без DRS. Естественно рассматриваю случай, когда адмишен контрол включён.
Таким образом, если в эксперименте ничего не было упущено, мое исходное мнение было ошибочным.

Позднее, мне прислали ссылку на топик в комьюнити и отрывок переписки с этим инженером VMware
Цитата:
-- Am I right, that HA try to restart all "dead" vms on first host (with lowest percent reservation). After resourses is over, HA takes second host and etc., instead restart vms evenly on all remaining host in cluster (don't forget: I'm interested in non-DRS cluster!).
-- no, HA will evaluate for each vm separately which host has the most unreserved capacity. This will take into account vms which are in the process of being failed over.
Судя по этой переписке с инженером поддержки VMware,  HA для каждой ВМ независимо выбирает сервер, где ее стартовать.
thx Евгений Гарбузов

В самом начале я упомянул про свою ошибку и нюанс.
Нюанс заключается в том, что настройка admissions control, на мой личный взгляд, лишена смысла всегда кроме последнего варианта настройки – резервирования целого сервера. Но я сейчас в отпуске, и сейчас я развивать мысль не буду :)

понедельник, 23 августа 2010 г.

HA Advanced Options

Кластер VMware High Availability, HA — неплохая штука.

Однако есть еще к чему стремиться — меня, например, довольно сильно огорчает то, что он включает все ВМ с отказавшего сервера на каком-то одном другом. Кстати, одновременно могут быть включены до 32 виртуалок.

Последнее я узнал вот отсюда — Two new HA Advanced Settings — тут подсказывают пару интересных опций для HA кластера:

  • das.perHostConcurrentFailoversLimit
    как раз сколько максимум ВМ одновременно можно включать. Значение по умолчанию — 32.
  • das.sensorPollingFreq
    как часто осведомляться — не появилось ли включенных ВМ. ПО умолчанию — раз в 10 секунд. Корректными являются значения из диапазона 1-30.

Первоисточник этих параметров — документ VMware vCenter Server Performance and Best Practices for vSphere 4.1. И там указано, что тргать эти параметры лучше не надо.

воскресенье, 12 июля 2009 г.

Host currently has no management network redundancy

Host currently has no management network redundancy.

Если вас раздражает это предупреждение, см статью в KB - Network redundancy message when configuring VMware High Availability in VirtualCenter 2.5.

Напомню, что про прочие коварные настройки HA кластера можно прочесть тут.

thx Дмитрию Кузнецову.





пятница, 3 июля 2009 г.

VMware HA troubleshooting

Запись в kb VMware - что делать, если кластер HA не собирается - Troubleshooting Adding an ESX Server Host to a VMware High Availability Cluster.





вторник, 24 марта 2009 г.

трабшутинг HA

Еще один вариант траблшутинга несобирания HA кластера - VMware HA failure got you down?

  1. Log in to the service console of your problem hosts and verify that VMware HA is disabled using: service vmware-aam stop
  2. Ensure there are no VMware HA processes running by using: ps ax | grep aam | grep -v grep
  3. If processes exist, kill them using the Process ID returned by the previous command (first column) as the PID: kill -9 PID
  4. Issue the following command via the service console including the parenthesis: (cd /etc/opt/vmware/aam; mkdir .old; mv * .old; mv .[a-z]* .old)
  5. Using the Virtual Infrastructure Client click on the Host, then the Summary tab, and then Reconfigure for VMware HA.

четверг, 25 декабря 2008 г.

некоторые аспекты работы HA

Предположим, есть у нас пара шасси с блейдами. Штук по 6 в каждом.
На них, само собой, установлены ESX.
ESX включены в состав кластера HA.

И тут мы умудряемся уронить все лезвия в одном шасси - к примеру, в следствии кривой прошивки комутаторов все шасси оказывается полностью отрезанным от сети. Неприятно, но у нас же есть HA.
Опа. А оказывается, и нет - если среди упавших серверов оказались все 5, агенты HA на которых были назначены Primary - т.е. управляющими работой кластера.
Такое не исключено - когда мы включали сервера в кластер, в общем то, логично было сначала добавить все сервера с одного шасси, потом все с другого. И все 5 Primary оказались в первом.

Чтобы измежать подобных проблем, есть два подхода:
1) Делать не один кластер, а несколько.
2) Делать "Reconfigure for HA" после добавления всех хостов - тогда Primary переназначаться в случайном порядке. Проверить, что этот случайный порядок нас устраивает, можно так:

/opt/vmware/aam/bin/ftcli -domain vmware -connect YOURESXHOST -port 8042 -timeout 60 -cmd "listnodes"

Node Type State
----------------------- ------------ --------------
esx1 Primary Agent Running
esx2 Primary Agent Running
esx3 Secondary Agent Running
esx4 Primary Agent Running
esx5 Primary Agent Running
esx6 Secondary Agent Running
esx7 Primary Agent Running

Еще можно попробовать

“more /opt/LGTOaam512/log/aam_config_util_listnodes.log”
или
“more /var/log/vmware/aam/aam_config_util_listnodes.log”


По материалам Blade enclosures and HA.

воскресенье, 14 декабря 2008 г.

Баг в ESX\ESXi 3.5 Update 3 HA VM failure monitoring

Если у вас есть ESX\ESXi 3.5 Update 3,
то у вас могут быть проблемы, если вы используете VMware HA со включенным мониторингом ВМ - VM failure monitoring.
Есть вероятность, что этот самый мониторинг будет ребутать ваши ВМ на ровном месте.
Происходит это потому, что при включении или VMotion ВМ может сбиться настройка отсылания heartbeat сигналов. Не получая их HA агент думает: "Ага! нет сигналов, надо бы ее ребутнуть". И ребутает.
Метод решения описан в KB - Virtual Machine may unexpectedly reboot when using VMware HA with Virtual Machine Monitoring on ESX 3.5 Update 3.
Суть решения весьма проста:
1.Disconnect the host from VC (Right click on host in VI Client and select "Disconnect" )
2.Login as root to the ESX Server with SSH.
3.Using a text editor such as nano or vi, edit the file /etc/vmware/hostd/config.xml
4.Set the "heartbeatDelayInSecs" tag under "vmsvc" to 0 seconds as shown here:

<vmsvc>
<heartbeatdelayinsecs>0</heartbeatdelayinsecs>
<enabled>true</enabled>
</vmsvc>

5.Restart the management agents for this change to take effect. See Restarting the Management agents on an ESX Server (1003490).
6.Reconnect the host in VC ( Right click on host in VI Client and select "Connect" )

thx Denis Baturin.

суббота, 2 августа 2008 г.

advanced options для VMware HA, обновление

Интрига нарастает!

Камрад "Аноним-Доброжелатель" ценой невероятных усилий прокрадывается в логово врага, и выносит оттуда секретные опции для VMware HA!
Которые затем засылает в комментарии к advanced settings для VMware HA!

Вот они:

das.trace = ON|OFF
das.tracelevel = 0..3|FunctionTracing
das.traceoutput = File|EventLog|stdout
das.consoleperm = perm_all | perm_oper | perm_user
das.consolenode = fqdn
das.consoleuser = username

das.checkvmstatedelay
das.primarycount

К сожалению, пока не удалось найти описания, что же они делают...
Ждем вестей от отважных агентов



Напомню, что обновляемый список всех доступных опций доступен на wiki.vm4.ru.


пятница, 1 августа 2008 г.

Полный список Advanced Settings кластера VMware HA для ESX 3.5 Update 2

Полный список Advanced Settings кластера HA для ESX 3.5 Update 2.



воскресенье, 6 июля 2008 г.

Virtual Machine Failure Monitoring (VMFM)

Когда вышел ESX 3.5, я читал(и писал сюда), что VMware HA будет уметь мониторить не только хосты, но и отдельные ВМ. "Мониторить" в том смысле, что следить за ними, и в случае сбоя перезагружать.
Наконец то могу внятно рассказать что и как с этой, пока еще, экспериментальной штукой:

Называется она Virtual Machine Failure Monitoring (VMFM).
Работает она следующим образом: система мониторит ежесекундные heartbeat сигналы от VMware tools, и по факту их пропажи перезагружает ВМ.
Таким образом, для включения этой функции нам надо:
ESX 3.5
VC 2.5
HA кластер
Установленные VMware tools

Чтобы включить VMFM, идем в расширенные настройки HA кластера, и указываем следующие опции:
das.vmFailoverEnabled – true (true или false)
das.FailureInterval – 30 (ВМ считается зависшей, если от нее не было heartbeat в течении этого кол-ва секунд)
das.minUptime – 120 (После включения ВМ нужно какое то время - для загрузки ОС, VMware tools и стабилизации heartbeat'ов. Вот тут мы это время и указываем, в секундах.)
das.maxFailures - 2 (Максимальное кол-во сбоев и последующих перезагрузок ВМ в течении времени, указанного в опции das.maxFailureWindow. Если das.maxFailureWindow выставленно ‐1 (no window), das.maxFailures представляет абсолютное количество сбоев, после которого VMFM прекращает автоматические перезапуски ВМ.)
das.maxFailureWindow выставлен не в -1, и число – 86400 (Или -1 или значение в секундах. Если число рестартов превысило указанное в опции das.maxFailures, то VMFM прекращает автоматические рестарты.)Для тестов этой функции можно пользоваться симуляцией BSOD.
Забавно, что никаких статусных сообщений система не генерит. Ужас, конечно. Остается только заглядывать в логи - в hostd.log можно найти что то вроде "([2008-06-26 11:47:22.552 ‘ha-eventmgr’ 3076440992 info] Event 101 : VM1 on Esx1.xyz.com in ha-datacenter is reset)".
К счастью, вскоре VMFM обещают вывести из статуса экспериментальной, глядишь - и статусные сообщения внятные добавят. Так что остается ждать Update 2.



среда, 26 марта 2008 г.

advanced options для VMware HA

В advanced options для VMware HA мы можем прописывать некоторые интересные настройки.
Про некоторые из них я уже не раз упоминал - например, das.isolationaddress и das.isolationaddress2, которые позволяют прописать произвольные IP для проверки на изоляцию хоста. Но есть и менее известные настройки. И все они перечислены тут, рекомендую заглянуть.
Если возникают проблемы с Admission control, присмотритесь к das.vmMemoryMinMB и das.vmCpuMinMHz.

понедельник, 14 января 2008 г.

правильная настройка сети для ServiceConsole, особенно в случае HA

Новый ESX(или, вернее, новый HA агент) ругается в случае если у интерфейса Service Console нет резервирования.
Чтобы он не ругался, можно сделать следующее:
перед включением HA даем SC второй pNic, конфигурим HA. Когда его настройка закончена, убираем второй pNic.

C другой стороны, отказоустойчивость интерфейса SC - штука весьма важная, особенно если есть HA. Сдохнуть может сетевушка, шнурок до физ.коммутатора, порт в этом коммутаторе, сам он...
Реализовать эту отказоустойчивость можно несколькими способами, мы не будем брать в расчет самый простой - когда сетевушек у нас дофига, и мы просто даем хотя бы по паре и ВМ, и ядру и SC.
Итак, если нас интересуют опробованные, правильные и поддерживаемые конфигурации - вот они три:

  • vSwitch0 - с ним работают 2 pNic. На нем две группы портов - для SC и для ядра. Каждая группа - в своем vlan. Притом, настраиваем так, чтобы одна(и только одна) pNic была активной для SC, вторая - для ядра. Таким образом, траффик не смешивается, а резервирование присутствует.
    • плюсы: достаточно 2х сетевушек. Для блейдов, например, это может быть критично.
    • минусы: надо задействовать vlan. Опцию Failure Detection Time выставить в 30 секунд, что похуже 20 секунд в варианте 3. В случае нескольких сбоев => срабатывает failover, и может сработать HA .
  • vSwitch0 и vSwitch1. На каждом - по две сетевушки, и по одной группе портов - для SC и ядра соответственно. Балансировка нагрузки и там и там - по принципу "virtual port id". VLAN могут быть задействованны и на физической стороне(в том смысле что только на физической).
    • плюсы: Можно без изменений задействовать систему VLAN на стороне физ.коммутаторов. Везде зайдествованно по два активных интерфейса - это значит что переключение со сбойного будет очень быстрым.
    • минусы: Много сетевушек надо. Может быть менее гибко в плане VLAN. Рекомендуется опцию Failure Detection Time выставить в 30 секунд.
  • vSwitch0 и vSwitch1. На нулевом - одна сетевушка и порт SC. На первом - две сетевушки, порт ядра и второй порт SC. IP второго интерфейса SC из подсети интерфейса ядра, отличном от подсети первого интерфейса SC.
    • плюсы: т.к. дублирование на уровне интерфейсов SC, параметр Failure Detection Time можно выставить в 20 секунд, т.к. резервный интерфейс SC будет активным на момент сбоя.
    • минусы: потребуется второй адрес для проверки на изоляцию(для HA). Необходимо сделать так, чтобы второй порт SC работал в другой подсети, нежели первый - иначе оба адреса будут резолвить один и тот же mac, что не есть хорошо.
Отсюда, там ссылки на статьи в kb по теме, и немного больше информации. Загляните, если будете реализовывать какой то из вариантов.

пятница, 11 января 2008 г.

Virtual Machine High Availability

Тут описывается немножко опыта работы с новой фишкой HA - рестартом неотвечающих(не посылающих хертбиты) ВМ.

Очередная порция информации про VMware HA

Очередная порция информации про VMware HA:

Во первых, обновленный Best Practices and Advanced Features for VMware High Availability - тут.
Во вторых, инфа про Failover Capacity:

  • Если у ВМ не указанны reservation по памяти и процу, то по умолчанию берутся значения 256 Mhz и 256 MB - берутся для расчета Failover Capacity
  • Эти значения по умолчанию можно менять, что есть хорошо. Для этого в Advanced Options прописываем das.vmMemoryMinMB = и das.vmCpuMinMHz =
Напомню, что буквально недавно писал про расчет Failover Capacity тут. По видимому, инфа оттуда применима к ESX 3.0, а эта - к 3.5.
Отсюда.


Обновление механизма расчета HA Failover Capacity

Некоторое время назад я писал обо мнении о расчете т.н. HA Failover Capacity - тут.
Напомню, что там говорилось, что берется ВМ с самым большим объемом памяти, и берется за эталон для расчетов.
Теперь же прошла поправка - вроде как используется не сконфигурированный объем памяти(то, что видит гостевая ОС), а резерв(reservation) + накладные расходы. Как вы понимаете, reservation может равняться нулю, в отличии от.
Для ESX 3.0 накладные расходы примерно такие:

Для ESX 3.5 их можно посмотреть в Resource Management Guide, стр.136. В среднем, для новой версии больше накладные расходы для 32 битных, и меньше для 64 битных ВМ.

Источник исходного мнения тут, его обновления тут.

Если механизм расчета такой, это очень здорово, ибо исходная схема была, мягко говоря, малоэффективной. Эта мне нравиться намного больше.

пятница, 28 декабря 2007 г.

Есть мнение, что в ESX 3.5 для нормальной работы HA требуется хотя бы две pNic на управляющем интерфейсе

Опять таки на форуме наткнулся на мнение, что в ESX 3.5 для нормальной работы HA требуется хотя бы две pNic на управляющем интерфейсе(Service Console в смысле). Если не так - конфигурирование HA выдает warning или error.
Вычитал - тут и тут.