OSDN Git Service

erofs: support flattened block device for multi-blob images
authorJia Zhu <zhujia.zj@bytedance.com>
Thu, 2 Mar 2023 07:17:51 +0000 (15:17 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Sun, 16 Apr 2023 17:15:46 +0000 (01:15 +0800)
commit8b465fecc35a434e61728a6184d188c6daa37a5d
tree5e5edf8ece3a4a97d14b69f082f281ecf6efa766
parentd3c4bdcc756e60b95365c66ff58844ce75d1c8f8
erofs: support flattened block device for multi-blob images

In order to support mounting multi-blobs container image as a single
block device, add flattened block device feature for EROFS.

In this mode, all meta/data contents will be mapped into one block
space. User could compose a block device(by nbd/ublk/virtio-blk/
vhost-user-blk) from multiple sources and mount the block device by
EROFS directly. It can reduce the number of block devices used, and
it's also benefits in both VM file passthrough and distributed storage
scenarios.

You can test this using the method mentioned by:
https://github.com/dragonflyoss/image-service/pull/1139
1. Compose a (nbd)block device from multi-blobs.
2. Mount EROFS on mntdir/.
3. Compare the md5sum between source dir and mntdir/.

Later, we could also use it to refer original tar blobs.

Signed-off-by: Jia Zhu <zhujia.zj@bytedance.com>
Signed-off-by: Xin Yin <yinxin.x@bytedance.com>
Reviewed-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Acked-by: Chao Yu <chao@kernel.org>
Tested-by: Jiang Liu <gerry@linux.alibaba.com>
Link: https://lore.kernel.org/r/20230302071751.48425-1-zhujia.zj@bytedance.com
[ Gao Xiang: refine commit message and use erofs_pos(). ]
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/data.c
fs/erofs/internal.h
fs/erofs/super.c