Aracılığıyla paylaş


Azure Linux VM için SWAP bölümü oluşturma

Şunlar için geçerlidir: ✔️ Linux VM'leri

Azure Linux VM'lerinde swap bölümü oluşturmak için cloud-init'i vm'nin kısa ömürlü (kaynak) diskinde otomatik olarak oluşturacak şekilde ayarlamanız gerekir. Kaynak diski varsayılan olarak altına /mnt bağlanır. Linux VM'sinin barındırıldığı fiziksel sunucuda bulunur ve daha düşük gecikme süresine sahiptir. İşletim sistemi disklerinde veya veri disklerinde işletim sistemi ve uygulamaların performansını etkileyebilecek SWAP bölümleri oluşturmanız önerilmez. Kaynak diskin yalnızca geçici depolama alanı olduğundan normal verileri depolamak için hiçbir zaman kullanılmaması gerektiğini unutmayın. Vm başka bir konağa taşındığında veya durdurulduğunda/serbest bırakıldığında, bu diske yazılan tüm veriler silinir. Kaynak diskinin yalnızca SWAP ve önbelleğe alma dosyaları gibi kaldırılabilir veriler için kullanılması önerilir. Daha fazla bilgi için bkz . Geçici disk.

Waagent yapılandırmasında SWAP oluşturmayı devre dışı bırakma

SWAP oluşturma işlemi /etc/waagent.conf içinde yapılandırıldıysa, devre dışı bırakmanız gerekir.

  1. Bu görev artık Cloud-Init tarafından işlendiğinden/etc/waagent.conf içinde kaynak disk biçimlendirmesini ve SWAP yapılandırmasını devre dışı bırakın. Parametreleri aşağıdaki gibi ayarlayın:

    # 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. Azure Linux Aracısı'nı yeniden başlatın. Farklı Linux dağıtımlarına yönelik yeniden başlatma komutları hakkında bilgi için bkz . Vm'de Azure Linux Aracısı'nı güncelleştirme.

SWAP bölümü oluşturma

Aşağıdaki seçeneklerden birini kullanarak bir SWAP bölümü oluşturabilirsiniz.

Not

SWAP bölümü oluşturulduğunda, üzerinde bir takas dosyası da oluşturulur.

1. Seçenek: Betikleri kullanarak kaynak veya özel disk yolu altında bir SWAP bölümü oluşturma
  1. Aşağıdaki betikle /var/lib/cloud/scripts/per-boot altında swap.sh adlı bir SWAP oluşturma betiği oluşturun:

    #!/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
    

    Betik her önyüklemede yürütülür ve kaynak diskteki kullanılabilir alanın %30'unu ayırır. Değerleri durumunuz temelinde özelleştirebilirsiniz.

  2. Betiği yürütülebilir yapın:

    chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
    
  3. VM'yi durdurun ve başlatın. VM'nin durdurulması ve başlatılması yalnızca SWAP dosyasını oluşturduktan sonra ilk kez gereklidir.

Seçenek 2: cloud-init kullanarak kaynak disk yolu altında bir SWAP bölümü oluşturma
  1. Hem SWAP hem de kaynak diskini CLOUD_CFG ayarlamak için /systemd/system.conf içinde değişkenini oluşturun:

    sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
    
  2. SWAP, kaynak disk oluşturma ve bağlama noktalarını ayarlayan bir YAML dosyası oluşturun:

    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. Kaynak diskte SWAP bölümünü oluşturmak için VM'yi durdurun ve başlatın veya yeniden dağıtın.

Seçenek 3: cloud-init kullanarak özel kaynak disk yolu altında bir SWAP bölümü oluşturma
  1. Hem SWAP hem de kaynak diskini CLOUD_CFG ayarlamak için /systemd/system.conf içinde değişkenini oluşturun:

    sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
    
  2. SWAP, kaynak disk oluşturma ve özel bağlama noktalarını ayarlayan bir YAML dosyası oluşturun ("azure" örnektir):

    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
    

    Not

    Özel bağlama noktasının YAML dosyasında belirtilen konumda bulunduğundan emin olun.

  3. Kaynak diskte SWAP bölümünü oluşturmak için VM'yi durdurun ve başlatın veya yeniden dağıtın.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.