<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Storage System on</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/</link><description>Recent content in Storage System on</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 18 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/index.xml" rel="self" type="application/rss+xml"/><item><title>Overview</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/overview/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/overview/</guid><description>&lt;p&gt;&lt;a id="sm"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="storage"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Overview --&gt;
&lt;h2 id="how-should-i-read-this-chapter"&gt;How Should I Read This Chapter&lt;/h2&gt;
&lt;p&gt;Before performing the operations outlined in this chapter, familiarize with Node Deployment from the &lt;a href="https://docs.opennebula.io/7.2/software/installation_process/"&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
&lt;p&gt;After that, proceed with the specific Datastore documentation you might be interested in.&lt;/p&gt;
&lt;h2 id="datastore-types"&gt;Datastore Types&lt;/h2&gt;
&lt;p&gt;Storage in OpenNebula is designed around the concept of datastores. A datastore is any storage medium to store disk images. OpenNebula distinguishes between three different datastore types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Images Datastore&lt;/strong&gt;, which stores the base operating system images, persistent data volumes, CD-ROMs and File Systems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Datastore&lt;/strong&gt; holds disks of running Virtual Machines. Disk are moved from/to the Images when the VMs are deployed/terminated.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Files &amp;amp; Kernels Datastore&lt;/strong&gt; to store plain files (not disk images), e.g. kernels, ramdisks, or contextualization files. &lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/file_ds/#file-ds"&gt;See details here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="td-image-wrapper" style="margin-left: auto; margin-right: auto; width: 60%; margin-bottom: 20px;"&gt;
 &lt;img src="https://docs.opennebula.io/7.2/images/datastoreoverview.svg" alt="Overview of Storage Design based on Datastores" class="roundBorderImage shadowImage td-img-light td-img-always" &gt;&lt;/div&gt;
&lt;h2 id="driver-types"&gt;Driver Types&lt;/h2&gt;
&lt;h2 id="storage-portfolio"&gt;Storage portfolio&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Use case&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Shared&lt;/th&gt;
 &lt;th&gt;Disk Format&lt;/th&gt;
 &lt;th&gt;Disk snapshots&lt;/th&gt;
 &lt;th&gt;VM snapshots&lt;/th&gt;
 &lt;th&gt;Storage migration&lt;/th&gt;
 &lt;th&gt;Fault tolerance&lt;/th&gt;
 &lt;th&gt;HV&lt;/th&gt;
 &lt;th&gt;Availability&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/local_ds/"&gt;Local storage&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Images stored in frontend* and transferred to hosts via&lt;br/&gt;SSH on instantiation.&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;raw/qcow2&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;poweroff/live&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;KVM/LXC&lt;/td&gt;
 &lt;td&gt;EE/CE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/nas_ds/"&gt;NFS/NAS&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Images stored in a NFS share, activated directly.&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;raw/qcow2&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;poweroff/live&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;KVM/LXC&lt;/td&gt;
 &lt;td&gt;EE/CE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/ceph_ds/"&gt;Ceph&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Images stored in a Ceph pool, activated directly.&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;raw (RBD)&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;poweroff&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;KVM/LXC&lt;/td&gt;
 &lt;td&gt;EE/CE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/lvm/lvm/"&gt;SAN - LVM&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Images stored as LVs in a SAN, activated directly.&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;raw (LV)&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;poweroff&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;KVM&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;EE only&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/lvm/filemode/"&gt;SAN - LVM&lt;br/&gt;(File Mode)&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Images stored in frontend*, transferred to hosts via SSH,&lt;br/&gt;and copied to the SAN on instantiation.&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;raw (LV)&lt;br/&gt;Images: raw/qcow2&lt;/td&gt;
 &lt;td&gt;yes**&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;poweroff/live&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;KVM&lt;/td&gt;
 &lt;td&gt;EE/CE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/san_storage/netapp/"&gt;SAN - NetApp&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Images stored in a NetApp cabin, activated directly.&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;raw (LUN)&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;poweroff&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;KVM&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;EE only&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/virtiofs_ds/"&gt;FileSystems - VirtioFS&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Images are filesytem paths available on the hosts&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;filesystems (dir)&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;KVM&lt;/td&gt;
 &lt;td&gt;EE/CE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; Additional options available by mounting remote filesystems in the frontend.&lt;/p&gt;</description></item><item><title>Datastores</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/datastores/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/datastores/</guid><description>&lt;p&gt;&lt;a id="datastores"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Datastores --&gt;
