Criar uma partição SWAP para uma VM linux do Azure
Para criar uma partição SWAP em VMs linux do Azure, você precisa configurar o cloud-init para criá-lo automaticamente no disco efêmero (recurso) da VM. O disco de recurso é montado em por /mnt
padrão. Ele está localizado no servidor físico onde a VM linux está hospedada e tem latência menor. Não é recomendável criar partições SWAP em discos de sistema operacional ou discos de dados que possam afetar o desempenho do sistema operacional e dos aplicativos. É importante lembrar que o disco de recurso nunca deve ser usado para armazenar dados regulares, pois é apenas armazenamento temporário. Quando uma VM é movida para outro host ou parada/desalocada, todos os dados gravados neste disco serão apagados. É recomendável usar o disco de recurso apenas para dados que podem ser removidos, como arquivos SWAP e cache. Para obter mais informações, confira Disco temporário.
Desabilitar a criação do SWAP na configuração de waagent
Se a criação SWAP estiver configurada em /etc/waagent.conf, você deverá desabilitar.
Desabilite a formatação de disco de recurso e a configuração SWAP dentro de /etc/waagent.conf, pois essa tarefa agora é tratada pelo Cloud-Init. Defina os parâmetros da seguinte maneira:
# 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 o Agente linux do Azure. Consulte Como atualizar o Agente linux do Azure em uma VM para obter informações sobre os comandos de reinicialização para diferentes distribuições do Linux.
Criar uma partição SWAP
Você pode criar uma partição SWAP usando uma das seguintes opções.
Observação
Quando uma partição SWAP é criada, um arquivo de troca também é criado nele.
Opção 1: criar uma partição SWAP no caminho do recurso ou do disco personalizado usando scripts
Crie um script de criação SWAP chamado swap.sh em /var/lib/cloud/scripts/per-boot com o seguinte 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
O script será executado em cada inicialização e aloca 30% do espaço disponível no disco de recursos. Você pode personalizar os valores com base em sua situação.
Tornar o script executável:
chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
Pare e inicie a VM. Parar e iniciar a VM só é necessário na primeira vez depois de criar o arquivo SWAP.
Opção 2: criar uma partição SWAP no caminho do disco de recurso usando o cloud-init
Crie a
CLOUD_CFG
variável em /systemd/system.conf para definir swap e o disco de recurso:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Crie um arquivo YAML que define pontos swap, criação de disco de recurso e montagem:
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
Pare e inicie a VM ou reimplante-a para criar a partição SWAP no disco de recurso.
Opção 3: criar uma partição SWAP no caminho do disco de recurso personalizado usando o cloud-init
Crie a
CLOUD_CFG
variável em /systemd/system.conf para definir swap e o disco de recurso:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Crie um arquivo YAML que define PONTOS de montagem swap, criação de disco de recurso e personalizados ("azure" é um exemplo):
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
Observação
Verifique se o ponto de montagem personalizado existe no local especificado no arquivo YAML.
Pare e inicie a VM ou reimplante-a para criar a partição SWAP no disco de recurso.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de