Your IP : 216.73.217.13


Current Path : /proc/thread-self/root/snap/lxd/38450/share/lxd-documentation/reference/storage_drivers/
Upload File :
Current File : //proc/thread-self/root/snap/lxd/38450/share/lxd-documentation/reference/storage_drivers/index.html

<!doctype html>
<html class="no-js" lang="en" data-content_root="../../">
  <head><meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta content="Overview of LXD storage drivers, with feature comparison tables for local and non-local drivers and descriptions of their features." name="description" />
<meta property="og:title" content="Storage drivers" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/reference/storage_drivers/" />
<meta property="og:site_name" content="LXD documentation" />
<meta property="og:description" content="LXD supports several storage drivers for storing images, instances, and custom volumes. Where possible, LXD uses the advanced features of each driver to optimize operations. Storage drivers are div..." />
<meta property="og:image" content="https://documentation.ubuntu.com/lxd/latest/_static/lxd_tag.png" />
<meta property="og:image:alt" content="LXD documentation" />

    <meta property="article:modified_time" content="2026-02-18T09:05:56+00:00" /><link rel="index" title="Index" href="../../genindex/"><link rel="search" title="Search" href="../../search/"><link rel="next" title="Directory - dir" href="../storage_dir/"><link rel="prev" title="Project configuration" href="../projects/">
        <link rel="canonical" href="/reference/storage_drivers/">

    <link rel="shortcut icon" href="../../_static/favicon.ico"><!-- Generated with Sphinx 7.4.7 and Furo 2025.12.19 -->
        <title>Storage drivers - LXD documentation</title>
      <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=d111a655" />
    <link rel="stylesheet" type="text/css" href="../../_static/styles/furo.css?v=7bdb33bb" />
    <link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" />
    <link rel="stylesheet" type="text/css" href="../../_static/config-options.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/related-links.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/terminal.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/youtube.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/sphinx-design.min.css?v=95c83b7e" />
    <link rel="stylesheet" type="text/css" href="../../_static/styles/furo-extensions.css?v=8dab3a3b" />
    <link rel="stylesheet" type="text/css" href="../../_static/lxd_custom.css?v=bfbf4da2" />
    <link rel="stylesheet" type="text/css" href="../../_static/cookie-banner.css?v=b74831ab" />
    <link rel="stylesheet" type="text/css" href="../../_static/custom.css?v=e189117a" />
    <link rel="stylesheet" type="text/css" href="../../_static/header.css?v=a8078839" />
    <link rel="stylesheet" type="text/css" href="../../_static/github_issue_links.css?v=3d761185" />
    <link rel="stylesheet" type="text/css" href="../../_static/furo_colors.css?v=825fec6f" />
    
