Проблемы с VMware HA после обновления vCenter

Майское обновление vCenter 6.0 (U3i) и 6.5 (U2d) вывело из строя несколько кластеров vSphere HA. Симптомы были одинаковые: часть узлов кластера не может связаться с мастером. Лечение, увы, отличалось:

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

Увидеть ситуацию помогли Alarms, сработавшие на хостах.

P.S. Не все обновления одинаково полезны…

Рубрика: 6.0, 6.5, VMware, vSphere | Оставить комментарий

HPE iLO4 и HTML5

Последние 8 лет я администрирую преимущественно серверы HPE. Интерфейс удаленного управления серверами называется iLO, за эти годы он прошел по пути развития от iLO100 до iLO5.

Для работы с консолью сервера было всего два варианта: .NET-надстройка (Integrated Console), поддерживаемая только в Internet Explorer и Java, устанавливаемая дополнительно.

В силу определенных проблем, случающихся с Java, я не любитель использовать их на серверах.

Я как-то привык к IE за годы работы с iLO2, однако, в iLO4 открытия консоли необходимо было ждать порядка минуты.

Когда у нас появился iLO5, я обнаружил в нем третий вариант: HTML5-реализацию консоли сервера. Внезапно консоль поверх HTML5 оказалась столь же шустрой, что и у Java, а у меня появился новый любимец.

Особенно грустно было сравнивать скорость открытия консоли в iLO4 и iLO5.

Какова же была моя радость, когда после обновления прошивки iLO4 до версии 2.70, я увидел HTML5 консоль и там.

Чтение Release notes показало, что HPE любезно добавили в iLO4 этот вариант работы.

Рубрика: Hardware, HP | 2 комментария

Настройка разрешений на vCenter

Как-то потребовалось мне решить задачу «сосуществования» в рамках vCenter нескольких команд администраторов, обслуживающих свои кластера vSphere.

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

Читать далее

Рубрика: 5.5, 6.0, 6.5, 6.7, VMware, vSphere | Оставить комментарий

Данные о ВМ в vMotion Wizard

Про полезняшки в новых версиях vSphere мы уже писали ранее: о флешовом клиенте в статье  Фильтры, задания и снимки в VMware vSphere 6.7, о ESXi-ом клиенте в Просмотр логов на ESXi.

Сегодня заметка о новой фишке vMotion Wizard — VM origin.

Часто бывает, что запустил перемещение виртуальной машины со сменой хоста и хранилища и тут приходит мысль «а сейчас-то как машина размещена?».

Разработчики HTML5-клиента решили это дело упростить и сделали подсказку — достаточно щёлкнуть VM origin:

Рубрика: 6.5, 6.7, VMware, vSphere, Советы | Оставить комментарий

Видеозаписи докладов VeeamON Forum Россия 2019

Для тех, кто не смог посетить VeeamON Forum Россия 2019 доступны видеозаписи докладов

The Premier Forum for Cloud Data Management

Доклады, которые впечатлили меня больше всего:

Быстрое восстановление с PureStorage ObjectEngine. Пришли времена когда бэкапы заказчики сохраняют на флеши(!!!) и в облако, происходит переход от схемы disk2disk2tape на схему flash2flash2cloud. Доклад офигенно ломает стереотипы.

Тонкости проектирования комплексной платформы Veeam с более 25.000 виртуальных машин. Докладчик рассуждает о масштабируемости инфраструктуры VBR для гигантской виртуальной среды. Из доклада становится понятна логика — какого чёрта так много ресурсов нужно бэкапам.

Как минимизировать человеческий фактор при DR-сценарии? VAO 2.0 – новые возможности! Классика жанра — контрмеры при авариях надо планировать заранее, а не во время аварии!

Доступность данных. Ожидания и реальность. Довольно бизнесовый доклад, но для меня открыл существование методологии, о которой я догадывался интуитивно, Business Impact Analysis.

Также вам могут быть интересные и другие темы.

Рубрика: Backup&Replication, Veeam, Новости | Оставить комментарий

Развертывание виртуальной машины vSphere через PowerSHell часть 1

Стал задаваться вопросом — как автоматизировать выполнение рутинных операций в vSphere?

Лучше бы не задавался 🙂

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

Основные проблемы, с которыми я столкнулся:

  • мною использовалась настройка кастомизации ОС «Prompt User», спрашивающая только IP-адрес (подразумевается, что развертывание происходит в одно и то же адресное пространство). Как оказалось, проще использовать передачу «всех» параметров IP в скрипте;
  • перемещение учетной записи сервера после ее развертывания для применения групповых политик в другой контейнер Active Directory;
  • поле «Notes» получает строку. Как передать ей несколько строк, если потребуется перевод строки, я пока не разбирался;
  • за кадром остались процессы дальнейшей настройки сервера — установка обновлений и дополнительного ПО. Это будет рассмотрено в следующих частях статьи.

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

