Русфонд

понедельник, 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.