34
Storage
This chapter discusses the framework for storage abstractions. It describes the way physical storage hardware of
various kinds is mapped to VMs, and the software objects used by the XenServer host API to perform storage-
related tasks. Detailed sections on each of the supported storage types include procedures for creating storage for
VMs using the CLI, with type-specific device configuration options, generating snapshots for backup purposes and
some best practices for managing storage in XenServer host environments. Finally, the virtual disk QoS (quality
of service) settings are described.

Storage Overview

This section explains what the XenServer storage objects are and how they are related to each other.

Storage Repositories (SRs)

XenServer defines a container called a storage repository (SR) to describe a particular storage target, in which
Virtual Disk Images (VDIs) are stored. A VDI is a disk abstraction which contains the contents of a virtual disk.
The interface to storage hardware allows VDIs to be supported on a large number of SR types. The XenServer SR
is very flexible, with built-in support for IDE, SATA, SCSI and SAS drives locally connected, and iSCSI, NFS, SAS and
Fibre Channel remotely connected. The SR and VDI abstractions allow advanced storage features such as sparse
provisioning, VDI snapshots, and fast cloning to be exposed on storage targets that support them. For storage
subsystems that do not inherently support advanced operations directly, a software stack is provided based on
Microsoft's Virtual Hard Disk (VHD) specification which implements these features.
Each XenServer host can use multiple SRs and different SR types simultaneously. These SRs can be shared between
hosts or dedicated to particular hosts. Shared storage is pooled between multiple hosts within a defined resource
pool. A shared SR must be network accessible to each host. All hosts in a single resource pool must have at least
one shared SR in common.
SRs are storage targets containing virtual disk images (VDIs). SR commands provide operations for creating,
destroying, resizing, cloning, connecting and discovering the individual VDIs that they contain.
A storage repository is a persistent, on-disk data structure. For SR types that use an underlying block device, the
process of creating a new SR involves erasing any existing data on the specified storage target. Other storage
types such as NFS, NetApp, EqualLogic and StorageLink SRs, create a new container on the storage array in parallel
to existing SRs.
CLI operations to manage storage repositories are described in the section called “SR Commands”.

Virtual Disk Images (VDIs)

Virtual Disk Images are a storage abstraction that is presented to a VM. VDIs are the fundamental unit of
virtualized storage in XenServer. Similar to SRs, VDIs are persistent, on-disk objects that exist independently of
XenServer hosts. CLI operations to manage VDIs are described in the section called “VDI Commands”. The actual
on-disk representation of the data differs by the SR type and is managed by a separate storage plug-in interface
for each SR, called the SM API.

Physical Block Devices (PBDs)

Physical Block Devices represent the interface between a physical server and an attached SR. PBDs are connector
objects that allow a given SR to be mapped to a XenServer host. PBDs store the device configuration fields that
are used to connect to and interact with a given storage target. For example, NFS device configuration includes
the IP address of the NFS server and the associated path that the XenServer host mounts. PBD objects manage
the run-time attachment of a given SR to a given XenServer host. CLI operations relating to PBDs are described
in the section called “PBD Commands”.