Problem:
- In the CloudStack, Oracle VM Server (Hypervisor) does not support a creation of router VM.
- This is policy in the CloudStack
- We only want to create VM which is supported by Oracle Site officially.
- But router VM is custom template from CloudStack.
The decision:
- Router VM must be installed by other hypervisor like XenServer or KVM.
Code:
File: server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
Method: findOrCreateVirtualRouters(...)
detect proper hypervisor type
solution:
instead of detecting in a same pod, detect hypervisor type in a data center.
- In the CloudStack, Oracle VM Server (Hypervisor) does not support a creation of router VM.
- This is policy in the CloudStack
- We only want to create VM which is supported by Oracle Site officially.
- But router VM is custom template from CloudStack.
The decision:
- Router VM must be installed by other hypervisor like XenServer or KVM.
Code:
File: server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
Method: findOrCreateVirtualRouters(...)
HypervisorType hyType;
if (dest.getCluster().getHypervisorType() == HypervisorType.Ovm) {
hyType = getAClusterToStartDomainRouterForOvm(dest.getCluster().getPodId());
} else {
hyType = dest.getCluster().getHypervisorType();
}
/*
* Ovm won't support any system. So we have to choose a partner cluster in the same pod to start domain router for us
*/
private HypervisorType getAClusterToStartDomainRouterForOvm(long podId) {solution:
instead of detecting in a same pod, detect hypervisor type in a data center.