Share via


Créer une partition SWAP pour une machine virtuelle Linux Azure

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 par /mnt 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 normales, 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/libérée, toutes les données écrites sur ce disque sont réinitialisées. Il est recommandé d’utiliser le disque de ressource uniquement pour les données qui peuvent être supprimées, telles que les fichiers SWAP et de mise en cache. Pour plus d’informations, consultez Disque temporaire.

Désactiver la création d’échange d’échange dans la configuration waagent

Si la création de SWAP est configurée dans /etc/waagent.conf, vous devez la désactiver.

  1. Désactivez la mise en forme du disque de ressource 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 comme suit :

    # 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
    
  2. Redémarrez l’agent Linux Azure. Pour plus d’informations sur les commandes de redémarrage de différentes distributions Linux, consultez Mise à jour de l’agent Linux Azure sur une machine virtuelle .

Créer une partition SWAP

Vous pouvez créer une partition SWAP à l’aide de l’une des options suivantes.

Remarque

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 le chemin du disque personnalisé à l’aide de scripts
  1. 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é à chaque démarrage et alloue 30 % de l’espace disponible sur le disque de ressource. Vous pouvez personnaliser les valeurs en fonction de votre situation.

  2. Rendez le script exécutable :

    chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
    
  3. 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
  1. 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
    
  2. Créez un fichier YAML qui définit l’ÉCHANGE, la création de disque de ressources et les 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
    
  3. 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 du disque de ressource personnalisé à l’aide de cloud-init
  1. 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
    
  2. Créez un fichier YAML qui définit l’ÉCHANGE, la création de disque de ressources et les points de montage personnalisés (« azure ») :

    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
    

    Remarque

    Vérifiez que le point de montage personnalisé existe à l’emplacement spécifié dans le fichier YAML.

  3. 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.