Skip to main content

Storage the service can read

The service selects a read path for each disk from its Ceph image features, libvirt domain definition or logical volume attributes. Configure the paths your cloud's storage requires before creating protection plans. A cloud with mixed storage may use several paths.

The three read paths​

PathReadsRequiresCost per backup
ClusterCeph RBD volumes and Nova disks with images_type=rbdThe three cephx usersReads only blocks changed since the previous backup when Ceph change tracking is available.
HypervisorAny disk a running guest has open: a SAN LUN, an LVM volume, an NFS file, a local qcow2 or raw diskThe compute agent on every hypervisor, with local-disk backup turned onReads cross the compute node. Incremental only for qcow2 disks. Other disks are read in full.
FabricAny volume Cinder can attach to a host: detached volumes, and volumes of a stopped instanceA mover host zoned into the storage networkA LUN mapping and an initiator session per read, and always a full read. A stopped instance's volume is read through a temporary snapshot and copy.

A full read still uploads only what changed, because deduplication compares the data with what the repository holds. The cost of a full read is the read itself, on the storage and on the network.

Supported storage​

StorageWhat you get
Cinder RBD, Nova images_type=rbdIncremental backups through the cluster path.
NetApp ONTAP over NFS, IBM GPFSFull reads. The volume is a file on a shared filesystem, so movers read it directly.
SAN arrays through Cinder over iSCSI or NVMe/TCP: Pure, PowerStore, PowerMax, Unity, 3PAR, Nimble, Hitachi VSP, Huawei OceanStor, IBM Storwize, Infinidat and othersFull reads through the fabric path. Arrays that track changes internally do not expose that through Cinder.
Cinder LVM; Nova images_type=qcow2, raw or flat (Nova's default)The hypervisor path for attached volumes and local disks of running instances. The fabric path for detached LVM volumes.
Nova images_type=lvm, ploopNot supported. The service accepts a plan for these disks but cannot restore them. A restore writes local disks only as raw or qcow2 images.

Supported Cinder storage uses these shared read paths.

Turn on the hypervisor path​

ferry_local_disk_backup: true

The compute agent streams guest disk data to a mover. This adds read traffic to the hypervisor and is off by default on kolla-ansible and Helm. Configure scratch space with these constraints:

  • It must be under /var/lib/libvirt. QEMU opens the scratch, and QEMU and the agent run in different mount namespaces. /var/lib/libvirt is the one path both see the same way. A path elsewhere fails with "blockdev-add: No such file or directory", naming a file that exists. The precheck refuses it.
  • It grows with the guest's writes for the length of a backup. Keep it off the filesystem the instances live on, and cap it with ferry_compute_max_scratch_bytes.

The Helm chart's value is compute.localDiskBackup. The Juju charm's option is local-disk-backup. The charm turns it on by default, because Sunbeam keeps instance disks on the hypervisors.

Turn on the fabric path​

List the mover hosts that are zoned into the storage network under [ferry-mover-fabric], and set:

ferry_fabric_iscsi: true
ferry_fabric_nvmeof: false
ferry_fabric_multipath: false

A fabric mover runs privileged with the host's /dev, kernel modules and a persistent initiator identity. It must be the only iSCSI stack on its host. The precheck refuses a fabric mover that is also a hypervisor. It also refuses one whose host runs its own iscsid, as a cinder-volume host usually does. Another iscsid on the host answers the mover's tools with a different protocol version. Every login then fails with "iSCSI driver not found", although discovery works. NVMe/TCP needs the nvme_tcp module on the host, which on Ubuntu is in linux-modules-extra.

Reading a stopped instance's volume creates a snapshot and a temporary volume from it. Both are created in the service project (service on kolla-ansible). Set its quota to accommodate all concurrent copies:

openstack quota set --volumes 50 --snapshots 50 --gigabytes 20000 service

The fabric path is available on kolla-ansible deployments.

Check a resource before protecting it​

openstack backup resource list shows, for each resource, whether it can be protected. When it cannot, it shows why and what to change. Run it in a project with each kind of storage the cloud offers before projects start creating plans.