Hi, I am new to TrueNAS and ZFS. My current setup is a six 4TB HDDs in RAIDZ1 and this is in one Storage Pool. I have two additional disk slots in my server that I’d like to use to expand the Storage Pool and make the increase transparent to those accessing the current Storage Pool and the one share that I have made. My question is::
I have two unused 4TB SSDs that, if allowed by TrueNAS, I’d like to extend the current RAIDZ1 to an eight disk RAID. Yes, I know that mixing drive types in not really a good use of the SSDs but my question is will TrueNAS allow this?
If incorporating the SSDs into the current RAID isn’t viable. what about putting the two SSDs into another vdev for the Storage Pool to use? If I did this, would adding anothe rvdev to the Storage Pool increase the size of the current share that I have or would another share have to be built?
I have three or four odd-sized HDDs (10TB, 14TB and 18TB) lying around that I might try and do something with in the remaining open slots in the server.
Folks, I may have misunderstood something or am doing something wrong when it comes to trying to combine both HDDs and SDDs into a single VDEV RAID.
I am using 25.10.3.1 Goldeneye. As this is a test environment, I removed the storage pool completely and started from the ground up. I installed one of the 4TB (3.64TB useable) SSDs and I can see that I now have seven 3.64TiB disks available. When I go to Storage Dashboard and begin to create a pool, in the Pool Creation Wizard, I see in the Unassigned Disks window HDDs 3.64 TiB x 6 and an SSD 3.64 TiB x1. When I go to the Data portion of the Creation Wizard, I select the Layout as, as this test, a RAIDZ1, I select the Disk Size as 3.64 and I see two entries here, 3.64 TiB (HDD) and 3.64 TiB (SDD). I was hoping that there would be no differentiation but there is. If I select the HDD, I can see the Width of only 3, 4, 5, or 6. If I select the SDD, there are no Width options. I tried Manual Disk selection but can’t find any way to combine HDDs and SDDs here either. Oddly, even when adding on HDDs manually, I get the message in red, “At least 3 disk(s) are required for Raidz1 vdevs but even after selecting three or mor disks the “Save Selection” radio button in never available.
Sounds like I may be doing something wrong but I have no idea what. I’ll continue to play around to see if I can actually combine HDDs and SDDs into a single pool or raid.
(EDIT): I think I figured it out. I looked at the configuration , saw the 6 HDDs and was able to drag the SSD into the pool and it accepted it!
NugentS, just so that I understand, even in the normal course of events and the SSD fails (or is intentionally removed, and I replace it with a 4TB HDD, the vdev will not rebuild itself or otherwise be allowed to be restored?
As you have a RAIDZn vdev - you are unable to remove any vdev from the pool. You can replace a disk with one that is the same size or larger - but you cannot remove a whole vdev
Raidz1 will allow removal of 1 disk from the vdev without data loss. Go to Storage>View Vdevs, expand the vdev, select the drive you wish to remove, Offline, Replace, & go through the prompts. Once complete, you can power down and swap the drive with an equal or larger drive (or hot swap if system allows). Once the new disk is installed, you can add it to the vdev and have it resilver.
Pool = vdev or multiple vdevs (think of vdevs as virtual disk)
Any vdev fails = pool failure, data loss of entire pool
vdevs = disk or multiple disks
multiple disk with raidzN allows number of failed disk tolerance to N
vdev storage will reflect number of disk (wide) -N (number of disk for fault tolerance)
vdev will perform at the speed of the slowest disk, you’ll get total disk performance, just queue will slow at slowest disk
multiple disk in 1 vdev = sequential read/writes
multiple vdev = parrallel read/writes (high iops, speed is independent of each vdev)
Examples
Pool#1 3x disk
Raidz1, 1 vdev, 1 disk tolerance, same sized disks
Pool#2 3x disk
Striped 3x vdev (each disk is a vdev), 0 disk tolerance (pool loss if one disk fails), mixed disks types/capacity, max storage of all disks
An alternative to apply your ssds to an existing pool would be a svdev (Special Vdev). This will be a mixed pool of 2 types of vdevs, a standard vdev and svdev. Svdevs will store all meta data of the pool (the mapping of all the data) while the vdev will hold all the raw data.
The recommended based on your setup would be a mirrored ssd svdev with a raidz1 or raidz2 hdd vdev. The hybrid configuration would allow faster transversals of files and folders through the ssds while benefitting from the storage capacities of traditional hdds.
I do not recall if Truenas 25 supports svdevs, but Truenas 26 has it.
They’ve been around for a while–25 definitely supports them, and I think 24 does too. But the caution is that svdevs are still vdevs, and just as critical to the integrity of the pool as any other vdev.
Correct. It’s just another vdev in the pool, so if svdev goes down, the entire pool is lost. By default only meta data is copied to the svdev, so writes are minimal. SSD are typically write failure prone; having a mirror svdev minimizes the risk. You can set the write parameters to include small files/folders to the ssds to make better use fo the space but plan around your willingness for disk failures.
I wouldnt suggest any sort of special vdev setup to new users. Because more often than not, temporary or “trial” setups end up beeing transformed into systems with important data on it. Family pictures etc.
Therefore I suggest using a virtual Truenas, even in Virtualbox for these kind of shenanigans.
The chances of special vdevs going down is pretty small & the benefits are substantial. As long as large block writes aren’t assigned to the special vdev, everything should be pretty solid. You should always use high endurance ssds if possible, but as stated, the default doesn’t write much to svdevs. It’s early in testing which I think is the best time to fool around with configuration as much as possible.
After you have a handle on configuration, you can then plan around data integrity and redundancy.