Главная

Saturday, 10 September 2022

Удаляем фантомные сервера из VMM.

Всем привет.

Сегодня хочу вам поведать как можно убрать из консоли SCVMM сведения о некорректно удаленных(мигрированных) HV-серверах. Например, в случае с одного из серверов виртуализации сняли роль Hyper-V, поставили чистую ОС и отдали под другие задачи, а из консоли VMM отключить забыли. Но это может произойти даже когда администратор  выполняет все штатно в самой консоли SCVMM. В результате чего получается такая картина:

Собственно, теперь с этим сервером, тот самый который pending, сделать ничего нельзя ни из GUI, ни из PowerShell. Если он просто перестал существовать и забыт в SCVMM, то его можно удалить так:

$VMM = 'hv04.forza.com'

$Name = Get-SCVMHost -ComputerName $VMM

Remove-SCVMHost -VMHost $Name -Force


Но вернемся к нашему pending. Так как все данные о серверах кластерах и прочих виртуальных машинах VMM хранит в базе MS SQL, то ее мы и будем очищать от записей об этом узле. Предварительно стоит сделать бэкап базы VMM. Для этого нам понадобится Sql Management Studio. Запустив который подключимся к базе VMM и найдем идентификатор нужного нам хоста, выполнив запрос:

use VirtualManagerDB

 select HostID, computerName from dbo.tbl_ADHC_Host 


Если сразу попробуем удалить запись о хосте:

use VirtualManagerDB

 delete from dbo.tbl_ADHC_Host where HostID like 'hostid' 


То получим только сообщение о ошибке из-за зависимостей. Для успешного удаления этой записи нам необходимо сперва удалить все, что связано с определенным нами HostID в следующих таблицах:

dbo.tbl_NetMan_InstalledVirtualSwitchExtension

dbo.tbl_ADHC_HostBusAdapter

dbo.tbl_ADHC_VirtualNetwork

dbo.tbl_ADHC_HostVolume

dbo.tbl_ADHC_HostDisk


dbo.tbl_ADHC_HostBusAdapter — при удалении записи из этой таблицы у меня появилась ошибка ссылающаяся на dbo.tbl_ADHC_HostInternetSCSIHba.

В таблице dbo.tbl_ADHC_HostInternetSCSIHba нету HostID и поэтому придется вывести все записи из нее чтобы определить id нужного нам ISCSIHbaID

use VirtualManagerDB

select * from dbo.tbl_ADHC_HostInternetSCSIHba


И после этого удаляем запись:

use VirtualManagerDB

 delete from dbo.tbl_ADHC_HostInternetSCSIHba like 'ISCIHbaID' 


Теперь удаление записи из таблицы dbo.tbl_ADHC_HostBusAdapter пройдет успешно. В завершении выполняем удаление записи из таблицы хостов:

use VirtualManagerDB

delete from dbo.tbl_ADHC_Host where HostID like 'hostid' 


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

Удачи.

No comments:

Post a Comment

А что вы думаете по этому поводу?