On 24 February 2014 23:37, Jimmy Kaplowitz <[email protected]> wrote:
> Hi, > > On Mon, Feb 24, 2014 at 2:10 PM, Anders Ingemann <[email protected]>wrote: > >> > Do you suggest adding more generic plugin, with potential line in >> manifest with NTP server address? >> >> Is NTP optional on GCE or is it a must have because of some other stuff? >> If it is optional, I'd suggest a plugin as well. Just hack it together in >> a minimal way, you can always add options later on :-) >> > > NTP as such is exactly as useful on GCE for keeping time in sync as it is > in other virtualized environments, i.e. very. The strongest reason to > change the server hostname inside GCE is for those instances where they > don't have an external IP address, or otherwise choose not to allow the VM > to access the internet as a customer security decision. Such instances can > still reach the NTP server at metadata.google.internal since it's provided > by the GCE environment itself. > > > Here is the list of all tasks from non-Python GCE build-debian-cloud >> parts that I've omitted: >> > 35-disable-ipv6 >> >> Might be useful to have in common, since AWS doesn't support it yet >> either. >> > > In common sounds good, though we should remember that some virtualized > environments do support IPv6, so both ways would be good to support. > > p.s.: Try out the development branch. I've added quite a few fixes. Also: >> I think you might benefit from the minimize_size plugin using zerofree. It >> zeroes out unallocated disk space, which increases the effect of >> compression A LOT. I tested it on an almost barebones setup with ssh, sudo >> and nfs-client: (gzipped) 118 MB :-) >> > > Neat! The shrink part of that plugin would be great to have work on raw > disks as well, such as GCE / KVM / qemu / etc all use; when the build > filesystem supports this, the fallocate call with FALLOC_FL_PUNCH_HOLE > should do the trick. > > Also, does the code start out with a sparse disk image? GNU truncate is > one way to do this, which we use in the GCE build-debian-cloud logic. The > standard dd command can also achieve the same effect. This achieves much of > the benefit of after-the-fact sparsification, with the exception of disk > space that is allocated then freed during the build. This should happen in > all image builds that make raw disk images from scratch, since it's > generally useful and widely portable across build filesystems/OSes even > where zerofree or FALLOC_FL_PUNCH_HOLE is unavailable. > > - Jimmy > > the fallocate call with FALLOC_FL_PUNCH_HOLE should do the trick. That's actually exactly what zerofree uses: http://intgat.tigress.co.uk/rmy/uml/index.html > Also, does the code start out with a sparse disk image? Nope. It's just plain raw format. But it's damn easy to create a new disk format: https://github.com/andsens/bootstrap-vz/tree/master/common/fs GNU truncate is one way to do this, which we use in the GCE build-debian-cloud logic. > [...] with the exception of disk space that is allocated then freed during the build. The minimize_size plugin prevents some of that by binding folders from the host system in to key locations on the chroot (/tmp and apt-cache) > This should happen in all image builds that make raw disk images from scratch, since it's generally useful and widely portable across build filesystems/OSes even where zerofree or FALLOC_FL_PUNCH_HOLE is unavailable. OK, cool. I'll try and add it to the plugin, should just be another task and then a switch whether you want to use zerofree, sparsification or nothing. Do you have a ready-to-go command I could just plug in?