А вот что получил:

Get-OSCustomizationSpec -Name windows | New-OSCustomizationSpec -Name temp1 -Type NonPersistent
Get-OSCustomizationSpec -Name temp1 | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress '10.0.0.1' -SubnetMask '255.255.255.0' -DefaultGateway '10.0.0.254' -Dns '10.0.0.254','10.0.0.253'
New-VM -Name 'new-vm' -Template (Get-Template windows_template) -OSCustomizationSpec (Get-OSCustomizationSpec 'temp1') -ResourcePool (Get-ResourcePool -Name 'Resources'-Location 'Cluster_Name') -Datastore (Get-DatastoreCluster -Name 'Datastore_Cluster') -Notes "Zdes mogla by byt vasha reklama"
Start-VM -VM new-vm
Do {Get-ADComputer -identity new-vm -ErrorAction SilentlyContinue;write-host "." -nonewline -f red;sleep 3} until(Get-ADComputer -identity new-vm -ErrorAction SilentlyContinue -warningaction silentlycontinue)
Move-ADObject -identity (Get-ADComputer -identity new-vm).distinguishedname -TargetPath "OU=Servers,DC=DOMAIN,DC=COM"
Do {$tools=(Get-VM -Name new-vm).ExtensionData.Guest.ToolsStatus;write-host "." -nonewline -f red;sleep 3} until(($tools -eq "toolsOk") -or($tools -eq "toolsOld"))
Restart-VMGuest -VM new-vm -Confirm:$false
Start-Sleep -Seconds 10
Do {$tools=(Get-VM -Name new-vm).ExtensionData.Guest.ToolsStatus;write-host "." -nonewline -f red;sleep 3} until(($tools -eq "toolsOk") -or($tools -eq "toolsOld"))
Write-Host("Server is ready!")

Данный скрипт берет гостевую кастомизацию «windows» (Guest Customization OS) и создает на ее основе временную кастомизацию «temp1».

Затем скрипт задает настройки IP, которые должна будет получить новая ВМ.

Далее мы создаем виртуальную машину из шаблона «windows_template», используя подготовленную кастомизацию «temp1». Машина создается в кластере «Cluster_name» с примечанием о том, для чего нужна эта ВМ. Диски шаблона при этом клонируются на кластер хранилищ (Datastore Cluster) с названием «Datastore_Cluster».

Затем мы включаем виртуальную машину и ждем.

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

Как только мы этого дождались, мы перекладываем эту учетную запись ПК в соответствующую OU.

Проверяем статус VMware Tools и, если они работают, перезагружаем наш сервер для применения актуальных групповых политик.

Затем ждем 10 секунд пока VMware Tools 100% остановятся в ходе перезагрузки, ждем пока они будут запущены и выводим на экран сообщение о том, что сервер готов.

Рубрика: 6.5, VMware, vSphere | Метки: | 1 комментарий

VMware PSC replication

Компонент Single Sign On, выполняющий проверку подлинности, появился в VMware vSphere 5.1. К vSphere 5.5 он стал «адекватнее» и стабильнее.

Его можно было поставить как на отдельный сервер, так и совместить вместе с vCenter Server.

В vSphere 6 этот компонент был объединен с другими сервисами в роли Platform Service Controller.

С тех пор и до vSphere 6.7 (или 6.7 Update 1) рекомендуемой схемой высокодоступного размещения PSC была следующая:

  1. Несколько внешних/отдельных PSC-серверов. Размещать PSC совместно с vCenter и реплицировать данные не некомендовалось.
  2. Требовался балансировщик между PSC и vCenter-серверами (хотя я видел скрипты, переключающие vCenter на резервный psc при недоступности основного).

Наверное, особенно круто было заниматься обновлением этого зоопарка из 4+ систем.

Особенно я прослезился со следующего KB — правила репликации PSC, рассказавшего о том, что репликация происходит в том порядке, в каком ранее добавлялись PSC (если развернули первый, на него нацелили второй, на второй — третий, то и репликация пойдет по такой схеме). Все связи между SSO-службами добавляются и удаляются только вручную.

Попутно узнал, что рекомендуемая топология — c центральным PSC.

Еще несколько KB:

А теперь к хорошим новостям: забудьте все, что только что прочитали 🙂

Начиная с vCenter 6.7 рекомендуемой топологией является встроенный PSC для любой топологии. Вы даже можете сделать vCenter HA (vCenter High Availability) для встроенного PSC, если хотите его защитить.

Ну и к вопросу резервной копии — в v6.7 появился ручной File-Based Backup, позволяющий сделать бэкап системы vCenter+PSC, восстанавливаемой с нуля с помощью этих файлов.

А в v6.7 Update 1 — возможность запуска бэкапа по расписанию.

В общем, администрирование нескольких vCenter-серверов в v6.7 стало значительно легче.

