wiki:Old/orbit-pxe/specs/3

Version 8 (modified by mcgrof, 17 years ago) ( diff )

inventory no longer required on PXE

Go back —> Documentation —> Orbit-PXE —> Orbit-PXE specs

Orbit-PXE-3 Specifications

Orbit-PXE-3 does not exist yet but here we can list goals for this series. Here's a few things to aim for 3-series:

Move to buildroot

This will move us to uClibc and incorporate current external debian package dependencies into the buildroot system. The biggest blocker to moving to buildroot right now is nodeagent and its dependency on ruby. Buildroot supports ruby but there is a bug with building ruby at the moment:

http://bugs.uclibc.org/view.php?id=1319

Part of the effort of adopting buildroot will then be to integrate frisbee, imagezip, getmac and any other utility which others can make use of as part of buildroot upstream.

Move nodeagent to standalone C application

We need a simple nodeagent for Orbit-PXE, all the features we need are the ability to save the image and image the node (inventory will be done with the baseline). A simple C nodeagent with uClibc would save us a lot of space.

Adopt kexec

There is no need for reboots with kexec. We have been supporting kexec in our kernels since Orbit-PXE-1 series. We now have to get nodeagent to support its use and stop rebooting. This should increase the time it takes to image a node and load it considerably. To analyze how we can use kexec we need to consider each separate state a node can be in and what we will do for each command that needs to be processed.

Node\CommandImageNodeSaveNode
Node is OFFLoad Orbit-PXE, image, kexecLoad Obit-PXE, saveNode
Node is ONWget Orbit-PXE, kexec to it, imageNodeWget Orbit-PXE, kexec to it, saveNode

Here's an example of how to use kexec:

wget kernel and initramfs cpio archive if necessary
telinit 1
kexec -l /mnt/boot/vmlinuz-2.6.18-3-686 --append="root=0x0301 ro console=ttyS0,9600" --initrd=/mnt/boot/initrd.img-2.6.18-3-686
kexec -e

Please note that root=0x0301 is needed as we have removed syfs on Orbit-PXE-2 series. the 0x0301 represents the major and minor number of the block device.

brw-rw---- 1 root disk 3, 0 Apr  2 13:24 /dev/hda

If using another device as root change the value accordingly.

Note: See TracWiki for help on using the wiki.