NodeWeaver is designed to be simple and safe - in every moment, be it under management or not. This means that the infrastructure needs to be able to manage itself, both in normal operativity and during a disaster. Each node integrates a complex autonomic engine, that manages the node itself, its hardware components and any process executing on top; this brings substantial advantages in terms of efficiency and reliability.
As an example, in most virtualization systems a common hardware requirement is either a local RAID protected storage or an external, costly storage area network. With NodeWeaver, storage is handled with a novel concept called “chunks” that are atomic components of a file, and replicated with the desired level to achieve the protection that is more appropriate for each virtual machine. If a disk failure causes some chunks to become unavailable, the system automatically will find a working copy and replicate again to guarantee the desired security level. The same apply to single-bit error, an event that is more and more frequent as hard disk sizes continue to grow. Chunks are CRC-verified during write and read, to guarantee that any unwanted modification is identified and corrected before it can cause damage.
On top of this basic guarantees, NodeWeaver lays down a file system that uses the concept of temporal ordering - anything that changes the data store leaves a perfect trail, that allows reconstruction of completely coherent state even in case of total power failure. This is implemented through an efficient snapshot mechanism, that effectively reduce the storage requirement by creating new chunks only when there is a low level change. This system provides the benefits of deduplication without incurring in the massive CPU and memory requirements commonly needed in other platforms
Since most management tasks are handled automatically, the user interface can be effectively simplified - it is designed to be guided by what you would like to get as a result, not forcing the user to specify every needed step. It is in fact a declarative interface, where you design resources (the virtual machine) and ask for those resources to appear.