Delen via


Een virtuele Oracle Linux VM voor Azure voorbereiden

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

In dit artikel wordt ervan uitgegaan dat u al een Oracle Linux-besturingssysteem (OS) hebt geïnstalleerd op een virtuele harde schijf (VHD). Er bestaan meerdere hulpprogramma's om VHD-bestanden te maken. Een voorbeeld hiervan is een virtualisatieoplossing zoals Hyper-V. Zie De Hyper-V-rol installeren en een virtuele machine (VM) configureren voor instructies.

Oracle Linux-installatieopmerkingen

  • Zie algemene linux-installatieopmerkingen voor meer tips over het voorbereiden van Linux voor Azure.
  • Hyper-V en ondersteuning voor Azure Oracle Linux met de Unbreakable Enterprise Kernel (UEK) of de Red Hat Compatibele Kernel.
  • De UEK2 van Oracle wordt niet ondersteund op Hyper-V en Azure omdat deze niet de vereiste stuurprogramma's bevat.
  • De VHDX-indeling wordt niet ondersteund in Azure, alleen vaste VHD. U kunt de schijf converteren naar VHD-indeling met Hyper-V-beheer of de convert-vhd cmdlet.
  • Kernelondersteuning voor het koppelen van door de gebruiker gedefinieerde functies (UDF) bestandssystemen is vereist. Bij het eerste opstarten in Azure wordt de inrichtingsconfiguratie doorgegeven aan de Virtuele Linux-machine via UDF-geformatteerde media die aan de gast zijn gekoppeld. De Azure Linux-agent moet het UDF-bestandssysteem kunnen koppelen om de configuratie ervan te lezen en de VIRTUELE machine in te richten.
  • Wanneer u het Linux-systeem installeert, wordt u aangeraden standaardpartities te gebruiken in plaats van LVM (Logical Volume Manager). Dit is vaak de standaardinstelling voor veel installaties. Deze standaardpartities voorkomen conflicten met de LVM-naam met gekloonde VM's, met name als een besturingssysteemschijf ooit aan een andere VM moet worden gekoppeld voor probleemoplossing. LVM of RAID kan ook worden gebruikt op gegevensschijven.
  • Linux-kernelversies ouder dan 2.6.37 bieden geen ondersteuning voor NUMA op Hyper-V met grotere VM-grootten. Dit probleem is voornamelijk van invloed op oudere distributies die gebruikmaken van de upstream Red Hat 2.6.32-kernel en is opgelost in Oracle Linux 6.6 en hoger.
  • Configureer geen wisselpartitie op de besturingssysteemschijf.
  • Alle VHD's in Azure moeten een virtuele grootte hebben die is afgestemd op 1 MB. Wanneer u converteert van een onbewerkte schijf naar VHD, moet u ervoor zorgen dat de grootte van de onbewerkte schijf vóór de conversie een veelvoud van 1 MB is. Zie de installatieopmerkingen voor Linux voor meer informatie.
  • Zorg ervoor dat de Addons opslagplaats is ingeschakeld. Bewerk het bestand /etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) of /etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7). Wijzig de regel enabled=0enabled=1 onder [ol6_addons] of [ol7_addons] in dit bestand.

Oracle Linux 6.X

Belangrijk

Houd er rekening mee dat Oracle Linux 6.x al aan het einde van de levensduur is. Oracle Linux versie 6.10 biedt uitgebreide ondersteuning voor levenscyclus, die eindigt op juli 2024.

U moet specifieke configuratiestappen uitvoeren in het besturingssysteem om de VM uit te voeren in Azure.

  1. Selecteer de VIRTUELE machine in het middelste deelvenster van Hyper-V-beheer.

  2. Selecteer Verbinding maken om het venster voor de virtuele machine te openen.

  3. Verwijderen NetworkManager:

    sudo rpm -e --nodeps NetworkManager
    

    Notitie

    Als het pakket nog niet is geïnstalleerd, mislukt deze opdracht met een foutbericht. Dit bericht wordt verwacht.

  4. Maak een bestand met de naam netwerk in de /etc/sysconfig/ map met de volgende tekst:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Maak een bestand met de naam ifcfg-eth0 in de /etc/sysconfig/network-scripts/ map met de volgende tekst:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Wijzig udev-regels om te voorkomen dat statische regels voor de Ethernet-interfaces worden gegenereerd. Deze regels kunnen problemen veroorzaken wanneer u een VIRTUELE machine kloont in Azure of Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
    
  7. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo chkconfig network on
    
  8. python-pyasn1 installeren:

    sudo yum install python-pyasn1
    
  9. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent /boot/grub/menu.lst u in een teksteditor en zorgt u ervoor dat de kernel de volgende parameters bevat:

    console=ttyS0 earlyprintk=ttyS0
    

    Deze instelling zorgt ervoor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen.

    Naast de voorgaande stappen raden we u aan de volgende parameters te verwijderen :

    rhgb quiet crashkernel=auto
    

    Grafisch en stil opstarten is niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden.

    De crashkernel optie kan desgewenst worden geconfigureerd. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  10. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling.

  11. Installeer de Azure Linux-agent door de volgende opdracht uit te voeren. De nieuwste versie is 2.0.15.

    sudo yum install WALinuxAgent
    

    Als u het WALinuxAgent pakket installeert, worden de NetworkManager en NetworkManager-gnome pakketten verwijderd als ze nog niet zijn verwijderd, zoals beschreven in stap 2.

  12. Maak geen wisselruimte op de besturingssysteemschijf.

    De Azure Linux-agent kan automatisch wisselruimte configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine na inrichting in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd wanneer de vm ongedaan wordt gemaakt. Nadat u de Azure Linux-agent hebt geïnstalleerd (zie de vorige stap), wijzigt u de volgende parameters op /etc/waagent.conf de juiste manier:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  13. Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:

    sudo waagent -force -deprovision
    sudo export HISTSIZE=0
    sudo logout
    
  14. Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.


