Open imeoer opened 1 year ago
Could we also add support for "blob.digest" files too? Currently a RAFS v5 chunk information array is embedded in the bootstrap, which is not very efficient. It would be better to embed a "blob.digest" array into each data blob.
Performance test:
image: node:19.0 workload: node -v registry network: 3MB/s
Version 1:
image type | image size | acceld conversion | acceld push | nerdctl run |
---|---|---|---|---|
OCI v1 | 353.05MB | - | - | 126s |
Nydus v6 | 337.94MB | 29s | 1m58s | 17s |
Nydus v6 (Zran) | 37.30MB | 11s | 12s | 50s |
Version 2 (compress blob meta & download blob meta concurrently):
image type | image size | acceld conversion | acceld push | nerdctl run | read data | read count |
---|---|---|---|---|---|---|
OCI v1 | 353.05MB | - | - | 126s | 353.05MB | - |
Nydus v6 | 337.94MB | 29s | 1m58s | 11s | 21.18MB | 39 |
Nydus v6 (Zran) | 18.98MB | 11s | 12s | 15s | 28.78MB | 49 |
Version 3 (compress blob meta, compress bootstrap, download blob meta concurrently):
image type | image size | acceld conversion | acceld push | nerdctl run | read data | read count |
---|---|---|---|---|---|---|
Nydus v6 (Zran) | 14MB | 11s | 12s | 15s | 28.78MB | 49 |
Converter
Related PR for
nydus-image
builder: https://github.com/dragonflyoss/image-service/pull/858 Related PR fornydus snapshotter
: https://github.com/containerd/nydus-snapshotter/pull/245 Related Branch foracceld
conversion tool: https://github.com/imeoer/acceleration-service/tree/nydus-support-refTo implement pull tar.gz lazily, the converter workflow will be:
application/vnd.oci.image.layer.nydus.blob.v1
) with the tar-like format:image.blob.meta
: nydus blob metaimage.boot
: nydus bootstrap<image.boot>
into a final bootstrap (application/vnd.oci.image.layer.v1.tar+gzip
).subject
field reference the original OCI image, https://github.com/opencontainers/image-spec/blob/main/artifact.md.Runtime
<image.blob.meta>
data from the remote registry layer by layer and then write to the blob cache directory.