AzureVM(Linux)のスワップ領域作成は簡単!waagent.confを設定するだけ!

こんにちはますのです。
LPIC2を持っていますがLinuxはほとんど使ってこなかったので覚えていないことが多いインフラエンジニアです。
アカーン・・・。最近は調べながら色々頑張っておりますです。

最近はAzureを触る機会があり、AzureVMで作成したLinuxにスワップファイル作成も忘れないでねって言われたのです。

swapってパーティション切ったりフォーマットしたりややこしかった記憶しかない出来るのかしら。
そんな風に思っていたのですが、調べたらAzureさんすごい。

conf書き換えるだけで出来るやんすばらすぃと
AWS慣れっこのわたしが手のひらをひっくり返しました。

実行する環境

・AzureVM:RHEL8.1

スワップ設定の事前確認

まずは現在のswapが設定されているか確認です。
どっちのコマンドでも確認が可能です。「free」コマンドではSwapが0byte、「/proc/swaps」ではswapファイルが無い状態を確認できます。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7812         225        7353          16         234        7331
Swap:             0           0           0
$ cat /proc/swaps
Filename                                Type            Size    Used    Priority

スワップ領域の設定:/etc/waagent.conf

Azureでのスワップファイルの作成は「/etc/waagent.conf」を設定します。
RedHatのページにもOSでswapファイルやswapパーティションは作らないでねと記載があるようですが、元記事が削除されているので真相は不明。

参考手順:Linux Azure 仮想マシンでメモリ不足エラーが発生する

まずは「/etc/waagent.conf」を開きます。

$ sudo vi /etc/waagent.conf

以下の3箇所を変更します。

ResourceDisk.Format=y
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB= 4096
  1. ResourceDisk.Format:n→yへ変更
  2. ResourceDisk.EnableSwap:n→yへ変更
  3. ResourceDisk.SwapSizeMB:※今回の例は4GB(1024MB×4=4096MB)で設定

設定完了後、OS再起動を実施します。

$ sudo shutdown -r now

OS再起動後に以下のようにコマンドでSwapが確認出来れば設定が完了となります。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7812         233        7348           8         231        7330
Swap:          4095           0        4095
$ cat /proc/swaps
Filename                                Type            Size    Used    Priority
/mnt/swapfile                           file            4194300 0       -2
swapファイルのマウントポイントについてだけが解決出来ず不可解なのです。
waagent.confのデフォルトで「ResourceDisk.MountPoint=/mnt/resource」となっているのですが、スワップファイルを有効化すると「/mnt/swapfile」となってしまいました。
root権限で「/mnt/resource」フォルダを手動で作成しましたが変化無く…。
マウントポイントがwaagent.confの記載内容と異なっているのは気になりましたが、機能上は生きている様子。
swapoff -aでswapを無効化したあとにスワップファイルを削除しましたが変化は現れず、解決することが出来ずでした…。ううむ力不足であります。

このあたりでまたあれこれ検証して解決出来た時は更新したいと思います。

最新情報をチェックしよう!