Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use pzstd for FILESYSTEM_DOCKERFS when defined BUILD_REDUCE_IMAGE_SIZE #21824

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

lipxu
Copy link
Contributor

@lipxu lipxu commented Feb 21, 2025

Why I did it

We enabled the docker inram feature for slim image.
It would extract the docker image to ram during the boot, so it would take extra times during boot.

Work item tracking
  • Microsoft ADO (number only):
    31323281

How I did it

Use pzstd which is more efficient tool to compress and decompress the docker file to reduce the boot time.

How to verify it

Boot image on 7060 and also run warm-reboot pipeline on 7060.

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012
  • 202106
  • 202111
  • 202205
  • 202211
  • 202305

Tested branch (Please provide the tested image version)

Description for the changelog

Link to config_db schema for YANG module changes

A picture of a cute animal (not mandatory but encouraged)

@lipxu lipxu requested a review from lguohan as a code owner February 21, 2025 06:46
@mssonicbld
Copy link
Collaborator

/azp run Azure.sonic-buildimage

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@lipxu lipxu marked this pull request as draft February 21, 2025 15:54
@mssonicbld
Copy link
Collaborator

/azp run Azure.sonic-buildimage

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@lipxu lipxu marked this pull request as ready for review February 22, 2025 03:23
@lipxu lipxu requested a review from qiluo-msft as a code owner February 22, 2025 03:23
saiarcot895 and others added 2 commits February 23, 2025 14:27
Currently, there are two methods of having a reduced image size:
BUILD_REDUCE_IMAGE_SIZE build configuration (resulting in the use of a
zstd-compressed docker tarball for the installation file), and
docker_inram (resulting in the docker tarball being extracted into RAM
at bootup time instead to disk) (this particular option seems to be
better supported on Aboot and not ONIE). These two are logically
separate; one is a build-time configuration for an image, and the other
is a runtime platform-specific option.

This means that it's theoretically possible to have an image be built
with BUILD_REDUCE_IMAGE_SIZE enabled and then be loaded onto a device
that doesn't use docker_inram. If the image is being installed from
SONiC, then that's _probably_ file, as long as the SONiC installation
has zstd installed. If the image is being installed from ONIE or Aboot,
then both of those environments currently don't support zstd-compressed
tarballs, so image installation fails.

Because of that, fail explicitly saying that this image is not supported
in that environment.

Signed-off-by: Saikrishna Arcot <[email protected]>
Add checks for zstd tarball extraction from ONIE or Aboot
@lipxu lipxu requested a review from xumia as a code owner February 24, 2025 08:53
@mssonicbld
Copy link
Collaborator

/azp run Azure.sonic-buildimage

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Collaborator

/azp run Azure.sonic-buildimage

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

saiarcot895 and others added 2 commits February 24, 2025 18:05
Fix references to gzip/zstd variables
@mssonicbld
Copy link
Collaborator

/azp run Azure.sonic-buildimage

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants