Hello,
I have been thinking about investing more into my storage solution recently.
Right now I have seagate 2tb compute drives in a fairly capable desktop. I was thinking about buying one more and doing a raidz1 with 3 drives. But while someone is saying it is cool, other says it is really dumb to do. I am really confused. I can get the third drive as soon as tomorrow to finally get some safety around my data however getting 4 with raidz2 might be a go for me as well for future upgrade. I am really all over the place since I have no experience building a nas. Should I go for 4 drives with raid-z2 or 3 drives with raidz1. And it is double the price for me right now with same storage space.
Here is another thing. A thread within this subreddit says "don't go more than 1tb for raidz1 not less than 3 more than 7". And then says "don't go less then 6 drives for a raidz2" which is needed in this case. How come it can be true? It means like no one can use 2tb disks for 4tb of pool. I want to buy 3 or 4 seagate reds around June, this statement makes this config obsolete as well. Everyone is saying something different.
PS: I am living in Turkey, Getting 4 drives of Seagate Ironwolfs is actually two times the minimum wage here. Please reply me gently :/
I recently am in the market for rebuilding my NAS, since I recently lost one of the drives in my Synology system. The Synology gave me enough warning to save all my files onto my main PC. Instead of replacing the drive, I wanted to learn and take a crack at building my own DIY NAS. I'm a bit of a noob when it comes to ZFS, and how many drives are needed for RaidZ1 and RaidZ2. I was looking at RaidZ2, but I seem to find conflicting information on how many drives are needed to enable it.
For Z2, this site says I only need 4 drives: https://calomel.org/zfs_raid_speed_capacity.html
While this site says I need 5 drives: https://raidcalculators.com/zfs-raidz-capacity.php
I've got 24 6TB drives to work with. Running the numbers on wintelguy's ZFS calculator resulted in an estimated 71.92TiB usable space (20% free space limit) with 3x 8-drive RAIDz2 VDEVs, or 67.17TiB with 4x 6-drive RAIDz2 VDEVs.
My question is what's the performance difference likely to look like? As I understand it, writes should be relatively evenly distributed to the vdevs just like multiple mirrored pair vdevs, and that should come with a performance increase with each additional vdev. The benefit of more drives in a given RAIDz2 vdev is theoretically higher sequential read/write, but I understand that benefit is only applicable for certain workloads whereas this will see a mixed workload backing VMs and containers as well as hosting colder data. I know with that many drives I could do separate pools optimized for the hot and cold data, but I'm throwing an Intel P3700 on for SLOG and a 1.6TB P4600 for L2ARC supporting the 128GB of RAM.
Has anyone done any real-world tests on this kind of thing? I know the obvious answer is: "Just try it both ways yourself" but I'm looking for the advice of the experts here, not some numbers on a synthetic benchmark that doesn't accurately represent my workload.
Hi - I cannot find a clear answer for this on the web. It seems there are no hard set rules, more like guidelines when it comes to raidz2 and the width of your vdev.
We have a ZFS system using raidz2 with 27 disks. This happened recently:
config:
NAME STATE READ WRITE CKSUM
zpool DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
sda REMOVED 0 0 0 (resilvering)
sdb DEGRADED 0 0 0 too many errors
sdc DEGRADED 0 0 0 too many errors
sdd DEGRADED 0 0 0 too many errors
sde DEGRADED 0 0 0 too many errors
sdf DEGRADED 0 0 0 too many errors
sdg DEGRADED 0 0 0 too many errors
sdh DEGRADED 0 0 0 too many errors
sdi DEGRADED 0 0 0 too many errors
sdj DEGRADED 0 0 0 too many errors
sdk DEGRADED 0 0 0 too many errors
sdl DEGRADED 0 0 0 too many errors
sdm DEGRADED 0 0 0 too many errors
sdn DEGRADED 0 0 0 too many errors
sdo DEGRADED 0 0 0 too many errors
sdp DEGRADED 0 0 0 too many errors
sdq DEGRADED 0 0 0 too many errors
sdr DEGRADED 0 0 0 too many errors
sds DEGRADED 0 0 0 too many errors
sdt DEGRADED 0 0 0 too many errors
sdu DEGRADED 0 0 0 too many errors
sdv DEGRADED 0 0 0 too many errors
sdw DEGRADED 0 0 0 too many errors
sdx DEGRADED 0 0 0 too many errors
sdz DEGRADED 0 0 0 too many errors
sdaa DEGRADED 0 0 0 too many errors
sdab ONLINE 0 0 9 (resilvering)
spares
sdal FAULTED corrupted data
errors: 20595 data errors, use '-v' for a listWe had two disks fail recently and resilvering has seemed to have crashed the entire pool. We are going to destroy the pool and rebuild.
From what I've read, I am of the opinion that we should have multiple raidz2 vdevs instead of a single giant one like this. That way when one goes down, it doesn't take the entire pool offline and/or make the server inoperable/unbearably slow when it is resilvering.
Am I correct in this thinking?
Is this single 27 disk vdev the reason resilvering never finished?
Don't multiple vdevs afford better write performance due to the way ZFS works?
I've read your vdev shouldn't be "too wide"--certainly this is a case of being too wide?
Wouldn't it be better if we had these disks in 3 vdevs e.g.
.
raidz2-0 sda sdb sdc etc raidz2-1 sdf sdg sdh etc raidz2-3 sdx sdy sdz etc
My coworker wants to maximize storage space, but I don't want this to happen again. If storage space is a concern, then we need to buy more storage.
We used to have this setup in a mirror, which worked fantastically. But, obviously it halved our capacity. e.g.
mirror0 sda sdb mirror1 sdc sdd mirror2 sde sdf mirror3 sdg sdh mirror4 sdi sdj etc...
My current pool has two disk in mirror (same brand, same age).
So i thought about buying two and adding them as new vdev.
But then i was think it actually less secure than raid-z2
x-failure
o-working
(x,x) (o,o) <- if both disk are basically the same odds could be higher for failures like that
(o,o) (x,x)
(o,x) (o,x) <-this fine
Now raid-z2
(o,o,x,x), (x,x,o,o)<-this is fine
So my another thought was to just replace drive in mirror (with new one diffrent brand).
I would always have (new,old) (new,old) so even if two die at the same time it would be fine.
(Adding spare also would fix this)
Ps. Ofc I have external backup
Why I didn't worry about this before. Well i thought if vdev0 dies then i have some data left on vdev2.
Which is wrong.
I hope its not stupid question. I checked google and asked chatgpt but I wasn't fully convinced
For a 2nd NAS/backup machine (Not the main NAS, but the 2nd tier in the 3-2-1 backup plan) which I want to set up, I currently have 3 16TB disks. It's all I can afford right now. The chassis can support up to 12 drives total. I read somewhere that for drives >1TB you want more than one parity disk so that a disk error during resilvering will not kill the volume. For now, the 16 TB of space on a single drive is enough to accommodate all my backup needs.
If I set up the drives as RAIDZ2 it will be secure, but initially a bit wasteful and when you have to rebalance the zpool if you add drives it'll cost some time. I'm okay with those aspects of the setup. I'm a bit unsure if there are any other caveats I need to take into account. Anything I missed here?
Raid 10, RaidZ1, or RaidZ2?
I'm finding inconsistent info about this online.
I'm currently planning to setup a NAS with truenas, it's gonna consist of 4x 16TB HDDs in the end, but while I save the money for that, I want to grab 3 128GB SATA SSDs just to get the thing up and running (4 if I can't expand the array with more disks later). Can I expand the ZFS raidz2 pool with more disks or is it set in stone to the number of disks used to create it? And can I replace the SSDs one at a time with HDD's or is that gonna be a problem (e.g. is the differing latencies between HDDs and SSDs gonna cause any weird issues?)? If it's a problem then I'm gonna have to buy an external card for more SATA ports.
EDIT: Whoops forgot to finish the title haha, was just about to ask about replacing the SSDs with HDDs.
My use case is storage in a 8xbay back-up homelab server.
I turn it on when my local FS is full to empty it, so high speed is not necessary.
6 mixed SAS/SATA drives (HGST He8 used in a datacenter) have ~45k power-on hours (with 40 power-cycles) and the rest 2 (shucked, seem like WD Helium filled) are in the 10k region with 600 power cycles. No failed long SMART tests so far.
This is my list of pros/cons, am I missing anything?
I think it's prudent to not consider 2-way mirrors (4x 4 mirrors) because the drives are not new, right?
However, both my top two options are RaidZ which are more stressful to the disks, so RaidZ might cover me in a position to which I would never have been brought, had I used mirrors (!).
| 1 vdev of 8-drive RaidZ-3: | 2 vdevs of 4-drive RaidZ-2: |
|---|---|
| Any 3 drives can fail | Any 2 can fail and potentially more if they are in different vdevs |
| ~35.3TB usable storage | ~30TB usable storage |
| Expands with more money | Expands with less money (replacing drives in 1 vdev only) |
| Puts more stress to the drives | Puts a little bit less stress to the drives. |
| Worse performance, but I don't care | A bit better performance, but I don't care |
Thanks!
Whatever scheme you use, have a backup, use snapshots, and scrub regularly. RAIDz3 gives the best probability of self-healing during a scrub since there are 3 parity bits and the data, making a fault likely to be repaired correctly. RAIDz2 has 2 parity bits and the data. Still a strong choice. However, without a backup and you experience catastrophic failure, or have data corruption happen at the right time during certain events, then your risk of data loss increases.
With a good strategy catered to your needs and resources, you can enjoy data integrity without a single point of failure. There are risks to keeping a machine running and there are risks to turning off and turning on a machine regularly. Multiple backups can mitigate risks from either scenario. If you do not have a high IO use case then maybe you don't need RAIDz3.
This doesn't require so much thought.
Use a single 8-drive RAIDZ2.
I am new to using ZFS and need some advice on choosing how large my VDEV or multiple VDEVS should be.
I want to host VM's and store large 4k linux ISOs in the pool.
I will be using 12 TB WD reds (shucked) around 6 - 9 disks depending on what is the best practice.
I want a balance between space and performance but prefer more space. I also want to use RaidZ2 or RaidZ1 (multiple VDEVs?)
Please let me know what you guys recommend.
Thanks in advance!
*MISE À JOUR*
J'ai fait le truc ! J'ai obtenu un HBA et construit un DAS et éliminé la folie des disques durs externes USB que je faisais avant.
Points forts :
- pool zfs avec 12 HDD au total dans 3 vdevs raidz2
- 4 x 14 To
- 4 x 16 To
- 4 x 20 To
état du zpool :
```
configuration :
NOM ÉTAT LIRE ÉCRIRE CKSUM
fortress EN LIGNE 0 0 0
raidz2-0 EN LIGNE 0 0 0
ata-ST14000NM0121_ZKL2WCVA EN LIGNE 0 0 0
ata-ST14000NM0121_ZKL2W1FR EN LIGNE 0 0 0
ata-ST14000NM0121_ZKL2VNHT EN LIGNE 0 0 0
ata-ST14000NM0121_ZKL2WBX5 EN LIGNE 0 0 0
raidz2-1 EN LIGNE 0 0 0
ata-ST16000NM000J-2TW103_ZR590DM6 EN LIGNE 0 0 0
ata-ST16000NM000J-2TW103_ZR5E3E78 EN LIGNE 0 0 0
ata-ST16000NM000J-2TW103_ZR59PR3V EN LIGNE 0 0 0
ata-ST16000NM000J-2TW103_ZR60MRPY EN LIGNE 0 0 0
raidz2-2 EN LIGNE 0 0 0
ata-ST20000DM001-3Y3103_ZXA10ZFR EN LIGNE 0 0 0
ata-ST20000DM001-3Y3103_ZXA0ZTPR EN LIGNE 0 0 0
ata-ST20000DM001-3Y3103_ZXA0KGVX EN LIGNE 0 0 0
ata-ST20000DM001-3Y3103_ZXA106BC EN LIGNE 0 0 0
erreurs : Pas d'erreurs de données connues
```
lsblk -o NOM,ÉTIQUETTE,TAILLE
```
NOM ÉTIQUETTE TAILLE
sda 14,6 To
├sda1 fortress 14,6 To
└─sda9 8 Mo
sdb 14,6 To
├─sdb1 fortress 14,6 To
└─sdb9 8 Mo
sdc 14,6 To
├─sdc1 fortress 14,6 To
└─sdc9 8 Mo
sdd 12,7 To
├─sdd1 fortress 12,7 To
└─sdd9 8 Mo
sde 14,6 To
├─sde1 fortress 14,6 To
└─sde9 8 Mo
sdf 12,7 To
├─sdf1 fortress 12,7 To
└─sdf9 8 Mo
sdg 18,2 To
├─sdg1 fortress 18,2 To
└─sdg9 8 Mo
sdh 18,2 To
├─sdh1 fortress 18,2 To
└─sdh9 8 Mo
sdi 12,7 To
├─sdi1 fortress 12,7 To
└─sdi9 8 Mo
sdj 12,7 To
├─sdj1 fortress 12,7 To
└─sdj9 8 Mo
sdk 18,2 To
├─sdk1 fortress 18,2 To
└─sdk9 8 Mo
sdl 18,2 To
├─sdl1 fortress 18,2 To
└─sdl9 8 Mo
nvme0n1 3,6 To
```
ZFS est trop génial et cette configuration déchire.
Si quelqu'un est intéressé, voici la liste des pièces que j'ai achetées pour réaliser cela :
Hôte :
- HBA PCIe : https://www.amazon.com/dp/B076PQP9F9 (x1)
DAS :
- Châssis de montage en rack à profondeur courte https://www.amazon.com/dp/B0FZ2Q9SKX (x1)
- Alimentation https://www.amazon.com/dp/B0FQ6J4FSX (x1)
- Interrupteur d'alimentation PSU : https://www.amazon.com/dp/B01MSY4966 (x1)
- Contrôleur de ventilateur : https://www.amazon.com/dp/B0FMDKYCKH (x1)
- Ports SAS PCIe pour châssis DAS https://www.amazon.com/dp/B01MFHET83 (x2)
- Câbles divers
- https://www.amazon.com/dp/B0086OGN9E (x1)
- https://www.amazon.com/dp/B00VJ9V8NY (x1)
- https://www.amazon.com/dp/B0868PMBVP (x3)
- https://www.amazon.com/dp/B01BW1U2L2 (x3)
- Ventilateurs
- https://www.amazon.com/dp/B00KF7MVI2 (x2)
- https://www.amazon.com/dp/B07CG2PGY6 (x2)
- https://www.amazon.com/dp/B09RWTCXRR (x1) - sur celui-ci, j'ai attaché un troisième ventilateur au support de montage du HDD central pour un refroidissement supplémentaire de l'ensemble, d'où le ventilateur slim
I'm building a NAS for the first time and currently I dont have the luxury of going for a 6x4TB drive raidz2 so I'm planning on going with 4 drives for the time being. Is there anything I should be concerned about when using only 4 drives for raidz2? Also not sure about vdev stuff. Would it be that 4 drives would be 2 vdevs one drive each and 2 drives each for 6x4TB config?
I have a pool consisting of a single 6-wide raidz2 vdev. The disks are ST16000NM001G HDDs. When sequentially reading a large file, only 4 out of the 6 disks are used to read the data.
capacity operations bandwidth
pool alloc free read write read write
--------------------------- ----- ----- ----- ----- ----- -----
umbreon 623G 86.7T 1.13K 0 1015M 0
raidz2 623G 86.7T 1.13K 0 1015M 0
ata-ST16000NM001G-1 - - 0 0 0 0
ata-ST16000NM001G-2 - - 0 0 0 0
ata-ST16000NM001G-3 - - 335 0 258M 0
ata-ST16000NM001G-4 - - 289 0 258M 0
ata-ST16000NM001G-5 - - 258 0 245M 0
ata-ST16000NM001G-6 - - 270 0 254M 0Throughout the read operation, zfs periodically changes which 4 disks it reads from.
capacity operations bandwidth
pool alloc free read write read write
--------------------------- ----- ----- ----- ----- ----- -----
umbreon 623G 86.7T 1.07K 0 948M 0
raidz2 623G 86.7T 1.07K 0 948M 0
ata-ST16000NM001G-1 - - 0 0 0 0
ata-ST16000NM001G-2 - - 272 0 239M 0
ata-ST16000NM001G-3 - - 321 0 235M 0
ata-ST16000NM001G-4 - - 253 0 238M 0
ata-ST16000NM001G-5 - - 254 0 238M 0
ata-ST16000NM001G-6 - - 0 0 0 0
--------------------------- ----- ----- ----- ----- ----- -----However, at any given time, only 4 disks are being read from. I suspect that only the disks containing data for the currently read block are being read. It seems that the disks containing the parity data are not being read. This does not seem to be the case when using raidz instead of raidz2.
capacity operations bandwidth
pool alloc free read write read write
--------------------------- ----- ----- ----- ----- ----- -----
umbreon 20.0G 87.3T 2.02K 0 1.17G 0
raidz1 20.0G 87.3T 2.02K 0 1.17G 0
ata-ST16000NM001G-1 - - 327 0 202M 0
ata-ST16000NM001G-2 - - 325 0 197M 0
ata-ST16000NM001G-3 - - 347 0 199M 0
ata-ST16000NM001G-4 - - 355 0 198M 0
ata-ST16000NM001G-5 - - 343 0 199M 0
ata-ST16000NM001G-6 - - 367 0 203M 0
--------------------------- ----- ----- ----- ----- ----- -----Here, all 6 disks are being read from simultaneously, resulting in significantly higher transfer speeds (1.2 GB/s instead of 1 GB/s).
What is going on here? Why is raidz2 not using the hardware to its full capability?
I'd like to know what this is all about too, since all disks should be serving reads even with parity information.
At first I was going to say that maybe this utility is maybe only reporting reads that contribute to data and ignores parity, but RaidZ1 showing all activity throws that out the window.
I've noticed this on my setup as well.
Hello, I originally planned for 4x4TB in raidz2, but I noticed that per TB cost, 8TB is a lot less expensive where I am at. So I can afford 3x8TB instead. 8TB of available storage covers all my current storage needs. Now comes the issue of the pool config. The pool will only be used for long term storage and weekly backup. I am planning to have 2 nvme in mirror for day to day nas access, weekly and long term backup are direct to the hdd. I wanted to have a sanity check with more experience users. I want to keep 2 parity disks, should I go for 3 way mirrors or a raidz2? My current mobo have 4x3.5 spaces in total and I am maxed out (2x2.5ssd+2xnvme+4 hdd). The pros of mirroring is the combined hdd output. Pros of raidz2 would be the expandability further down the line, I can add an extra 8TB drive to the pool and get 16TB keeping 2 parities while that migration will be a little bit more troublesome if I had three way mirrors to begin with, right? Thanks for your input.
I'm moving off of a Synology system, and am intending to use a ZFS array for my primary. I've been reading a bit about ZFS in an effort to to understand how best to set up my system. I feel that I understand the RaidZ levels, but the vdevs are eluding me a bit. Here's what my understanding is:
RaidZ levels influence how much parity data there is. Raidz1 calculates and stores parity data across the array such that one drive could fail or be removed and the array could still be rebuilt; Raidz2 stores additional parity data such that two drives could be lost and the array could still be rebuilt; and Raidz3 stores even more parity data, such that three drives could be taken out of the array at once, and the array could still be rebuilt. This has less of an impact on performance and more of an impact on how much space you want to lose to parity data.
vdevs have been explained as a clustering of physical disks to make virtual disks. This is where I have a harder time visualizing its impact on the data, though. With a standard array, data is striped across all of the disks. While there is a performance benefit to this (because drives are all reading or writing at the same time), the total performance is also limited to the slowest device in the array. vdevs offer a performance benefit in that an array can split up operations between vdevs; if one vdev is delayed while writing, the array can still be performing operations on another vdev. This all implies to me that the array stripes data across disks within a vdev; all of the vdevs are pooled such that the user will still see one volume. The entire array is still striped, but the striping is clustered based on vdevs, and will not cross disks in different vdevs.
This would also make sense when we consider the intersection of vdevs and Raidz levels. I have ten 10 TB hard drives and initially made a Raidz2 with one vdev; the system recognized it as a roughly 90 TB volume, of which 70-something TB was available to me. I later redid the array to be Raidz2 with two vdevs each consisting of five 10 TB disks. The system recognized the same volume size, but the space available to me was 59 TB. The explanation for why space is lost with two vdevs compared with one, despite keeping the same Raidz level, has to do with how vdevs handle the data and parity: because it's Raidz2, I can lose two drives from each vdev and still be able to rebuild the array. Each vdev is concerned with its own parity, and presumably does not store parity data for other vdevs; this is also why you end up using more space for parity, as Raidz2 dictates that each vdev be able to accommodate the loss of two drives, independently.
However, I've read others claiming that data is still striped across all disks in the pool no matter how many vdevs are involved, which makes me question the last two paragraphs that I wrote. This is where I'd like some clarification.
It also leads to a question of how a home user should utilize ZFS. I've read the opinions that a vdev should consist of anywhere from 3-6 disks, and no more than ten. Some of this has to do with data security, and a lot of it has to do with performance. A lot of this advice is from years ago, which also assumed that an array could not be expanded once it was made. But as of about one year ago, we can now expand ZFS RAID pools. A vdev can be expanded by one disk at a time, but it sounds like a pool should be expanded by one vdev at a time. Adding on a single disk at a time is something a home user can do; adding in 3-5 disks at a time (what ever the vdev numbers of devices, or "vdev width" is) to add in another vdev into the pool is easy for a corporation, but a bit more cumbersome for a home user. So it seems optimal that a company would probably want many vdevs consisting of 3-6 disks each, at a Raidz1 level. For a home user who is more interested in guarding against losing everything due to hardware failure but otherwise largely treating the array for archival purposes and not needing extremely high performance, it seems like limiting to a single vdev at a Raidz2 or even Raidz3 level would be more optimal.
Am I thinking about all of this correctly?
Long story short, I created a ZFS pool using RAIDZ instead of RAIDZ2 so while I'm destroying/rebuilding the array I'm thinking about adding two disks. (6 -> 8, 16 TB drives)
Is it OK to use 8 disks for RAIDZ2? There are old recommendations to use 9 disks but I've also read several newer recommendations that say the logic is outdated. The array I'm building is for storage (movies, large files, etc) and I do not need performance.
Also, is it recommended to use 1MB record size for large files (ie. movies) ?
Hi all!
Complete and utter ZFS noob here - I've been meaning to get into the NAS space purely for the data protections it offers over regular direct attach. I've got an old Mac Pro 5,1 (ears cut off, placed into my server rack) that I'm going to turn into a NAS - I'm thinking it would be appropriate to go with TrueNAS Scale.
I've read up as much as I can on ZFS - however, due to a bit of anxiousness/apprehension, I'm still not sure what configuration to go with. I'm storing about 1.6tb of total data, and performance and data integrity/safety is the most important thing.
Any suggestions/wiseness/thoughts are very much appreciated. Keep up the awesome work!! :)
Hi,
Been running ZFS happily for a while. I have 15x16tb drives, split into 3 RaidZ2 VDevs - because raid expansion wasn't available.
Now that expansion is a thing, I feel like I'm wasting space.
There are currently about 70T free out of 148T.
I don't have the resources/space to really buy/plug in new drives.
I would like to switch from my current layout
sudo zpool iostat -v
capacity operations bandwidth
pool alloc free read write read write
---------- ----- ----- ----- ----- ----- -----
data 148T 70.3T 95 105 57.0M 5.36M
raidz2-0 51.2T 21.5T 33 32 19.8M 1.64M
sda - - 6 6 3.97M 335K
sdb - - 6 6 3.97M 335K
sdc - - 6 6 3.97M 335K
sdd - - 6 6 3.97M 335K
sde - - 6 6 3.97M 335K
raidz2-1 50.2T 22.5T 32 35 19.4M 1.77M
sdf - - 6 7 3.89M 363K
sdg - - 6 7 3.89M 363K
sdh - - 6 7 3.89M 363K
sdj - - 6 7 3.89M 363K
sdi - - 6 7 3.89M 363K
raidz2-2 46.5T 26.3T 29 37 17.7M 1.95M
sdk - - 5 7 3.55M 399K
sdm - - 5 7 3.55M 399K
sdl - - 5 7 3.55M 399K
sdo - - 5 7 3.55M 399K
sdn - - 5 7 3.55M 399K
cache - - - - - -
sdq 1.79T 28.4G 1 2 1.56M 1.77M
sdr 1.83T 29.6G 1 2 1.56M 1.77M
---------- ----- ----- ----- ----- ----- -----
To one 15 drive raidZ3.
Best case scenario is that this can all be done live, on the same pool, without downtime.
I've been going down the rabbit hole on this, so I figured I would give up and ask the experts.
Is this possible/reasonable in any way?
Hi everyone, I was hoping to get some help planning out the future for my OpenZFS pools and setup on my home NAS if anyone would be interested. I'm currently using OpenZFS 2.0 on Ubuntu Focal on some old Supermicro hardware. This box is running everything from Nextcloud to Plex to MariaDB and more and acts as my "single mountpoint for everything", so to speak.
Unfortunately, I'm starting to run out of space on my main "nas" ZPOOL and debating how best to expand. I know VDEV expansion is not really a thing on OpenZFS so my only option is to either replace drives one by one until I can get a larger capacity VDEV or simply add more VDEVs or a new pool. I would need another HBA card, but I currently have 6 open 3.5" slots to play with in the box still.
I currently have this layed out as such:
| ZPOOL or MD Device | VDEV or topology | Drive | PCIe Slot | SATA Port | Slot/Port Bandwidth | Notes |
|---|---|---|---|---|---|---|
| "/dev/md0" | mdadm mirror | 240GB 2.5" SSD | n/a | 0 | 6Gbps (SATA3) | Root/Boot Drive Mirror |
| "/dev/md0" | mdadm mirror | 240GB 2.5" SSD | n/a | 1 | 6Gbps (SATA3) | - |
| "rusty" | mirror-0 | 1TB 2.5" HDD | n/a | 2 | 3Gbps (SATA2) | Not really any purpose anymore |
| "rusty" | mirror-0 | 1TB 2.5" HDD | n/a | 3 | 3Gbps (SATA2) | - |
| "fastnas" | mirror-0 | 240GB 2.5" SSD | n/a | 4 | 3Gbps (SATA2) | TFTP/PXEboot/NFSroot for a cluster of Raspberry Pis, OS images, lots of small, fast I/O |
| "fastnas" | mirror-0 | 240GB 2.5" SSD | n/a | 5 | 3Gbps (SATA2) | - |
| LSI SAS9211-4i HBA | - | - | 0 | - | 16Gbps (PCIe 2.0x4) | Flashed in IT mode, presents 4xSAS2/SATA3 ports to the system |
| "nas" | raidz1-0 | 4TB 3.5" HDD | 0 | 6.0 | 6Gbps max / 4Gbps typical (SAS2 / SATA3) | "Everything", mostly Plex/Nextcloud, but other containers store data on here too |
| "nas" | raidz1-0 | 4TB 3.5" HDD | 0 | 6.1 | 6Gbps max / 4Gbps typical (SAS2 / SATA3) | - |
| "nas" | raidz1-0 | 4TB 3.5" HDD | 0 | 6.2 | 6Gbps max / 4Gbps typical (SAS2 / SATA3) | - |
| "nas" | raidz1-0 | 4TB 3.5" HDD | 0 | 6.3 | 6Gbps max / 4Gbps typical (SAS2 / SATA3) | - |
| - | - | - | 1 | - | 16Gbps (PCIe 2.0x4) | |
| - | - | - | 2 | - | 63 Gbps (PCIe 3.0x8) | |
| - | - | - | 3 | - | 63 Gbps (PCIe 3.0x8) |
I was debating primarily between:
-
simply adding RAIDZ1 VDEVs to "nas" which would make the overall ZPOOL topology 4x4TB RAIDZ1 + 3-drive RAIDZ1 + 3-drive RAIDZ1
-
creating a whole new 6-drive RAIDZ2 VDEV and making a new "nas" pool, migrating data over to it and using the original drives to make a second 4-drive RAIDZ2 VDEV for a total of 4x4TB RAIDZ2 + 6-drive RAIDZ2
Option 1 has more capacity (since the original VDEV stays as a RAIDZ1), but has more failure risk (up to 3 drives can fail across 3 VDEVs). I also have the luxury of adding drives 3 at a time, versus having to buy all 6 drives at once
Option 2 has less capacity (since the original VDEV gets remapped as a RAIDZ2), but has less failure risk (up to 4 drives can fail across 2 VDEVs). I need to buy all 6 drives at the same time.
Any thoughts?
TL;DR: Do I convert my ZPOOL from 1x 4-drive RAIDZ1 to: 1x 4-drive RAIDZ1 + 2x 3-drive RAIDZ1s (12TB + 2/3 x new drive size) or do I blow it all away and create a 1x 4-drive RAIDZ2 + 1x 6-drive RAIDZ2 (8TB + 2/3 x new drive size)
I have the following conundrum.
I have 18x 12TB disks and (maybe) 12x 20TB disks.
I've come up with the following options;
-
A pool consisting of two vdevs. Each vdev is 12 disks with raidz2, so I get 320 TB of raw capacity.
-
A pool of 4 vdevs. Two of the vdevs are 6x 12TB and the other are 6x 20TB. Each vdev is raidz1. Same overall capacity as option 1 - 320 TB.
-
A pool of 4 vdevs, as previous, but only one vdev is 20 TB disks. Capacity is 280 GB
-
A pool of 3 vdevs, all 12TB disks. Capacity is 180 GB
Which is preferable, and why?
(I realise the larger capacity disks are probably more desireable, but I may not have them so I'm looking for a more architecture based answer, rather than mooooaaarr disks!)
Thanks for your collective wisdom!