Περιγράφει τον τρόπο εγκατάστασης και ενεργοποίησης του εικονικού 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 στο SASE Orchestrator. Το εικονικό Edge έχει διαμορφωθεί με τις ρυθμίσεις διαμόρφωσης του αρχείου Cloud-init. Αυτό θα διαμορφώσει τις διασυνδέσεις καθώς ενεργοποιείται το εικονικό Edge. Μόλις συνδεθεί το εικονικό Edge, θα ενεργοποιηθεί με το SASE Orchestrator χρησιμοποιώντας το κλειδί ενεργοποίησης. Η διεύθυνση IP του SASE Orchestrator και το κλειδί ενεργοποίησης έχουν οριστεί στο αρχείο Cloud-init.