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 radenenabled=0
tillenabled=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.
I mittenfönstret i Hyper-V Manager väljer du den virtuella datorn.
Välj Anslut för att öppna fönstret för den virtuella datorn.
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.
Skapa en fil med namnet network i katalogen
/etc/sysconfig/
som innehåller följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
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
Ä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
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo chkconfig network on
Installera
python-pyasn1
:sudo yum install python-pyasn1
Ä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.Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Den här inställningen är vanligtvis standardinställningen.
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 paketenNetworkManager
ochNetworkManager-gnome
bort om de inte redan har tagits bort, enligt beskrivningen i steg 2.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.
Avetablera den virtuella datorn och förbered den för etablering i Azure:
sudo waagent -force -deprovision sudo export HISTSIZE=0 sudo logout
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
I Hyper-V Manager väljer du den virtuella datorn.
Välj Anslut för att öppna ett konsolfönster för den virtuella datorn.
Skapa en fil med namnet network i katalogen
/etc/sysconfig/
som innehåller följande text:NETWORKING=yes HOSTNAME=localhost.localdomain
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
Ä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
Kontrollera att nätverkstjänsten startar vid starttiden:
sudo chkconfig network on
python-pyasn1
Installera paketet:sudo yum install python3-pyasn1
Rensa aktuella yum-metadata och installera eventuella uppdateringar:
sudo yum clean all sudo yum -y update
Ä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 parameternGRUB_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.När du är klar med redigeringen
/etc/default/grub
återskapar du grub-konfigurationen:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Den här inställningen är vanligtvis standardinställningen.
Installera Azure Linux-agenten och beroenden:
sudo yum install WALinuxAgent sudo systemctl enable waagent
Installera
cloud-init
för att hantera etableringen:sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
Konfigurera
waagent
förcloud-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
Växlingskonfiguration:
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
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
- Skicka in den här koden som en
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.
Välj Åtgärden>stängs av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.
Relaterat innehåll
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.