</head>
  <body>
    <header id="header" class="p-navigation">
  <!-- Google Tag Manager -->
  <script>
    (function(w, d, s, l, i) {
      w[l] = w[l] || [];
      w[l].push({
        'gtm.start': new Date().getTime(),
        event: 'gtm.js'
      });
      var f = d.getElementsByTagName(s)[0];
      var j = d.createElement(s);
      var dl = '';
      if (l != 'dataLayer') {
          dl = '&l=' + l;
      }
      j.async = true;
      j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
      f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'dataLayer', 'GTM-KNX3CJC');
  </script>
  
  <div class="p-navigation__nav" role="menubar">

    <ul class="p-navigation__links" role="menu">

      <li>
        
        <a class="p-logo" href="https://canonical.com/lxd" aria-current="page">
          <img src="../../_static/lxd_tag.png" alt="Logo" class="p-logo-image">
          <div class="p-logo-text p-heading--4">LXD
          </div>
        </a>
        
      </li>

      <li class="nav-ubuntu-com">
        
        <a href="https://canonical.com/lxd" class="p-navigation__link">canonical.com/lxd</a>
        
      </li>

      <li class="nav-dropdown">
        <a href="#" class="p-navigation__link nav-more-links"
           id="more-resources-toggle"
           aria-haspopup="true"
           aria-expanded="false">
          More resources
        </a>
        <ul class="more-links-dropdown" aria-labelledby="more-resources-toggle">
          
          <li>
            <a href="https://discourse.ubuntu.com/c/lxd/" class="p-navigation__sub-link p-dropdown__link">Discourse</a>
          </li>
          
      
          
      
          
          <li>
            <a href="https://matrix.to/#/#documentation:ubuntu.com" class="p-navigation__sub-link p-dropdown__link">Matrix</a>
          </li>
          
      
          
          <li>
            <a href="https://github.com/canonical/lxd" class="p-navigation__sub-link p-dropdown__link">GitHub</a>
          </li>
          

        </ul>
      </li>

    </ul>
  </div>
</header>
   
    <script>
      document.body.dataset.theme = localStorage.getItem("theme") || "auto";
    </script>
    

<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
  <symbol id="svg-toc" viewBox="0 0 24 24">
    <title>Contents</title>
    <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
      <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
    </svg>
  </symbol>
  <symbol id="svg-menu" viewBox="0 0 24 24">
    <title>Menu</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
      <line x1="3" y1="12" x2="21" y2="12"></line>
      <line x1="3" y1="6" x2="21" y2="6"></line>
      <line x1="3" y1="18" x2="21" y2="18"></line>
    </svg>
  </symbol>
  <symbol id="svg-arrow-right" viewBox="0 0 24 24">
    <title>Expand</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
      <polyline points="9 18 15 12 9 6"></polyline>
    </svg>
  </symbol>
  <symbol id="svg-sun" viewBox="0 0 24 24">
    <title>Light mode</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
      <circle cx="12" cy="12" r="5"></circle>
      <line x1="12" y1="1" x2="12" y2="3"></line>
      <line x1="12" y1="21" x2="12" y2="23"></line>
      <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
      <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
      <line x1="1" y1="12" x2="3" y2="12"></line>
      <line x1="21" y1="12" x2="23" y2="12"></line>
      <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
      <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
    </svg>
  </symbol>
  <symbol id="svg-moon" viewBox="0 0 24 24">
    <title>Dark mode</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" />
      <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
    </svg>
  </symbol>
  <symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
    <title>Auto light/dark, in light mode</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
      class="icon-custom-derived-from-feather-sun-and-tabler-moon">
      <path style="opacity: 50%" d="M 5.411 14.504 C 5.471 14.504 5.532 14.504 5.591 14.504 C 3.639 16.319 4.383 19.569 6.931 20.352 C 7.693 20.586 8.512 20.551 9.25 20.252 C 8.023 23.207 4.056 23.725 2.11 21.184 C 0.166 18.642 1.702 14.949 4.874 14.536 C 5.051 14.512 5.231 14.5 5.411 14.5 L 5.411 14.504 Z"/>
      <line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/>
      <line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/>
      <line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/>
      <line x1="19" y1="14.05" x2="20.414" y2="15.464"/>
      <line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/>
      <line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/>
      <line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/>
      <line x1="19" y1="5.05" x2="20.414" y2="3.636"/>
      <circle cx="14.5" cy="9.55" r="3.6"/>
    </svg>
  </symbol>
  <symbol id="svg-moon-with-sun" viewBox="0 0 24 24">
    <title>Auto light/dark, in dark mode</title>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
      class="icon-custom-derived-from-feather-sun-and-tabler-moon">
      <path d="M 8.282 7.007 C 8.385 7.007 8.494 7.007 8.595 7.007 C 5.18 10.184 6.481 15.869 10.942 17.24 C 12.275 17.648 13.706 17.589 15 17.066 C 12.851 22.236 5.91 23.143 2.505 18.696 C -0.897 14.249 1.791 7.786 7.342 7.063 C 7.652 7.021 7.965 7 8.282 7 L 8.282 7.007 Z"/>
      <line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/>
      <line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/>
      <line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/>
      <line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/>
      <line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/>
      <line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/>
      <line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/>
      <line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/>
      <circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/>
    </svg>
  </symbol>
  <symbol id="svg-pencil" viewBox="0 0 24 24">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code">
      <path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
      <path d="M13.5 6.5l4 4" />
      <path d="M20 21l2 -2l-2 -2" />
      <path d="M17 17l-2 2l2 2" />
    </svg>
  </symbol>
  <symbol id="svg-eye" viewBox="0 0 24 24">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
      stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" />
      <path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
      <path
        d="M11.11 17.958c-3.209 -.307 -5.91 -2.293 -8.11 -5.958c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6c-.21 .352 -.427 .688 -.647 1.008" />
      <path d="M20 21l2 -2l-2 -2" />
      <path d="M17 17l-2 2l2 2" />
    </svg>
  </symbol>
</svg>

<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation" aria-label="Toggle site navigation sidebar">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc" aria-label="Toggle table of contents sidebar">
<label class="overlay sidebar-overlay" for="__navigation"></label>
<label class="overlay toc-overlay" for="__toc"></label>

<a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a>



<div class="page">
  <header class="mobile-header">
    <div class="header-left">
      <label class="nav-overlay-icon" for="__navigation">
        <span class="icon"><svg><use href="#svg-menu"></use></svg></span>
      </label>
    </div>
    <div class="header-center">
      <a href="../../"><div class="brand">LXD documentation</div></a>
    </div>
    <div class="header-right">
      <div class="theme-toggle-container theme-toggle-header">
        <button class="theme-toggle" aria-label="Toggle Light / Dark / Auto color theme">
          <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
          <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
          <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
          <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
        </button>
      </div>
      <label class="toc-overlay-icon toc-header-icon" for="__toc">
        <span class="icon"><svg><use href="#svg-toc"></use></svg></span>
      </label>
    </div>
  </header>
  <aside class="sidebar-drawer">
    <div class="sidebar-container">
      
      <div class="sidebar-sticky"><a class="sidebar-brand" href="../../">
  
  <span class="sidebar-brand-text">LXD documentation</span>
  
</a><form class="sidebar-search-container" method="get" action="../../search/" role="search">
    <input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
    <input type="submit" value="Go">
    <input type="hidden" name="check_keywords" value="yes">
    <input type="hidden" name="area" value="default">
  </form>
  <div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
  <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../">LXD</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorial/first_steps/">Tutorial</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../howto/">How-to guides</a><input aria-label="Toggle navigation of How-to guides" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../getting_started/">Getting started</a><input aria-label="Toggle navigation of Getting started" class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../installing/">Install LXD</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/initialize/">Initialize LXD</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/access_ui/">Access the UI</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/access_documentation/">Access documentation locally</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../operation/">LXD server and client</a><input aria-label="Toggle navigation of LXD server and client" class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/server_expose/">Expose LXD to the network</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/server_configure/">Configure the LXD server</a></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../howto/oidc/">Configure single sign-on with OIDC</a><input aria-label="Toggle navigation of Configure single sign-on with OIDC" class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l4"><a class="reference internal" href="../../howto/oidc_auth0/">How to configure Auth0</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../howto/oidc_ory/">How to configure Ory Hydra</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../howto/oidc_keycloak/">How to configure Keycloak</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../howto/oidc_entra_id/">How to configure Entra ID</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../remotes/">Add remote servers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/lxc_alias/">Add command aliases</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../instances/">Instances</a><input aria-label="Toggle navigation of Instances" class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_create/">Create instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_configure/">Configure instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_manage/">Manage instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../profiles/">Use profiles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_troubleshoot/">Troubleshoot errors</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_ubuntu_pro_attach/">Auto attach Ubuntu Pro</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_access_files/">Access files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_console/">Access the console</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../instance-exec/">Run commands</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../cloud-init/">Use cloud-init</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_routed_nic_vm/">Add a routed NIC to a VM</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_backup/">Back up instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_migrate/">Migrate instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/import_machines_to_instances/">Import existing machines</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/container_gpu_passthrough_with_docker/">Pass NVIDIA GPUs</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../images/">Images</a><input aria-label="Toggle navigation of Images" class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/images_remote/">Use remote images</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/images_manage/">Manage images</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/images_profiles/">Associate profiles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/images_copy/">Copy and import images</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/images_create/">Create images</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../projects/">Projects</a><input aria-label="Toggle navigation of Projects" class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/projects_create/">Create and configure</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/projects_work/">Work with projects</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/projects_confine/">Confine users to projects</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../storage/">Storage</a><input aria-label="Toggle navigation of Storage" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" role="switch" type="checkbox"/><label for="toctree-checkbox-8"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/storage_pools/">Manage pools</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/storage_volumes/">Manage volumes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/storage_buckets/">Manage buckets</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/storage_create_instance/">Create an instance in a pool</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/storage_backup_volume/">Back up a volume</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/storage_move_volume/">Move or copy a volume</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/storage_csi/">Use the LXD CSI driver with Kubernetes</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../networks/">Networking</a><input aria-label="Toggle navigation of Networking" class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" role="switch" type="checkbox"/><label for="toctree-checkbox-9"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_create/">Create a network</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_configure/">Configure a network</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_bgp/">Configure as BGP server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_acls/">Configure network ACLs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_forwards/">Configure forwards</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_zones/">Configure network zones</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_bridge_firewalld/">Configure your firewall</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_bridge_resolved/">Integrate with resolved</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_ovn_setup/">Set up OVN</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_load_balancers/">Configure load balancers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_ovn_peers/">Configure peer routing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_ipam/">Display IPAM information</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../clustering/">Clustering</a><input aria-label="Toggle navigation of Clustering" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" role="switch" type="checkbox"/><label for="toctree-checkbox-10"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_form/">Form a cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_manage/">Manage a cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_config_networks/">Configure networks</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_config_storage/">Configure storage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_manage_instance/">Manage instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_groups/">Set up cluster groups</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_placement_groups/">Use placement groups</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_recover/">Recover a cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/cluster_vip/">Set up a highly available virtual IP</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../production-setup/">Production setup</a><input aria-label="Toggle navigation of Production setup" class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" role="switch" type="checkbox"/><label for="toctree-checkbox-11"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/benchmark_performance/">Benchmark performance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_increase_bandwidth/">Increase bandwidth</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../metrics/">Monitor metrics</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/logs_loki/">Send logs to Loki</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/grafana/">Set up Grafana</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../backup/">Back up a server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/disaster_recovery/">Recover instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/disaster_recovery_replication/">Disaster recovery with storage replication</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../howto/snap/">Manage the snap</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../howto/security_harden/">Harden security</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../howto/troubleshoot/">Troubleshooting</a><input aria-label="Toggle navigation of Troubleshooting" class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" role="switch" type="checkbox"/><label for="toctree-checkbox-12"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../howto/network_bridge_firewalld/">Configure your firewall</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/instances_troubleshoot/">Troubleshoot instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../howto/dqlite_troubleshoot/">Troubleshoot Dqlite</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../debugging/">Debug LXD</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../faq/">Frequently asked</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../support/">Get support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../contributing/">Contribute to LXD</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../howto/auth_bearer/">How to authenticate to the LXD API using bearer tokens</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../howto/devlxd_authenticate/">How to authenticate to the DevLXD API</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../explanation/">Explanation</a><input aria-label="Toggle navigation of Explanation" class="toctree-checkbox" id="toctree-checkbox-13" name="toctree-checkbox-13" role="switch" type="checkbox"/><label for="toctree-checkbox-13"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/lxd_lxc/"><code class="docutils literal notranslate"><span class="pre">lxd</span></code> and <code class="docutils literal notranslate"><span class="pre">lxc</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/instances/">Containers and VMs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../image-handling/">Local and remote images</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/storage/">Storage pools, volumes, and buckets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/networks/">Networking setups</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../database/">The LXD Dqlite database</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/lxc_show_info/"><code class="docutils literal notranslate"><span class="pre">lxc</span></code> <code class="docutils literal notranslate"><span class="pre">show</span></code> and <code class="docutils literal notranslate"><span class="pre">info</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../authentication/">Remote API authentication</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/authorization/">Remote API authorization</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/projects/">Instances grouping with projects</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/clusters/">Clusters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/performance_tuning/">Performance tuning</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/security/">Security</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/bpf/">Privilege delegation using BPF Token</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../explanation/csi/">The LXD CSI driver</a></li>
</ul>
</li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="../">Reference</a><input aria-label="Toggle navigation of Reference" checked="" class="toctree-checkbox" id="toctree-checkbox-14" name="toctree-checkbox-14" role="switch" type="checkbox"/><label for="toctree-checkbox-14"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../requirements/">Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../architectures/">Architectures</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../release-notes/">Release notes</a><input aria-label="Toggle navigation of Release notes" class="toctree-checkbox" id="toctree-checkbox-15" name="toctree-checkbox-15" role="switch" type="checkbox"/><label for="toctree-checkbox-15"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../release-notes/release-notes-6.7/">LXD 6.7</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release-notes/release-notes-6.6/">LXD 6.6</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../releases-snap/">Releases and snap</a></li>
<li class="toctree-l2"><a class="reference internal" href="../remote_image_servers/">Remote image servers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../image_format/">Image format</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../guest-os-compatibility/">Guest OS compatibility</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../container-environment/">Container environment</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../config-options/">Configuration option index</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../server/">Server configuration</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../explanation/instance_config/">Instance configuration</a><input aria-label="Toggle navigation of Instance configuration" class="toctree-checkbox" id="toctree-checkbox-16" name="toctree-checkbox-16" role="switch" type="checkbox"/><label for="toctree-checkbox-16"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../instance_properties/">Instance properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="../instance_options/">Instance options</a></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../devices/">Devices</a><input aria-label="Toggle navigation of Devices" class="toctree-checkbox" id="toctree-checkbox-17" name="toctree-checkbox-17" role="switch" type="checkbox"/><label for="toctree-checkbox-17"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l4"><a class="reference internal" href="../standard_devices/">Standard devices</a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_none/">Type: <code class="docutils literal notranslate"><span class="pre">none</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_nic/">Type: <code class="docutils literal notranslate"><span class="pre">nic</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_disk/">Type: <code class="docutils literal notranslate"><span class="pre">disk</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_unix_char/">Type: <code class="docutils literal notranslate"><span class="pre">unix-char</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_unix_block/">Type: <code class="docutils literal notranslate"><span class="pre">unix-block</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_usb/">Type: <code class="docutils literal notranslate"><span class="pre">usb</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_gpu/">Type: <code class="docutils literal notranslate"><span class="pre">gpu</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_infiniband/">Type: <code class="docutils literal notranslate"><span class="pre">infiniband</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_proxy/">Type: <code class="docutils literal notranslate"><span class="pre">proxy</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_unix_hotplug/">Type: <code class="docutils literal notranslate"><span class="pre">unix-hotplug</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_tpm/">Type: <code class="docutils literal notranslate"><span class="pre">tpm</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../devices_pci/">Type: <code class="docutils literal notranslate"><span class="pre">pci</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../instance_units/">Units for storage and network limits</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../preseed_yaml_fields/">Preseed YAML file fields</a></li>
<li class="toctree-l2"><a class="reference internal" href="../projects/">Project configuration</a></li>
<li class="toctree-l2 current has-children current-page"><a class="current reference internal" href="#">Storage drivers</a><input aria-label="Toggle navigation of Storage drivers" checked="" class="toctree-checkbox" id="toctree-checkbox-18" name="toctree-checkbox-18" role="switch" type="checkbox"/><label for="toctree-checkbox-18"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../storage_dir/">Directory - <code class="docutils literal notranslate"><span class="pre">dir</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_btrfs/">Btrfs - <code class="docutils literal notranslate"><span class="pre">btrfs</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_lvm/">LVM - <code class="docutils literal notranslate"><span class="pre">lvm</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_zfs/">ZFS - <code class="docutils literal notranslate"><span class="pre">zfs</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_ceph/">Ceph RBD - <code class="docutils literal notranslate"><span class="pre">ceph</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_powerflex/">Dell PowerFlex - <code class="docutils literal notranslate"><span class="pre">powerflex</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_pure/">Pure Storage - <code class="docutils literal notranslate"><span class="pre">pure</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_alletra/">HPE Alletra - <code class="docutils literal notranslate"><span class="pre">alletra</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_cephfs/">CephFS - <code class="docutils literal notranslate"><span class="pre">cephfs</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../storage_cephobject/">Ceph Object - <code class="docutils literal notranslate"><span class="pre">cephobject</span></code></a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../networks/">Networks</a><input aria-label="Toggle navigation of Networks" class="toctree-checkbox" id="toctree-checkbox-19" name="toctree-checkbox-19" role="switch" type="checkbox"/><label for="toctree-checkbox-19"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../network_bridge/">Bridge network</a></li>
<li class="toctree-l3"><a class="reference internal" href="../network_ovn/">OVN network</a></li>
<li class="toctree-l3"><a class="reference internal" href="../network_macvlan/">Macvlan network</a></li>
<li class="toctree-l3"><a class="reference internal" href="../network_physical/">Physical network</a></li>
<li class="toctree-l3"><a class="reference internal" href="../network_sriov/">SR-IOV network</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../cluster_member_config/">Cluster configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../placement_groups/">Placement group configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../server_settings/">Production server settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="../provided_metrics/">Provided metrics</a></li>
<li class="toctree-l2"><a class="reference internal" href="../permissions/">Permissions</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../restapi_landing/">REST API</a><input aria-label="Toggle navigation of REST API" class="toctree-checkbox" id="toctree-checkbox-20" name="toctree-checkbox-20" role="switch" type="checkbox"/><label for="toctree-checkbox-20"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../rest-api/">Main API documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../api/">Main API specification</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../api-extensions/">Main API extensions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../events/">Events API documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../dev-lxd/">Instance API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../driver_csi/">LXD CSI driver reference</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../manpages/">Man pages</a><input aria-label="Toggle navigation of Man pages" class="toctree-checkbox" id="toctree-checkbox-21" name="toctree-checkbox-21" role="switch" type="checkbox"/><label for="toctree-checkbox-21"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../manpages/lxc/"><code class="docutils literal notranslate"><span class="pre">lxc</span></code></a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../internals/">Internals</a><input aria-label="Toggle navigation of Internals" class="toctree-checkbox" id="toctree-checkbox-22" name="toctree-checkbox-22" role="switch" type="checkbox"/><label for="toctree-checkbox-22"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../../environment/">Environment variables</a></li>
<li class="toctree-l3"><a class="reference internal" href="../uefi_variables/">UEFI variables for VMs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../daemon-behavior/">Daemon behavior</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../syscall-interception/">System call interception</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../userns-idmap/">User namespace setup</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ovn-internals/">OVN implementation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../vm_live_migration_internals/">VM live migration implementation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../dqlite-internals/">Dqlite</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="https://github.com/canonical/lxd">Project repository</a></li>
<li class="toctree-l2"><a class="reference external" href="https://images.lxd.canonical.com">Image server</a></li>
</ul>
</li>
</ul>

</div>
</div>

      </div>
      
    </div>
  </aside>
  <div class="main">
    <div class="content">
      <div class="article-container">
        <a href="#" class="back-to-top muted-link">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
            <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
          </svg>
          <span>Back to top</span>
        </a>
        <div class="content-icon-container">
          <div class="edit-this-page">
  <a class="muted-link" href="https://github.com/canonical/lxd/edit/main/doc/reference/storage_drivers.md" title="Contribute to this page">
    <svg><use href="#svg-pencil"></use></svg>
    <span class="visually-hidden">Contribute to this page</span>
  </a>
</div><div class="theme-toggle-container theme-toggle-content">
            <button class="theme-toggle" aria-label="Toggle Light / Dark / Auto color theme">
              <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
              <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
              <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
              <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
            </button>
          </div>
          <label class="toc-overlay-icon toc-content-icon" for="__toc">
            <span class="icon"><svg><use href="#svg-toc"></use></svg></span>
          </label>
        </div>
        <article role="main" id="furo-main-content">
          <section id="storage-drivers">
<span id="id1"></span><h1>Storage drivers<a class="headerlink" href="#storage-drivers" title="Link to this heading">¶</a></h1>
<p>LXD supports several storage drivers for storing images, instances, and custom volumes. Where possible, LXD uses the advanced features of each driver to optimize operations.</p>
<p>Storage drivers are divided into local and non-local storage, based on their accessibility.</p>
<section id="feature-comparison">
<span id="storage-drivers-features"></span><h2>Feature comparison<a class="headerlink" href="#feature-comparison" title="Link to this heading">¶</a></h2>
<p>Legend: ✅ supported, ❌ not supported, ➖ not applicable</p>
<section id="local-storage-features">
<span id="storage-drivers-features-local"></span><h3>Local storage features<a class="headerlink" href="#local-storage-features" title="Link to this heading">¶</a></h3>
<div class="table-wrapper colwidths-auto docutils container">
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head text-left"><p>Feature</p></th>
<th class="head text-left"><p>Directory</p></th>
<th class="head text-left"><p>Btrfs</p></th>
<th class="head text-left"><p>LVM</p></th>
<th class="head text-left"><p>ZFS</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-image-storage"><span class="std std-ref">Optimized image storage</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-instance-creation"><span class="std std-ref">Optimized instance creation</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-snapshot-creation"><span class="std std-ref">Optimized snapshot creation</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-backup"><span class="std std-ref">Optimized backup (import/export)</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-volume-transfer"><span class="std std-ref">Optimized volume transfer</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-volume-refresh"><span class="std std-ref">Optimized volume refresh</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id5" id="id2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-copy-on-write"><span class="std std-ref">Copy-on-write</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-block-based"><span class="std std-ref">Block-based</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-instant-cloning"><span class="std std-ref">Instant cloning</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-driver-usable-in-container"><span class="std std-ref">Storage driver usable inside a container</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id6" id="id3" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a></p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-restore-older-snapshots"><span class="std std-ref">Restore from older snapshots (not latest)</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-quotas"><span class="std std-ref">Storage quotas</span></a></p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id7" id="id4" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-available-init"><span class="std std-ref">Available on lxd init</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-object-storage"><span class="std std-ref">Object storage</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-volume-recovery"><span class="std std-ref">Volume recovery</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
</tbody>
</table>
</div>
</section>
<section id="non-local-storage-features">
<span id="storage-drivers-features-nonlocal"></span><h3>Non-local storage features<a class="headerlink" href="#non-local-storage-features" title="Link to this heading">¶</a></h3>
<div class="table-wrapper colwidths-auto docutils container">
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head text-left"><p>Feature</p></th>
<th class="head text-left"><p>Ceph RBD</p></th>
<th class="head text-left"><p>CephFS</p></th>
<th class="head text-left"><p>Ceph Object</p></th>
<th class="head text-left"><p>Dell PowerFlex</p></th>
<th class="head text-left"><p>Pure Storage</p></th>
<th class="head text-left"><p>HPE Alletra</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-image-storage"><span class="std std-ref">Optimized image storage</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-instance-creation"><span class="std std-ref">Optimized instance creation</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-snapshot-creation"><span class="std std-ref">Optimized snapshot creation</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-backup"><span class="std std-ref">Optimized backup (import/export)</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-volume-transfer"><span class="std std-ref">Optimized volume transfer</span></a></p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id14" id="id8" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a></p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-optimized-volume-refresh"><span class="std std-ref">Optimized volume refresh</span></a></p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id15" id="id9" role="doc-noteref"><span class="fn-bracket">[</span>5<span class="fn-bracket">]</span></a></p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id16" id="id10" role="doc-noteref"><span class="fn-bracket">[</span>6<span class="fn-bracket">]</span></a></p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id16" id="id11" role="doc-noteref"><span class="fn-bracket">[</span>6<span class="fn-bracket">]</span></a></p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-copy-on-write"><span class="std std-ref">Copy-on-write</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-block-based"><span class="std std-ref">Block-based</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-instant-cloning"><span class="std std-ref">Instant cloning</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-driver-usable-in-container"><span class="std std-ref">Storage driver usable inside a container</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-restore-older-snapshots"><span class="std std-ref">Restore from older snapshots (not latest)</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>➖</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-quotas"><span class="std std-ref">Storage quotas</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-available-init"><span class="std std-ref">Available on lxd init</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-odd"><td class="text-left"><p><a class="reference internal" href="#storage-object-storage"><span class="std std-ref">Object storage</span></a></p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
<td class="text-left"><p>❌</p></td>
</tr>
<tr class="row-even"><td class="text-left"><p><a class="reference internal" href="#storage-volume-recovery"><span class="std std-ref">Volume recovery</span></a></p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅</p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id17" id="id12" role="doc-noteref"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></a></p></td>
<td class="text-left"><p>✅<a class="footnote-reference brackets" href="#id17" id="id13" role="doc-noteref"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></a></p></td>
<td class="text-left"><p>❌</p></td>
</tr>
</tbody>
</table>
</div>
<p>For driver-specific information and configuration options, see the pages for the individual drivers, linked below.</p>
</section>
</section>
<section id="local">
<span id="storage-drivers-local"></span><h2>Local<a class="headerlink" href="#local" title="Link to this heading">¶</a></h2>
<p>LXD provides drivers for the following types of local storage:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../storage_dir/">Directory - <code class="docutils literal notranslate"><span class="pre">dir</span></code></a></li>
<li class="toctree-l1"><a class="reference internal" href="../storage_btrfs/">Btrfs - <code class="docutils literal notranslate"><span class="pre">btrfs</span></code></a></li>
<li class="toctree-l1"><a class="reference internal" href="../storage_lvm/">LVM - <code class="docutils literal notranslate"><span class="pre">lvm</span></code></a></li>
<li class="toctree-l1"><a class="reference internal" href="../storage_zfs/">ZFS - <code class="docutils literal notranslate"><span class="pre">zfs</span></code></a></li>
</ul>
</div>
<p>A local volume resides on the storage pool of a single LXD server and is only accessible to instances running on that server. In a cluster, other members cannot access local volumes directly.</p>
</section>
<section id="non-local">
<span id="storage-drivers-nonlocal"></span><h2>Non-local<a class="headerlink" href="#non-local" title="Link to this heading">¶</a></h2>
<p>LXD supports three categories of non-local storage drivers, described below.</p>
<section id="remote">
<span id="storage-drivers-remote"></span><h3>Remote<a class="headerlink" href="#remote" title="Link to this heading">¶</a></h3>
<p>LXD provides drivers for the following types of remote storage:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../storage_ceph/">Ceph RBD - <code class="docutils literal notranslate"><span class="pre">ceph</span></code></a></li>
<li class="toctree-l1"><a class="reference internal" href="../storage_powerflex/">Dell PowerFlex - <code class="docutils literal notranslate"><span class="pre">powerflex</span></code></a></li>
<li class="toctree-l1"><a class="reference internal" href="../storage_pure/">Pure Storage - <code class="docutils literal notranslate"><span class="pre">pure</span></code></a></li>
<li class="toctree-l1"><a class="reference internal" href="../storage_alletra/">HPE Alletra - <code class="docutils literal notranslate"><span class="pre">alletra</span></code></a></li>
</ul>
</div>
<p>A remote volume is stored on a storage backend that supports cluster-wide access. It is a block volume rather than a shared file system. A remote volume can be attached from any cluster member, but concurrent access by multiple instances or members is not allowed by default and not considered safe. Even when concurrent attachment is allowed (for example, with the volume’s <code class="docutils literal notranslate"><span class="pre">security.shared</span></code> option enabled), it can still risk data corruption.</p>
<p>Compared to local storage, remote pools make <a class="reference internal" href="../../howto/instances_migrate/#howto-instances-migrate"><span class="std std-ref">instance migration</span></a> faster because the instance’s root volume can be re-attached from another cluster member without copying the disk data. With local storage, the root disk must be transferred over the network during migration, which takes more time.</p>
</section>
<section id="shared">
<span id="storage-drivers-shared"></span><h3>Shared<a class="headerlink" href="#shared" title="Link to this heading">¶</a></h3>
<p>LXD provides the following driver for shared storage:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../storage_cephfs/">CephFS - <code class="docutils literal notranslate"><span class="pre">cephfs</span></code></a></li>
</ul>
</div>
<p>Like remote volumes, shared volumes are accessible cluster-wide. Unlike remote volumes, shared volumes can be mounted concurrently by multiple instances or cluster members while remaining safe for concurrent access. Shared pools only support custom filesystem volumes; they cannot host instance root volumes or custom block volumes.</p>
</section>
<section id="object-storage-backend">
<span id="storage-drivers-object"></span><h3>Object storage backend<a class="headerlink" href="#object-storage-backend" title="Link to this heading">¶</a></h3>
<p>LXD provides the following driver for an object storage backend:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../storage_cephobject/">Ceph Object - <code class="docutils literal notranslate"><span class="pre">cephobject</span></code></a></li>
</ul>
</div>
<p>Ceph Object is a dedicated object storage backend that exposes buckets over HTTP(S). It uses the S3-compatible API and stores data as discrete objects instead of mounted volumes. Like shared storage, using an object storage backend allows concurrent access by multiple instances across the cluster.</p>
</section>
</section>
<section id="recommended-setup">
<span id="storage-drivers-recommended-setup"></span><h2>Recommended setup<a class="headerlink" href="#recommended-setup" title="Link to this heading">¶</a></h2>
<p>The two best options for use with LXD are ZFS (local) and Ceph (non-local).</p>
<p>Whenever possible, dedicate a full disk or partition to your LXD storage pool. LXD allows you to create loop-based storage, but this isn’t recommended for production use. See <a class="reference internal" href="../../explanation/storage/#storage-location"><span class="std std-ref">Data storage location</span></a> for more information.</p>
<p>The <a class="reference internal" href="../storage_dir/#storage-dir"><span class="std std-ref">Directory</span></a> backend should be considered as a last resort option. It supports all main LXD features, but is slow and inefficient because it cannot perform instant copies or snapshots. Therefore, it constantly copies the instance’s full storage.</p>
</section>
<section id="security-considerations">
<span id="storage-drivers-security"></span><h2>Security considerations<a class="headerlink" href="#security-considerations" title="Link to this heading">¶</a></h2>
<p>Currently, the Linux kernel might silently ignore mount options and not apply them when a block-based file system (for example, <code class="docutils literal notranslate"><span class="pre">ext4</span></code>) is already mounted with different mount options.</p>
<p>This means when dedicated disk devices are shared between different storage pools with different mount options set, the second mount might not have the expected mount options.</p>
<p>This becomes security relevant when, for example, one storage pool is supposed to provide <code class="docutils literal notranslate"><span class="pre">acl</span></code> support and the second one is supposed to not provide <code class="docutils literal notranslate"><span class="pre">acl</span></code> support.</p>
<p>For this reason, it is currently recommended to either have dedicated disk devices per storage pool or to ensure that all storage pools that share the same dedicated disk device use the same mount options.</p>
</section>
<section id="features-reference">
<span id="storage-drivers-features-reference"></span><h2>Features reference<a class="headerlink" href="#features-reference" title="Link to this heading">¶</a></h2>
<section id="optimized-image-storage">
<span id="storage-optimized-image-storage"></span><h3>Optimized image storage<a class="headerlink" href="#optimized-image-storage" title="Link to this heading">¶</a></h3>
<p>Most LXD storage drivers provide an optimized image storage format. To make instance creation near instantaneous, LXD clones a pre-made image volume when creating an instance rather than unpacking the image tarball from scratch.</p>
<p>To prevent preparing such a volume on a storage pool that might never be used with that image, the volume is generated on demand. Therefore, the first instance takes longer to create than subsequent ones.</p>
</section>
<section id="optimized-instance-creation">
<span id="storage-optimized-instance-creation"></span><h3>Optimized instance creation<a class="headerlink" href="#optimized-instance-creation" title="Link to this heading">¶</a></h3>
<p>Some storage drivers can create instances by cloning an existing volume rather than copying all data, which reduces the amount of data that must be written.</p>
</section>
<section id="optimized-snapshot-creation">
<span id="storage-optimized-snapshot-creation"></span><h3>Optimized snapshot creation<a class="headerlink" href="#optimized-snapshot-creation" title="Link to this heading">¶</a></h3>
<p>Some storage drivers can create snapshots without copying full volumes. This optimizes speed and resources compared to full-copy snapshots.</p>
</section>
<section id="optimized-backup-import-export">
<span id="storage-optimized-backup"></span><h3>Optimized backup (import/export)<a class="headerlink" href="#optimized-backup-import-export" title="Link to this heading">¶</a></h3>
<p>Some storage drivers support LXD’s optimized backup path when exporting and importing instance or volume backups. Optimized exports are usually faster, and snapshots are stored as deltas from the main volume.</p>
</section>
<section id="optimized-volume-transfer">
<span id="storage-optimized-volume-transfer"></span><h3>Optimized volume transfer<a class="headerlink" href="#optimized-volume-transfer" title="Link to this heading">¶</a></h3>
<p>Btrfs, ZFS, and Ceph RBD have an internal send/receive mechanism that allows for optimized volume transfer.</p>
<p>LXD uses this optimized transfer when transferring instances and snapshots between storage pools that use the same storage driver, if the storage driver supports optimized transfer and the optimized transfer is actually quicker.
Otherwise, LXD uses <code class="docutils literal notranslate"><span class="pre">rsync</span></code> to transfer container and file system volumes, or raw block transfer to transfer virtual machine and custom block volumes.</p>
<p>The optimized transfer uses the underlying storage driver’s native functionality for transferring data, which is usually faster than using <code class="docutils literal notranslate"><span class="pre">rsync</span></code> or raw block transfer.</p>
</section>
<section id="optimized-volume-refresh">
<span id="storage-optimized-volume-refresh"></span><h3>Optimized volume refresh<a class="headerlink" href="#optimized-volume-refresh" title="Link to this heading">¶</a></h3>
<p>The full potential of the optimized transfer becomes apparent when refreshing a copy of an instance or custom volume that uses periodic snapshots.
If the optimized transfer isn’t supported by the driver or its implementation of volume refresh, instead of the delta, the entire volume including its snapshot(s) will be copied using either <code class="docutils literal notranslate"><span class="pre">rsync</span></code> or raw block transfer. LXD will try to keep the overhead low by transferring only the volume itself or any snapshots that are missing on the target.</p>
<p>When optimized refresh is available for an instance or custom volume, LXD bases the refresh on the latest snapshot, which means:</p>
<ul class="simple">
<li><p>When you take a first snapshot and refresh the copy, the transfer will take roughly the same time as a full copy.
LXD transfers the new snapshot and the difference between the snapshot and the main volume.</p></li>
<li><p>For subsequent snapshots, the transfer is considerably faster.
LXD does not transfer the full new snapshot, but only the difference between the new snapshot and the latest snapshot that already exists on the target.</p></li>
<li><p>When refreshing without a new snapshot, LXD transfers only the differences between the main volume and the latest snapshot on the target.
This transfer is usually faster than using <code class="docutils literal notranslate"><span class="pre">rsync</span></code> (as long as the latest snapshot is not too outdated).</p></li>
</ul>
<p>On the other hand, refreshing copies of instances without snapshots (either because the instance doesn’t have any snapshots or because the refresh uses the <code class="docutils literal notranslate"><span class="pre">--instance-only</span></code> flag) would actually be slower than using <code class="docutils literal notranslate"><span class="pre">rsync</span></code> or raw block transfer.
In such cases, the optimized transfer would transfer the difference between the (non-existent) latest snapshot and the main volume, thus the full volume.
Therefore, LXD uses <code class="docutils literal notranslate"><span class="pre">rsync</span></code> or raw block transfer instead of the optimized transfer for refreshes without snapshots.</p>
</section>
<section id="copy-on-write">
<span id="storage-copy-on-write"></span><h3>Copy-on-write<a class="headerlink" href="#copy-on-write" title="Link to this heading">¶</a></h3>
<p>Copy-on-write (CoW) means the storage driver can share unchanged data between a volume and its snapshots. Only changed blocks are written to new locations, which reduces duplication and can improve snapshot performance.</p>
</section>
<section id="block-based">
<span id="storage-block-based"></span><h3>Block-based<a class="headerlink" href="#block-based" title="Link to this heading">¶</a></h3>
<p>Block-based storage presents volumes as block devices rather than mounted file systems. If a file system is needed, LXD can format the block volume for containers and custom file system volumes, or the instance can format it (for example, for virtual machines). See <a class="reference internal" href="../storage_pure/#storage-pure"><span class="std std-ref">Pure Storage</span></a>, <a class="reference internal" href="../storage_alletra/#storage-alletra"><span class="std std-ref">HPE Alletra</span></a>, and <a class="reference internal" href="../storage_ceph/#storage-ceph"><span class="std std-ref">Ceph RBD</span></a> for driver-specific details.</p>
</section>
<section id="instant-cloning">
<span id="storage-instant-cloning"></span><h3>Instant cloning<a class="headerlink" href="#instant-cloning" title="Link to this heading">¶</a></h3>
<p>Instant cloning means LXD can quickly create a new volume by cloning an existing one without copying all data.</p>
</section>
<section id="storage-driver-usable-inside-a-container">
<span id="storage-driver-usable-in-container"></span><h3>Storage driver usable inside a container<a class="headerlink" href="#storage-driver-usable-inside-a-container" title="Link to this heading">¶</a></h3>
<p>Some storage drivers can be used when LXD itself is running inside a container. Drivers that cannot be used inside a container often need access to host capabilities or devices that containers normally don’t have, and other container limits can also apply.</p>
</section>
<section id="restore-from-older-snapshots-not-latest">
<span id="storage-restore-older-snapshots"></span><h3>Restore from older snapshots (not latest)<a class="headerlink" href="#restore-from-older-snapshots-not-latest" title="Link to this heading">¶</a></h3>
<p>Indicates whether LXD can restore a volume or instance to a snapshot older than the most recent one. Some drivers only allow restoring to the latest snapshot.</p>
</section>
<section id="storage-quotas">
<span id="id18"></span><h3>Storage quotas<a class="headerlink" href="#storage-quotas" title="Link to this heading">¶</a></h3>
<p>Shows whether the storage driver supports enforcing size limits on storage volumes.</p>
</section>
<section id="available-on-lxd-init">
<span id="storage-available-init"></span><h3>Available on <code class="docutils literal notranslate"><span class="pre">lxd</span> <span class="pre">init</span></code><a class="headerlink" href="#available-on-lxd-init" title="Link to this heading">¶</a></h3>
<p>Shows whether the storage driver can be selected during <code class="docutils literal notranslate"><span class="pre">lxd</span> <span class="pre">init</span></code> (interactive or preseed). Drivers that depend on external storage systems require those systems to be set up first.</p>
</section>
<section id="object-storage">
<span id="storage-object-storage"></span><h3>Object storage<a class="headerlink" href="#object-storage" title="Link to this heading">¶</a></h3>
<p>Object storage provides access to data over HTTP(S). It stores data as discrete objects within buckets, making it ideal for unstructured data such as backups, images, and logs. Unlike volumes, object storage is not mounted to instances but accessed through APIs.</p>
</section>
<section id="volume-recovery">
<span id="storage-volume-recovery"></span><h3>Volume recovery<a class="headerlink" href="#volume-recovery" title="Link to this heading">¶</a></h3>
<p>Shows whether <a class="reference internal" href="../../howto/disaster_recovery/#disaster-recovery"><span class="std std-ref">lxd recover</span></a> can re-discover and import existing volumes for the driver after a database loss. Some non-local storage drivers have limitations (see the table footnotes).</p>
</section>
</section>
<section id="related-topics">
<h2>Related topics<a class="headerlink" href="#related-topics" title="Link to this heading">¶</a></h2>
<p>How-to guides:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../../storage/#storage"><span class="std std-ref">Storage</span></a></p></li>
</ul>
<p>Explanation:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../../explanation/storage/#exp-storage"><span class="std std-ref">Storage pools, volumes, and buckets</span></a></p></li>
</ul>
</section>
</section>
<hr class="footnotes docutils" />
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="id5" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id2">1</a><span class="fn-bracket">]</span></span>
<p>Requires <a class="configref reference internal" href="../storage_lvm/#storage-lvm-pool-conf:lvm.use_thinpool"><code class="docutils literal notranslate"><span class="pre">lvm.use_thinpool</span></code></a> to be enabled. Only when refreshing local volumes.</p>
</aside>
<aside class="footnote brackets" id="id6" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id3">2</a><span class="fn-bracket">]</span></span>
<p>Requires <a class="configref reference internal" href="../storage_zfs/#storage-zfs-volume-conf:zfs.delegate"><code class="docutils literal notranslate"><span class="pre">zfs.delegate</span></code></a> to be enabled.</p>
</aside>
<aside class="footnote brackets" id="id7" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id4">3</a><span class="fn-bracket">]</span></span>
<p>The <code class="docutils literal notranslate"><span class="pre">dir</span></code> driver supports storage quotas when running on either ext4 or XFS with project quotas enabled at the file system level.</p>
</aside>
<aside class="footnote brackets" id="id14" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id8">4</a><span class="fn-bracket">]</span></span>
<p>Volumes of type <code class="docutils literal notranslate"><span class="pre">block</span></code> will fall back to non-optimized transfer when migrating to an older LXD server that doesn’t yet support the <code class="docutils literal notranslate"><span class="pre">RBD_AND_RSYNC</span></code> migration type.</p>
</aside>
<aside class="footnote brackets" id="id15" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id9">5</a><span class="fn-bracket">]</span></span>
<p>Only for volumes of type <code class="docutils literal notranslate"><span class="pre">block</span></code>.</p>
</aside>
<aside class="footnote brackets" id="id16" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span>6<span class="fn-bracket">]</span></span>
<span class="backrefs">(<a role="doc-backlink" href="#id10">1</a>,<a role="doc-backlink" href="#id11">2</a>)</span>
<p>Only when refreshing volumes on the same LXD server using the same storage array.</p>
</aside>
<aside class="footnote brackets" id="id17" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></span>
<span class="backrefs">(<a role="doc-backlink" href="#id12">1</a>,<a role="doc-backlink" href="#id13">2</a>)</span>
<p>Custom volumes can only be recovered when attached to an instance due to the use of transformed volume names.</p>
</aside>
</aside>

        </article>
      </div>
      <footer>
        
   

