docker存储系统aufs和overlay的区别
AUFS(Another Union File System)和Overlay是Docker中用于实现镜像和容器存储的两种联合文件系统,它们在设计和使用上有一些关键区别:
设计理念
- AUFS:AUFS是一个多层联合文件系统,允许多个目录(层)合并为一个统一的视图。它的设计较为复杂,代码量大,且未进入Linux内核主线,需要手动打补丁和编译。
- Overlay:OverlayFS的设计更简单,从Linux 3.18版本开始就进入了Linux内核主线。它被认为是AUFS的继承者,特别是在Docker社区中的关注度迅速提高。
性能特点
- AUFS:由于多层结构,文件穿越多层较为耗时,写入性能较差。
- Overlay:支持页缓存共享,copy_up操作更快,因为只有两层结构,写入性能更优。
集成程度
- AUFS:未进入Linux内核,仅在部分Linux发行版中支持,需要额外配置。
- Overlay:代码融入到Linux内核中,广泛支持各Linux发行版,配置更为简单。
Docker中的使用
- AUFS:在早期的Docker版本中广泛使用,但随着OverlayFS的成熟,AUFS已基本被淘汰。
- Overlay:从Docker 17.06.02版本开始,默认使用overlay2存储驱动,成为推荐的存储驱动。