Bug Reference

https://issues.apache.org/jira/browse/CLOUDSTACK-6106 

Branch

4.4, Master

Introduction

Purpose

This is functional specification for Implementing Support of VPC on Hyper-V

References

Document History

Glossary

Entity - tier/private gateway/public vlan range

Feature Specifications

Currently VPC support is already available for Xen, VMware, KVM. In 4.3 Hyper-V Hypervisor support is added to cloudstack. This feature is to support VPC on Hyper-V hypervisor.
In the current implementation of VPC the following features are supported.

  • Management of Tiers/networks
  • New Public IP ranges (tagged/untagged)
  • Private Gateway.

All the above functionality will be supported for VPC VR running on Hyper-V.

Test Guidelines

Functional
    • Only max of 7 vpc Entities are supported because Hyper-V supports only 8 virtual network adapters to VM (http://technet.microsoft.com/en-us/library/jj680093.aspx)
    • VPC VR will be created with 8 nics up front.
    • when VPC is created successfully, vpc vr should be created in Hyper-v and one nic will be configured with control ip and second nic will be configured with public ip.
    • when new tier is created, a nic will be configured with the network vlan id and associated eth device will be configured.
    • when a tier is deleted associated nic will be un configured and associated eth device will be configured to be down state.
    • when new private gateway is created, a nic will be configured with the network vlan id and associated eth device will be configured.
    • when a private gateway is deleted associated nic will be un configured and associated eth device will be configured to be down state.
    • when public ip is acquired and configured from a new vlan range,  a nic will be configured with the network vlan id and associated eth device will be configured.
    • when last public ip from a vlan range is released associated nic will be un configured and associated eth device will be configured to be down state.
    • When new entity is created and fails to configure the virtual nic, then "Fail to hot plug Nic" error will be shown
    • When a tier/private gateway has to be created, if there is an error while modifying the VPC VR Nic, then the command will be failed and database changes will be roll-backed.
    • When a tier/private gateway got created successfully, then the vlan specified by the CS will be assigned on the NIC and internally associated eth device will be configured and will be in "UP" state.
    • When a tier/private gateway got removed successfully, then vlan will be removed on the VR NIC and associated eth device will be configured to  "down" state.
    • Add Vm to other tiers in the VPC will work if the VM is in stopped state and max to  8 tiers due to Hyper-V Virtual Network Adapter limitation

Negative
    • When entity limit reaches 7 and user tries to create any entity, plugnic command will be failed with plugnic failure exception message to add vpc entity and reason will be logged "Plug Nic failed for the vm as it has reached max limit" 

Support-ability Characteristics

Logs can be looked up at the following location

    • Management server logs for VPC commands will be logged in management-server.log and vmops.log(dev setup). All the requests forwarded to the Hyper-V agent can also be seen here.
    • The Hyper-V agent logs can be seen in windows event viewer on the respective hosts. The logs can be filtered by source "CloudStack Hyper-V Agent".
    • Hyper-V specific logs can be viewed in the event viewer under "Application and Services Logs" >> Microsoft >> Windows >> "Hyper-V-VMMS".
    • Vpc manager will log the vpc entities management in the management server.
    • ModifyVmNic agent command operations log will be present in management server log and in hyperv agent log when vpc entities were managed.
    • PlugNic/UnplugNic commands operations log will be present in management server log and in hyperv agent log when vpc entities were managed. 

Supported Hypervisor

This feature is implemented for Windows Server 2012 R2 and Hyper-V 2012 R2 (Core).

Use cases

use cases listed in Inter-VLAN Routing 

Architecture and Design description

When new Tier/new public vlan range/new Private gateway is added to VPC, a new nic will be Hot-Plugged to the VPC VR and it will be configured accordingly.

There is a limitation imposed by hyper-v. Hyperv cannot support Hot-Nic plug to the vpc vr and at max only 8 virtual network adapters can be added to vr. ( http://technet.microsoft.com/en-us/library/jj680093.aspx)

So to overcome this limitation imposed by Hyper-V, VPC VR will be deployed with 8 enlightened nics.

 

How the deployment for VPC will work when running in Hyper-V :

When the VPC is created, vpc vr will be created on Hyper-V with 8 enlightened nics.

First nic will be configure with control IP. Second Nic will be configured with public ip.

There will be only 6 free nics available on the vpc vr.

These 6 nics can be used among new vpc entities created. For each new vpc entity, one nic will be used. So at max only 6 vpc entities can be created.

When a new tier/new publicvlan/new private gateway is created on VPC, find the free extra nic created and use this nic to configure the associated configuration.

When any tier/public vlan range(last ip)/private gateway is deleted in VPC, then the nic configurations will be removed inside the VR and on the VM level.

When all the extra nics are configured/used and user/admin attempts to create any new vpc entity then  plugnic command will be failed with plugnic failure exception message to add vpc entity and reason will be logged "Plug Nic failed for the vm as it has reached max limit".

 

Web Services APIs

No new web apis were added

UI flow

No change in the UI Flow

IP Clearance

  NA 

Appendix

Appendix A:

Appendix B: