In a previous article series we have covered the steps on how to install and configure NAS4Free. In particular, I’m using NAS4Free installed on VMware to support the storage requirements of a SQL Clustered instance. As the environment is growing I need to expand the storage used by a NAS4Free Pool which is hosting one of the shared drives and in particular the one hosting the SQL Database files.
The process itself is very easy and straightforward. But it is also important to make some considerations like the following:
- Adding a spare disk to an existing NAS4Free Pool will increase the Pool capacity
- The new capacity will not be shown in home settings depending on the initial disks configuration in the NAS4Free Pool
- In this case the NAS4Free Pool is consisting of a single disk (configured in stripe mode). Since no RAID configuration is part of this Pool the new capacity will not be reflected when adding a spare disk
- It is still possible to update the new logical capacity
- As a best practice a NAS4Free Pool should be configured with multiple disks and with RAID configuration
Now considering this home lab NAS4Free environment is sitting on VMware and using a single datastore it makes no improvement to have a RAID consisting of multiple NAS4Free disks when these are effectively the same VMware “vmdk” sitting on the same datastore.
For this reason in the past and also based on my home lab requirements I created NAS4Free Pool with single disk instead. Now I’m in a situation where literally the space for one of the Pools is not adequate. The purpose of this article is to show the steps on how to expand NAS4Free Pool storage. My home lab is based on VMware vSphere environment and of course the same steps apply for physical deployments of NAS4Free.
As a last bit before proceeding with the rest of the article: I’m going to expand the storage for the drive where the SQL data files are sitting. This is not supported and in fact it is a very last minute desperate try to perform a Database Backup before experiencing db corruption. Although I was able to keep all DB files in one “disk” effectively this resulted in corrupting the database and put this one in “Suspect mode”. Nevertheless, when trying to recover such database I was getting errors suggesting an I/O issue probably pointing to a part of the disk that was missing..
Luckily I had my SQL Backup to recover from so it was a good exercise to go through. In addition, the opportunity to visit the steps on how to increase the storage for a NAS4Free Pool. Hopefully something helpful to understand how to complete these steps. Of course with regard to SQL it is always a good practice to do the SQL sizing before any deployment! 😉
How to expand NAS4Free Pool Storage on VMware
The process the expand the NAS4Free Pool is very easy. First of all it is always a good idea to check the main dashboard with high level information on the usage for these Storage Pools. As per screenshot below in my home lab a couple of them are going out of space soon. The NAS4Free Pool for SQL Backups and the one for SQL Data. We’ll cover the latter first in this case.
Since this is a VMware virtual machine we can add virtual drives. As per usual let’s edit the VM settings and add another virtual disk. I would recommend placing the disk in the same VM folder location. We can perform this operation also when the NAS4Fre virtual machine is running.
So the final configuration will look something similar to this one.
Now let’s go to the NAS4Free Web console and navigate to Disks > Management > HDD Management and hit on the “Rescan Busses” button. The operation is very quick and will take a few seconds to acknowledge new hardware. Please note that new hard drive will not appear here as not configured of any NAS4Free Pool.
Let’s move to the Diagnostic > Information > Disks menu and we’ll find a new disk (da6) ready to use.
Now as per previous information at the beginning of this article we’ll be able to add a spare disk to the NAS4Free Pool. All we need to do is to navigate to the Disks > ZFS > Pools > Tools > Step 1 and choose the option as per screenshot below:
“Add a spare device to a Pool”
In the step 2 we can select the options to “force” the operation or simply run a “test”.
This is where we decide which NAS4Free Pool will get the spare disk.
In the step 3 we can now select the spare device. As per this screenshot this is “da6”.
And finally we have a summary showing the main information and the status of the operation.
Since this NAS4Free Pool serves as an iSCSI Target the next step is to update the size of the “Extent” to reflect the new value. I would suggest to stop the iSCSI service first. We can do this from the Services > iSCSI Target page and uncheck the “enable” option and save the new setting.
At this point we can navigate to the Services > iSCSI Target > Target page to review the list of Targets and Extents.
In this example we’ll configure the new value for the SQL Data Extent with a value expressed in GiB.
Let’s review the changes and save the new configuration. At this point we can restart the iSCSI service.
It’s now time to go back to the active SQL node who is currently the owner of the clustered SQL role. The SQL Data disk still shows the old value. To change this one let’s go to Disk Management utility.
From the Disk Management console we can now see some additional space as unallocated. Let’s extend the volume.
With a right click on the Disk we start the wizard to extend the disk online without powering off the SQL server machine.
The wizard will show all the available space we can extend to. Let’s accept the value and continue.
The wizard to extend disk in Windows is now complete.
If we come back to the Windows Explorer we can now see the new capacity is updated.
This concludes the article on how to expand NAS4Free Pool storage. In a separate article we’ll also review the steps on how to remove spare disks from a NAS4Free Pool.