1.2 Fixed vs. thin provisioning
Once you’ve aggregated physical disks into a storage pool, you
can provision storage from that pool by creating virtual disks.
Storage Spaces supports two ways of provisioning virtual
disks:
-
Fixed provisioning The size
of the virtual disk is the actual amount of physical storage
space allocated from the pool.
-
Thin provisioning The size
of the virtual disk represents the maximum amount of physical
storage space that can be allocated from the pool. No space is
actually used, however, until data is stored on a volume on the
virtual disk, and the amount of space used will grow or shrink
as data is written to or deleted from the disk.
The difference between these two types of provisioning can be
explained using the following example. Figure 1 shows a
storage pool named Storage Pool 1 that has been created from three
2-TB physical hard drives. If you use fixed provisioning to create
virtual disks from this pool, you could create, for example, one
virtual disk that is 4 TBs in size and a second virtual disk that is
2 TBs in size, for a total of 6 TBs, which equals the physical
storage space available in the pool. At this point, because all
available storage in the pool has been provisioned, no new virtual
disks can be created unless additional physical disks are added to
the pool.
By contrast, Figure 2 shows thin
provisioning being used to create virtual disks from the same
storage pool of physical disks. Two virtual disks have been created:
one 20 TBs in size and the other 10 TBs in size, for a total of 30
TBs. You could now create volumes on these virtual disks and use the
volumes to store data. For example, three volumes of sizes 10 TBs, 5
TBs, and 5 TBs could be created on the 20-TB virtual disk, while a
single 10-TB volume could be created on the 10-TB virtual disk. If
you discover that the volumes you created are insufficient to meet
the needs of your environment, you could perform either of the
following actions:
-
Create additional thinly provisioned virtual disks from
the same storage pool.
-
Extend one (or more) of your existing virtual disks to
create more room on it, and then create additional volumes on
the extended disk (or disks).
How can 6 TBs of physical storage space be used to create 30
TBs of NTFS-formatted volumes for storing data on? With fixed
provisioning, this is not possible. However, with thin provisioning,
the data volumes use space on the physical disks only when you store
some data on the volumes.
What happens, then, if you begin copying large amounts of data
onto the two volumes shown in Figure 2? Once you
begin to approach the actual available physical capacity of the
storage pool, a notification message will be displayed to alert you
to the situation. At that point, you can either stop copying data to
the volumes or add more physical disks to your storage pool.
Storage Spaces can be used to provide resilient storage
similar (but not identical) to RAID 0 (disk striping) and RAID 1
(mirroring) that can be implemented using hardware RAID solutions.
As long as your storage pool has a sufficient number of physical
disks in it, you can use Storage Spaces to create virtual disks
whose storage layout is any of the following three types:
-
Simple The data on volumes
created on this type of virtual disk is striped across all
physical disks in the pool. You can use simple virtual disks to
provision the maximum amount of storage from the pool, but they
provide no resiliency against physical disk failure.
-
Mirror The data on volumes
created on this type of virtual disk is striped across all
physical disks in the pool. Each segment of data is also
duplicated on either two or three physical disks, as specified
when the mirrored virtual disk is created, so that a copy of all
data will still be available if a physical disk fails in the
pool. Mirror virtual disks provide resiliency to help protect
you from data loss arising from the failure of a physical disk
in the pool. The degree of resiliency provided depends on the
number of physical disks in the pool—for example:
-
A pool containing two physical disks can be used to
create mirror virtual disks that are resilient against the
failure of a single physical disk.
-
A pool containing five physical disks can be used to
create mirror virtual disks that are resilient against the
failure of two physical disks.
-
Parity The data on volumes
created on this type of virtual disk, together with parity
information that can be used to facilitate automatic
reconstruction of data in the event of a physical disk failure,
is striped across all physical disks in the pool. Parity virtual
disks also provide resiliency to help protect you from data loss
arising from the failure of a physical disk in the pool, but
they perform better with large sequential disk writes than with
random I/O.
Note
Requirement for provisioning resilient virtual disks
If your storage pool has only one physical disk in it, you
will only be able to provision simple virtual disks from it. To
provision mirror or parity virtual disks from a storage pool, the
pool must have at least two physical disks in it.
When a physical disk fails in a pool being used to provision
resilient (mirror or parity) virtual disks, Storage Spaces will
continue to provide access to data stored on volumes on the virtual
disk and will automatically regenerate data copies for all affected
virtual disks as long as there are sufficient alternate physical
disks available in the pool. When you add a physical disk to a
storage pool, you have a choice of two ways to allocate the disk to
the pool:
-
Automatic The pool will
automatically use the disk for storing data written to any
volumes created on the disk.
-
Hot-spare The disk will be
held in reserve by the pool so that it can be used if another
physical drive in the pool fails.
Note
Quorum
In the event of a simultaneous failure of multiple physical
drives in a pool, you will still be able to access data stored on
volumes created on resilient virtual disks in the pool as long as
a simple majority (quorum) of physical disks in your pool are
still healthy.