ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

Ubuntu Server 18.04はスワップファイルに気をつけよう

Ubuntu Server 18.04ではインストーラーが刷新されているのは何回か説明した通りです。ちなみに左側が旧来のDebian Installer版で、右側が新しいInstallerです。

f:id:ytooyama:20181105233054p:plain

一般的に新しいインストーラーの方が色々便利(*1)なのですが、一点だけ注意があります。 それがスワップファイルです。

以前は /、/boot、swapのようにパーティションをいくつか区切っていることが一般的でした。もっと言うなら、/homeとかも区切ってました。最悪OSが死んでもデータだけ取り出せるようにするためです。

最近は累積したカーネルパッケージのせいで/bootが100%になりおかしくなると困るのと、大容量のストレージを利用できるようになったのもあって/bootパーティションを区切らずに構成することも多いようです。また、swapについては環境上で動かすアプリケーションの数などによって必要なswapが異なりますのでわざわざswapパーティションを切らずに、swapファイルを作って、swapサイズは自動にしておくのが一般的なんだとか。

そして問題のスワップファイルなのですが、Ubuntu 18.04のスワップファイルって、 ルート(/)の直下にswap.imgというファイルで用意されるようですね。これだと/のストレージ利用率が100%になると、色々おかしくなりそうです(というかなりました)。

色々なサービスがFailedになりながら一応カーネルは起動するのですが、そうやって起動したのもあってsshログインできなかったりコンソールログインもできなくなったり、最悪不安定な状態になったり起動不可になることも。

Ubuntu 18.04ベースで稼働させたアプリケーションが高頻度で障害が発生することが多かったため色々調べたところ、問題が発生していない環境と問題が発生する環境でスワップの種類に差があるのに気がつきました。

Debian Installer
          swap is
Std      file             /swapfile
LVM    partition    /dev/dm-1

Live Installer
          swap is
Std     file            /swap.img
LVM   file            /swap.img

旧来のDebian InstallerではLVMを使うと/dev/dm-1という別パーティションがスワップ領域として使われます。LVMを使わないと、 /の下のswapfileという名前のファイルがスワップファイルとして使われます。新しいLiveServer InstallerではLVMの有無にかかわらずスワップ領域はファイルが使われます。

わたし的にはスワップはパーティションで用意したいので、これからもDebian Installerを使うと思います。

Debian Installer版のUbuntu Serverインストーラーは下記からダウンロード可能です。

http://cdimage.ubuntu.com/releases/18.04/release/

*1 バックグラウンドでインストールしてくれるのでセットアップ時間の短縮ができる、通常のインストールモードでIPアドレスの設定が可能、ディスクパーティションの設定が結構細かくできる、色々なsnapアプリケーションを選んでインストールできるなどメリットが多いので、ディスクの読み書きが激しくないサーバーを想定しているなら、LiveServer Installerを使ってセットアップした方が良いと思います。

続きはこちら。

ytooyama.hatenadiary.jp

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。