Z0eff
Dabbler
- Joined
- Oct 21, 2023
- Messages
- 17
Hello! First post. 
Basically I'd love to get a sanity check on everything. I don't want to make a mistake and be unable to correct it later.
Some quick background:
After having used a Synology DS410 and DS1812+ for my personal NAS needs for over a decade I crave something faster and upgradable. When looking at my options back then I decided against FreeNAS because I didn't trust myself to not mess up so a Synology NAS with software already loaded was perfect. Having added/replaced many drives over the years I've gone from 4x3TB RAID5 to 14x4TB RAID6 all spinning rust and it's almost full again. Backups are sporadic and incomplete with me picking and choosing what is important enough to have on both Synology NAS boxes, write on a Bluray disc, save on cloud storage etc.
It's almost always powered off simply because the noise and power requirements are annoying which means I don't end up using it that often. When I want to grab something stored on it I often put it on the backburner because I can't be arsed to turn it on and wait 5 minutes because I'll be doing something else by that time. Also, rebuilding the array after a drive fails takes literally 5 days and because it's in my bedroom/office having 14 drives constantly spinning is not only noisy but also uses a ton of electricity. After having to do this yet again last month I've decided to start over and while I'm at it do this properly withFreeNAS TrueNAS after having since learned a lot from all the community resources (Thank you for writing them!).
My use case:
Long term personal storage for mostly large files but can vary a lot in size. Very light workload. Write once read many. 1 or 2 users. Needs to be quiet. Accessed via SMB which apparently is single threaded and likes having high IPC for fast transfers so I went for an Alder Lake chip. My LAN setup uses a 2.5GbE switch with Cat6 cabling to 2 PCs with 2.5GbE. I want to use this for at least a decade so reliability is important but also want plenty of performance and upgrade room for the future. HomeAssistant might be moved from a Pi4 to this if that app ends up being stable enough. Jellyfin looks interesting but probably not needed. Might end up using the Minecraft server app for a community I'm in. Would give it a dedicated SSD just because that many random read/writes on a Zpool sounds like a very bad time.
Wrong motherboard?
The biggest question burning on my mind is the motherboard choice. I realize Supermicro is the preferred choice around here but I couldn't find a suitable Supermicro board that ticked all the boxes so went for the above mentioned ASUS board. However after having ordered the parts I found out I was looking at the wrong Supermicro board and that the X13SAE-F has essentially the same features for the same price.
The few differences seem very minor: The ASUS board has the above mentioned Kingston RAM on the QVL list while the Supermicro board only has rebranded Supermicro RAM. But I'm guessing 3rd party RAM will work just fine. Supermicro doesn't seem to allow for BIOS flashing without a CPU but I'm guessing the i5 13500 will work anyway. Supermicro has IPMI built-in while the ASUS board requires an add-in card but I'm not sure if I really need IPMI in the first place. It'll always be a few meters away from me and I can connect a display to it if something happens. ASUS has a PCIe3x1 slot while Supermicro has a legacy PCI slot. PCIe is much more modern and I don't plan to use any legacy PCI cards. But neither would probably see any use from me.
The real difference here is the Supermicro brand. I realize iX Systems is going to be focused on enterprise gear so I'm worried this ASUS board might cause some compatibility issue years down the road even if it works just fine right now. However the underlying hardware is effectively identical on both boards so am I just being paranoid? Both are marketed towards Workstation use. The ASUS one does have marketing material about being "Optimized for 24/7 operation" so at least the intent is there but this can just as easily be marketing BS. Should I return the ASUS board and get the Supermicro board?
Upgrade paths
After learning that creating a proper ZFS setup is very important and very difficult to change later I've decided to make my future upgrade path very straight forward. My plan is to have the 8x8TB SSD's in a single RAIDz2 vdev to prioritize usable storage space over IOPS since SSDs have plenty of IOPS anyway. This allows me to add a second identical 8x8TB RAIDz2 vdev in the remaining 8 slots later down the road if it turns out I do need more Storage/IOPS. This will probably happen fairly soon because all my data together is roughly 90% of the 6x8TB data drives. I'll probably end up leaving some data on the old Synology Box at first so I keep some free space. Does this all make sense? Should each vdev be bigger or smaller?
Later still I could even add another 8-bay Icy Dock and connect that to the 8 SATA ports coming out of the W680 chipset. I would end up using a SlimSAS (SFF-8654) to 4x SATA breakout cable if using the ASUS board. With my ram choice of 2 sticks of 32GB my upgrade path allows for 2 more sticks for a total of 128GB. That might not be enough for 24x8TB. But perhaps that's thinking a bit too far ahead, I doubt I'll need that much storage anytime soon if ever.
Another thought I had was to use the 8 SATA ports from the chipset for a backup on spinning rust. The Silverstone case conveniently already has 8 storage bays for 3.5" disks. Of course this means my backup is in the same case and part of the same server...
The alternative is to keep using the Synology NAS as a backup but knowing me I'll never get to doing that dreading how slow it is. Maybe I'll eventually bite the bullet and build a second TrueNAS server with cheaper components purely to serve as a backup.
QLC NAND
I've read a lot of bad things about Samsung QVO drives (and QLC in general) but from what I've read the performance is just like any other SSD and only after sequentially writing 84GB to a single 8TB QVO will it run out of SLC cache. With 6 data drives in the vdev that's 0.5TB of data. The only time I'll be writing that much data to it at once is when I'm transferring my files over from my old Synology NAS but those are limited to 1GbE anyway. So I wouldn't be surprised if the SLC cache never fills up even in this scenario. If there's something I'm missing about these drives do tell!
RAIDz1 for SSDs and resilver time on QLC
I've read many times that RAID5 / RAIDz1 are dead but there do seem to be some that seem comfortable if the array is made up of SSDs. This would reduce the amount of space taken up by parity data. However these are not small SSDs (8TB!) which I'm guessing is going to make resilvering take a while. The write speed after the cache is full is roughly 170MB/s which doing some simple math means it should take less than a day to recreate a dead drive. However from my understanding another advantage of RAIDz2 is being able to check for errors even after 1 drive fails meaning TrueNAS should (in theory) be able to see if a second drive is spitting out garbled data during the resilvering process. Resilvering a RAIDz1 vdev might end up using corrupted data during resilvering without anyone knowing about it. Is that correct? If so I might just stick to the tried and tested RAIDz2.
Physical vdev layout on the LSI HBA
Which is better, each vdev connecting 2 drives to each of the 4 SAS ports or keeping each vdev to as few SAS ports as possible (2 SAS ports per vdev)? Or maybe even keeping it simple with 4 vdevs each with only 1 SAS port.
I'm unsure how this HBA works and how it routes the data. I'm wondering if there might be potential bottlenecks with the way ZFS will wait for an operation across all disks to finish before starting a new one.
10GbE LAN
At first I'll just use the 2.5GbE on the motherboard. Then after checking what the theoretical throughput is with fio I'll start to think about adding in a 10G NIC of some sort so I don't waste the potential throughput of an SSD array. I've been reading a lot about how Intel and Solarscale 10G NICs are recommended while the likes of Realtek and Aquantia are definitely not recommended but that doesn't leave me with many options. Cat6 is simple and an Intel X550-T2 would fit nicely in one of the x4 slots on the motherboard. Most SFP+ NICs seems to only be PCIe2.0 x8 however I did read somewhere that the newer models like the Intel X710-DA2 are PCIe3.0 x8 and will supposedly negotiate just fine to x4 speeds in a PCIe3.0 x4 slot which still leaves plenty of bandwidth for a single 10GbE connection.
Beyond that I've been struggling to understand anything and everything about SFP+ including what kind of cabling I need. There's also something about DA in the NIC product name above referring to Direct Attach or something? I've forgotten where I read about this. This seems important.
Special config options for an SSD only Zpool/vdev?
I stumbled across metaslab_lba_weighting_enabled on this page. From how I understand it this should be set to 0 because this option is meant for spinning platters and not SSDs. Is this done automatically by TrueNAS or do I have to manually disable this? Are there any other such settings I should be adjusting because I'm going flash only? What about ashift=12 or recordsize or Advanced Format Disks? Are either of those more or less important with SSDs? I'm having a hard time wrapping my head around what they do exactly.
It took me a good portion of the afternoon/evening to convert my thoughts into letters on a screen so I hope I've provided enough information for my questions.
Either way I hope this'll be a fun learning experience for me!
-- Z0eff
Basically I'd love to get a sanity check on everything. I don't want to make a mistake and be unable to correct it later.
Some quick background:
After having used a Synology DS410 and DS1812+ for my personal NAS needs for over a decade I crave something faster and upgradable. When looking at my options back then I decided against FreeNAS because I didn't trust myself to not mess up so a Synology NAS with software already loaded was perfect. Having added/replaced many drives over the years I've gone from 4x3TB RAID5 to 14x4TB RAID6 all spinning rust and it's almost full again. Backups are sporadic and incomplete with me picking and choosing what is important enough to have on both Synology NAS boxes, write on a Bluray disc, save on cloud storage etc.
It's almost always powered off simply because the noise and power requirements are annoying which means I don't end up using it that often. When I want to grab something stored on it I often put it on the backburner because I can't be arsed to turn it on and wait 5 minutes because I'll be doing something else by that time. Also, rebuilding the array after a drive fails takes literally 5 days and because it's in my bedroom/office having 14 drives constantly spinning is not only noisy but also uses a ton of electricity. After having to do this yet again last month I've decided to start over and while I'm at it do this properly with
My use case:
Long term personal storage for mostly large files but can vary a lot in size. Very light workload. Write once read many. 1 or 2 users. Needs to be quiet. Accessed via SMB which apparently is single threaded and likes having high IPC for fast transfers so I went for an Alder Lake chip. My LAN setup uses a 2.5GbE switch with Cat6 cabling to 2 PCs with 2.5GbE. I want to use this for at least a decade so reliability is important but also want plenty of performance and upgrade room for the future. HomeAssistant might be moved from a Pi4 to this if that app ends up being stable enough. Jellyfin looks interesting but probably not needed. Might end up using the Minecraft server app for a community I'm in. Would give it a dedicated SSD just because that many random read/writes on a Zpool sounds like a very bad time.
After spending a month reading / head scratching I've ended up with this build: | |
---|---|
Motherboard: | ASUS Pro WS W680 ACE |
CPU: | Intel i5 13500 (E-Cores will be disabled) |
RAM: | 2x Kingston 32GB 4800 MHz ECC RAM (KSM48E40BD8KM-32HM) |
Boot device: | Samsung 980 250GB NVMe M.2 (MZ-V8V250) |
Storage: | 8x Samsung 870 QVO 8TB slotted in an Icy Dock 16-bay backplane (MB516SP-B) |
HBA: | LSI 9305-16i with 4x SAS SFF-8643 to SFF-8643 cables to the above backplane |
PSU: | Seasonic Prime TX-650 |
Case: | Silverstone RM400 |
Wrong motherboard?
The biggest question burning on my mind is the motherboard choice. I realize Supermicro is the preferred choice around here but I couldn't find a suitable Supermicro board that ticked all the boxes so went for the above mentioned ASUS board. However after having ordered the parts I found out I was looking at the wrong Supermicro board and that the X13SAE-F has essentially the same features for the same price.
The few differences seem very minor: The ASUS board has the above mentioned Kingston RAM on the QVL list while the Supermicro board only has rebranded Supermicro RAM. But I'm guessing 3rd party RAM will work just fine. Supermicro doesn't seem to allow for BIOS flashing without a CPU but I'm guessing the i5 13500 will work anyway. Supermicro has IPMI built-in while the ASUS board requires an add-in card but I'm not sure if I really need IPMI in the first place. It'll always be a few meters away from me and I can connect a display to it if something happens. ASUS has a PCIe3x1 slot while Supermicro has a legacy PCI slot. PCIe is much more modern and I don't plan to use any legacy PCI cards. But neither would probably see any use from me.
The real difference here is the Supermicro brand. I realize iX Systems is going to be focused on enterprise gear so I'm worried this ASUS board might cause some compatibility issue years down the road even if it works just fine right now. However the underlying hardware is effectively identical on both boards so am I just being paranoid? Both are marketed towards Workstation use. The ASUS one does have marketing material about being "Optimized for 24/7 operation" so at least the intent is there but this can just as easily be marketing BS. Should I return the ASUS board and get the Supermicro board?
Upgrade paths
After learning that creating a proper ZFS setup is very important and very difficult to change later I've decided to make my future upgrade path very straight forward. My plan is to have the 8x8TB SSD's in a single RAIDz2 vdev to prioritize usable storage space over IOPS since SSDs have plenty of IOPS anyway. This allows me to add a second identical 8x8TB RAIDz2 vdev in the remaining 8 slots later down the road if it turns out I do need more Storage/IOPS. This will probably happen fairly soon because all my data together is roughly 90% of the 6x8TB data drives. I'll probably end up leaving some data on the old Synology Box at first so I keep some free space. Does this all make sense? Should each vdev be bigger or smaller?
Later still I could even add another 8-bay Icy Dock and connect that to the 8 SATA ports coming out of the W680 chipset. I would end up using a SlimSAS (SFF-8654) to 4x SATA breakout cable if using the ASUS board. With my ram choice of 2 sticks of 32GB my upgrade path allows for 2 more sticks for a total of 128GB. That might not be enough for 24x8TB. But perhaps that's thinking a bit too far ahead, I doubt I'll need that much storage anytime soon if ever.
Another thought I had was to use the 8 SATA ports from the chipset for a backup on spinning rust. The Silverstone case conveniently already has 8 storage bays for 3.5" disks. Of course this means my backup is in the same case and part of the same server...
The alternative is to keep using the Synology NAS as a backup but knowing me I'll never get to doing that dreading how slow it is. Maybe I'll eventually bite the bullet and build a second TrueNAS server with cheaper components purely to serve as a backup.
QLC NAND
I've read a lot of bad things about Samsung QVO drives (and QLC in general) but from what I've read the performance is just like any other SSD and only after sequentially writing 84GB to a single 8TB QVO will it run out of SLC cache. With 6 data drives in the vdev that's 0.5TB of data. The only time I'll be writing that much data to it at once is when I'm transferring my files over from my old Synology NAS but those are limited to 1GbE anyway. So I wouldn't be surprised if the SLC cache never fills up even in this scenario. If there's something I'm missing about these drives do tell!
RAIDz1 for SSDs and resilver time on QLC
I've read many times that RAID5 / RAIDz1 are dead but there do seem to be some that seem comfortable if the array is made up of SSDs. This would reduce the amount of space taken up by parity data. However these are not small SSDs (8TB!) which I'm guessing is going to make resilvering take a while. The write speed after the cache is full is roughly 170MB/s which doing some simple math means it should take less than a day to recreate a dead drive. However from my understanding another advantage of RAIDz2 is being able to check for errors even after 1 drive fails meaning TrueNAS should (in theory) be able to see if a second drive is spitting out garbled data during the resilvering process. Resilvering a RAIDz1 vdev might end up using corrupted data during resilvering without anyone knowing about it. Is that correct? If so I might just stick to the tried and tested RAIDz2.
Physical vdev layout on the LSI HBA
Which is better, each vdev connecting 2 drives to each of the 4 SAS ports or keeping each vdev to as few SAS ports as possible (2 SAS ports per vdev)? Or maybe even keeping it simple with 4 vdevs each with only 1 SAS port.
I'm unsure how this HBA works and how it routes the data. I'm wondering if there might be potential bottlenecks with the way ZFS will wait for an operation across all disks to finish before starting a new one.
10GbE LAN
At first I'll just use the 2.5GbE on the motherboard. Then after checking what the theoretical throughput is with fio I'll start to think about adding in a 10G NIC of some sort so I don't waste the potential throughput of an SSD array. I've been reading a lot about how Intel and Solarscale 10G NICs are recommended while the likes of Realtek and Aquantia are definitely not recommended but that doesn't leave me with many options. Cat6 is simple and an Intel X550-T2 would fit nicely in one of the x4 slots on the motherboard. Most SFP+ NICs seems to only be PCIe2.0 x8 however I did read somewhere that the newer models like the Intel X710-DA2 are PCIe3.0 x8 and will supposedly negotiate just fine to x4 speeds in a PCIe3.0 x4 slot which still leaves plenty of bandwidth for a single 10GbE connection.
Beyond that I've been struggling to understand anything and everything about SFP+ including what kind of cabling I need. There's also something about DA in the NIC product name above referring to Direct Attach or something? I've forgotten where I read about this. This seems important.
Special config options for an SSD only Zpool/vdev?
I stumbled across metaslab_lba_weighting_enabled on this page. From how I understand it this should be set to 0 because this option is meant for spinning platters and not SSDs. Is this done automatically by TrueNAS or do I have to manually disable this? Are there any other such settings I should be adjusting because I'm going flash only? What about ashift=12 or recordsize or Advanced Format Disks? Are either of those more or less important with SSDs? I'm having a hard time wrapping my head around what they do exactly.
It took me a good portion of the afternoon/evening to convert my thoughts into letters on a screen so I hope I've provided enough information for my questions.
Either way I hope this'll be a fun learning experience for me!
-- Z0eff