пятница, 22 апреля 2011 г.

Настройка статического MAC-адреса для VM

Иногда бывает необходимо задать статический MAC адрес для VM. Например при P2V миграции, когда лицензия приложения привязывается к MAC адресу.

С помощью VMware vSphere Client можно задать статический MAC, но только из диапазона 00:50:56:00:00:00 - 00:50:56:FF:FF:FF.

Изменить можно так же с помощью редактирования VMX-файла VM, при этом можно присвоить любой MAC-адрес.

Алгоритм:
1. Выключаем VM.
2. копируем vmx-файл на рабочую станцию.
3. Меняем значение ethernet0.addressType с “vpx” на “static”.
4. Меняем ethernet0.GeneratedAddress на ethernet0.Address и пишем нужный MAC:
ethernet0.address = "00:10:43:45:14:CC"
5. Включаем VM.

PS: иногда система не перечитывает vmx файл при запуске - как итог имеем случай, что VM оказывается со старым MAC-адресом.
Такой случай решается очень просто:

1. Выключаем VM
2. заходим в консоль ESXi по SSH.
3. Выполняем 2 команды:
vim-cmd vmsvc/getallvms |grep
Результат будет примерно таким:
32 SRVTST [Test] SRVTST/SRVTST.vmx rhel5Guest vmx-07 Test Server

32 - это Inventory ID виртуальной машины.
Перезагружаем файл VM:
vim-cmd vmsvc/reload 32

вторник, 19 апреля 2011 г.

Переименование подключения Windows

Намного лучше, когда подключения на всех серверах называются одинаково, например все интерфейсы, подключенные в доменную сеть называть "Domain Network".
Как же это сделать на уже созданных серверах?
С помощью команды netsh.

netsh interface set interface name="Local Area Connection" newname="NewLan"

netsh может работать удаленно, а если речь о виртуальных серверах VMware, то данную команду можно выполнить на всех VM сразу:

Get-VM | Invoke-VMScript –ScriptText “netsh interface set interface name=""Local Area Connection"" newname="NewLan"” –ScriptType Bat –guestuser DomainAdmin –GuestPassword Password
Зачем нужна команда Netsh

вторник, 5 апреля 2011 г.

Массовое переключение ВМ в другую портгруппу

Предположим, у вас меняется сетевая политика для виртуальных машин и вы создаете новые портгруппы. Или вы решили мигрировать на Distributed vSwitch. Соотв. есть много (поэтому вручную не вариант, или просто лень) ВМ, подключенных в одну портгруппу, и их надо переключить в другую.

Решение - PowerShell! :)

Как это сделал я для своего тестового кластера. Сначала создал Distributed vSwitch с одним аплинком (с каждого хоста) и на нем новую портгруппу для ВМ. Затем переключил пару включенных машин вручную, проверив, что они остались доступны. И оставшиеся N-цать выключенных переключил уже скриптом:

Get-Cluster "Cluster" | Get-VM | Where-Object {$_.PowerState -eq "PoweredOff"} | Get-NetworkAdapter | where { $_.Name -eq "Network Adapter 1" } | Set-NetworkAdapter -NetworkName "dv VM Network" -Confirm:$false
Скопипастил отсюда