30
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
plugin 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