[Openstack] Diskless Compute Nodes?

Clint Byrum clint at fewbar.com
Fri Aug 2 16:10:13 UTC 2013

Excerpts from Mark Chaney's message of 2013-08-02 04:36:16 -0700:
> So I am planning on setting up my first openstack cloud a little like so where my Compute nodes will be diskless: 
> http://content.screencast.com/users/MACscr/folders/Snagit/media/539491bf-c5ed-49e8-88a5-d812f954176e/2013-08-02_04-54-29.png
> I will be using Ceph for Object Storage and also RBD for the VM storage. Since the Compute nodes will be diskless, I will have to boot them through pxe and load the OS into memory and then also when guests are booted, they will have to be done through their Volumes since Ephemeral storage will not be available.
> Since I unfortunately seem to be going against the standard practice, I am wondering if anyone has any suggestions on any deployment or management tools that I might be able to use to better create my openstack mini cloud and also manage it (adding new nodes, storage, etc). Unfortunately it looks like tools like Fuel for Openstack or the Rackspace Private Cloud toolset not only do not support diskless Compute nodes, but also do not even support Ceph. I know I could build everything from scratch, but thats not only going to be time consuming, but a pain to maintain in the future. The TripleO project seems to have a lot of promise, but unfortunately appears to be a bit to early in its dev cycle and also at least at its current state, to be a bit over my head.

Hi Mark, we had a nice discussion in #tripleo last night, and I really
think you bring an interesting operating paradigm to OpenStack with
diskless compute nodes.

TripleO is not chasing your use case, but it would not be that hard to
add it. TripleO relies on Nova's baremetal at the moment, and will rely
on Ironic (split out baremetal support) when it reaches parity. Nova
baremetal currently works like this:

* Copy image out of glance into raw image file on compute node
* PXE boot target machine into "deployment" ramdisk
  - deploy ramdisk exposes "the disk" via iscsi
  - deploy ramdisk calls back to nova's baremetal helper to notify that iscsi is ready
* attach to machine's iscsi and dd raw image file onto iscsi disk
* PXE boot target machine into the initrd+kernel from the image, root is located via label

I have not been following Ironic's details closely, but I believe it
is only a more refined implementation of the above. In order to support
booting baremetal from a Ceph volume, you'd need this pattern:

* Create Ceph volume from image using Cinder
* PXE boot target machine into initrd+kernel from image
  - initrd uses ec2 metadata service to locate  Ceph RBD volume info
  - initrd mounts RBD volume as root disk and boots

So, I don't think there are major technical hurdles to get over, just code to write.

More information about the Openstack mailing list