What is FOG_PIGZ_COMP and why is it so funny?

  • The FOG Boot Setting of FOG_PIGZ_COMP offers a value slider of 0-21 in RC13 (and a little earlier). I realize the change from 0-9 is because of implementing a new library( zstdmt vs pzstd?), but how does it affect things?

    Is the FOG RC now using this new method permanently?

    Is it still called PIGZ?

    How does it affect an image captured with RC13 when it comes time to be deployed by say, 1.3.4?

    Is it possible to switch between the old method and the new?

    Why is it a BOOT setting?

    Just looking for some clarity.

  • Maybe FOG_PIGZ_COMP can be changed to just FOG_COMP or IMG_COMP
    At the end of the day though, it doesn’t really matter.

  • Developer

    @sudburr the downloadable clonezilla boot cd, at the very least, will not include the needed program to decompress a zstd file, it does however contain the program to decompress a gzip file.

  • @sudburr Partclone, to my knowledge, does not support any compressed form of image. While the utilities may have a means to decompress before sending into the partclone system, what those utilities are I have no idea.

    ZSTD Was added with 1.3.5-RC-10. ZSTD Can decompress gzipped files natively so from a user perspective a “version” is not required.

  • Hmm, so a ZSTD compressed image requires what version FOG to deploy?

    … and Clonezilla 2.5.0-25 does not support a PartClone image compressed with ZSTD?

  • Developer

    other important information to know

    we used PIGZ because it was a parallel implementation of gzip. it took better advantage of multicore/multithread processors than standard gzip while maintaining complete compatibility with the widely used gzip compression.
    gzip has been around for a long time and is a widely used standard. it, however, even using pigz, does not multi-thread well.
    gzip/pigz compression can go from 1-9, or you can crank it to 11 for a very intensive compression at high cpu cost (there is no compression level 10)

    zstd (zstandard) is a new type of compression. zstandard hasn’t been around long enough to become widely adopted, so if you ever want to use the files created by fog with another program, like clonezilla, that needs to be kept in mind. zstandard multi-threads well, and has better performance overall than gzip.
    zstd compression can go from 1-22. 20-22 are “ultra” settings that will fail to work if the system you’re using to capture does not have a high amount of ram.

    my personal experience in converting an image from pigz -6 compression to zstd -11 are as follows:
    capture ~20% faster
    size ~26% smaller
    deploy ~36% faster

  • It’s a “boot” setting because this value get’s passed to the init’s when the device is loading. It’s actually passed as a “kernel” argument, which is why it’s listed as a “Boot” setting. It’s set at “boot” if that helps make it more clear.

  • This is a “default” setting since you can define the “compression” level at the image level now.

    PIGZ_COMP was the original name because the compression was using PIGZ.

    PIGZ is still the default, and so is the “compression” default of 6 still set.

    ZSTD has native support to decompress GZIP (PIGZ is gzip btw). So the utilities within the init are all using zstdmt currently.

    1.3.4 images should work fine with the new stuff.