Walrus

!! Walrus

Walrus is the main storage for the whole cloud. In truth, it can almost be thought of as a separate cloud service that works in tandem with Eucalyptus, as other Eucalyptus components are generally clients of Walrus while Walrus does not depend on other components. The exception to this is that Walrus and the Cloud Controller use the same set of user accounts.

The storage that Walrus provides is used for many different purposes. Walrus provides the cloud with storage for images. These images are the starting point for a new instance, supplying the operating system and any other files or applications that the instance will have. Walrus also acts as a general purpose storage system, allowing users to upload their own files

!!! Networking

Walrus is generally placed in a network that has access to the outside world, so that users can interact with it and store and manipulate their files. It is also generally on a private network that has access to the Cloud Controller and Cluster Controller. Access to nodes may be directly or through the Cluster Controller.

!!! Communication and Interaction

Like the Cloud Controller, Walrus can be accessed by users from the outside world with a REST API. Whereas interaction with the Cloud Controller is done with an interface compatible with Amazon's EC2, interaction with Walrus is done with an interface compatible with Amazon's S3. Users can upload files, stored in Walrus as objects (a combination of a file and associated metadata). They can move these objects into buckets (containers of objects with other properties such as access permissions).

Since Walrus also stores standard images, nodes must also communicate with Walrus. The nodes can download images from Walrus, and then they generally keep a local cache of these images from which instances can be started. The images that Walrus stores are called standard images. These images offer no persistence and instances created from them cannot be stopped and started later. They can only be terminated, which does not save changes made while the instance was running.