• Mike Hibler's avatar
    Resurrect/enhance delta image code. Another multi-day "one hour hack"! · 49d2f488
    Mike Hibler authored
    Resurrect: get the basic signature matching code working again.
    Enhance: add -U option to have imagezip update (or create) the
    signature file. Previously, the signature file was created off-line
    on boss with the imagehash command (that would be Mike's "imagehash"
    (/usr/testbed/bin/imagehash) and not Leigh's "imagehash"
    (/usr/testbed/sbin/imagehash)). Creating it as we create the image
    makes a lot of sense...except for how we do it. We actually read and
    create the hashes as a separate pass before we re-read, compress, and
    create the image--so we read the disk twice. [This is primarily because we
    are mooching off of the existing hash checking code (-H option). Doing
    this right will require re-writing The Big Loop which makes a single
    pass through the data, simultaneously dealing with disk IO, allocated
    ranges, and compression blocks all of which have different size/alignment
    criteria. But I digress...] Anyway, reading the disk data twice sucks,
    but at least it is on the client and not on boss. The take away is:
    don't create your images on pc600s.
    Note that -U will always create a signature file for the complete disk
    or partition even when you are creating a delta image (i.e., when combined
    with -H).
    Enhance: add "-P <pct>" option, used with -H, which tells imagezip that if
    a resulting delta image would be over <pct> percent the size (where size
    is number of uncompressed sectors in the image) of a full image, then just
    create a full image instead. So "-P 50" says if it would be over half the
    size, "-P 200" says if it was over twice the size, etc. If you always want
    a delta image to be produced, use -H without -P. If you always want a full
    image, don't use -H.
    This is part 2 of supporting images. Part 1 is the DB and user interface
    changes that Leigh is working on. Part 3 is next up and involves modifying
    the image creation MFS to download and use signatures along with the
    new imagezip when creating images. Stay tuned.
hashmap.c 30.7 KB