Rancher OSでswapを設定して永続化する方法
Dockerに特化したOS・Rancher OSでswapを設定して永続化する方法をまとめました。メモリサイズが小さいサーバーでRancher OSを使う場合は設定しておくと便利です。
公開日:2021年5月19日
SWAPを作成するところはDebianのまま
まずはスワップファイルを作成してスワップ化します。ここの行程は普通のDebian系OSと同じです。
## swapfileを作成
sudo fallocate -l 1G /swapfile
## swapfileを確認
ls -lh /swapfile
## swapfileの権限を変更してスワップ化
sudo chmod 600 /swapfile
sudo mkswap /swapfile
## swapfileをスワップにする
sudo swapon /swapfile
ここまでできたらスワップが追加されているはずなので、freeコマンドで確認します。
$ free
total used free shared buffers cached
Mem: 1012000 939084 72916 277912 9500 774572
-/+ buffers/cache: 155012 856988
Swap: 1048572 0 1048572
問題ないですね。
SWAPの自動マウントは設定ファイルで行う
先程設定したスワップは今回の起動限りになるので、再起動するとスワップマウントが外れます。永続化するためには、追加の設定が必要です。
/etc/fstabの設定は無視される
Debian系なら/etc/fstabに、
/swapfile none swap sw 0 0
と設定を書けば起動時に自動で/swapfileがマウントされますが、Rancher OSでは設定が無視されます。これはコンソールをubuntuなどにしても同じでした。
Rancher OSがDockerに特化したシステムになっていることが要因でしょう。
cloud-config.ymlを書いて設定に追加
では、どうやってRancher OSでスワップを永続化させるのかというと、Rancher OSの設定ファイル(xxx.yml)を使用するようです。
作成した設定ファイルは、Rancher OS独自のrosコマンドで実際の設定にマージするので、設定用のymlファイルの、ファイル名や設置場所はどこでも大丈夫です。
vi test.yml
#cloud-config
runcmd:
- sudo mkswap /swapfile
- sudo swapon /swapfile
mounts:
- [ /swapfile, none, swap, sw, 0, 0 ]
cloud-config.ymlは必ず「#cloud-config」から書き始めるのがルールです。シェルスクリプトなどと同じですね。「mounts」はそのままの意味ですが、「runcmd」は起動時に実行するコマンドです。
上の例では、/swapfileをマウントして、スワップ化してswaponするという流れになっています。
設定ファイルが書けたらマージします。
sudo ros config merge -i test.yml
設定ができたら再起動します。再起動されたら設定が反映されているかをチェックします。
sudo ros config export
Rancher OS全体の設定になるので、記述したymlファイルよりも大きくなっていますが、
- mounts:
- runcmd:
に先程の設定が追加されていればOKです。
念の為freeコマンドでswapがあるかもチェックすると良いでしょう。
新着ノート
-
NUXT3
公開日:2023年2月16日
-
NUXT3
公開日:2023年1月30日
新着コード
-
Vue.js
公開日:2022年4月18日
-
Vue.js
公開日:2022年4月13日