|
| 1 | +# Overlaybd |
| 2 | + |
| 3 | +Overlaybd (overlay block device) is a novel layering block-level image format, which is design for container, secure container and applicable to virtual machine. And it is an open-source implementation of paper [DADI: Block-Level Image Service for Agile and Elastic Application Deployment. USENIX ATC'20"](https://www.usenix.org/conference/atc20/presentation/li-huiba). |
| 4 | + |
| 5 | +Overlaybd was first proposed by Alibaba Cloud and widely used in Alibaba cloud services. It became a sub-project of containerd in 2021. |
| 6 | + |
| 7 | + |
| 8 | +# Components |
| 9 | + |
| 10 | +## Overlaybd service |
| 11 | + |
| 12 | +[GitHub](https://github.com/containerd/overlaybd) |
| 13 | + |
| 14 | +Sub-project of containerd, contains the storage service of overlaybd image format, provideing a merged view of a sequence of block-based layers as a virtual block device. |
| 15 | +Now this service contains an implementation of overlaybd based on [TCMU](https://www.kernel.org/doc/Documentation/target/tcmu-design.txt), and will provide an implementation based on [ublk](https://docs.kernel.org/block/ublk.html) in the future. |
| 16 | + |
| 17 | +This service is based on [PhotonLibOS](https://github.com/alibaba/PhotonLibOS), which is a high-efficiency LibOS framework. |
| 18 | + |
| 19 | +## Accelerated container image |
| 20 | + |
| 21 | +[GitHub](https://github.com/containerd/accelerated-container-image) |
| 22 | +[Getting started](https://github.com/containerd/accelerated-container-image/blob/main/docs/QUICKSTART.md) |
| 23 | + |
| 24 | +Sub-project of containerd, which is a solution of remote container image by fetching image data on-demand without downloading and unpacking the whole image before the container starts. This repositry contains a containerd snapshotter and image conversion tools for overlaybd. |
| 25 | + |
| 26 | +## P2P data distribution |
| 27 | + |
| 28 | +[GitHub](https://github.com/data-accelerator/dadi-p2proxy) |
| 29 | + |
| 30 | +Use p2p protocol to speed up HTTP file download for registry in large-scale clusters. |
| 31 | + |
| 32 | +<br> |
| 33 | + |
| 34 | +# Key features |
| 35 | + |
| 36 | +## High Performace |
| 37 | + |
| 38 | +Overlaybd is a block-device-based image format, which has much lower complexity than filesystem-based implementations. For example, cross-layer hardlink and non-copy commands like chown are very complex for filesystem-based image without copying up, but is natively supported by overlaybd. |
| 39 | + |
| 40 | +<img src="assets/cold_startup_latency.png" style="width: 30%; margin-right: 2%"/> |
| 41 | +<img src="assets/warm_startup_latency.png" style="width: 30%; margin-right: 2%"/> |
| 42 | +<img src="assets/startup_latency_with_prefetch.png" style="width: 30%"/> |
| 43 | +<img src="assets/batch_code_startup_latency.png" style="width: 30%; margin-right: 2%"/> |
| 44 | +<img src="assets/time_pull_image.png" style="width: 30%; margin-right: 2%"/> |
| 45 | +<img src="assets/time_launch_app.png" style="width: 30%"/> |
| 46 | + |
| 47 | +## High Reliability |
| 48 | + |
| 49 | +Overlaybd outputs virtual block devices through TCMU, which is a linux kernel module and widely supported in most operation systems. |
| 50 | +Overlaybd backstore can recover from failures or crashes, which is difficult for FUSE-based image formats. |
| 51 | + |
| 52 | + |
| 53 | +# Community |
| 54 | + |
| 55 | +For sync communication catch us in the #overlaybd slack channels on Cloud Native Computing Foundation's (CNCF) slack - cloud-native.slack.com. Everyone is welcome to join and chat. [Get Invite to CNCF slack.](https://communityinviter.com/apps/cloud-native/cncf) |
0 commit comments