Dela via


Förbered en virtuell Oracle Linux-dator för Azure

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

Den här artikeln förutsätter att du redan har installerat ett Oracle Linux-operativsystem (OS) på en virtuell hårddisk (VHD). Det finns flera verktyg för att skapa VHD-filer. Ett exempel är en virtualiseringslösning som Hyper-V. Anvisningar finns i Installera Hyper-V-rollen och konfigurera en virtuell dator (VM).

Installationsanmärkningar för Oracle Linux

  • Fler tips om hur du förbereder Linux för Azure finns i Allmänna linux-installationsanteckningar.
  • Hyper-V och Azure stöder Oracle Linux med antingen UEK (Unbreakable Enterprise Kernel) eller Red Hat Compatible Kernel.
  • Oracles UEK2 stöds inte på Hyper-V och Azure eftersom det inte innehåller de drivrutiner som krävs.
  • VHDX-formatet stöds inte i Azure, endast fast virtuell hårddisk. Du kan konvertera disken till VHD-format med hjälp av Hyper-V Manager eller cmdleten convert-vhd .
  • Kernelstöd för montering av användardefinierade funktionsfilsystem (UDF) krävs. Vid första starten på Azure skickas etableringskonfigurationen till den virtuella Linux-datorn via UDF-formaterade medier som är kopplade till gästen. Azure Linux-agenten måste kunna montera UDF-filsystemet för att kunna läsa dess konfiguration och etablera den virtuella datorn.
  • När du installerar Linux-systemet rekommenderar vi att du använder standardpartitioner i stället för Logical Volume Manager (LVM), vilket ofta är standard för många installationer. Dessa standardpartitioner undviker LVM-namnkonflikter med klonade virtuella datorer, särskilt om en OS-disk någonsin behöver anslutas till en annan virtuell dator för felsökning. LVM eller RAID kan också användas på datadiskar.
  • Tidigare versioner av Linux-kernel än 2.6.37 stöder inte NUMA på Hyper-V med större VM-storlekar. Det här problemet påverkar främst äldre distributioner som använder den överordnade Red Hat 2.6.32-kerneln och som har åtgärdats i Oracle Linux 6.6 och senare.
  • Konfigurera inte en växlingspartition på OS-disken.
  • Alla virtuella hårddiskar i Azure måste ha en virtuell storlek som är justerad till 1 MB. När du konverterar från en rådisk till en virtuell hårddisk måste du se till att den råa diskstorleken är en multipel på 1 MB före konverteringen. Mer information finns i Installationsanteckningar för Linux.
  • Kontrollera att lagringsplatsen Addons är aktiverad. Redigera filen /etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) eller /etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7). Ändra raden enabled=0 till enabled=1 under [ol6_addons] eller [ol7_addons] i den här filen.

Oracle Linux 6.X

Viktigt!

Kom ihåg att Oracle Linux 6.x redan är i slutet av livet. Oracle Linux version 6.10 har tillgänglig support för utökad livscykel, som slutar juli 2024.

Du måste utföra specifika konfigurationssteg i operativsystemet för att den virtuella datorn ska kunna köras i Azure.

  1. I mittenfönstret i Hyper-V Manager väljer du den virtuella datorn.

  2. Välj Anslut för att öppna fönstret för den virtuella datorn.

  3. Avinstallera NetworkManager:

    sudo rpm -e --nodeps NetworkManager
    

    Kommentar

    Om paketet inte redan är installerat misslyckas det här kommandot med ett felmeddelande. Det här meddelandet förväntas.

  4. Skapa en fil med namnet network i katalogen /etc/sysconfig/ som innehåller följande text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Skapa en fil med namnet ifcfg-eth0 i katalogen /etc/sysconfig/network-scripts/ som innehåller följande text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Ändra udev-regler för att undvika att generera statiska regler för Ethernet-gränssnitten. Dessa regler kan orsaka problem när du klonar en virtuell dator i Azure eller 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. Kontrollera att nätverkstjänsten startar vid starttiden:

    sudo chkconfig network on
    
  8. Installera python-pyasn1:

    sudo yum install python-pyasn1
    
  9. Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra det här steget öppnar /boot/grub/menu.lst du i en textredigerare och ser till att kerneln innehåller följande parametrar:

    console=ttyS0 earlyprintk=ttyS0
    

    Den här inställningen säkerställer att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem.

    Förutom föregående steg rekommenderar vi att du tar bort följande parametrar:

    rhgb quiet crashkernel=auto
    

    Grafisk och tyst start är inte användbart i en molnmiljö där du vill att alla loggar ska skickas till serieporten.

    Alternativet crashkernel kan lämnas konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.

  10. Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Den här inställningen är vanligtvis standardinställningen.

  11. Installera Azure Linux-agenten genom att köra följande kommando. Den senaste versionen är 2.0.15.

    sudo yum install WALinuxAgent
    

    När du installerar WALinuxAgent paketet tas paketen NetworkManager och NetworkManager-gnome bort om de inte redan har tagits bort, enligt beskrivningen i steg 2.

  12. Skapa inte växlingsutrymme på OS-disken.

    Azure Linux-agenten kan automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisken som är ansluten till den virtuella datorn efter etableringen i Azure. Den lokala resursdisken är en tillfällig disk och kan tömmas när den virtuella datorn avetableras. När du har installerat Azure Linux-agenten (se föregående steg) ändrar du följande parametrar på /etc/waagent.conf rätt sätt:

    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. Avetablera den virtuella datorn och förbered den för etablering i Azure:

    sudo waagent -force -deprovision
    sudo export HISTSIZE=0
    sudo logout
    
  14. Välj Åtgärden>stängs av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.