Oracle Linux 7.0 en hoger

Volg de stappen in de volgende secties als u Oracle Linux 7.0 of hoger gebruikt.

Wijzigingen in Oracle Linux 7

Het voorbereiden van een Oracle Linux 7-VM voor Azure is vergelijkbaar met Oracle Linux 6, maar er zijn verschillende verschillen die het vermelden waard zijn:

  • ondersteuning voor Azure Oracle Linux met de Unbreakable Enterprise Kernel (UEK) of de Red Hat Compatibele Kernel. We raden u aan Oracle Linux te gebruiken met UEK.
  • Het NetworkManager pakket conflicteert niet meer met de Azure Linux-agent. Dit pakket is standaard geïnstalleerd en we raden u aan het pakket niet te verwijderen.
  • GRUB2 wordt nu gebruikt als de standaard bootloader, dus de procedure voor het bewerken van kernelparameters is gewijzigd. (Zie de sectie Configuratiestappen.)
  • XFS is nu het standaardbestandssysteem. Het ext4-bestandssysteem kan nog steeds worden gebruikt als u wilt.

Configuratiestappen

  1. Selecteer de VIRTUELE machine in Hyper-V-beheer.

  2. Selecteer Verbinding maken om een consolevenster voor de virtuele machine te openen.

  3. Maak een bestand met de naam netwerk in de /etc/sysconfig/ map met de volgende tekst:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Maak een bestand met de naam ifcfg-eth0 in de /etc/sysconfig/network-scripts/ map met de volgende tekst:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  5. Wijzig udev-regels om te voorkomen dat statische regels voor de Ethernet-interfaces worden gegenereerd. Deze regels kunnen problemen veroorzaken wanneer u een VIRTUELE machine kloont in Azure of Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo chkconfig network on
    
  7. Installeer het python-pyasn1 pakket:

    sudo yum install python3-pyasn1
    
  8. Wis de huidige yum-metagegevens en installeer eventuele updates:

    sudo yum clean all
    sudo yum -y update
    
  9. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent /etc/default/grub u deze in een teksteditor en bewerkt u de GRUB_CMDLINE_LINUX parameter. Voorbeeld:

    GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    Deze wijziging zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Ook worden de naamconventies voor netwerkinterfacekaarten in Oracle Linux 7 met de UEK uitgeschakeld. U wordt ook aangeraden de volgende parameters te verwijderen :

       rhgb quiet crashkernel=auto
    

    Grafisch en stil opstarten is niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden.

    De crashkernel optie kan desgewenst worden geconfigureerd. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  10. Nadat u klaar bent met bewerken /etc/default/grub, bouwt u de grub-configuratie opnieuw op:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  11. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling.

  12. Installeer de Azure Linux-agent en afhankelijkheden:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. Installeren cloud-init om de inrichting af te handelen:

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. Configureren waagent voor cloud-init:

    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
    
    sudo echo "Adding mounts and disk_setup to init stage"
    sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg
    sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg
    sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg
    sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
    
    echo "Allow only Azure datasource, disable fetching network setting via IMDS"
    
    sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF
    datasource_list: [ Azure ]
    datasource:
        Azure:
            apply_network_config: False
    EOF
    
    
    if [[ -f /mnt/resource/swapfile ]]; then
    echo Removing swapfile - Oracle Linux uses a swapfile by default
    swapoff /mnt/swapfile
    rm /mnt/swapfile -f
    fi
    
    echo "Add console log file"
    cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF
    
    # This tells cloud-init to redirect its stdout and stderr to
    # 'tee -a /var/log/cloud-init-output.log' so the user can see output
    # there without needing to look on the console.
    output: {all: '| tee -a /var/log/cloud-init-output.log'}
    EOF
    
  15. Configuratie wisselen:

    1. Maak geen wisselruimte op de besturingssysteemschijf.

      Voorheen werd de Azure Linux-agent automatisch gebruikt om wisselruimte te configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine nadat de VIRTUELE machine is ingericht in Azure. cloud-init Deze stap wordt nu echter verwerkt. U moet de Linux-agent niet gebruiken om de resourceschijf te formatteren om het wisselbestand te maken. Wijzig de volgende parameters op /etc/waagent.conf de juiste manier:

      sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf
      sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
      
    2. Als u de wissel wilt koppelen, opmaken en maken, kunt u het volgende doen:

      • Geef deze code door als een cloud-init configuratie telkens wanneer u een virtuele machine maakt.
      • Gebruik een cloud-init instructie die in de installatiekopieën is gebakken om deze stap uit te voeren telkens wanneer de virtuele machine wordt gemaakt:
      echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
      cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF
      #cloud-config
      # Generated by Azure cloud image build
      disk_setup:
        ephemeral0:
          table_type: mbr
          layout: [66, [33, 82]]
          overwrite: True
      fs_setup:
        - device: ephemeral0.1
          filesystem: ext4
        - device: ephemeral0.2
          filesystem: swap
      mounts:
        - ["ephemeral0.1", "/mnt/resource"]
        - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
      EOF
      
  16. Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:

    sudo cloud-init clean
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    

    Notitie

    Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.

  17. Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.

U kunt nu uw Oracle Linux.vhd gebruiken om nieuwe VM's te maken in Azure. Als dit de eerste keer is dat u het VHD-bestand uploadt naar Azure, raadpleegt u Een Virtuele Linux-machine maken vanaf een aangepaste schijf.