<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Infrastructure Drivers on</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/</link><description>Recent content in Infrastructure Drivers on</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 17 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/index.xml" rel="self" type="application/rss+xml"/><item><title>Overview</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/overview/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/overview/</guid><description>&lt;p&gt;&lt;a id="intro-integration"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Overview --&gt;
&lt;p&gt;The interactions between OpenNebula and the Cloud infrastructure are performed by specific drivers. Each one addresses a particular area:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;. The OpenNebula core issue abstracts storage operations (e.g., clone or delete) that are implemented by specific programs that can be replaced or modified to interface special storage backends and file-systems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Virtualization&lt;/strong&gt;. The interaction with the hypervisors are also implemented with custom programs to boot, stop, or migrate a Virtual Machine. This allows you to specialize each VM operation so as to perform custom operations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;. Monitoring information is also gathered by external probes. You can add additional probes to include custom monitoring metrics that can later be used to allocate Virtual Machines or for accounting purposes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Authentication&lt;/strong&gt;. OpenNebula can be also configured to use an external program to authorize and authenticate user requests. In this way, you can implement any access policy to Cloud resources.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Networking&lt;/strong&gt;. The hypervisor is also prepared with the network configuration for each Virtual Machine.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the driver interfaces if you need OpenNebula to interface any specific storage, virtualization, monitoring, or authorization system already deployed in your data center, or to tune the behavior of the standard OpenNebula drivers.&lt;/p&gt;</description></item><item><title>Virtualization Driver</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-vmm/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-vmm/</guid><description>&lt;p&gt;&lt;a id="devel-vmm"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Virtualization Driver --&gt;
&lt;p&gt;The component that deals with the hypervisor to create, manage, and get information about Virtual Machine objects is called Virtual Machine Manager (VMM for short). This component has two parts. The first one resides in the core and holds most of the general functionality common to all the drivers (and some specific), the second is the driver that is able to translate basic VMM actions to the hypervisor.&lt;/p&gt;</description></item><item><title>Storage Driver</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/sd/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/sd/</guid><description>&lt;p&gt;&lt;a id="sd"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Storage Driver --&gt;
&lt;p&gt;The Storage subsystem is highly modular. These drivers are separated into two logical sets:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DS&lt;/strong&gt;: Datastore drivers. They serve the purpose of managing images: register, delete, and create empty datablocks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TM&lt;/strong&gt;: Transfer Manager drivers. They manage images associated with instantiated VMs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="datastore-drivers-structure"&gt;
 Datastore Drivers Structure
 &lt;a class="anchor-link" href="#datastore-drivers-structure" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Located under &lt;code&gt;/var/lib/one/remotes/datastore/&amp;lt;ds_mad&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;cp&lt;/strong&gt;: copies/dumps the image to the datastore
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ARGUMENTS&lt;/strong&gt;: &lt;code&gt;image_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;STDIN&lt;/strong&gt;: &lt;code&gt;datastore_image_dump&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RETURNS&lt;/strong&gt;: &lt;code&gt;image_source image_format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datastore_image_dump&lt;/code&gt; is an XML dump of the driver action encoded in Base 64. See a decoded &lt;a href="https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/sd/#sd-dump"&gt;example&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;image_source&lt;/code&gt; is the image source which will be later sent to the transfer manager.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;mkfs&lt;/strong&gt;: creates a new empty image in the datastore
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ARGUMENTS&lt;/strong&gt;: &lt;code&gt;image_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;STDIN&lt;/strong&gt;: &lt;code&gt;datastore_image_dump&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RETURNS&lt;/strong&gt;: &lt;code&gt;image_source&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datastore_image_dump&lt;/code&gt; is an XML dump of the driver action encoded in Base 64. See a decoded &lt;a href="https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/sd/#sd-dump"&gt;example&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;image_source&lt;/code&gt; is the image source which will be later sent to the transfer manager.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;rm&lt;/strong&gt;: removes an image from the datastore
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ARGUMENTS&lt;/strong&gt;: &lt;code&gt;image_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;STDIN&lt;/strong&gt;: &lt;code&gt;datastore_image_dump&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RETURNS&lt;/strong&gt;: &lt;code&gt;-&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datastore_image_dump&lt;/code&gt; is an XML dump of the driver action encoded in Base 64. See a decoded &lt;a href="https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/sd/#sd-dump"&gt;example&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;stat&lt;/strong&gt;: returns the size of an image in Mb
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ARGUMENTS&lt;/strong&gt;: &lt;code&gt;image_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;STDIN&lt;/strong&gt;: &lt;code&gt;datastore_image_dump&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RETURNS&lt;/strong&gt;: &lt;code&gt;size&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datastore_image_dump&lt;/code&gt; is an XML dump of the driver action encoded in Base 64. See a decoded &lt;a href="https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/sd/#sd-dump"&gt;example&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;size&lt;/code&gt; the size of the image in Mb.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="clone"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Monitoring Driver</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-im/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-im/</guid><description>&lt;p&gt;&lt;a id="devel-im"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Monitoring Driver --&gt;
&lt;p&gt;The Monitoring Drivers (or IM drivers) collect Host and Virtual Machine monitoring data by executing a monitoring agent in the Hosts. The agent periodically executes probes to collect data and periodically send this to the Front-end.&lt;/p&gt;
&lt;p&gt;This guide describes the internals of the monitoring system. It is also a starting point on how to create a new IM driver from scratch.&lt;/p&gt;
&lt;h2 id="message-structure"&gt;
 Message structure
 &lt;a class="anchor-link" href="#message-structure" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The structure of monitoring message is:&lt;/p&gt;</description></item><item><title>Networking Driver</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-nm/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-nm/</guid><description>&lt;p&gt;&lt;a id="devel-nm"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Networking Driver --&gt;
