Forgot about tags, sorry. -- With best regards, Vladimir Eremin, Fuel Deployment Engineer, Mirantis, Inc.
> On Nov 13, 2015, at 5:13 PM, Vladimir Eremin <[email protected]> wrote: > > Hi folks, > > As you know, to speed up provisioning stage we could use HTTP for downloading > kernel and initramfs. There are 3 options to do this: lpxelinux, iPXE (which > is successor/fork of gPXE) and GRUB 2, which we were assessed during my work > in Yandex and I’d like to share some experience. > > In this note I leave UEFI/iPXE embedding for IPv6 out of scope. Yandex has > chosen with iPXE embedding mostly because it’s well-known already and there > was less problem to embed iPXE to custom-build hardware than mess with UEFI. > > lpxelinux is a HTTP/FTP enabled variant of usual pxelinux (since syslinux > 5.10), so it’s required no chainloading (so no mess with DHCP-server) and no > boot config re-design. To provide HTTP URI instead of TFTP, two variants may > be used: > > * replace entries in boot config like LINUX from relative path like > boot/mykernel to absolute URL like http://boot-server/boot/mykernel > * provide pxelinux.pathprefix DHCP option [1] contains URL prefix like > http://boot-server/ > > This is most convenient variant to speed up pxelinux setup. Unfortunately, > lpxelinux hasn't built for Ubuntu Trusty, so it should be rebuilt from Debian > Sid. > > > iPXE is advanced boot loader with many features like IPv6, HTTP and scripting > language. Actually, it allows to pass hardware-related information to > provisioning server. > > Boot script should be compiled into iPXE, or you will need to set up your > DHCP-server [2] to serve different options for different loaders. This option > will require to re-write provisioning logic. > It also support UEFI, so it could be used for IPv6 provisioning. > > I recommend this variant for advanced IPv6 + HTTP provisioning. > > > GRUB2 is most advanced option. Unfortunately, it’s still has a bug with IPv6 > [3], so there is no point to overcomplicate the setup. > > > Note that UNDI API is provided correctly by most of modern NIC’s. However, > some cards like Mellanox ConnectX and weird Intels is not working correctly. > To fix it, iPXE could be built with vendor-specific driver [4]. There is no > workaround for lpxelinux. > > [1] http://www.syslinux.org/wiki/index.php/PXELINUX#DHCP_options > [2] http://ipxe.org/howto/chainloading > [3] https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1229458 > [4] http://ipxe.org/appnote/hardware_drivers > > -- > With best regards, > Vladimir Eremin, > Fuel Deployment Engineer, > Mirantis, Inc. > > > __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
