These steps explain how to run VeloCloud Virtual Edge on KVM using the libvirt. This deployment was tested in Ubuntu 14.04LTS.

To run VeloCloud Virtual Edge on KVM using the libvirt:

  1. Use gunzip to extract the qcow2 file to the image location (for example, /var/lib/libvirt/images).
  2. Create the Network pools that you are going to use for the device. Provided below sample on pool using SR-IOV and pool using OpenVswitch.

SR-IOV Sample

<network> 
  <name>sriovpool</name> <!--This is the name of the file you created--> 
  <forward mode='hostdev' managed='yes'>  
    <pf dev='eth1'/> <!--Use the netdev name of your SR-IOV devices PF here-->  
  </forward > 
</network>

OpenVSwitch Sample

<network> 
 <name>passthrough</name> 
 <model type='virtio'/> 
 <forward mode="bridge"/> 
 <bridge name="passthrough"/> 
 <virtualport type='openvswitch'> 
 </virtualport> 
 <vlan trunk='yes'> 
 <tag id='33' nativeMode='untagged'/> 
 <tag id='200'/> 
 <tag id='201'/> 
 <tag id='202'/> 
 </vlan> 
 </network> 
 Bridge 
 <network> 
 <name>passthrough</name> 
 <model type='virtio'/> 
 <forward mode="bridge"/> 
 </network> 
<domain type='kvm'> 
 <name>vedge1</name> 
 <memory unit='KiB'>4194304</memory> 
 <currentMemory unit='KiB'>4194304</currentMemory> 
 <vcpu placement='static'>2</vcpu> 
 <resource> 
 <partition>/machine</partition> 
 </resource> 
 <os> 
 <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type> 
 <boot dev='hd'/> 
 </os> 
 <features> 
 <acpi/> 
 <apic/> 
 <pae/> 
 </features> 
<!--
Set the CPU mode to host model to leverage all the available features on the host CPU 
-->
 <cpu mode='host-model'> 
 <model fallback='allow'/> 
 </cpu> 
 <clock offset='utc'/> 
 <on_poweroff>destroy</on_poweroff> 
 <on_reboot>restart</on_reboot> 
 <on_crash>restart</on_crash> 
 <devices> 
 <emulator>/usr/bin/kvm-spice</emulator> 
 <!-- 
 Below is the location of the qcow2 disk image 
 --> 
 <disk type='file' device='disk'> 
 <driver name='qemu' type='qcow2'/> 
 <source file='/var/lib/libvirt/images/edge-VC_KVM_GUEST-x86_64-2.3.0-18- R23-20161114-GA-updatable-ext4.qcow2'/> 
 <target dev='sda' bus='sata'/> 
 <address type='drive' controller='0' bus='0' target='0' unit='0'/> 
 </disk> 
 <!-- 
 If using cloud-init to boot up virtual edge, attach the 2nd disk as CD-ROM 
 --> 
 <disk type='file' device='cdrom'> 
 <driver name='qemu' type='raw'/> 
 <source file='/home/vcadmin/cloud-init/vedge1/seed.iso'/> 
 <target dev='sdb' bus='sata'/> 
 <readonly/> 
 <address type='drive' controller='1' bus='0' target='0' unit='0'/> 
 </disk> 
 <controller type='usb' index='0'> 
 <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> 
 </controller> 
 <controller type='pci' index='0' model='pci-root'/> 
 <controller type='sata' index='0'> 
 <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> 
 </controller> 
 <controller type='ide' index='0'> 
 <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> 
 </controller> 
 <!-- 
 The first two interfaces are for the default L2 interfaces, NOTE VLAN support just for SR-IOV and OpenvSwitch  
 --> 
 < interfacetype='network'>  
 < modeltype='virtio'/>  
 < sourcenetwork='LAN1'/>  
 < vlan>< tagid='#hole2_vlan#'/></ vlan>  
 < aliasname=LAN1/>  
 < addresstype='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/>  
 </ interface>  
 < interfacetype='network'>  
 < modeltype='virtio'/>  
 < sourcenetwork=LAN2/>  
 < vlan>< tagid='#LAN2_VLAN#'/></ vlan>  
 < aliasname='hostdev1'/>  
 < addresstype='pci' domain='0x0000' bus=' 0x00' slot='0x13' function='0x0'/>  
 </ interface>  
<!--
 The next two interfaces are for the default L3 interfaces. Note that additional 6 routed interfaces are supported for a combination of 8 interfaces total  
 --> 
 < interfacetype='network'>  
 < modeltype='virtio'/>  
 < sourcenetwork=WAN1/>  
 < vlan>< tagid='#hole2_vlan#'/></ vlan>  
 < aliasname=LAN1/>  
 < addresstype='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/>  
 </ interface>  
 < interfacetype='network'>  
 < modeltype='virtio'/>  
 < source network=LAN2/>  
 < vlan>< tag id='#LAN2_VLAN#'/></ vlan>  
 < aliasname='hostdev1'/>  
 < addresstype='pci' domain='0x0000' bus='0x00' slot='0x13' function='0x0'/>  
 </ interface>  
 <serial type='pty'> 
 <target port='0'/> 
 </serial> 
 <console type='pty'> 
 <target type='serial' port='0'/> 
 </console> 
 <input type='mouse' bus='ps2'/> 
 <input type='keyboard' bus='ps2'/> 
 <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'> 
 <listen type='address' address='127.0.0.1'/> 
 </graphics> 
 <sound model='ich6'> 
 <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> 
 </sound> 
 <video> 
 <model type='cirrus' vram='9216' heads='1'/> 
 <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> 
 </video> 
 <memballoon model='virtio'> 
 <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> 
 </memballoon> 
 </devices> 
 </domain>             
         

Instructions

  1. Save the above domain XML file (for example, vedge1.xml).
  2. Run the following command to create the VM:
    virsh define vedge1.xml
  3. Run the following command to start the VM:
    virsh start vedge1
    Note: vedge1 is the name of the VM defined in the <name> element of the domain XML file. Replace vedge1 with the name you specify in the <name> element.

The Cloud-init already includes the activation key, which was generated while creating a new Virtual Edge on the VCO. The Virtual Edge is configured with the config settings from the Cloud-init file. This will configure the interfaces as the Virtual Edge is powered up. Once the Virtual Edge is online, it will activate with the VCO using the activation key. The VCO IP address and the activation key have been defined in the Cloud-init file.