&lt;p&gt;This component is in charge of configuring the network in the hypervisors. The purpose of this guide is to describe how to create a new network manager driver.&lt;/p&gt;
&lt;h2 id="driver-configuration-and-description"&gt;
 Driver Configuration and Description
 &lt;a class="anchor-link" href="#driver-configuration-and-description" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;To enable a new network manager driver, the first requirement is to make a new directory with the name of the driver in &lt;code&gt;/var/lib/one/remotes/vnm/&amp;lt;name&amp;gt;&lt;/code&gt; with these files:&lt;/p&gt;</description></item><item><title>Authentication Driver</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-auth/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-auth/</guid><description>&lt;p&gt;&lt;a id="devel-auth"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Authentication Driver --&gt;
&lt;p&gt;This guide will show you how to develop a new driver for OpenNebula to interact with an external authentication service.&lt;/p&gt;
&lt;p&gt;OpenNebula comes with an internal user/password way of authentication, this is called &lt;code&gt;core&lt;/code&gt;. To be able to use other auth methods there is a system that performs authentication with external systems. Authentication drivers are responsible for getting the user credentials from the OpenNebula database and they login and answer whether the authentication is correct or not.&lt;/p&gt;</description></item><item><title>Market Driver</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-market/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-market/</guid><description>&lt;p&gt;&lt;a id="devel-market"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Market Driver --&gt;
&lt;p&gt;The Market Driver is in charge of managing both Marketplaces and Marketplace Apps.&lt;/p&gt;
&lt;h2 id="marketplace-drivers-structure"&gt;
 Marketplace Drivers Structure
 &lt;a class="anchor-link" href="#marketplace-drivers-structure" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The main drivers are located under &lt;code&gt;/var/lib/one/remotes/market/&amp;lt;market_mad&amp;gt;&lt;/code&gt;. Marketplaces support the following operations:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;create&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Create a new Marketplace.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;monitor&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;This automatic action discovers the available Marketplace Apps and&lt;br/&gt;monitors the available space of the Marketplace.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;delete&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Removes a Marketplace from OpenNebula. For a Public Marketplace,&lt;br/&gt;it will also remove the Marketplace Apps, but for any other type of&lt;br/&gt;Marketplace this will not remove the Marketplace Apps, and will&lt;br/&gt;only work if the Marketplace is empty.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;em&gt;other&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;Generic actions common to OpenNebula resources are also available:&lt;br/&gt;&lt;code&gt;update&lt;/code&gt;, &lt;code&gt;chgrp&lt;/code&gt;, &lt;code&gt;chown&lt;/code&gt;, &lt;code&gt;chmod&lt;/code&gt; and &lt;code&gt;rename&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As for the Marketplace Apps, they support these actions:&lt;/p&gt;</description></item><item><title>IPAM Driver</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-ipam/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/devel-ipam/</guid><description>&lt;p&gt;&lt;a id="devel-ipam"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# IPAM driver --&gt;
&lt;p&gt;An IPAM driver lets you delegate IP lease management to an external component. This way you can coordinate IP use with other virtual or bare-metal servers in your data center. To effectively use an external IPAM you need to develop four action scripts that hook on different points of the IP network/lease life-cycle.&lt;/p&gt;
&lt;p&gt;Note that OpenNebula includes a built-in internal IPAM. You need to develop this component if you are using an IPAM server and want to coordinate OpenNebula with it.&lt;/p&gt;</description></item><item><title>Interactive Backup Integrations</title><link>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/interactive_backup/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/product/integration_references/infrastructure_drivers_development/interactive_backup/</guid><description>&lt;p&gt;&lt;a id="interactive-backup-integration"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Interactive Backup Integrations --&gt;
&lt;p&gt;This page describes the OpenNebula interactive backup workflow for backup integrations. It is intended for integration developers and for administrators following a specific integration guide, such as the &lt;a href="https://docs.opennebula.io/7.4/product/cluster_configuration/backup_system/veeam/#vm-backups-veeam"&gt;OpenNebula-Veeam® Backup Integration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;interactive&lt;/code&gt; backup datastore driver is a coordination driver. It is not a general-purpose backup backend where users store and manage backup payloads directly. For regular OpenNebula backup storage, use the &lt;a href="https://docs.opennebula.io/7.4/product/cluster_configuration/backup_system/restic/#vm-backups-restic"&gt;Restic&lt;/a&gt; or &lt;a href="https://docs.opennebula.io/7.4/product/cluster_configuration/backup_system/rsync/#vm-backups-rsync"&gt;Rsync&lt;/a&gt; backup datastore guides. For Veeam deployments, follow the &lt;a href="https://docs.opennebula.io/7.4/product/cluster_configuration/backup_system/veeam/#vm-backups-veeam"&gt;Veeam guide&lt;/a&gt;, which explains the datastore attributes required by that integration.&lt;/p&gt;</description></item></channel></rss>