<div class="related-pages">
  
  
      
  
  
  <a class="next-page" href="../storage_dir/">
        <div class="page-info">
          <div class="context">
            <span>Next</span>
          </div>
          <div class="title">Directory - <code class="docutils literal notranslate"><span class="pre">dir</span></code></div>
        </div>
        <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
      </a>
    <a class="prev-page" href="../projects/">
        <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
        <div class="page-info">
          <div class="context">
            <span>Previous</span>
          </div>
          
            <div class="title">Project configuration</div>
          
        </div>
      </a>
</div>
<div class="bottom-of-page">
  <div class="left-details">
    <div class="copyright">
        &copy; 2014-2026 AGPL-3.0, LXD contributors 
    </div><div class="last-updated">
      Last updated on Feb 18, 2026</div>
  </div>
  <div class="right-details">
    
      <a href="" class="js-revoke-cookie-manager muted-link">Manage your tracker settings</a>
</div>

      </footer>
    </div>
    <aside class="toc-drawer">
      
<div class="toc-sticky toc-scroll">
   
    <div class="toc-title-container">
      <span class="toc-title">
       Contents
      </span>
    </div>
    <div class="toc-tree-container">
      <div class="toc-tree">
        <ul>
<li><a class="reference internal" href="#">Storage drivers</a><ul>
<li><a class="reference internal" href="#feature-comparison">Feature comparison</a><ul>
<li><a class="reference internal" href="#local-storage-features">Local storage features</a></li>
<li><a class="reference internal" href="#non-local-storage-features">Non-local storage features</a></li>
</ul>
</li>
<li><a class="reference internal" href="#local">Local</a></li>
<li><a class="reference internal" href="#non-local">Non-local</a><ul>
<li><a class="reference internal" href="#remote">Remote</a></li>
<li><a class="reference internal" href="#shared">Shared</a></li>
<li><a class="reference internal" href="#object-storage-backend">Object storage backend</a></li>
</ul>
</li>
<li><a class="reference internal" href="#recommended-setup">Recommended setup</a></li>
<li><a class="reference internal" href="#security-considerations">Security considerations</a></li>
<li><a class="reference internal" href="#features-reference">Features reference</a><ul>
<li><a class="reference internal" href="#optimized-image-storage">Optimized image storage</a></li>
<li><a class="reference internal" href="#optimized-instance-creation">Optimized instance creation</a></li>
<li><a class="reference internal" href="#optimized-snapshot-creation">Optimized snapshot creation</a></li>
<li><a class="reference internal" href="#optimized-backup-import-export">Optimized backup (import/export)</a></li>
<li><a class="reference internal" href="#optimized-volume-transfer">Optimized volume transfer</a></li>
<li><a class="reference internal" href="#optimized-volume-refresh">Optimized volume refresh</a></li>
<li><a class="reference internal" href="#copy-on-write">Copy-on-write</a></li>
<li><a class="reference internal" href="#block-based">Block-based</a></li>
<li><a class="reference internal" href="#instant-cloning">Instant cloning</a></li>
<li><a class="reference internal" href="#storage-driver-usable-inside-a-container">Storage driver usable inside a container</a></li>
<li><a class="reference internal" href="#restore-from-older-snapshots-not-latest">Restore from older snapshots (not latest)</a></li>
<li><a class="reference internal" href="#storage-quotas">Storage quotas</a></li>
<li><a class="reference internal" href="#available-on-lxd-init">Available on <code class="docutils literal notranslate"><span class="pre">lxd</span> <span class="pre">init</span></code></a></li>
<li><a class="reference internal" href="#object-storage">Object storage</a></li>
<li><a class="reference internal" href="#volume-recovery">Volume recovery</a></li>
</ul>
</li>
<li><a class="reference internal" href="#related-topics">Related topics</a></li>
</ul>
</li>
</ul>

      </div>
    </div>
   
    
    <div class="relatedlinks-title-container">
      <span class="relatedlinks-title">
       Related links
      </span>
    </div>
    <div class="relatedlinks-container">
      <div class="relatedlinks">
        
        
          <ul><li><a href="https://www.youtube.com/watch?v=z_OKwO5TskA" target="_blank">Benchmarking&#32;LXD&#32;storage&#32;drivers&#32;-&#32;YouTube</a></li></ul>
        
      </div>
    </div>
    
  </div>

    </aside>
  </div>
</div><script src="../../_static/jquery.js?v=5d32c60e"></script>
    <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
    <script src="../../_static/documentation_options.js?v=a5603611"></script>
    <script src="../../_static/doctools.js?v=9a2dae69"></script>
    <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="../../_static/scripts/furo.js?v=46bd48cc"></script>
    <script src="../../_static/clipboard.min.js?v=a7894cd8"></script>
    <script src="../../_static/copybutton.js?v=b01cb6f2"></script>
    <script src="../../_static/config-options.js"></script>
    <script src="../../_static/design-tabs.js?v=f930bc37"></script>
    <script src="../../_static/js/bundle.js?v=a4d88309"></script>
    <script src="../../_static/header-nav.js?v=e117ad08"></script>
    <script src="../../_static/github_issue_links.js?v=32bb732f"></script>
    
<script>
  const github_url = "https://github.com/canonical/lxd";
</script>
</body>
</html>