Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Linux-VMs
Um eine SWAP-Partition auf virtuellen Azure Linux-Computern (VMs) zu erstellen, müssen Sie cloud-init einrichten, um sie automatisch auf dem kurzlebigen Datenträger (Ressource) des virtuellen Computers zu erstellen. Der Ressourcendatenträger wird standardmäßig bereitgestellt /mnt . Sie befindet sich auf dem physischen Server, auf dem die Linux-VM gehostet wird und eine geringere Latenz aufweist. Es wird nicht empfohlen, SWAP-Partitionen auf Betriebssystemdatenträgern oder Datenträgern zu erstellen, die sich auf die Leistung des Betriebssystems und der Apps auswirken können. Es ist wichtig zu beachten, dass der Ressourcendatenträger niemals zum Speichern normaler Daten verwendet werden sollte, da er nur temporärer Speicher ist. Wenn ein virtueller Computer auf einen anderen Host verschoben oder angehalten/deallocated wird, werden alle daten, die auf diesen Datenträger geschrieben wurden, zurückgesetzt. Es wird empfohlen, den Ressourcendatenträger nur für Daten zu verwenden, die entfernt werden können, z. B. SWAP und Zwischenspeichern von Dateien. Weitere Informationen finden Sie unter Temporärer Datenträger.
Deaktivieren der SWAP-Erstellung in der Waagent-Konfiguration
Wenn die SWAP-Erstellung in /etc/waagent.conf konfiguriert ist, müssen Sie sie deaktivieren.
Deaktivieren Sie die Ressourcendatenträgerformatierung und SWAP-Konfiguration in /etc/waagent.conf, da diese Aufgabe jetzt von Cloud-Init behandelt wird. Legen Sie die Parameter wie folgt fest:
# 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=0Starten Sie den Azure Linux-Agent neu. Informationen zu den Neustartbefehlen für verschiedene Linux-Verteilungen finden Sie unter "Aktualisieren des Azure Linux-Agents auf einem virtuellen Computer".
Erstellen einer SWAP-Partition
Sie können eine SWAP-Partition erstellen, indem Sie eine der folgenden Optionen verwenden.
Notiz
Bei VM-SKUs mit großen temporären Datenträgern wird dringend empfohlen, die folgenden Variablen so zu ändern, dass kleinere Dateien und SWAP-Partitionen erstellt werden. Beispielsweise verfügen einige VMs über 2 TB oder mehr temporäre Datenträger.
Option 1: Erstellen einer SWAP-Partition unter dem Ressourcen- oder benutzerdefinierten Datenträgerpfad mithilfe von Skripts
Notiz
Wenn eine SWAP-Partition erstellt wird, wird auch eine SWAP-Datei darauf erstellt.
Erstellen Sie ein SWAP-Erstellungsskript namens swap.sh unter /var/lib/cloud/scripts/per-boot mit dem folgenden Skript:
#!/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 -sDas Skript wird für jeden Start ausgeführt und weist 30 % des verfügbaren Speicherplatzes auf dem Ressourcendatenträger zu. Sie können die Werte basierend auf Ihrer Situation anpassen.
Erstellen Sie die ausführbare Datei des Skripts:
sudo chmod +x /var/lib/cloud/scripts/per-boot/swap.shBeenden Sie die VM, und starten Sie sie neu. Das Beenden und Starten des virtuellen Computers ist nur das erste Mal erforderlich, nachdem Sie die SWAP-Datei erstellt haben.
Option 2: Erstellen einer SWAP-Partition unter dem Ressourcendatenträgerpfad mithilfe von cloud-init
Erstellen Sie die
CLOUD_CFGVariable in "/systemd/system.conf ", um SWAP und den Ressourcendatenträger festzulegen:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.confErstellen Sie eine YAML-Datei, die SWAP-, Ressourcendatenträgererstellungs- und Bereitstellungspunkte festlegt:
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"] EOFBeenden Sie den virtuellen Computer, oder stellen Sie ihn erneut bereit, um die SWAP-Partition auf dem Ressourcendatenträger zu erstellen.
Option 3: Erstellen einer SWAP-Partition unter dem benutzerdefinierten Ressourcendatenträgerpfad mithilfe von cloud-init
Erstellen Sie die
CLOUD_CFGVariable in "/systemd/system.conf ", um SWAP und den Ressourcendatenträger festzulegen:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.confErstellen Sie eine YAML-Datei, die SWAP-, Ressourcendatenträgererstellungs- und benutzerdefinierte Bereitstellungspunkte festlegt ("azure" ist ein Beispiel):
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"] EOFNotiz
Stellen Sie sicher, dass der benutzerdefinierte Bereitstellungspunkt an der in der YAML-Datei angegebenen Position vorhanden ist.
Beenden Sie den virtuellen Computer, oder stellen Sie ihn erneut bereit, um die SWAP-Partition auf dem Ressourcendatenträger zu erstellen.