Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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-vhdcmdlet. - 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
Addonsopslagplaats 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 regelenabled=0enabled=1onder [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.
Selecteer de VIRTUELE machine in het middelste deelvenster van Hyper-V-beheer.
Selecteer Verbinding maken om het venster voor de virtuele machine te openen.
Verwijderen
NetworkManager:sudo rpm -e --nodeps NetworkManagerNotitie
Als het pakket nog niet is geïnstalleerd, mislukt deze opdracht met een foutbericht. Dit bericht wordt verwacht.
Maak een bestand met de naam netwerk in de
/etc/sysconfig/map met de volgende tekst:NETWORKING=yes HOSTNAME=localhost.localdomainMaak 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=noWijzig 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.rulesZorg ervoor dat de netwerkservice begint bij het opstarten:
sudo chkconfig network onpython-pyasn1installeren:sudo yum install python-pyasn1Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent
/boot/grub/menu.lstu in een teksteditor en zorgt u ervoor dat de kernel de volgende parameters bevat:console=ttyS0 earlyprintk=ttyS0Deze 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=autoGrafisch en stil opstarten is niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden.
De
crashkerneloptie 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.Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling.
Installeer de Azure Linux-agent door de volgende opdracht uit te voeren. De nieuwste versie is 2.0.15.
sudo yum install WALinuxAgentAls u het
WALinuxAgentpakket installeert, worden deNetworkManagerenNetworkManager-gnomepakketten verwijderd als ze nog niet zijn verwijderd, zoals beschreven in stap 2.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.confde 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.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 logoutSelecteer 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
NetworkManagerpakket 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
Selecteer de VIRTUELE machine in Hyper-V-beheer.
Selecteer Verbinding maken om een consolevenster voor de virtuele machine te openen.
Maak een bestand met de naam netwerk in de
/etc/sysconfig/map met de volgende tekst:NETWORKING=yes HOSTNAME=localhost.localdomainMaak 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=noWijzig 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.rulesZorg ervoor dat de netwerkservice begint bij het opstarten:
sudo chkconfig network onInstalleer het
python-pyasn1pakket:sudo yum install python3-pyasn1Wis de huidige yum-metagegevens en installeer eventuele updates:
sudo yum clean all sudo yum -y updateWijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent
/etc/default/grubu deze in een teksteditor en bewerkt u deGRUB_CMDLINE_LINUXparameter. 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=autoGrafisch en stil opstarten is niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden.
De
crashkerneloptie 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.Nadat u klaar bent met bewerken
/etc/default/grub, bouwt u de grub-configuratie opnieuw op:sudo grub2-mkconfig -o /boot/grub2/grub.cfgZorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling.
Installeer de Azure Linux-agent en afhankelijkheden:
sudo yum install WALinuxAgent sudo systemctl enable waagentInstalleren
cloud-initom de inrichting af te handelen:sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemonsConfigureren
waagentvoorcloud-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.confsudo 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.cfgecho "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'} EOFConfiguratie wisselen:
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-initDeze 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.confde 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.confAls u de wissel wilt koppelen, opmaken en maken, kunt u het volgende doen:
- Geef deze code door als een
cloud-initconfiguratie telkens wanneer u een virtuele machine maakt. - Gebruik een
cloud-initinstructie 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- Geef deze code door als een
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=0Notitie
Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.
Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.
Gerelateerde inhoud
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.