Design storage spaces
Primordial pool – One or more disks with no partitions and are at least 10GB
Storage pool – One or more disks allocated to a storage pool
Storage space – A disk carved out of a storage pool
Requirements of storage spaces
- Disks that have no partitions or volumes and are at least 10GB
- SAS storage must support Storage Enclosure Support (SES) for use with clustering
- SATA, SCSI, iSCSI, SAS, USB or JBOD enclosures
- Windows Server 2012 or Windows 8
- Disks presented via a RAID controller must not be configured has a RAID set
Storage space functionality
Storage pools are the building blocks of storage spaces; storage pools can contain spinny (SAS and SATA) and SSD disks. New functionality in Windows Server 2012 R2 introduces Storage Tiers. Storage Tiers will move frequently access data onto SSD and less frequently accessed data onto slower storage.
Storage space resiliency is configured when you create a storage space. The options are as follows:
- Mirror disk (RAID 1) – requires the underlying storage pool contain at least two disks for a two way mirror and three disks for a three way mirror.
- Parity disk (RAID 5) – requires the underlying storage pool contain at least three disks. Not supported in a failover cluster.
- Simple disk (RAID 0) – requires one disk, good for hosting temporary files and files which can be recreated easily.
Storage space provisioning supports both fixed and thin provisioning; thin provisioning is not supported in a failover cluster. It is worth noting that thin provisioning will impact latency when the metadata I/O provisions the blocks for data to be written. Windows 2012 also has trim provisioning which allows you to reclaim space that is no longer in use. This functionality requires that the hardware is certified compatible with Windows Server 2012 and uses standards-compliant hardware for identification.
The space reclamation can impact performance as it is configured by default to reclaim space in real-time. If this is not acceptable then this registry key can be configured: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\DisableDeleteNotification = 1. Space can then be reclaimed using the ‘Defragment and Optimise Drives’ tool.
Storage spaces support cluster deployments and Cluster Shared Volumes for scale out deployments.
Storage spaces supports multi-tenancy for hosting scenarios and supports Active Directory security model.
Configure storage pools and disk pools
Storage pools are configured from Server Manager.
To create a storage pool right click in the storage spaces white space and select new storage pool…, then select from the available physical disks.
Verify the storage pool or primordial pool has disks with a healthy status:
Verify the virtual disk (storage space) and the physical disks which underpin the storage pool.
Get-StoragePool -FriendlyName [Name] | Get-VirtualDisk | Format-Table FriendlyName, OperationalStatus, HealthStatus
Get-StoragePool -FriendlyName [Name] | Get-PhysicalDisk | Format-Table FriendlyName, OperationalStatus, HealthStatus
To remove a degraded disk from a pool for repair run:
Set-PhysicalDisk -FriendlyName [Name of Disk] -Usage Retired
Get-PhysicalDisk -FriendlyName [Name of Disk] | Get-VirtualDisk | Repair-VirtualDisk
Deploy and Manage Storage Spaces with PowerShell
Enumerating the commands available to PowerShell:
Get-Command -Module Storage | sort Noun, Verb
Storage spaces requires the disk be blank, so it is important to check the disks you’re going to use for partitions.
Get-Disk | Get-Partition | get-Volume
You could specify a disk number or a list of disk number separated by commas.
To clear data from the disk run:
Clear-Disk # -RemoveData
So which disks can I use to create a storage pool? – running Get-PhysicalDisk -CanPool $True will show you.
Grab the disks you want to pool into a variable.
Use the disk in the variable to create a storage pool
Create a virtual disk (storage space) from the storage pool. Note the storage space cannot be use mirror or parity functionality because there is only one disk.
I have had to specify the resiliency type as simple because the storage pool default was mirror even though I only has one disk!
Other useful PowerShell cmdlets are Initialize-Disk, New-Partition and Format-Volume.
Configure basic and dynamic disks
Disks within Windows can be basic or dynamic regardless of the partition type or whether they’re part of a storage pool.
Disks presented by a storage device which has multiple paths should not be configured as a dynamic disks as this will more than likely break multipathing.
Dynamic disks are good for providing fault tolerance when fault tolerance storage controllers are not available.
The system partition is always a basic disk as this contains the boot files.
Configure Master Boot Record (MBR) and GUID Partition Table (GPT) disks
The Master Boot Record (MBR) is the traditional disk configuration which defines the disk configuration such as partition configuration and disk layout, in addition the MBR contains boot code to load the operating system boot loaders winload.exe, NTLDR…
The MBR is located on the first sector of the disk and supports a 32 bit partition table which limits the MBR disk to 2TB.
MBR disks are limited to 4 partitions; 3 primary partitions and 1 extended partition.
The GUID partition table (GPT) disks were introduced in Windows Server 2003 SP1 and support disks greater than 2TB. The GPT disks have redundant copies of the partition table which allow for self healing.
The GPT disk has a protected MBR at LBA0 which allows BIOS based computers to boot from GPT disks as longa as the boot loaders and operating systems is GPT aware.
GPT have a 16KB partition table which allows for 128 partitions if each partition entry is 128bytes, whereas MBR disks have a 64 bytes partition table with each entry being 16 bytes.
Disks created within Server Manager automatically creates GPT disks.
EFS has been deprecated because Bitlocker and Rights management are more scalable. The number of files in a volume is 18 quintilion. ReFS is targetted at data volumes, does not support deduplication.
iSCSI target now a role service
Storage spaces has de-duplication built into the operating system and works at the block level. Example scenarios of where de-duplication can be used is general file storage and VHD libraries. Deduplication cannot be enabled on boot or system disks i.e. primarily c:\.
Storage tiers – data is moved between fast and slow disk depending on access frequency; this is new in Windows Server 2012 R2.
Windows Server 2012 introduces a new filesystem; ReFS, ReFS is a self healing file system and I believe is the file system used in the back end to provide the fault tolerance and reliability of storage pools.