nvazquez opened a new pull request #3365: KVM: DPDK live migrations
URL: https://github.com/apache/cloudstack/pull/3365
 
 
   ## Description
   This feature allows administrators to perform live migrations on DPDK 
enabled VMs between DPDK enabled hosts in the same cluster.
   
   A DPDK enabled host must be configured to enable the CloudStack DPDK 
support. Properties on agent.properties must be populated as:
   - openvswitch.dpdk.enabled=true
   - openvswitch.dpdk.ovs.path=<OVS_PATH>
   - network.bridge.type=openvswitch
   - libvirt.vif.driver=com.cloud.hypervisor.kvm.resource.OvsVifDriver
   
   Each time a CloudStack agent on a KVM host starts a connection to its 
management server, it sends a comma-separated list of capabilities available on 
the host, such as: 'hvm', 'snapshot'. The management server persists the 
information received from the agent on database ('capabilities' column on 
'hosts' table)
   
   - When the property 'openvswitch.dpdk.enabled' = true, the 'dpdk' capability 
is included in the list of capabilities sent to the management server.
   
   - When the property 'openvswitch.dpdk.enabled' = false, the list of 
capabilities sent to the management server does not inclide the 'dpdk' 
capability.
   
   Please note that agent restart is required after any property from 
agent.properties file is changed. Also having the dpdk capability, the hosts 
will be able and will host VMs without the dpdk configuration. In this case, 
openvswitch ports without DPDK support are created, just like for system VMs.
   
   The management server is enhanced to determinate if a VM is a DPDK enabled 
VM when:
   - The VM type is 'User'
   - The VM details or service offering details contain additional 
configurations with the name:
      - 'dpdk-hugepages'
      - 'dpdk-numa'
   - The KVM host on which the VM is running contains the 'dpdk' capability.
   
   ### API changes
   
   The 'findSuitableHostsForMigration' API is enhanced to support DPDK enabled 
VMs.
   - When the VM is a DPDK enabled VM then only DPDK enabled hosts must be 
suitable for migration. Suitable hosts must be only the ones with the 'dpdk' 
capability as part of its capabilities.
   
   The 'migrateVirtualMachine' API method is extended to support DPDK enabled 
VMs live migrations:
   - When the VM to live migrate is not a DPDK enabled VM, the logic remains 
unchanged.
   - When the VM to live migrate is a DPDK enabled VM, it can be live migrated 
between two hosts when:
      - The KVM source host is a DPDK enabled host (the 'dpdk' capability is 
part of its capabilities)
      - The KVM destination host is a DPDK enabled host on the same cluster as 
the source host
      - If the destination host is not a DPDK enabled host, then the migration 
must fail with a descriptive message.
      - Before attempting the live migration, the destination host must be 
prepared for the migration:
         - A new DPDK port must be created for each interface of the VM
      - Before attempting the live migration, the source host must:
         - Obtain the VM XML domain as a copy of the current XML domain
         - Replace the XML parts, referencing the new DPDK ports on the 
destination host for each interface
      - After the migration is successful, the VM interface DPDK ports on the 
source host must be removed.
      - In case of migration failure, the DPDK ports created on the destination 
hosts are cleaned up.
   
   ## Types of changes
   - [ ] Breaking change (fix or feature that would cause existing 
functionality to change)
   - [x] New feature (non-breaking change which adds functionality)
   - [ ] Bug fix (non-breaking change which fixes an issue)
   - [ ] Enhancement (improves an existing feature and functionality)
   - [ ] Cleanup (Code refactoring and cleanup, that may add test cases)
   
   ## Screenshots (if appropriate):
   
   ## How Has This Been Tested?
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to