Créer une partition SWAP pour une machine virtuelle Azure Linux
S’applique à : ✔️ Machines virtuelles Linux
Pour créer une partition SWAP sur des machines virtuelles Linux Azure, vous devez configurer cloud-init pour la créer automatiquement sur le disque éphémère (ressource) de la machine virtuelle. Le disque de ressource est monté sous /mnt
la valeur par défaut. Il se trouve sur le serveur physique sur lequel la machine virtuelle Linux est hébergée et a une latence inférieure. Il n’est pas recommandé de créer des partitions SWAP sur des disques de système d’exploitation ou des disques de données susceptibles d’avoir un impact sur les performances du système d’exploitation et des applications. Il est important de se rappeler que le disque de ressource ne doit jamais être utilisé pour stocker des données régulières, car il s’agit uniquement d’un stockage temporaire. Lorsqu’une machine virtuelle est déplacée vers un autre hôte ou arrêtée/désallouée, toutes les données écrites sur ce disque sont réinitialisées. Il est recommandé d’utiliser le disque de ressources uniquement pour les données qui peuvent être supprimées, telles que swap et mise en cache des fichiers. Pour plus d’informations, consultez Disque temporaire.
Désactiver la création d’échange dans la configuration waagent
Si la création swap est configurée dans /etc/waagent.conf, vous devez la désactiver.
Désactivez la mise en forme des disques de ressources et la configuration SWAP dans /etc/waagent.conf, car cette tâche est désormais gérée par Cloud-Init. Définissez les paramètres de la façon suivante :
# 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
Redémarrez l’agent Linux Azure. Découvrez comment mettre à jour l’agent Linux Azure sur une machine virtuelle pour plus d’informations sur les commandes de redémarrage pour différentes distributions Linux.
Créer une partition SWAP
Vous pouvez créer une partition SWAP à l’aide de l’une des options suivantes.
Note
Lorsqu’une partition SWAP est créée, un fichier d’échange est également créé dessus.
Option 1 : Créer une partition SWAP sous la ressource ou chemin d’accès de disque personnalisé à l’aide de scripts
Créez un script de création SWAP nommé swap.sh sous /var/lib/cloud/scripts/per-boot avec le script suivant :
#!/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
Le script est exécuté sur chaque démarrage et alloue 30 % de l’espace disponible dans le disque de ressource. Vous pouvez personnaliser les valeurs en fonction de votre situation.
Créez l’exécutable du script :
chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
Arrêtez et démarrez la machine virtuelle. L’arrêt et le démarrage de la machine virtuelle ne sont nécessaires que la première fois après avoir créé le fichier SWAP.
Option 2 : Créer une partition SWAP sous le chemin du disque de ressource à l’aide de cloud-init
Créez la
CLOUD_CFG
variable dans /systemd/system.conf pour définir swap et le disque de ressource :sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Créez un fichier YAML qui définit swap, création de disque de ressources et points de montage :
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
Arrêtez et démarrez la machine virtuelle ou redéployez-la pour créer la partition SWAP sur le disque de ressource.
Option 3 : Créer une partition SWAP sous le chemin d’accès du disque de ressources personnalisé à l’aide de cloud-init
Créez la
CLOUD_CFG
variable dans /systemd/system.conf pour définir swap et le disque de ressource :sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
Créez un fichier YAML qui définit swap, création de disque de ressources et points de montage personnalisés (« azure » est un exemple) :
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
Note
Vérifiez que le point de montage personnalisé existe à l’emplacement spécifié dans le fichier YAML.
Arrêtez et démarrez la machine virtuelle ou redéployez-la pour créer la partition SWAP sur le disque de ressource.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.