OpenNebula Vs Eculayptus
Yes you are right, both tools can be used to build a cloud. IMHO the main differences are: * OpenNebula gives you a superior administration interface. You can migrate, suspend VMs and so on. Also OpenNebula gives you a flexible physical host interface to monitor, and manage the physical resources of the cloud. This admin. interface and functionality is missing from the current Eucalyptus releases, only the functionality offered by EC2 can be used (i.e. no suspend or migration of any kind) * OpenNebula gives you better placement policies. Either its out-of-the-box matchmaking algorithm that can be tuned with user-driver consolidation hints or in combination with Haizea that allows gives you advance reservation capabilities. There are some research initiatives developing GreenIT friendly schedulers for OpenNebula. Eucalyptus uses a round-robin approach. * OpenNebula allows you to manage complete services. With OpenNebula you can manage a service (set of VMs) as a whole including private networks to interconnect the service VMs. As Eucalyptus is tied to the EC2 interface you can not defined virtual networks. * Support for advance contextualization. OpenNebula gives you the ability to push any context data to a VM, so it can auto-configure at boot time. (for example software licenses, IP of the service master, data from other VM, the role of the VM... ). I think this kind contextualization can not be done with Eucalyptus. * OpenNebula gives you a powerful API to extend its capabilities. Either to build applications on top of it or to integrate any storage/virtualization/network technologies. Check the ecosystem and related software pages. Eucalyptus only gives you the EC2-soap interface to interact with it. * Support for multiple Virtualization technologies, KVM, Xen. Next release will include VMware, the driver is already implemented so you can try it to day. Eucalyptus supports Xen, and KVM which seems to be their preferred platform  * OpenNebula can be integrated with any storage solution. As an example you can check the VIDA drivers  that add support for multiple transport protocols (e.g., bittorrent). Probably this level of integration can be done with Eucalyptus but I am not aware of any works in that direction. * OpenNebula can be used to build hybrid clouds, (EC2 and Elastic Hosts based). So you can either deploy your VMs locally or in other cloud. This can not be done with Eucalyptus. * OpenNebula gives you a libvirt interface so you can control your infrastructure with the libvirt API or using its related tools (e.g. virsh). * Eucalyptus gives you the EC2 SOAP-API implementation. OpenNebula 1.2 does not provides a simplified cloud interface like this to share your resources. However OpenNebula 1.4 includes a cloud API to implement any cloud interface, as an example we include the implementation of a subset of the EC2-Query API. This is also ready in the development branches * Eucalyptus gives you an S3 implementations. There is no such functionality in OPenNebula 1.2, however OpenNebula 1.4 will include a simple Image management tool.