Русфонд

понедельник, 2 декабря 2013 г.

vSphere: операции заканчиваются ошибкой "The operation is not allowed in the current state."

Повторение пройденного.. Операции vMotion, Take Snapshot, Shut Down Guest и др. для одной из виртуальных машин заканчиваются ошибкой:
The operation is not allowed in the current state.
Как лечили, смотрим тут.

пятница, 29 ноября 2013 г.

PowerCLI: изменение размера оперативной памяти и количества CPU у виртуальной машины

Скрипт Change-VM_Memory_CPU_Count.ps1 позволяет изменять размер RAM и количество vCPU у виртуальной машины. При запуске скрипта необходимо указывать параметры:
-vCenter - имя vСenter-сервера;
-vmName - имя виртуальной машины;
-MemoryMB - размер памяти в MB, на который хотим изменить текущее значение;
-MemoryOption - значение Add или Remove, т. е. увеличиваем или уменьшаем память;
-CPUCount - количество vCPU, на которое хотим изменить текущее значение;
-CPUOption - значение Add или Remove, т. е. увеличиваем или уменьшаем количество vCPU.

Скрипт выполняет следующие шаги:
1. подключение к серверу vCenter;
2. выключение виртуальной машины;
3. изменение RAM и vCPU в соответствии с указанными параметрами;
4. включение виртуальной машины;
5. отключение от сервера  vCenter.

Пример использования.
vCenter-сервер vc01.local, виртуальная машина VM01, уменьшается память на 1GB, количество vCPU не меняется:

.\Change-VM_Memory_CPU_Count.ps1 -vCenter vc01.local -vmName VM01 -MemoryMB 1024 -MemoryOption Remove -CPUCount 0 -CPUOption Add

Можно запустить скрипт из bat-файла, если хотим выполнить его по расписанию:

powershell -PSConsoleFile "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -Command "C:\Scripts\Change-VM_Memory_CPU_Count.ps1 -vCenter vc01.local -vmName VM01 -MemoryMB 1024 -MemoryOption Remove -CPUCount 0 -CPUOption Add"

Источник.

среда, 13 ноября 2013 г.

Смена нумерации vmnic

Нам потребовалось сменить номера vmnic в соответствии с нумерацией физических портов на сервере. У сервера четыре встроенных порта Ethernet и дополнительная четырехпортовая Ethernet-карта.  У нас было так, что встроенные порты на сервере обозначены от 1 до 4 слева направо, им соответствовали vmnic0 - vmnic3, тут все нормально. А для дополнительной карты нумерация vmnic шла наоборот, справа налево. Хотим исправить нумерацию только для дополнительной карты.
Насколько я понимаю, метод не поддерживается официально...
Для смены нумерации vmnic на хосте ESXi правим конфигурационный файл /etc/vmware/esx.conf в консоле или через ssh:
1. Определяем соответствие физических портов и vmnic, например, последовательно вынимая и вставляя назад кабель в нужных портах.
2. Делаем резервную копию файла
cp /etc/vmware/esx.conf /etc/vmware/esx.conf.old
3. Открываем файл в редакторе
vi /etc/vmware/esx.conf
4. Ищем строки, содержащие "vmnic",
набираем /vmnic<Enter>
5. В сртоках 
/device/000:006:00.0/vmkname = "vmnic7"
/device/000:006:00.1/vmkname = "vmnic6"
/device/000:007:00.0/vmkname = "vmnic5"
/device/000:007:00.1/vmkname = "vmnic4"
меняем номера vmnic (переводим курсор на соответствующий символ, жмем r, набираем правильную цифру).
Получаем
/device/000:006:00.0/vmkname = "vmnic4"
/device/000:006:00.1/vmkname = "vmnic5"
/device/000:007:00.0/vmkname = "vmnic6"
/device/000:007:00.1/vmkname = "vmnic7"
6. Снова ищем строки, содержащие "vmnic". Находим строки с соответствием vmnic и MAC-адресами
/net/pnic/child[0004]/mac = "00:1b:21:26:2a:e8"
/net/pnic/child[0004]/name = "vmnic4"
/net/pnic/child[0004]/virtualMac = "00:50:56:56:2a:e8"
/net/pnic/child[0005]/mac = "00:1b:21:26:2a:e9"
/net/pnic/child[0005]/name = "vmnic5"
/net/pnic/child[0005]/virtualMac = "00:50:56:56:2a:e9"
/net/pnic/child[0006]/mac = "00:1b:21:26:2a:ec"
/net/pnic/child[0006]/name = "vmnic6"
/net/pnic/child[0006]/virtualMac = "00:50:56:56:2a:ec"
/net/pnic/child[0007]/mac = "00:1b:21:26:2a:ed"
/net/pnic/child[0007]/name = "vmnic7"
/net/pnic/child[0007]/virtualMac = "00:50:56:56:2a:ed"
Удаляем все строки, относящиеся к ранее исправленным номерам (жмем dd на каждой строке). Т. е. в этом блоке удаляем все строки строки и с "mac", и с "vmnic", и с "virtualMac".
Эти строки появятся снова после перезагрузки, но уже с правильными номерами.
7. Сохраняем изменения (жмем <Shit>zz или <ESC>:wq<ENTER>)
8. Перезагружаем хост.
После перезагрузки получили нумерацию на всех восьми портах слева направо.