Oracle Linux 7.0 och senare

Följ stegen i nästa avsnitt om du använder Oracle Linux 7.0 eller senare.

Ändringar i Oracle Linux 7

Att förbereda en virtuell Oracle Linux 7-dator för Azure liknar Oracle Linux 6, men flera skillnader är värda att notera:

  • Azure stöder Oracle Linux med antingen UEK (Unbreakable Enterprise Kernel) eller Red Hat Compatible Kernel. Vi rekommenderar att du använder Oracle Linux med UEK.
  • Paketet NetworkManager står inte längre i konflikt med Azure Linux-agenten. Det här paketet installeras som standard och vi rekommenderar att du inte tar bort det.
  • GRUB2 används nu som standardstartläsare, så proceduren för att redigera kernelparametrar har ändrats. (Se avsnittet "Konfigurationssteg".)
  • XFS är nu standardfilsystemet. Ext4-filsystemet kan fortfarande användas om du vill.

Konfigurationssteg

  1. I Hyper-V Manager väljer du den virtuella datorn.

  2. Välj Anslut för att öppna ett konsolfönster för den virtuella datorn.

  3. Skapa en fil med namnet network i katalogen /etc/sysconfig/ som innehåller följande text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Skapa en fil med namnet ifcfg-eth0 i katalogen /etc/sysconfig/network-scripts/ som innehåller följande text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  5. Ändra udev-regler för att undvika att generera statiska regler för Ethernet-gränssnitten. Dessa regler kan orsaka problem när du klonar en virtuell dator i Azure eller Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Kontrollera att nätverkstjänsten startar vid starttiden:

    sudo chkconfig network on
    
  7. python-pyasn1 Installera paketet:

    sudo yum install python3-pyasn1
    
  8. Rensa aktuella yum-metadata och installera eventuella uppdateringar:

    sudo yum clean all
    sudo yum -y update
    
  9. Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra det här steget öppnar /etc/default/grub du i en textredigerare och redigerar parametern GRUB_CMDLINE_LINUX . Till exempel:

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

    Den här ändringen säkerställer också att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azure-supporten med felsökningsproblem. Den inaktiverar även namngivningskonventionerna för nätverkskort i Oracle Linux 7 med UEK. Vi rekommenderar också att du tar bort följande parametrar:

       rhgb quiet crashkernel=auto
    

    Grafisk och tyst start är inte användbart i en molnmiljö där du vill att alla loggar ska skickas till serieporten.

    Alternativet crashkernel kan lämnas konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.

  10. När du är klar med redigeringen /etc/default/grubåterskapar du grub-konfigurationen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  11. Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Den här inställningen är vanligtvis standardinställningen.

  12. Installera Azure Linux-agenten och beroenden:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. Installera cloud-init för att hantera etableringen:

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. Konfigurera waagent för 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. Växlingskonfiguration:

    1. Skapa inte växlingsutrymme på operativsystemdisken.

      Tidigare användes Azure Linux-agenten automatiskt för att konfigurera växlingsutrymme med hjälp av den lokala resursdisk som är ansluten till den virtuella datorn när den virtuella datorn har etablerats i Azure. cloud-init Men nu hanterar det här steget. Du får inte använda Linux-agenten för att formatera resursdisken för att skapa växlingsfilen. Ändra följande parametrar på /etc/waagent.conf lämpligt sätt:

      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. Om du vill montera, formatera och skapa växlingen kan du antingen:

      • Skicka in den här koden som en cloud-init konfiguration varje gång du skapar en virtuell dator.
      • Använd ett cloud-init direktiv som bakats in i avbildningen för att göra det här steget varje gång den virtuella datorn skapas:
      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. Avetablera den virtuella datorn och förbered den för etablering i 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
    

    Kommentar

    Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget.

  17. Välj Åtgärden>stängs av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.

Nu är du redo att använda din Oracle Linux .vhd för att skapa nya virtuella datorer i Azure. Om det är första gången du laddar upp VHD-filen till Azure läser du Skapa en virtuell Linux-dator från en anpassad disk.