1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

systemd-nspawnでのtmpディレクトリの扱いについて

Posted at

systemd-nspawn Advent Calendar 2017 2日目の記事です。

systemd-nspawnで/tmpディレクトリはメモリ上に置かれます
なので/tmpディレクトリに沢山置くとメモリ不足になっちゃうよという話

あと、/var/lib/machines/container/tmp/a.txt
みたいなファイルがあったとしても、tmpfsで被せてしまうので見えない

確認

# df -h /tmp/
ファイルシス   サイズ  使用  残り 使用% マウント位置
tmpfs            1.9G     0  1.9G    0% /tmp

確かにtmpfsになってる

対策1

tmpマウントを止めてしまう

systemctl stop tmp.mount

起動時にこれを発動させたかったら、systemdのboot処理が全部終わった後に発動するrc.localとかcrontabの@rebootとかを遅延かけてやるしかないと思う
(というのも、なんかこれtmp.mountがdisableでもmaskされても発動されちゃうのでsystemdのサービス止めてもsystemd-nspawnが起動かけてるように思えるので・・・)

対策2

bindでつなげちゃう

systemd-nspawn --bind /var/lib/machines/hogecontainer/tmp:/tmp -D /var/lib/machines/hogecontainer

注意

--bootフラグを立てて、boot処理を行うとtmpの削除処理が走るので、注意すること
なので、ホスト側の/tmpとつなげちゃうとコンテナ上げるたびに/tmpがクリアされてしまう

参考にしたリンク

systemd-nspawn: prevent guest from mounting /tmp as tmpfs

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?