среда, 18 сентября 2013 г.

Расширение RDM-раздела для виртуальной машины VMware

Процедура расширения RDM-раздела зависит от того, в каком режиме совместимости он подключен.
  • Physical compatibility mode
1. Расширить LUN на дисковом массиве.
2. Выполнить Rescan для Storage на ESX-хосте.
3. Выполнить Rescan disk в оснастке Managment disk в гостевой ОС.
4. Расширить раздел в гостевой ОС.

В режиме совместимости Physical RDM  свойства используемого LUN напрямую передаются гостевой ОС. Процесс расширения раздела не требует перезагрузки виртуальной машины или хоста. Не меняются  RDM-файлы (.vmdk or metadata pointer), поэтому добавленное пространство сразу доступно виртаульной машине.
  •  Virtual compatibility mode
1. Выключить виртуальную машину.
2. Записать значение Virtual Device None (SCSI X:Y) этого раздела.
3. Удалить RDM-раздел у виртуальной машина (from the virtual machine).
4. Расширить LUN на дисковом массиве.
5. Выполнить Rescan для Storage на ESX-хосте, проверить что отображается правильный размер.
6. Пересоздать RDM mapping: VM Settings > Add > Hard Disk > RDM > указать используемый ранее Virtual Device None (SCSI X:Y).
7. Включить виртуальную машину.
8. Выполнить Rescan disk в оснастке Managment disk в гостевой ОС.
9. Расширить раздел в гостевой ОС.

KB1007021

пятница, 13 сентября 2013 г.

VMware vSphere: конвертация системного виртуального диска IDE в SCSI

Проверено на ESXi 5.1 и вируальной машине с гостевой ОС Windows 2008 R2. Требовалось сконвертировать системный диск. Источники KB1016192 и KB1005208. Строго говоря, это не конвертация, а изменение типа адаптера для диска.

1. Делаем экспорт ветвей реестра виртуальной машины с Windows 2008 R2, которая уже работает на виртуальном SCSI диске ветки:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSI_SAS
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSI_SCSI

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

3. Выключаем виртуальную машину.

4. Удаляем IDE-диск у виртуальной машины:
В vSphere Client > Edit Settings > Выбираем IDE-диск > Remove > Remove the Disk from the virtual machine (удаляем из виртуалки, а не с диска).

5. Правим файл, соответствующий виртуальному диску [disk_name].vmdk:
В строке ddb.adapterType = "ide" меняем ide на lsilogic.

6. Добавляем диск к виртуальной машине:
Edit Settings > Add > Hard Disk > Use Existing Virtual Disk > Выбираем соответствующий диск.

7. Если у виртуальной машины есть CD-ROM меняем ему канал IDE c 1:0 на 0:0.

понедельник, 9 сентября 2013 г.

Veeam Backup: Ошибка при создании снапшота

Задание резервного копирования Veeam для одной из виртуальных машин заканчивается ошибкой. В отчете Veeam:  "Creating VM snapshot Error: The operation is not allowed in the current state". В логе hostd хоста ESXi: "[2013-09-08 22:32:03.404 F64A8B90 error 'vm:/vmfs/volumes/4acc704a-2b59540f5166d-0046a477fc21/VMNAME/VMNAME.vmx'] Invalid transition requested (VM_STATE_ON_SHUTTING_DOWN -> VM_STATE_CREATE_SNAPSHOT): Invalid state".
Кроме того, задачи для этой виртуалки, запускаемые из vSphere Client (vMotion, Take Snapshot, Shut Down Guest и т.д.), также завершаются ошибкой. В логах vSphere Client: "The operation is not allowed in the current state" либо "Cannot complete operation because VMware Tools is not running in this virtual machine".
Перезагрузка ОС виртуальной машины не помогла.
Решение нашлось в базе знаний Veeam и VMware:
  1. Проверить, что нет правил остановки виртуальных машин при выключении хоста ( вкладка Configuration > Virtual Machine Startup/Shutdown).
  2. На хосте перезапустить Managment Agents.
  3. На сервере vCenter перезапустить службы vCenter и Management Webservices.

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

ESXi 5.1: нет домена в выпадающем меню при назначении разрешений

У отдельностоящего ESXi 5.1 после ввода в домен AD в окне Select Users and Groups в выпадающем списке Domain отсутствует собственно сам домен AD, и, соответственно, невозможно назначить права доменным пользователям.

