Relationship between Virtual Server and Host is missing for few CI's

Suvetha S
Tera Contributor

Hi All,

 

We have few CI's which are marked as "Is virtual=true" by Discovery and there is no relationship created to host. Please let me know how to troubleshoot further. What kind of relationship will it create for Different server? Like Windows, Linux & AIX.

1 ACCEPTED SOLUTION

Fabian Kunzke
Kilo Sage
Kilo Sage

Hey,

 

This is pretty common and works as it should. The way the discovery of virtual machines (or any virtualized hardware) works is twofold:

1) Discovery of the virtualized hardware

The "normal" horizontal discovery will find virtualized objects within your infrastructure and create those accordingly. The discovery itself will always work bottom-up (contrary to the service mapping which works top-down). This leads to the initial host to be "the bottom". In this case, this is the virtualized server. The discovery will only inventorize whats running on the server and what it connects to. It treats virtualized servers the same way as "normal", non-virtualized servers.

 

2) Discovery of virtualizing hardware/software (e.g. VMWare)

Part of the discovery will also be the discovery of a server which is running a virtualizing management system (e.g. VMWare). Again, bottom-up. Ergo, the server is discovered, then the discovery will find VCenter running on it (to stick with the example) and discover that. Then the VCenter discovery is triggered, which uses the VCenter management API to inventorize the virtualizing structure.

Part of that discovery via the API is also creating vm instance records as CIs. IF there is a matching server record (in the cmdb_ci_server table) a relationship will be created through this step.

This is also true for other virtualizing systems (and also for cloud discovery).

 

You will always need both of these steps to work. The second step will usually then create the relationship. The reason why the first one doesn't is due to information for the virtualizing infrastructure not being available through the host discovery itself but rather only through discovering the virtualizing or managing host(s).

 

In your case make sure, that the discovery is also able to discovery the servers for your management system and has the additional credentials to discover the virtualization system.


Hope this helps

Regards

Fabian

 

ps.: To find out what you need, the documentation regarding the discovery is product specific and in depth. E.g. you will be able to find how to discovery VMWare by checking the documentation from ServiceNow.

View solution in original post

9 REPLIES 9

Fabian Kunzke
Kilo Sage
Kilo Sage

Hey,

 

This is pretty common and works as it should. The way the discovery of virtual machines (or any virtualized hardware) works is twofold:

1) Discovery of the virtualized hardware

The "normal" horizontal discovery will find virtualized objects within your infrastructure and create those accordingly. The discovery itself will always work bottom-up (contrary to the service mapping which works top-down). This leads to the initial host to be "the bottom". In this case, this is the virtualized server. The discovery will only inventorize whats running on the server and what it connects to. It treats virtualized servers the same way as "normal", non-virtualized servers.

 

2) Discovery of virtualizing hardware/software (e.g. VMWare)

Part of the discovery will also be the discovery of a server which is running a virtualizing management system (e.g. VMWare). Again, bottom-up. Ergo, the server is discovered, then the discovery will find VCenter running on it (to stick with the example) and discover that. Then the VCenter discovery is triggered, which uses the VCenter management API to inventorize the virtualizing structure.

Part of that discovery via the API is also creating vm instance records as CIs. IF there is a matching server record (in the cmdb_ci_server table) a relationship will be created through this step.

This is also true for other virtualizing systems (and also for cloud discovery).

 

You will always need both of these steps to work. The second step will usually then create the relationship. The reason why the first one doesn't is due to information for the virtualizing infrastructure not being available through the host discovery itself but rather only through discovering the virtualizing or managing host(s).

 

In your case make sure, that the discovery is also able to discovery the servers for your management system and has the additional credentials to discover the virtualization system.


Hope this helps

Regards

Fabian

 

ps.: To find out what you need, the documentation regarding the discovery is product specific and in depth. E.g. you will be able to find how to discovery VMWare by checking the documentation from ServiceNow.

Hi @Fabian Kunzke , 

If the virtualizing hardware is not discovered then Discovery will treat the virtualized servers the same way as "normal", non-virtualized servers. But why the Is Virtual flag is set as True before it could identify it as a virtual server? 

Hi,

The flag is set as part of the host discovery, as the server - on the OS level - is marked as being virtualized. But at this point the host discovery will not be able to identify how the server is virtualized.

 

Generally servers are always - with some very small exceptions - treated the same, no matter if they are virtualized or not. The discovery is a OS level scanning method. From an OS level virtualized and non-virtualized hardware works the same in regards to discovery.

 

Discovery of virtualizing hardware will give you the virtualizing infrastructure. Something you won't get from the OS level information of the virtualized server.


Regards
Fabian

Hi @Fabian Kunzke @Rahul Priyadars 

Thanks for the response. Is there a way to find out all the servers in our cmdb which has the Virtual flag set to true and no relationships created to the host?