Azure Linux VM の SWAP パーティションを作成する
Azure Linux VM 上に SWAP パーティションを作成するには、VM のエフェメラル (リソース) ディスクに自動的に作成するように cloud-init を設定する必要があります。 リソース ディスクは既定で の下 /mnt
にマウントされます。 これは、Linux VM がホストされ、待機時間が短い物理サーバー上にあります。 オペレーティング システムとアプリのパフォーマンスに影響を与える可能性がある OS ディスクまたはデータ ディスクに SWAP パーティションを作成することはお勧めしません。 リソース ディスクは一時的なストレージだけなので、通常のデータを格納するために使用しないでください。 VM が別のホストに移動されたり、停止/割り当て解除されたりすると、このディスクに書き込まれたデータはすべてワイプされます。 SWAP ファイルやキャッシュ ファイルなど、削除できるデータにのみリソース ディスクを使用することをお勧めします。 詳細については、「 一時ディスク」を参照してください。
waagent 構成での SWAP の作成を無効にする
SWAP の作成が /etc/waagent.conf で構成されている場合は、無効にする必要があります。
このタスクは Cloud-Init によって処理されるようになったため、/etc/waagent.conf 内でリソース ディスクの書式設定と SWAP 構成を無効にします。 パラメーターを次のように設定します。
# 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
Azure Linux エージェントを再起動します。 さまざまな Linux ディストリビューションの再起動コマンドの詳細については、「 VM 上の Azure Linux エージェントを更新する方法 」を参照してください。
SWAP パーティションを作成する
SWAP パーティションは、次のいずれかのオプションを使用して作成できます。
注:
SWAP パーティションが作成されると、スワップ ファイルもその上に作成されます。
オプション 1: スクリプトを使用して、リソースまたはカスタム ディスク パスの下に SWAP パーティションを作成する
次のスクリプトを使用して、/var/lib/cloud/scripts/per-boot の下に swap.sh という名前の SWAP 作成スクリプトを作成します。
#!/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
スクリプトはすべてのブートで実行され、リソース ディスク内の使用可能な領域の 30% が割り当てられます。 状況に応じて値をカスタマイズできます。
スクリプトを実行可能にする:
chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
VM を停止して起動します。 VM の停止と起動は、SWAP ファイルの作成後に初めて行う必要があります。
オプション 2: cloud-init を使用してリソース ディスク パスの下に SWAP パーティションを作成する
CLOUD_CFG
/systemd/system.conf に変数を作成して、SWAP とリソース ディスクの両方を設定します。sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
SWAP、リソース ディスクの作成、マウント ポイントを設定する YAML ファイルを作成します。
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
VM を停止して起動するか、再デプロイしてリソース ディスクに SWAP パーティションを作成します。
オプション 3: cloud-init を使用してカスタム リソース ディスク パスの下に SWAP パーティションを作成する
CLOUD_CFG
/systemd/system.conf に変数を作成して、SWAP とリソース ディスクの両方を設定します。sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
SWAP、リソース ディスクの作成、およびカスタム マウント ポイントを設定する YAML ファイルを作成します ("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
注:
カスタム マウント ポイントが YAML ファイルで指定された場所に存在することを確認します。
VM を停止して起動するか、再デプロイしてリソース ディスクに SWAP パーティションを作成します。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示