Windows Server 2012: Is Storage Spaces the Killer Feature?
Storage Spaces, the Windows Server 2012 storage subsystem, is worth a closer look. Storage Spaces is available in Windows Server 2012 and also in Windows 8 clients. Storage Spaces is simple to use and has a feature-rich approach to managing your storage. Storage Spaces uses thin provisioning, and can dynamically add storage to an existing RAID, even if the drives are of different sizes and types.
Storage Virtualization for Windows Server 2012
Storage Spaces is a storage subsystem for Windows Server 2012. Using Storage Spaces, a collection of internal and external drives can be placed into storage pools. Those storage pools can have storage spaces created on them. Storage Spaces are actually virtual hard drives that are placed on the storage pools. The Storage Spaces are then presented to the operating system as volumes, looking just like a hard drive.
There can be multiple Storage Spaces on a storage pool. For example, you may have 3 internal hard drives installed to use as a storage pool. You can then create several different Storage Spaces on the storage pool, such as one for each group that is using the server.
Already Installed with Windows Server 2012
Storage Spaces is built in with Windows Server 2012. You don’t need to install it as a role or feature. It is able to be managed simply and easily, right out of the box. All you need to do to take advantage of it is to add some storage to your Windows Server 2012, and create a storage pool.
Both Serial SATA (SATA) and Serial Attached SCSI (SAS) storage can be used to create the storage pools. It doesn’t matter whether the drives are internal or external. Once the drives are added, you can create a storage pool that includes some or all of the physical disks.
Easily Create a Storage Pool with PowerShell
Before you can add a Storage Space, you have to have a storage pool to create it on. This can be completed either through the Storage Spaces management GUI, or through PowerShell.
Once you become familiar with the PowerShell cmdlets, they are the fastest way to create storage pools. Storage pools require three basic pieces of information to be created:
- which disks to use;
- the Storage Spaces subsystem to create it for;
- the name of the storage pool
For example, this would create a storage pool called “Storage Pool 1” out of all of the disks on the system that are not already pooled:
$Disks = Get-PhysicalDisk –IsPooled $False
Get-StorageSubsystem | New-StoragePool –PhysicalDisk $Disks –Friendlyname “Storage Pool 1”
Options for the storage pool could also be set, such as setting the default provisioning type or resiliency type that will be used on the Storage Spaces that the pool will have on it.
Create One or More Storage Spaces for Each Storage Pool
Once the storage pool has been created, you can set up one or more Storage Spaces on it.
Storage Spaces will look like a drive on the system. In fact, they are standard VHD (virtual hard drive) files, just like a virtual machine running on Hyper-V would use. Once they are created, they may be selected as one of the options to create a volume from by Windows Server 2012.
Reasons to Love Working with Storage Spaces
There are some really great things about the Storage Spaces. First, Storage Spaces can be thinly provisioned. That means that the VHD will start out small, and will grow as it is used. When you create the Storage Space, you can create it as large as you need, but the size of the actual VHD will be much smaller. So if you know that you will need 10TB to store all of the training videos that your company is going to create, you can create a 10TB Storage Space. However, you do not need 10TB of storage in your storage pool. In fact, you only need as much space as you’re actually going to use now. Once the actual used space begins to approach the available physical space, Storage Spaces will notify you to add more physical capacity.
Another great feature is the redundancy options that are built into the VHD. Your redundancy options are simple, mirrored and parity. Once set on the storage space, you don’t need to further configure the drive. Storage Spaces will handle the duplication of data between drives, and even perform error checks and repair both on the fly and as background tasks.
One of the nicest things about Storage Spaces is how easily you can add more storage. If, for example, you have 10TB of physical capacity in your storage pool, you may have created 5 different Storage Spaces that have a maximum capacity of 5TB each. This would allow each of your department shares to occupy up to 5TB of space, but you don’t actually need to have 25TB of storage. However, as departments begin to fill up the space, you will run short on physical capacity. With Storage Spaces, you can dynamically add storage to the storage pool. You can add external SAS or SATA disks in a JBOD (Just a Bunch of Disks) enclosure and then add that new storage directly to the storage pool that supports your Storage Spaces. And just like that, you can have enough physical space for all of your Storage Spaces to be at their maximum capacity.
Once running, Storage Spaces is ready to stay running. Storage pools can be shared between nodes in a cluster, and can be instantiated on individual nodes. Once this is set up, Storage Spaces shared across nodes will automatically fail over in case of any hardware failure in the cluster.
Storage Spaces, the storage subsystem for Windows Server 2012, allows for storage virtualization. Physical hardware disks can be either internal or external, and can be either SATA or SAS. The storage can be grouped together into storage pools, which can use disks of different sizes and speeds in conjunction to providing a building block for the Storage Spaces to be held on.
Storage Spaces, which are actually virtual hard drive images, are able to be thinly provisioned, allowing you to provision more space than you actually have currently, and add more space as you need it. They also have redundancy options built into the hard drive, and are very easy to both add storage to and administer.