Nova uses ata-over-ethernet (AoE) to export storage volumes from multiple storage nodes. These AoE exports are attached (using libvirt) directly to running instances.
Nova volumes are exported over the primary system VLAN (usually VLAN 1), and not over individual VLANs.
AoE exports are numbered according to a “shelf and blade” syntax. In order to avoid collisions, we currently perform an AoE-discover of existing exports, and then grab the next unused number. (This obviously has race condition problems, and should be replaced by allocating a shelf-id to each storage node.)
The underlying volumes are LVM logical volumes, created on demand within a single large volume group.
Nova Storage manages creating, attaching, detaching, and destroying persistent storage volumes, ala EBS. Currently uses Ata-over-Ethernet.
Bases: object, twisted.application.service.Service
There is one BlockStore running on each volume node. However, each BlockStore can report on the state of all volumes in the cluster.
Bases: nova.volume.storage.Volume
Bases: nova.datastore.BasicModel