OpenNebula features three different datastore types:
- The Image Datastore, stores the Image repository.
- The System Datastore holds disk for running virtual machines, usually cloned from the Image Datastore.
- The Files & Kernels Datastore to store plain files used in contextualization, or VM kernels used by some hypervisors.
By default, OpenNebula will create an image (
default), system (
system), and files datastore (
files). These datastores are configured to use the SSH protocol to transfer images. You can list the datastores in your cloud with the
onedatastore list command:
onedatastore list ID NAME SIZE AVA CLUSTERS IMAGES TYPE DS TM STAT 2 files 50G 86% 0 0 fil fs ssh on 1 default 50G 86% 0 2 img fs ssh on 0 system - - 0 0 sys - ssh on
Image and Files & Kernels Datastores¶
You can access the information about each datastore using the
onedatastore show command. For example the information of your
default datastore may look like:
onedatastore show 1 DATASTORE 1 INFORMATION ID : 1 NAME : default USER : oneadmin GROUP : oneadmin CLUSTERS : 0 TYPE : IMAGE DS_MAD : fs TM_MAD : ssh BASE PATH : /var/lib/one//datastores/1 DISK_TYPE : FILE STATE : READY DATASTORE CAPACITY TOTAL: : 50G FREE: : 43.2G USED: : 6.8G LIMIT: : - PERMISSIONS OWNER : um- GROUP : u-- OTHER : --- DATASTORE TEMPLATE ALLOW_ORPHANS="YES" CLONE_TARGET="SYSTEM" DISK_TYPE="FILE" DS_MAD="fs" LN_TARGET="SYSTEM" RESTRICTED_DIRS="/" SAFE_DIRS="/" TM_MAD="ssh" TYPE="IMAGE_DS" IMAGES 0 1
There are four important sections:
- General Information, it includes basic information like the name, the file path of the datastore or its type (
IMAGE). It includes also the set of drivers (
TM_MAD) used to store and transfer images. In this example, the datastores uses a file based driver (
DS_MAD="fs") and the SSH protocol for transfers (
- Capacity, including basic usage metrics like total, used, and free space.
- Generic Attributes, under
DATASTORE TEMPLATEyou can find configuration attributes and custom tags (see below).
- Images, the list of images currently stored in this datastore.
The example above shows how a basic image datastore looks like. A Files & Kernels Datastore will look mostly the same but with different values in the type fields.
In the case of System Datastore the information is similar:
onedatastore show system DATASTORE 0 INFORMATION ID : 0 NAME : system USER : oneadmin GROUP : oneadmin CLUSTERS : 0 TYPE : SYSTEM DS_MAD : - TM_MAD : ssh BASE PATH : /var/lib/one//datastores/0 DISK_TYPE : FILE STATE : READY DATASTORE CAPACITY TOTAL: : - FREE: : - USED: : - LIMIT: : - PERMISSIONS OWNER : um- GROUP : u-- OTHER : --- DATASTORE TEMPLATE ALLOW_ORPHANS="YES" DISK_TYPE="FILE" DS_MIGRATE="YES" RESTRICTED_DIRS="/" SAFE_DIRS="/var/tmp" SHARED="NO" TM_MAD="ssh" TYPE="SYSTEM_DS" IMAGES
- Note the differences in this case:
- Only the transfer driver (
TM_MAD) is defined.
- For the datastore of this example, there are no overall usage figures. The
sshdriver use the local storage area of each Host. To check the available space in a specific host you need to check the host details with
onehost showcommand. Note that this behavior may be different for other drivers.
- Images cannot be registered in System Datastores.
- Only the transfer driver (
Configuring a Datastore usually requires adding some specific attributes that depends on the storage driver and your infrastructure, check the Open Cloud Storage Guide and vCenter Storage Guide for specific details.
Also, there are a set of common attributes that can be used in any Datastore to tune its behavior. The following table describes each attribute:
||Paths that cannot be used to register images. A space separated list of paths.|
||If you need to allow a directory listed under RESTRICTED_DIRS. A space separated list of paths.|
||Do not try to untar or decompress the file to be registered. Useful for specialized Transfer Managers|
||Specify the maximum transfer rate in bytes/second when downloading images from a http/https URL. Suffixes K, M or G can be used.|
||The maximum capacity allowed for the Datastore in
||Space separated list of hosts that have access to the storage to add new images to the datastore.|
||Path in the storage bridge host to copy an Image before moving it to its final destination. Defaults to
||Specific image mapping driver enforcement. If present it overrides image
||Only for Image Datastores. Set the System Datastores that can be used with an Image Datastore, e.g. “0,100”|
The Files & Kernels Datastore is an special datastore type to store plain files to be used as kernels, ram-disks or context files. See here to learn how to define them.
If you are using
BRIDGE_LIST you need to install any tool needed to access the underlying storage (e.g. Ceph
BRIDGE_LIST servers need Ceph client tools), as well as generic tools like
Disable a System Datastore¶
System Datastores can be disabled to prevent the scheduler from deploying new VM in them. Datastores in the
disabled state are monitored as usual, and the existing VM will continue to run.
$ onedatastore disable system $ onedatastore show system DATASTORE 0 INFORMATION ID : 0 NAME : system ... STATE : DISABLED ...