Περιγράφει τον τρόπο εγκατάστασης και ενεργοποίησης του εικονικού Edge στο KVM με χρήση ενός αρχείου διαμόρφωσης cloud-init.

Εάν αποφασίσετε να χρησιμοποιήσετε τη λειτουργία SR-IOV, ενεργοποιήστε το SR-IOV στο KVM. Για τα βήματα, δείτε Ενεργοποίηση SR-IOV σε KVM.
Σημείωση: Η λειτουργία SR-IOV δεν υποστηρίζεται, εάν το εικονικό Edge KVM αναπτυχθεί με τοπολογία υψηλής διαθεσιμότητας. Για αναπτύξεις υψηλής διαθεσιμότητας, βεβαιωθείτε ότι το SR-IOV δεν είναι ενεργοποιημένο για το συγκεκριμένο ζεύγος KVM Edge.
Για εκτέλεση του εικονικού Edge VMware στο KVM χρησιμοποιώντας το libvirt:
  1. Χρησιμοποιήστε το gunzip για να εξαγάγετε το αρχείο qcow2 στη θέση του ειδώλου (για παράδειγμα, /var/lib/libvirt/images).
  2. Δημιουργήστε τις ομάδες δικτύου που πρόκειται να χρησιμοποιήσετε για τη συσκευή, χρησιμοποιώντας SR-IOV και OpenVswitch.

    Χρήση SR-IOV

    Ακολουθεί ένα δείγμα προτύπου διασύνδεσης δικτύου ειδικά για κάρτες Intel X710/XL710 NIC που χρησιμοποιούν SR-IOV.

        <interface type='hostdev' managed='yes'>
            <mac address='52:54:00:79:19:3d'/>
            <driver name='vfio'/>
            <source>
                <address type='pci' domain='0x0000' bus='0x83' slot='0x0a' function='0x0'/>
            </source>
            <model type='virtio'/>
        </interface>
    

    Χρήση OpenVSwitch

    <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>             
             
  3. Αποθηκεύστε το αρχείο XML τομέα που ορίζει την εικονική μηχανή (για παράδειγμα, vedge1.xml που δημιουργήθηκε στο βήμα 2).
  4. Εκκινήστε την εικονική μηχανή εκτελώντας τα ακόλουθα βήματα:
    1. Δημιουργήστε την εικονική μηχανή.
      virsh define vedge1.xml
    2. Ξεκινήστε την εικονική μηχανή.
      virsh start vedge1
    Σημείωση: vedge1 είναι το όνομα της εικονικής μηχανής που ορίζεται στο στοιχείο <name> του αρχείου XML τομέα. Αντικαταστήστε το vedge1 με το όνομα που καθορίζετε στο στοιχείο <name>.
  5. Εάν χρησιμοποιείτε τη λειτουργία SR-IOV, μετά την εκκίνηση της εικονικής μηχανής, ορίστε τα εξής στις εικονικές λειτουργίες (VF) που χρησιμοποιούνται:
    1. Απενεργοποιήστε τον έλεγχο πλαστογράφησης.
      ip link set eth1 vf 0 spoofchk off
    2. Ενεργοποιήστε τη λειτουργία αξιοπιστίας.
      ip link set dev eth1 vf 0 trust on
    3. Ορίστε το VLAN, εάν απαιτείται.
      ip link set eth1 vf 0 vlan 3500
    Σημείωση: Το βήμα διαμόρφωσης των εικονικών λειτουργιών δεν ισχύει για τη λειτουργία OpenVSwitch (OVS).
  6. Κονσόλα στην εικονική μηχανή.
    virsh list
    Id Name State
    ----------------------------------------------------
    25 test_vcg running
    velocloud@KVMperf2$ virsh console 25
    Connected to domain test_vcg
    Escape character is ^]

Το Cloud-init περιλαμβάνει ήδη το κλειδί ενεργοποίησης, το οποίο δημιουργήθηκε κατά τη δημιουργία ενός νέου εικονικού Edge στο SD-WAN Orchestrator. Το εικονικό Edge έχει διαμορφωθεί με τις ρυθμίσεις διαμόρφωσης του αρχείου Cloud-init. Αυτό θα διαμορφώσει τις διασυνδέσεις καθώς ενεργοποιείται το εικονικό Edge. Μόλις συνδεθεί το εικονικό Edge, θα ενεργοποιηθεί με το SD-WAN Orchestrator χρησιμοποιώντας το κλειδί ενεργοποίησης. Η διεύθυνση IP του SD-WAN Orchestrator και το κλειδί ενεργοποίησης έχουν οριστεί στο αρχείο Cloud-init.