もう、こればっかりだが、NVMEがたかーい。しかし、OSをNVMEに入れるのは馬鹿馬鹿しい。OSなんて、起動する時のばーっと読まれるだけし、SSDとNVMEの差は、そんなにない。それに今時のOSなんて毎度起動することもなく、大体スリープかサスペンドからの復帰が普通。OSの扱いがそんなものなので、ありものの2.5インチのSSDをOS用にして、高価なNVMEは仮想マシンのデータストア用とかにしていた。ただ、もう今や仮想環境がほぼないので、もっぱら、コンテナやAIモデル用にするようにしている。
閑話休題
500GBのSSDのうち、LVMで100GBしかアサインしていなく、OSが20GB程度だった。よって20GBだった。絶対容量が足らなくなるので、Dockerの領域をNVMEに移すことに。
Dockerが利用する領域を変えるには/etc/docker/daemon.jsonに以下を記載する。
めでたし、めでたし。しかし、気がついたらディスクの消費率が87%。つまり20GBから87GBまで増えている。。。IntelのLLMイメージを作っていたらついにパンクした。LVMを拡張して乗り越えたが、いずれまた足りなくなるのは目に見えている。一方NVMEは特に容量は増えていない。
なぜ?
今のDockerは、containerdバックエンドだった。PSコマンドちょいちょい顔出すのでおかしいなと思っていたが、実は以下が本丸。以下を実行する。
これでが最初に必要だった。自分がやった時は、すでに250GBくらいSSDにばら撒かれていたので、全てのコンテナとイメージを削除してからやった。
もし、コンテナを潰さずにやる場合は、/var/lib/containerdの中身を移すこと。ただし、時間が恐ろしくかかるのでおすすめしない。大体コンテナイメージは、またPullすればいいのである程度は諦めた方がいいかもしれない。昨今のイメージはGBクラスのものも多いので、その場合は、先にコンテナレジストリに対比させればだいぶ軽減できる。
これからは、こう言ったコンテナインフラの話が出てきそう。コンテナレジストリ自体、コンテナを1つ立てればいいだけなので、モノがなくてもストレージ領域があれば簡単に導入ができるので。