In this video I will look at a number of different storage solutions. These include basic solutions
to more advanced Enterprise solutions. By the end of this video, you will have a better
understanding of what is available and how it can be used in your company.
In this video, I first look at software versus hardware solutions. Next, I will look at JBOD
or "Just a Bunch of Disks" and "spanning". Both of these solutions allow multiple hard
disks to be combined together to form the one drive.
Next, I will look at the more common RAID implementations used in the work place. RAID
allows the administrator to combine multiple hard disks together for performance or redundancy
reasons.
Lastly, I will look at storage solutions. Storage Solutions allow the administrator
to dynamically control how drives are allocated. In this case I will have a quick look at Windows
Storage Spaces and Logical Volume Manager for Linux. Both these systems are excellent
storage space systems and allow multiple drives to be combined and space dynamically
allocated as required.
The first point to consider before choosing a software or hardware-based storage solution
is if you will use hardware or software. A hardware solution will generally cost more
than a software solution. Nowadays, a lot of motherboards come with RAID solutions at
no extra cost. If you start looking towards having a RAID solution in a server with hot-swappable
drives, this can push the cost of the server up. For a server, purchasing a system with
RAID and hot-swap drives is recommended.
Hardware has the advantage of taking some of the load off the system. Since some of
the load is processed by the hardware this generally makes hardware faster than a software
based solution.
A hardware solution will have the operating system see multiple drives as one drive. For
this reason a hardware solution can be used to boot the operating system. In some cases
you may need to add additional device drivers to the operating system in order for the OS
to see the drive. However, it should be possible.
With a software based solution, it may not be possible to boot the operating system depending
on which configuration you choose. This is because the software must first be loaded
in order to access the drive. In some operating systems you are limited to what you can choose
for the boot drive. It is a matter of checking the operating system and seeing what it supports
for booting.
The advantage of software is that is it may offer additional features. As we will see,
there are software storage solutions that have advantages over hardware based solutions.
However, enterprise level storage solutions may have these features as well, but the cost
of these features is considerably more than compared with the software.
The first solution that I will look at is JBOD or just a bunch of disks. This solution
combines multiple drives together to form the one logical drive. Unlike the other solutions
that I will look at, the drives do not need to be the same size.
The disadvantage of this system is that it offers no redundancy. It only takes one drive
to fail and all the data is lost. JBOD also offers no performance increase. The advantage
of JBOD is you can combine multiple drives together of different sizes, speed and from
different manufacturers but does not provide redundancy or speed improvements.
The next solution is called spanning. Typically a software solution, spanning allows the free
space on multiple drives to be combined into one drive. Let's consider the following
example. There are 3 hard disks with free space that is not being used. Spanning allows
the free space from each of these drives to be combined into the one drive.
This allows you to use some free space that may have otherwise gone to waste; however
doing so offers no performance improvements or redundancy. If any drive used in the span
set is lost, all data is lost.
The next group of solutions that I will look at is RAID or Redundant Array of Independent
Disks. These solutions combine multiple drives together to form one drive. The drives in
the RAID, also known as RAID array, need to be the same size. If you attempt to use a
larger drive, it will generally be allowed however the extra space on the drive will
not be useable by the RAID. The drives in the RAID should also be of similar specifications
and speeds. If you have a drive that is slower than the other drives, depending on which
RAID you are using, this can slow down the whole RAID to the slowest drive.
Depending on the features supported by the RAID, it may or may not support additional
drives to be added to the RAID later on. This is the case with most RAIDs. In order to add
additional drives to the RAID all the data on the drives needs to be reorganized. The
more expensive RAID solutions may have the ability to do this. The cheaper options, like
RAID included on the motherboard, will not, meaning that the RAID will need to be destroyed
and recreated if you want to expand the RAID later on by adding additional drives. I will
now have a look at some of the more commonly used RAIDs on the market.
The first RAID level that I will look at is RAID 0. RAID 0, also known as striping, is
when 2 or more drives are combined together. Data is distributed across the drives in blocks.
As you can see, when a file is written to a RAID 0 drive, it is divided up into two
parts and approximately half is stored on each drive. As both drives can work independently
of each other, this improves read and write performance.
Notice that as more files are added, they are automatically divided up between the required
drives. In this example there are 2 drives. However, this could be expanded to any number
of drives. For example: if you had 5 drives using RAID 0, potentially all 5 drives could
be working at once to read and write at the same time. You can see why RAID 0 performance
for reading and writing is so good.
The down side of RAID 0 is that it has no redundancy. If one drive was to fail, you
would lose all your data. In this example, if the second drive was to fail, notice that
the first drive only has approximately half the file information. So, effectively, this
drive is not that useful without the other one.
Sometimes students have trouble remembering which RAID levels have which features. To
remember RAID 0, I like to remember that RAID 0 offers zero redundancy. The other RAID levels
that I will look at do offer redundancy in some form.
The next RAID level is 1. RAID 1 is also known as mirroring. RAID 1 requires two drives.
As you can see, as files are written, an identical copy is stored on each drive making 2 copies
in total. Since both drives hold the same information, this effectively reduces the
useable space by half. Even though this effectively doubles the cost of drive space, it offers
redundancy. If the first drive was to fail, the same exact information is available on
the second drive. It just becomes a simple matter of replacing the failed drive with
another one and copying the data from the first drive.
The disadvantage with RAID 1 is that there is no performance increase. Since both drives
work together and have the same data on them, reads and writes are effectively the same
as using the one drive. So RAID 1 essentially doubles the cost of your space and provides
redundancy but with no performance increase.
The next RAID level is RAID 5 - also known as "stripped with parity". This requires
a minimum of 3 drives. One of these drives however is lost to what is referred to as
parity. When data is written, notice that all four drives are required to write information.
The last drive in this case contains parity information. Parity is additional information
stored about the data. A simple example of calculating parity would be to add the data
from the previous drives and store the result on the last drive. Generally most RAID 5 implementations
will have the parity information rotated through each of the drives rather than store the parity
information on the one drive.
Using this parity information the RAID drive can still operate if one drive were to fail
or perhaps was stolen. The drive can simply use the information on the other drives to
work out what the data should be. If a second drive were to fail, all the data on the RAID
would be lost. For this reason, you should always replace the failed drive on a RAID
as soon as possible. Once the replacement drive is installed, it will use the information
from the other drives to rebuild itself.
RAID 5 has additional advantages other than redundancy. Notice that when a file is read,
in this case 3 of the drives are used at once to read the file. This means that read performance
on RAID 5 is excellent. The more drives in RAID 5 the faster the read performance.
Notice however what happens when a file is written to the drive. Notice that all four
drives are used including the parity drive. Since the parity also needs to be updated,
in some cases the other drives may need to be read to find out what data exist on the
drive. Essentially this means that regardless of how little or how much data is being written,
all RAID 5 drives need to be used. This makes RAID 5 very fast for reads, but very slow
for writes.
Since RAID 5 effectively only loses one drive for redundancy and offers performance increases
for reading, it has been popular in business but that popularly has reduced in recent years.
The main problem with RAID 5 is, if a drive fails, it is possible to have a second fail
before a new drive is installed and has had a chance to have the data copied onto it.
With drives getting larger and larger the rebuild time is also increasing and it is
not uncommon in business to have RAIDs with 10 or more drives in them. If a second failure
was to occur during the rebuild, all the data in the RAID would be lost. So essentially
there are two issues that need to be addressed with RAID 5, the performance for writes and
the ability to deal with multiple failures.
To address these issues RAID 1 + 0 was developed. Sometimes referred to as RAID 10. Raid levels
that combine two RAID levels together are referred to as nested RAID. The first RAID
level is RAID 1. This works as you would expect RAID 1 to work. Data is mirrored across the
drives in the RAID offering redundancy but no performance increase.
To offer a performance increase, a second RAID 1 array is added which is stripped with
the first using RAID 0. You can see now, that when data is written to the RAID, it is divided
into two. Half the data is written on the left and the other half on the right.
This offers excellent read and write performance. Since the same copy of the data is held on
two drives, the RAID can survive multiple failures. The down side of this is that the
cost to implement effectively doubles. With the cost of storage decreasing, RAID 1+0 has
become more popular in business. It is hard to tell how multiple failures are handled
with only four drives so let's have a look at RAID 1+0 in a bigger implementation.
In this implementation of RAID 1+0 there are 8 drives in total. Half the available space
is lost due to redundancy but as the data is spread across 4 drives, read and write
performance is quite good.
If a failure of one of the drives was to occur, there is a drive with the same data available
to recover from. If a second drive was to fail, notice that there is a drive next to
it with the same data as this drive, so the RAID is still recoverable. If a 3rd drive
was to fail, the RAID is still recoverable.
The only time the RAID is not recoverable is when a situation like this occurs. Let's
say a drive fails and then the drive on the second RAID 1 array that contains the same
data as the first drive also fails. In this case 2 failures could cause all the data in
the RAID to be lost. In this scenario, there are only 4 sets of mirrored drives, however
a typical business scenario may have a lot more drives in it. Imagine you had 20 drives
with a total of 10 Raid 1 mirrors. If this were to occur, the chance of 2 drives holding
the same data failing at the same time is quite low. You can see that RAID 1 + 0 offers
redundancy but none of the performance problems associated with RAID 5.
There are also variances like Raid 0 + 1. The difference is that the drives are arranged
using RAID 0 and then these drives are mirrored. Like Raid 1 + 0, this offers the redundancy
and performance improvements. Just like before, it can still operate after multiple drive
failures as long as two drives do not fail that have the same data on them.
The down side with RAID and other solutions like these is they are generally not dynamic,
that is drives cannot be added and removed as required. If you use a storage system,
this will allow drives to be added or removed as required. They generally do this by placing
drives into a pool.
If you, for example, had four drives in the one system of different types (you can see
here there is a mixture of solid state and hard disks), these drives could be combined
into the one storage pool. The storage pool effectively manages the drives and their free
space in the pool for the administrator - giving the administrator the one pool of free space.
The administrator is then free to create drives using the space in the storage pool. For example,
they could create a drive that is mirrored for redundancy in case a drive failed. The
administrator could also create a drive with parity for better performance or a drive with
no performance or redundancy requirements.
If a drive in the system were to fail, the administrator would need to replace this drive
just like in a RAID system. Once the drive has been replaced, the storage system reorganizes
the data to ensure that the drive meets the required specifications. That is, the mirrored
drive has at least 2 drives with the same information and the parity drive is spread
out amongst the available drives for better performance. You can see that the storage
pool handles all this for the administrator. The administrator only needs to worry about
replacing failed drives or installing larger or additional drives when more space is required.
For this reason, storage pools are often used in large deployments where available space
often is needed to be transferred between different customers.
There are a number of different storage systems available. Often in enterprise level SAN you
will find features that allow storage pools to be created and managed. In the case of
this video, I will look at two software based storage solutions.
The first software based storage solution that I will look at is Windows Storage Spaces.
This is a Microsoft storage system first introduced in Windows Server 2012 and Windows 8. It is
aimed as a replacement for logical disk manager. It allows the creation of drives inside the
storage pool including the ability to have redundancy. The redundancy is using mirroring
or parity. All though mirroring traditionally uses 2 drives, if you are running Windows
Server 2012 R2, Windows can use 3 drives to store the mirrored data on.
In the case of parity, the storage pool requires 3 drives. If there are 7 or more disks in
the storage pool and you are running Windows Server 2012 R2, Windows can spread the parity
out on the drives to ensure that the data can survive two drive failures.
The next new feature in Windows Storage Spaces is that it supports thin provisioning. If
you have any experience with virtual machines you have probably come across thin provisioning.
Thin provisioning is when the drive only requires space that matches the size of the data. As
more data is added to the drive, the drive becomes larger meaning it can dynamically
expand as needed.
Windows Storage Spaces uses the new ReFS file system. ReFS is designed to be a replacement
for NTFS and offers additional features over NTFS.
At the time this video was created, a drive created in Windows Storage Spaces cannot be
used to boot the operating system. This means Windows Storage Spaces can only be used for
data at this time. If you want your system drive to have redundancy as well, you will
need to use a different solution like hardware RAID or software mirroring.
The next solution that I will look at is the Logical Volume Manager or LVM. This is a Linux
based solution. LVM was developed before Windows Storage Spaces and has the same features.
Logical Volume Manager allows for drives to be added or removed without any downtime.
Drives can be created in the storage pool with or without redundancy. The choice is
up to the administrator. Once a volume is created, it can be resized as required. Also
the operating system can be booted from an LVM.
LVM does require the distribution to support it, however most modern distributions do support
LVM. If you are using Linux, it is worth the time looking into LVM.
This video as looked at some of the solutions available for storage for your computers.
In later videos I will have a look at how to implement some of these storage solutions.
I hope to see you in those videos and thanks for watching.