Рубрика: 5.1, 5.5, 6.0, 6.5, 6.7, VMware, vSphere | Оставить комментарий

Скрипт по включению режима обслуживания MS Exchange 2013

Изредка я занимаюсь обслуживанием почтовый серверов MS Exchange. Поставить обновления и кумулятивные пакеты — в принципе несложно.

В очередной раз выполняя процедуру по выводу сервера в режим обслуживания, я подумал — почему бы не написать скрипт, содержащий шесть PowerShell-командлетов вида

Set-MailboxServer <Servername> -DatabaseCopyAutoActivationPolicy Blocked

в которые еще и нужно добавить имя сервера, выводимого в режим обслуживания.

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

В зависимости от выбранной опции и роли сервера скрипт выполняет требуемые PS-командлеты.

$servername=$env:computername
$dagname=(Get-DatabaseAvailabilityGroup | where {$_.servers -contains $servername}).name
$partner_fqdn=[System.Net.Dns]::GetHostByName(((Get-DatabaseAvailabilityGroup $dagname).servers | where {!($_.name -eq $servername)} | select -First 1).name).Hostname
$answer=""
while (!(($answer -eq "1") -or($answer -eq "2"))){
 Write-Host("Please choose the operation")
 Write-Host("1: Enter the maintenance mode")
 Write-Host("2: Exit the maintenance mode")
 $answer=read-host "Please enter the ID of operation"
}
if($answer -eq "1"){
 if((get-exchangeserver $servername).serverrole -match "Mailbox"){
  Set-ServerComponentState $servername -Component HubTransport -State Draining -Requester Maintenance
  Redirect-Message -Server $servername -Target $partner_fqdn -Confirm:$false
  Suspend-ClusterNode $servername
  Set-MailboxServer $servername -DatabaseCopyActivationDisabledAndMoveNow $True
  Set-MailboxServer $servername -DatabaseCopyAutoActivationPolicy Blocked
 }
 Set-ServerComponentState $servername -Component ServerWideOffline -State inactive -Requester Maintenance
}
else{
 Set-ServerComponentState $servername -Component ServerWideOffline -State Active -Requester Maintenance
 if((get-exchangeserver $servername).serverrole -match "Mailbox"){
  Resume-ClusterNode $servername
  Set-MailboxServer $servername -DatabaseCopyActivationDisabledAndMoveNow $False
  Set-MailboxServer $servername -DatabaseCopyAutoActivationPolicy Unrestricted
  Set-ServerComponentState $servername -Component HubTransport -State Active -Requester Maintenance
 }
}

Критика приветствуется.

Рубрика: Exchange, Microsoft | 4 комментария

Приглашаем на VeeamOn в Москве 6 июня 2019 года

VeeamON Forum Россия 2019 состоится в Москве 6 июня в Отеле Хаятт Ридженси Москва Петровский Парк.

Приглашаем ознакомиться с программой, зарегистрироваться и участвовать!

Обращаю внимание, что программа состоит из 2 направлений:

  • Управление данными в облаке
  • Непрерывность бизнеса
Рубрика: Новости | Оставить комментарий

Exchange 2013 CU22 и информация об Exchange

Я уже писал о том, что после разворачивания CU22 на Exchange 2013 вы получаете запись в реестре о том, что, оказывается, на сервере-то установлен Exchange 2013 CU20. Microsoft проблему признало и выпустило совет, как можно вручную исправить ключ реестра.

Я же по привычке делюсь скриптом, который исправит этот ключ реестра по всем вашим серверам Exchange, подразумевая что все они — Exhchange 2013 CU22.

Get-ExchangeServer | %{$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine',$_.name); $regKey= $reg.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Microsoft Exchange v15",$true); $regKey.SetValue("DisplayName","Microsoft Exchange Server 2013 Cumulative Update 22",[Microsoft.Win32.RegistryValueKind]::String);$_.name}

Скрипт пройдется по всем серверам Exchange в организации, поменяет параметр реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Exchange v15\Displayname и выведет имя сервера в качестве интерактива с вами.

Если вам нужно, чтобы обрабатывались не все сервера, а только какой-то список, то:

  • список серверов нужно будет подать на вход вместо командлета Get-ExchangeServer;
  • вместо $_.name использовать более подходящий $_

P.S. История с этим апдейтом напомнила

«Здравствуйте, я бедный албанский вирус. Я пока что ничего не умею, и к сожалению, не могу причинить вред вашему компьютеру. Пожалуйста, будьте так любезны, сотрите один из важных файлов с жесткого диска вашего компьютера самостоятельно и перешлите меня 30 друзьям. И будет вам счастье. Если вы этого не сделаете я обижусь и не будет вам счастья и конфет весь следующий год! Заранее благодарен за понимание и сотрудничество».

Рубрика: Exchange, Microsoft | Метки: | Оставить комментарий