LoginSignup
39

More than 5 years have passed since last update.

aufs/overlayfs/btrfs bugs

Last updated at Posted at 2016-02-03

githubに移転しました.今後は基本的にはgithub版を更新します.
https://github.com/AkihiroSuda/docker-issues


Dockerのストレージとして用いられるファイルシステムのバグのリスト(随時更新)

AUFS

issue 概要 原因 簡単な解決策
#783 パーミッションがおかしい AUFSの仕様.dirperm1をサポートするカーネルでは問題ない. dirperm1をサポートするカーネルに更新
#18180 プロセスがゾンビになって刺さる カーネル本体のバージョンとAUFSのバージョンとの相性 AUFS 20160111以降にカーネル更新
#20199(Open) fcntl(F_SETFL, O_APPEND)が無視される AUFSのバグ なし(あるいはカーネルにパッチを当てて野良ビルド)
#20240(Open) dirperm1が有効でもパーミッションがおかしい 未解析 なし

OverlayFS

issue 概要 原因 簡単な解決策
#10180(Open) checksumエラーでyumが失敗する ファイルディスクリプタに関するoverlayfsの仕様(1,2) yum-plugin-ovlパッケージを入れる
#12080(Open) UNIXドメインソケットが使えない overlayfsのバグ なし(あるいはカーネルにパッチを当てて野良ビルド)
#19082(Open) カレントディレクトリの削除に失敗したときの挙動がおかしい overlayfsのバグ なし(あるいはカーネルにパッチを当てて野良ビルド)
#19647(Open) symlinkを含むtarの展開が非決定的に失敗する 未解析 なし
#19758(Open) run,removeを頻繁に繰り返すとハングアップ 未解析 なし

バグとまでは言えないが懸念事項

  • inode消費量が多い

BtrFS

issue 概要 原因 簡単な解決策
#19073 sendfile(2)が刺さる btrfsのバグ なし
#20080(Open) cgroups kmem limit値を設定するとクラッシュ,データロス btrfsのバグ kmem limitの設定を避ける?

バグとまでは言えないが懸念事項

ZFS

issue 概要 原因 簡単な解決策
#20153(Open) 諸々の操作がEBUSYでfail 未解析 なし

DeviceMapper (ファイルシステムではないが)

issue 概要 原因 簡単な解決策
#4036 マウントできない udev syncが無効 udev syncが有効なdaemonバイナリを使う
#5684(Open) daemon再起動後,既存コンテナをstartできない 未解析(DeviceMapperとは関係ない?) なし (daemon stop前にコンテナを全部手動で止める方法もあるが,耐障害性がない)

バグとまでは言えないが懸念事項

結局どのファイルシステムがよいのか

実際の品質的にはいずれも似たり寄ったりで,どのファイルシステムが特別によいとは言えない.

コミュニティのサポート状況についても微妙であるが,devicemapperが多少ましかもしれない.Docker, Inc.としてはAUFSとdevicemapperが"production-ready"とのこと.

ストレージドライバ比較

FS サポート状況に関する注意点(2016/02/03時点)
AUFS カーネルのメインラインにマージされていない.UbuntuとBoot2Dockerくらいでしか使えない.Ubuntuでも廃止予定
OverlayFS RHELではOverlayFS自体がTech Preview扱い
BtrFS DockerのBtrFSドライバはExperimental扱い.RHELではBtrFS自体がTech Preview扱い

コンテナの起動が遅くなっても良いなら,これらのCopy-on-Writeファイルシステムは使わず,VFSバックエンドを使うのが無難かもしれない.

いずれにせよ..

persistent data(及び,頻繁にアクセスする一時ファイル)はコンテナのファイルシステムにはおかず,外部ボリューム(-v)に置くのが安心.

コンテナのファイルシステムは基本,リードオンリーな領域として考えるべき.
書き込みはあくまで使い捨て用途.

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
39