Creación de una partición SWAP para una máquina virtual Azure Linux
Se aplica a: ✔️ Máquinas virtuales Linux
Para crear una partición SWAP en máquinas virtuales Linux de Azure, debe configurar cloud-init para crearla automáticamente en el disco efímero (recurso) de la máquina virtual. El disco de recursos se monta de /mnt
forma predeterminada. Se encuentra en el servidor físico donde se hospeda la máquina virtual Linux y tiene una menor latencia. No se recomienda crear particiones SWAP en discos del sistema operativo o discos de datos que puedan afectar al rendimiento del sistema operativo y las aplicaciones. Es importante recordar que el disco de recursos nunca debe usarse para almacenar datos normales, ya que solo es almacenamiento temporal. Cuando una máquina virtual se mueve a otro host o se detiene o desasigna, se borrarán los datos escritos en este disco. Se recomienda usar el disco de recursos solo para los datos que se pueden quitar, como ARCHIVOS SWAP y almacenamiento en caché. Para obtener más información, consulte Disco temporal.
Deshabilitar la creación de SWAP en la configuración de waagent
Si la creación de SWAP está configurada en /etc/waagent.conf, debe deshabilitarla.
Deshabilite el formato de disco de recursos y la configuración SWAP en /etc/waagent.conf, ya que esta tarea ahora está controlada por Cloud-Init. Establezca los parámetros de la manera siguiente:
# 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
Reinicie el agente linux de Azure. Consulte Actualización del agente Linux de Azure en una máquina virtual para obtener información sobre los comandos de reinicio para diferentes distribuciones de Linux.
Creación de una partición SWAP
Puede crear una partición SWAP mediante una de las siguientes opciones.
Nota:
Cuando se crea una partición SWAP, también se crea un archivo de intercambio en él.
Opción 1: Crear una partición SWAP en el recurso o la ruta de acceso de disco personalizada mediante scripts
Cree un script de creación swap denominado swap.sh en /var/lib/cloud/scripts/per-boot con el siguiente script:
#!/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
El script se ejecutará en cada arranque y asigna el 30 % del espacio disponible en el disco de recursos. Puede personalizar los valores en función de su situación.
Cree el archivo ejecutable del script:
chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
Detenga e inicie la VM. La detención e inicio de la máquina virtual solo es necesaria la primera vez que se crea el archivo de intercambio.
Opción 2: Crear una partición SWAP en la ruta de acceso del disco de recursos mediante cloud-init
Cree la
CLOUD_CFG
variable en /systemd/system.conf para establecer SWAP y el disco de recursos:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Cree un archivo YAML que establezca SWAP, creación de discos de recursos y puntos de montaje:
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
Detenga e inicie la máquina virtual o vuelva a implementarla para crear la partición SWAP en el disco de recursos.
Opción 3: Crear una partición SWAP en la ruta de acceso del disco de recursos personalizado mediante cloud-init
Cree la
CLOUD_CFG
variable en /systemd/system.conf para establecer SWAP y el disco de recursos:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Cree un archivo YAML que establezca SWAP, creación de discos de recursos y puntos de montaje personalizados ("azure" es un ejemplo):
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
Nota:
Asegúrese de que el punto de montaje personalizado existe en la ubicación especificada en el archivo YAML.
Detenga e inicie la máquina virtual o vuelva a implementarla para crear la partición SWAP en el disco de recursos.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.