Diskless Booting For the Modern Age
An anonymous reader writes "Ever wonder what happened to PXE? Intel's popular standard for diskless booting hasn't been updated since 1999, and has missed out on such revolutions as wireless Ethernet, cloud computing, and iSCSI. An open source project called Etherboot has been trying to drag PXE into the 21st century. One of their programmers explains how to set up diskless booting for your cloud, using copy-on-write to save space."
TFTP over UDP on a LAN, doesn't seem slow at all. It's stupid, but sufficient to bootstrap a small kernel to access the real meat of your OS. 1-10MB TFTP downloads over 100mbit is no big deal. You can't get good 1gbit performance (let alone 10gbit) out of the dumb drivers in a PXE boot ROM, but that's OK.
“Common sense is not so common.” — Voltaire
I did a similar thing a while ago with an Ubuntu desktop image and ATA over Ethernet. Worked nicely. Didn't get round to COW though ...
http://www.s-mart.net/aoe.txt
The one thing missing from PXE is authentication: A PXE system will accept any DHCP address and with it any boot server configuration. Without cryptographic boot image authentication, network security is the Achilles' heel of PXE.
i am using pxe often.
i have setup a few linux install "CDs" for network install, a few live CDs for an emergency OS. LTSP is using it too and a small intel atom box gets its kernel over tftp/pxe... the pxe provides the parameters for the nfsroot mount. :) :)
old win2k netinstall for ppl without a RIS uses that system too
the tftpd box that provides all that stuff is a small amd geode that is normally my router
i often thought about making a sourceforge project out of it.... :)
I still use PXE to boot a diskless MythTV client. For a while I had the machine connected to a wireless router set up in bridge mode, so the machine effectively netbooted wirelessly.
"Anyone who [rips a CD] is probably engaging in copyright infringement." - David O. Carson
Am I the only one laughing at that?
Good grief, everything is a "cloud" now. Have some servers on a rack? Those aren't servers, that's a cloud! It's like some retards took a Cisco networking diagram, and went crazy when they realized that everything could be simplified into one of the "clouds".
Warning / Rant: The last 5 years of computing have been pretty lame. Concurrency and solutions to it using functional high-level languages are the future. That's where we should have been five years ago when it was so obvious that chips with large numbers of cores were the future. These cloud solutions are just a stupid name for the same old monolithic crap. It doesn't scale and isn't modular in a Unixy way. Modern applications just suck because they're so inflexible. Why can I do so many things from a little text terminal, but I can't easily script the behavior of my web browser without special add-ons? Why aren't modern applications flexible like this, with simple interfaces for communicating with other programs? Where is the equivalent of a shell pipe, in modern applications? It's like somebody threw away all the lessons of the past, and said "But this is the new way, we don't need the old way, because this is new." Fuck that, computing should be better than this. It should be better than these stupid clouds and old piece-of-shit reinvent-the-wheel C and C++ programs with buffer overflows and other ancient problems. Or the HTML / Javascript / whatever jerry-rigged "web applications" that run on some opaque "cloud" that a random company has. Why is it that languages like Smalltalk and Lisp have been around for so long, and nobody learns from them or uses them? It's like the chips keep getting faster and faster, and people keep getting dumber and dumber.
Systemd: the PulseAudio of init systems
Network multi-booting is great to allow people to change OS's, but it's pretty complex to set up, and there is little knowledge of it.
Build your own energy sources from scratch. http://otherpower.com/
Im sorry, but with virtualisation and it's boot from SAN capability this is pretty redundant now, it's old technology and there are reasons it hasn't moved along,
changing drivers can break boot
changing the kernel means custom compiles
mpio support isn't straight forard
NFS is showing its age
and with virtualisation you can boot from the network, and you can use ethernet/fc/iscsi/nfs
This is my sig, there are many like it but this is mine
We do this at work - we chain-load gPXE using PXE and then use that to iSCSI boot from a Linux SAN which uses LVM COW snapshots. It's pretty good - the etherboot project rocks! We've been doing it for a while but it always gives me a kick when I type something at the commandline which wakes up a machine using IPMI & then boots it off some SAN volume
Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
xCAT at its core focuses on network boot (and for x86 portions, includes gPXE). It does Windows, Redhat, SuSE, VMware. It takes a lot of the tedium out at scale of network install, statless boot, and iscsi boot.
XML is like violence. If it doesn't solve the problem, use more.
The DHCPv6 netboot standard about to come out recommends http as the protocol of choice where tftp would have been used, but uses URLs so the protocol is selectable.
The iSCSI portion of this is a wider standard, implemented by many firmware configurations out of the box.
Finally, I'm going to plug xCAT as a tool to wrap dhcp, dns, ntp, active directory, gPXE, iSCSI, PXE, bootp/tftp, ipmi, blades, vmware, kvm, xen, LPARs, and more to deploy vmware, windows, linux, and aix systems and do hardware management. It mostly pays off at larger scale, but it is a project that aims to understand how to best utilize those various technologies.
XML is like violence. If it doesn't solve the problem, use more.
The only diskless OS booting I'm interested in and waiting for is booting from EEPROM. Near instant boot times. Why has this never really taken off?
It's better to burn out than to fade away
http://boot.fedoraproject.org/
I thought I read that their goal was to get rid of offering premade ISO's and just off one tiny network bootable image that does everything.
1. Remote KVM setup (requires KVM-over-IP)
2. Remote PXE unattended setup (requires BIOS configuration by KVM-over-IP or someone at the data center to make the changes for you)
3. Remote IPMI setup (requires BIOS config... blah blah blah)
You actually have to combine either 1 and 2 or 3 and 2 to install a system without putting a disc in the machine, and I've done both.
#3 came about because the machines we bought didn't have PS/2 connections to work with the KVM. Dell's IPMI implementation is "good enough" that you can install linux or freebsd over it provided you setup the BIOS to PXE boot.
By "good enough" I mean you don't need to pay for the additional "KVM-over-IP" feature, the IMPI serial-over-lan(SOL) works. You just need to know what you're doing.
It's not something I'd let non-IT staff touch though, it's kinda like dealing with BBS's back in the day.
I have a laptop which cannot boot from USB and whose CD-ROM doesn't work. It's good enough for a Linux install, so I've taken to installing Ubuntu via PXE.
It works out quite well, when it works, and it's neat to do. I generally use this tutorial to set up the TFTP server on my Windows machine and just change whatever release they talk about to whatever release is current.
It's fun, frankly.
I've been using OpenSharedRoot over NFS at my workplace on three different clusters. It works pretty well. Ultimately, I would love to be able to install gigabit switches everywhere and give everyone disk-less workstations that PXE boot. Unlike a thin-client solution, the engineers would still be able to use their desktop's CPU resources and local RAM, plus the local HD could be used for swap and data files, but not the OS itself.
I thought these were pretty interesting ideas:
http://boot.kernel.org/
http://boot.fedoraproject.org/
Although they are pretty slow at times, and I have had them freeze a few times (this may have been due to bad hardware though). It a pretty cool way to install a Linux distro.
Of topic, but instead of "updates available, download and update". Just reboot your system it syncs with the latest distro of choice. Should be nice, is there a solution already?
I am not sure where the idea that PXE boot files are limited to 32KB comes from, but we are booting FreeBSD 8.0 with a 240KB boot file with PXE and tftp and have not had to do anything special. We also boot Linux (Fedora 11) with a 4MB initrd over tftp and that has not posed any difficulties either. Our FreeBSD experience is documented at http://www.nber.org/sys-admin/FreeBSD-diskless.html - it works quite well for us. I looked at gPXE and it doesn't really solve any problems we have had. Actually, we have had only one problem - sometimes the OS boot code doesn't support the motherboard ethernet, and we have to add a different ethernet card for post-boot LAN access.
naturally laugh at the mere suggestion of dickless booting.
PXE is nice if you have an entire cluster to build. We use it and it can be great to get a disk image installed on a new cluster. But honestly, I've only seen two cases were PXE really works...small "toy" setups where somebody boots this system on the left side of the desk from an PXE/TFTP/NFS server on the right side of the desk. Or using it to clone/install large blocks of systems. (That is how ROCKS works.) But I don't know of anyone using PXE to boot a significant number of systems...workstations or cluster nodes.
Instead, I just installed OpenSUSE 11.2 to a 4GB flash drive. It worked perfectly. This is not a LiveCD or something like Slax that uses filesystem trickery to maintain a persistent system image. This is vanilla OpenSUSE installed to the flash just like a HDD or SSD. It recognized it as /dev/sda and installed. Of course, I didn't allow any swap space. For fun, I then reinstalled the system using two 4GB flash drives and created a raid0 for /. It also worked great and significantly faster than the single. So for $10 per system, you can boot from a flash drive locally...and then mount your user files from a NFS server. That is exactly what I'm doing. For future clusters that don't require scratch space, we might starting using a few internally mounted flash drives instead. All those drives need to do is handle bootup...most of the commonly used files come from NFS or would be cached in RAM.
Cloud related ranting apart, can you imagine a better attack vector than wireless booting? Just place a rouge access point in a crowded cafe or station, broadcast a boot image and infect all of the poor smucks that start-up their laptop in the area. You just need to patch their windows system and then start it, it will take 30 sec longer than the ususal 5min boot, they won't ever notice...
... you may want to take a look at openQRM - http://www.openqrm.com. It is a fully automated Datacenter Management and Cloud Computing Platform heavily based on PXE.
enjoy
Matt Rechenburg
Project Manager openQRM