Skapa en SWAP-partition för en virtuell Azure Linux-dator
Gäller för: ✔️ Virtuella Linux-datorer
Om du vill skapa en SWAP-partition på virtuella Azure Linux-datorer måste du konfigurera cloud-init för att automatiskt skapa den på den virtuella datorns tillfälliga disk (resurs). Resursdisken monteras under /mnt
som standard. Den finns på den fysiska servern där den virtuella Linux-datorn finns och har lägre svarstid. Vi rekommenderar inte att du skapar SWAP-partitioner på OS-diskar eller datadiskar som kan påverka operativsystemets och apparnas prestanda. Det är viktigt att komma ihåg att resursdisken aldrig ska användas för att lagra vanliga data eftersom det bara är tillfällig lagring. När en virtuell dator flyttas till en annan värd eller stoppas/frigörs rensas alla data som skrivs till den här disken. Vi rekommenderar att du endast använder resursdisken för data som kan tas bort, till exempel SWAP- och cachelagringsfiler. Mer information finns i Tillfällig disk.
Inaktivera skapande av SWAP i waagent-konfiguration
Om swap-skapandet har konfigurerats i /etc/waagent.conf måste du inaktivera det.
Inaktivera resursdiskformatering och SWAP-konfiguration i /etc/waagent.conf, eftersom den här uppgiften nu hanteras av Cloud-Init. Ange parametrarna på följande sätt:
# Format if unformatted. If 'n', resource disk will not be mounted. ResourceDisk.Format=n # Create and use SWAPfile on resource disk. ResourceDisk.EnableSWAP=n #Mount point for the resource disk ResourceDisk.MountPoint=/mnt #Size of the SWAPfile. ResourceDisk.SWAPSizeMB=0
Starta om Azure Linux-agenten. Mer information om omstartskommandona för olika Linux-distributioner finns i Uppdatera Azure Linux-agenten på en virtuell dator .
Skapa en SWAP-partition
Du kan skapa en SWAP-partition med något av följande alternativ.
Kommentar
När en SWAP-partition skapas skapas även en växlingsfil på den.
Alternativ 1: Skapa en SWAP-partition under resursen eller den anpassade disksökvägen med hjälp av skript
Skapa ett SWAP-skript med namnet swap.sh under /var/lib/cloud/scripts/per-boot med följande skript:
#!/bin/sh # Percent of space on the ephemeral disk to dedicate to swap. Here 30% is being used. Modify as appropriate. PCT=0.3 # Location of the swap file. Modify as appropriate based on the location of the ephemeral disk. LOCATION=/mnt if [ ! -f ${LOCATION}/swapfile ] then # Get size of the ephemeral disk and multiply it by the percent of space to allocate size=$(/bin/df -m --output=target,avail | /usr/bin/awk -v percent="$PCT" -v pattern=${LOCATION} '$0 ~ pattern {SIZE=int($2*percent);print SIZE}') echo "$size MB of space allocated to swap file" # Create an empty file first and set correct permissions /bin/dd if=/dev/zero of=${LOCATION}/swapfile bs=1M count=$size /bin/chmod 0600 ${LOCATION}/swapfile # Make the file available to use as swap /sbin/mkswap ${LOCATION}/swapfile fi # Enable swap /sbin/swapon ${LOCATION}/swapfile /sbin/swapon -a # Display current swap status /sbin/swapon -s
Skriptet körs vid varje start och allokerar 30 % av det tillgängliga utrymmet på resursdisken. Du kan anpassa värdena baserat på din situation.
Gör skriptet körbart:
chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
Stoppa och starta den virtuella datorn. Det är bara nödvändigt att stoppa och starta den virtuella datorn första gången när du har skapat SWAP-filen.
Alternativ 2: Skapa en SWAP-partition under resursdisksökvägen med hjälp av cloud-init
Skapa variabeln
CLOUD_CFG
i /systemd/system.conf för att ange både SWAP och resursdisken:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Skapa en YAML-fil som anger SWAP, skapande av resursdiskar och monteringspunkter:
sudo cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config 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"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Stoppa och starta den virtuella datorn eller distribuera den igen för att skapa SWAP-partitionen på resursdisken.
Alternativ 3: Skapa en SWAP-partition under den anpassade resursdisksökvägen med hjälp av cloud-init
Skapa variabeln
CLOUD_CFG
i /systemd/system.conf för att ange både SWAP och resursdisken:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Skapa en YAML-fil som anger SWAP, skapande av resursdiskar och anpassade monteringspunkter ("azure" är ett exempel):
sudo cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config 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", "/azure"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Kommentar
Kontrollera att den anpassade monteringspunkten finns på den plats som anges i YAML-filen.
Stoppa och starta den virtuella datorn eller distribuera den igen för att skapa SWAP-partitionen på resursdisken.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.