&lt;h2 id="types"&gt;Types&lt;/h2&gt;
&lt;p&gt;OpenNebula features three different datastore types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Image Datastore&lt;/strong&gt; stores the Image repository.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;System Datastore&lt;/strong&gt; holds disk for running Virtual Machines, usually cloned from the Image Datastore.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Files &amp;amp; Kernels Datastore&lt;/strong&gt; to store plain files used in contextualization, or VM kernels used by some hypervisors.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By default, OpenNebula will create an image (&lt;code&gt;default&lt;/code&gt;), system (&lt;code&gt;system&lt;/code&gt;), and files datastore (&lt;code&gt;files&lt;/code&gt;). These datastores are configured to use the SSH protocol to transfer images. You can list the datastores in your cloud with the &lt;code&gt;onedatastore list&lt;/code&gt; command:&lt;/p&gt;</description></item><item><title>NFS/NAS Datastore</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/nas_ds/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/nas_ds/</guid><description>&lt;p&gt;&lt;a id="nas-ds"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# NFS/NAS Datastores --&gt;
&lt;p&gt;This storage configuration assumes that your Hosts can access and mount a shared volume located on a NAS (Network Attached Storage) server. You will use this shared volume to store VM disk images files. The Virtual Machines will also boot from the shared volume.&lt;/p&gt;
&lt;p&gt;The scalability of this solution will be bound to the performance of your NAS server. However, you can use multiple NAS servers simultaneously to improve the scalability of your OpenNebula cloud. The use of multiple NFS/NAS Datastores will allow you to:&lt;/p&gt;</description></item><item><title>Local Storage Datastore</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/local_ds/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/local_ds/</guid><description>&lt;p&gt;&lt;a id="local-ds"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Local Storage Datastore --&gt;
&lt;p&gt;This storage configuration uses the local storage area of each Host to run VMs. Additionally you’ll need a storage area for the VM disk image repository. Disk images are transferred from the repository to the Hosts using the SSH protocol.&lt;/p&gt;
&lt;h2 id="front-end-setup"&gt;Front-end Setup&lt;/h2&gt;
&lt;p&gt;The Front-end needs to prepare the storage area for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Image Datastores&lt;/strong&gt; to store the image repository.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Datastores&lt;/strong&gt; to hold temporary disks and files for VMs &lt;code&gt;stopped&lt;/code&gt; and &lt;code&gt;undeployed&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simply make sure that there is enough space under &lt;code&gt;/var/lib/one/datastores&lt;/code&gt; to store images and the disks of the &lt;code&gt;stopped&lt;/code&gt; and &lt;code&gt;undeployed&lt;/code&gt; Virtual Machines. Note that &lt;code&gt;/var/lib/one/datastores&lt;/code&gt; &lt;strong&gt;can be mounted from any NAS/SAN server in your network&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Ceph Datastore</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/ceph_ds/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/ceph_ds/</guid><description>&lt;p&gt;&lt;a id="ceph-ds"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Ceph Datastore --&gt;
&lt;p&gt;The Ceph Datastore driver allows the use of Ceph storage for images and disks of Virtual Machines.&lt;/p&gt;









&lt;div class="alert alert-warning" role="alert"&gt;
 
 &lt;div class="alert-heading"&gt;
 &lt;i class="alert-icon fas fa-triangle-exclamation"&gt;&lt;/i&gt; Warning
 &lt;/div&gt;
 
 &lt;div class="alert-body"&gt;
 This driver requires the OpenNebula nodes using the Ceph driver to be Ceph clients of a running Ceph Cluster. More information in &lt;a href="https://docs.ceph.com/en/latest/"&gt;Ceph documentation&lt;/a&gt;.
 &lt;/div&gt; 
