On Tue, 2007-07-24 at 18:57 -0500, Douglas McClendon wrote:
Jeremy Katz wrote:
> On Mon, 2007-07-23 at 03:06 -0500, Douglas McClendon wrote:
>> They implement what I have described rather verbosely on fedora-livecd-list and
>> in bug 248082.
>>
>> The short story is the fedora7 livecd installer works by copying a 4G ext3 image
>> to the destination rootfs, and then resizing to maximal size.
>>
>> The attached patches improve the speed of this step by 10-30% (for cdrom vs fast
>> livecd-iso-to-disk'd usbflash install media respectively).
>>
>> This is accomplished because the 4G image actually only holds 2G of data. The
>> patch to livecd-creator, when invoked with --turbo-liveinst, will create a small
>> (25kb) binary delta file on the livecd. The patch to anaconda, will detect the
>> presence of the file, and if it is there, use it with devicemapper to create a
>> 2G ext3 image, which can naturally be copied to the destination volume more
>> quickly. (I.e. 2G of zeros don't get written to disk).
>
> So I'm still not convinced that the wins here are really substantial
> enough given the additional contortions that we have to go through to
> get things going.
I understand your attitude. I will however do another round of polishing and
performance testing in an attempt to convince you. Ultimately, I hope to at
least convince you to do your own side-by-side taste test and confirm my
results. :)
*grin* Sounds good.
> As for being able to get to a smaller rootfs, I think that if
you really
> want to get to requiring a small root, then we have to entirely change
> the copying to be more of a "copy the bits from the filesystem" as
> opposed to a block-level copy. That would also avoid the duplicated
> copies if you have, eg, a separate /usr (and also avoid the overhead of
> needing that space on the rootfs). This would also end up avoiding the
> copying overhead as well as the filesystem resizing, although you'd then
> have to format the entire fs. I think I'd be slightly more interested
> in doing that, although care has to be taken to ensure that we really
> are preserving everything then.
I agree with all of this. Still, I go back to the existing patch, which
hopefully should be a bit more elegant and polished soon, and suggest that it is
at least worth seriously considering for F8.
Doing a file level copy rather than the block copy currently being done,
though, should be pretty straight-forward also. It'd just be changing
the copy method in the livecd backend of anaconda to use the copytree
stuff that's already there. Maybe I'll try to throw together a quick
test to time later and see how it fares. I know it'll be a win for if
you have a separate /usr, the question is just for the "base" case.
Jeremy