Помогло kb1036554, хотя относится оно к ESXi 4.1.
  1. Через vSphere Client откраваем вкладку Configuration > Advanced Settings > UserVars.
  2. Удаляем значение параметра UserVars.ActiveDirectoryPreferredDomainControllers (тут было имя контроллера домена, стераем его).
  3. Выводим хост из домена Configuration > Authentication Services > Properties > жмем Leave Domain.
  4. Снова заводим хост в домен Configuration > Authentication Services > Properties > Select Directory Service Type > [вводим имя домена в поле Domain] > жмем Join Domain.

понедельник, 15 апреля 2013 г.

VMware: проверка на совместимость

Проверяем на совместимость версии продуктов и фичи VMware с железом в VMware Compatibility Guide.

Пример 1. Версия ESX - MetroCluster - дисковый массив (выбранные позиции обведены красным):


Жмем кнопку Update and View Results, получаем список моделей выбраного производителя:


Кликнув на интересующую модель, получим более подробную информацию (firmware, плагин MMP и т.п.).

Пример 2. SRM - дисковый массив:


Получили требуемую версию SRA для соответствующей версии SRM и производителя дискового массива. Кликнув на имени SRA, получим список совместимых моделей дисковых массивов (не забываем на новой странице выбрать правильную версию SRM):


Veeam Backup: ошибка "Failed to deserialize user 'COibAuxData'"

При переносе бэкапов с одного на другой сервер Veeam Bakup&Replication (импорт и мапинг) получил ошибку:
Failed to deserialize user 'COibAuxData'.
Дело оказалось в разнице версии Veeam: на сервере-источнике версия 6.5, на сервере-приемнике версия 6.1. Обновление второго сервера до версии 6.5 решило проблему.

четверг, 28 марта 2013 г.

Ошибка при подключении к VMware Server через VMware Client

Привет из прошлого..
Пользователь не смог подключиться к VMware Server 2.0 с помощью VMware Infrastructure Client, который был установлен на рабочей станции под Windows 7: после лонога он получал ошибку
"Выдано исключение типа "VmomiSupport.EmptyInventoryException".
До этого у пользователь работал на Windows XP,  и проблем не наблюдалось.
Вылечилось назначением одинаковых прав пользователю на уровне сервера и на уровне виртуальных машин. До этого права были определены только на виртуальные машины.

четверг, 28 февраля 2013 г.

Обои на тему VMware для рабочего стола Windows

PowerCLI: настройка DRS-кластера

Установка Automation Level.

Connect-VIServer <vCenter Name>
Set-Cluster -Cluster <Cluster Name> -DrsAutomationlevel <FullyAutomated, Manual, PartiallyAutomated> -Confirm:$false

Установка порога срабатывания балансировки (Migration Threshold).

Connect-VIServer <vCenter Name>
$clusterName = '<Cluster Name>'
$rate = <от 1 до 5, 1 - агрессивный уровень, 5 - консервативный уровень>
$cluster = Get-Cluster -Name $clusterName | Get-View
$clusterSpec = New-Object VMware.Vim.ClusterConfigSpecEx
$clusterSpec.drsConfig = New-Object VMware.Vim.ClusterDrsConfigInfo
$clusterSPec.drsConfig.vmotionRate = $rate
$cluster.ReconfigureComputeResource_Task($clusterSpec, $true)

понедельник, 18 февраля 2013 г.

PowerCLI: ESX в\из Maintenance mode

Перевод хоста ESX в режим обслуживания:
Set-VMHost -VMhost <ESXname> -State “Maintenance”

Вывод хоста ESX из режима обслуживания:
Set-VMHost -VMhost <ESXname> -State “Connected”

Если это нужно делать по расписанию:

1. Пишем скрипы:

Скрипт EnterMaintenance.ps1

$Creds = Get-VICredentialStoreItem -Host <vCenterName> -File <path to XML-file>
Connect-VIServer <vCenterName> -User $Creds.User -Password $Creds.Password
Set-VMHost -VMhost <ESXname> -State “Maintenance”

Как делать XML-файл с реквизитами доступа смотрим тут.

Скрипт ExitMaintenance.ps1 аналогично.

2. Делаем bat-файлы:

EnterMaintenance.bat
powershell -PSConsoleFile "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -Command <path to script, например C:\Scripts\EnterMaintenance.ps1>

ExitMaintenance.bat аналогично.

3. Настраиваем шедулер для выполнения bat-файлов.

PowerCLI: xml-файл с правами доступа vSphere

PowerCLI позволяет сохранить в XML-файл реквизиты доступа к vCenter и ESXi для использования их при вызове командлета Connect-VIServer.
XML-файл создаем комадлетом New-VICredentialStoreItem:

New-VICredentialStoreItem -Host <vCenterName или ESXname> -User <user> -Password <password> -File <path to XML-file, например, C:\Scripts\cred.xml>


В файле пароль захэширован.
Для работы с файлом используем переменную:

$Creds = Get-VICredentialStoreItem -Host <vCenterName или ESXname> -File <path to XML-file>
Connect-VIServer <vCenterName или ESXname> -User $Creds.User -Password $Creds.Password