&lt;/div&gt;
&lt;h2 id="ceph-cluster-setup"&gt;Ceph Cluster Setup&lt;/h2&gt;
&lt;p&gt;This guide assumes that you already have a functional Ceph Cluster in place. Additionally you need to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a pool for the OpenNebula Datastores. Write down the name of the pool to include it in the datastore definitions.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-default" data-lang="default"&gt;$ ceph osd pool create one 128
$ ceph osd pool application enable one rbd
$ rbd pool init -p one
$ ceph osd lspools
0 data,1 metadata,2 rbd,6 one,
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Define a Ceph user to access the datastore pool; this user will also be used by libvirt to access the disk images. For example, create the user &lt;code&gt;libvirt&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the &lt;strong&gt;Ceph Jewel&lt;/strong&gt; (v10.2.x and earlier):&lt;/p&gt;</description></item><item><title>Raw Device Mapping Datastore</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/dev_ds/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/dev_ds/</guid><description>&lt;p&gt;&lt;a id="dev-ds"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Raw Device Mapping (RDM) Datastore --&gt;
&lt;p&gt;The RDM Datastore is an Image Datastore that enables raw access to block devices on Nodes. This Datastore enables fast VM deployments due to a non-existent transfer operation from the Image Datastore to the System Datastore.&lt;/p&gt;









&lt;div class="alert alert-warning" role="alert"&gt;
 
 &lt;div class="alert-heading"&gt;
 &lt;i class="alert-icon fas fa-triangle-exclamation"&gt;&lt;/i&gt; Warning
 &lt;/div&gt;
 
 &lt;div class="alert-body"&gt;
 The Datastore should only be usable by the administrators. Letting users create images in this Datastore is a huge &lt;strong&gt;security risk&lt;/strong&gt;! For example, users could register an image &lt;code&gt;/dev/sda&lt;/code&gt; and read the Host filesystem.
 &lt;/div&gt; 
&lt;/div&gt;
&lt;h2 id="datastore-layout"&gt;Datastore Layout&lt;/h2&gt;
&lt;p&gt;The RDM Datastore is used to register already existing block devices on the Nodes. The devices should be already set up and available, and VMs using these devices must be enforced to run on the Nodes ready for them. Additional Virtual Machine files, like deployment files or volatile disks, are created as regular files.&lt;/p&gt;</description></item><item><title>Kernels and Files Datastore</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/file_ds/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/file_ds/</guid><description>&lt;p&gt;&lt;a id="file-ds"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# The Kernels &amp; Files Datastore --&gt;
&lt;p&gt;The Kernels and Files Datastore lets you store plain files to be used as VM kernels, ramdisks, or any other files that need to be passed to the VM through the contextualization process. The Kernels and Files Datastore does not expose any special storage mechanism but is a simple and secure way to use files within VM templates.&lt;/p&gt;
&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/datastores/#datastore-common"&gt;datastores common configuration attributes&lt;/a&gt; apply to the Kernels and Files Datastores and can be defined during the creation process or updated once the datastores have been created.&lt;/p&gt;</description></item><item><title>VirtioFS Datastore</title><link>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/virtiofs_ds/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/cluster_configuration/storage_system/virtiofs_ds/</guid><description>&lt;p&gt;&lt;a id="virtiofs-ds"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# VirtioFS Datastores --&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;OpenNebula supports sharing host directories with Virtual Machines using virtiofs. This enables high-performance, low-latency file sharing between the host and guests. The feature is exposed through a dedicated datastore configured to provide directory-based disks, which are attached to VMs and exported via virtiofs.&lt;/p&gt;
&lt;p&gt;Unlike traditional block-based disks, these disks represent host directories. This makes them suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shared data volumes across VMs&lt;/li&gt;
&lt;li&gt;HPC / AI workloads requiring fast POSIX access&lt;/li&gt;
&lt;li&gt;Container-like storage semantics inside VMs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Before creating and using a VirtioFS Datastore, ensure the following:&lt;/p&gt;</description></item></channel></rss>