cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Toshiaki Hatano" <toshiaki.hat...@verio.net>
Subject Re: Review Request 12623: CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor
Date Wed, 21 Aug 2013 02:51:22 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/12623/
-----------------------------------------------------------

(Updated Aug. 21, 2013, 2:51 a.m.)


Review request for cloudstack, Alena Prokharchyk, Chiradeep Vittal, Murali Reddy, Hugo Trippaers,
and Sheng Yang.


Changes
-------

Rebase to master


Bugs: https://issues.apache.org/jira/browse/CLOUDSTACK-2328


Repository: cloudstack-git


Description
-------

CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor

Initial patch for VXLAN support.
Fully functional, hopefully, for GuestNetwork - AdvancedZone.

Patch Note:
 in cloudstack-server
- Add isolation method VXLAN
- Add VxlanGuestNetworkGuru as plugin for VXLAN isolation
- Modify NetworkServiceImpl to handle extended vNet range for VXLAN isolation
- Add VXLAN isolation option in zoneWizard UI

 in cloudstack-agent (kvm)
- Add modifyvxlan.sh script that handle bridge/vxlan interface manipulation script
-- Usage is exactly same to modifyvlan.sh
- BridgeVifDriver will call modifyvxlan.sh instead of modifyvlan.sh when VXLAN is used for
isolation

Database changes:
- No change in database structure.
- VXLAN isolation uses same tables that VLAN uses to store vNet allocation status.

Known Issue:
- Some resource still says 'VLAN' in log even if VXLAN is used
- in UI, "Network - GuestNetworks" dosen't display VNI
-- VLAN ID field displays "N/A"


Diffs (updated)
-----

  api/src/com/cloud/network/Networks.java f8166c6 
  api/src/com/cloud/network/PhysicalNetwork.java f6cb1a6 
  client/pom.xml 1afe5b8 
  client/tomcatconf/componentContext.xml.in f36d0ee 
  plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java 195cf40

  plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
a156ae6 
  plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/OvsVifDriver.java 7038d7e

  plugins/network-elements/vxlan/pom.xml PRE-CREATION 
  plugins/network-elements/vxlan/src/com/cloud/network/guru/VxlanGuestNetworkGuru.java PRE-CREATION

  plugins/network-elements/vxlan/test/com/cloud/network/guru/VxlanGuestNetworkGuruTest.java
PRE-CREATION 
  plugins/pom.xml 0812642 
  scripts/vm/network/vnet/modifyvlan.sh 8ed3905 
  scripts/vm/network/vnet/modifyvxlan.sh PRE-CREATION 
  server/src/com/cloud/network/NetworkManagerImpl.java c683809 
  server/src/com/cloud/network/NetworkServiceImpl.java eadd7bc 

Diff: https://reviews.apache.org/r/12623/diff/


Testing
-------

#) Test set up
- Components
  - 1x management server
  - 1x nfs storage
  - 3x Linux KVM host
  -- CentOS 6.4 based
  -- Replace kernel by version 3.8.13, VXLAN kernel module built as loadable module
  -- Replace iproute2 by version iproute2-ss130430
  -- BridgeVifDriver (Default)
1. create advanced zone from zone wizard without security group option
2. select hypervisor: KVM
3. assign Guest network to separated physical network, isolated by VXLAN
   specify bridge name (traffic label) for Guest network, this bridge should have IPv4 address
(global/private both are OK).
4. assign Guest vNet range 10000-20000
5. other parameter are normal
6. add 2 more hosts into same zone/pod/cluster after zone wizard is finished

#) Test case 1: start/stop VR
1. Create network offering, same configuration as DefaultIsolatedNetworkOfferingWithSourceNatService
but persistent
2. Create network with network offering which is created in step 0
3. Confirm VR is started and bridge/vxlan device created on host
4. Delete network which is created in step 1
5. Confirm VR is deleted and bridge/vxlan device deleted on host

#) Test case 2: start/stop an instance (VR is on same host)
1. Add an instance from UI, create network during wizard.
2. Confirm VM and VR are on the same host
3. Confirm it's pingable from VM to VR
4. Confirm it's pingable from VM to public network (after opening Egress rule)
5. Destroy instance
6. Confirm bridge/vxlan device is still on the host
7. Delete network after the VM is expunged
8. Confirm VR are deleted and bridge/vxlan device deleted on the host

#) Test case 3: start/stop an instance (VR is on different host)
1. Add an instance from UI, create network during wizard.
2. Confirm VM and VR are on the different host
3. Confirm it's pingable from VM to VR
4. Confirm it's pingable from VM to public network (after opening Egress rule)
5. Destroy instance, wait for expunging, then delete network
6. Confirm VM and VR are deleted and bridge/vxlan device deleted on both host

#) Test case 4: migrate instance
1. Add an instance from UI, create network during wizard.
2. Open Egress rule on the network
3. Migrate VM from host (A) to empty host (B)
4. Confirm it's pingable from VM to public network
5. Migrate VM from host (B) to host (C) that has VR
6. Confirm it's pingable from VM to public network
7. Confirm bridge/vxlan device deleted on the host (B)
8. Migrate VM from (C) to empty host (A)
9. Confirm it's pingable from VM to public network

#) Test case 5: plug/unplug Nic
1. Add an instance from UI, create network during wizard.
2. Create additional network
3. Add NIC for network created in step 2 to the VM
4. Confirm it's pingable from VM to public network by using both side of NICs
5. Delete NIC created in step 3
6. Confirm bridge/vxlan device deleted on the host


Thanks,

Toshiaki Hatano


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message