It's more than 5 years since my previous NAS build. I've gathered most of the hardware to build a new server. While awaiting delivery of a few more parts I'll indulge in a quick review of the previous iterations before documenting the assembly of this new device.
In 2006 I had been using FreeBSD at work to operate a mail server. I learned of a new file system available for FreeBSD called ZFS. ZFS promised solutions to several data storage problems both at work and at home. I began experimenting with ZFS and by 2008 had a budget home server comprised of an IBM Thinkpad T61, 8 WD Elements 500GB external hard drives, a pair of USB 2.0 4 to 1 hubs, and a Linksys WRT54G wireless router. A large DC power supply from an RC racing hobby store powered the drive array through a homemade octopus cable. I added the Popcorn Hour A100 media player in 2008. This all worked surprisingly well although it was much slower than what we have now. Over several years I upgraded to 8 x 1TB WD Elements drives. In 2010 I replaced the Popcorn Hour with a J&W Minix 890GX-USB3 mini-itx pc. In 2011 the Thinkpad became my workstation while another mini-itx board with a relatively low wattage Athlon II processor took charge of the zpool.
I bought this SANS DIGITAL TR8UT 8-bay JBOD USB 3.0/eSATA disk array tower in 2011. This item sat mostly idle for a year. USB 3.0 driver support had not yet matured in FreeBSD. Eventually I turned to an eSATA to SATA cable to use the device without the drive destruction which seemed to plague it when attached via the USB 3.0 interface. By 2015 I had replaced drives so that there was 16TB although it was in a raid-z2 configuration so the usable space was less. I'd accumulated about 8TB of data. The speed over that single SATA port was slightly better than multiple USB 2.0 interfaces, but only just.
This is the NAS with a description linked at the top of this page. I'm still very pleased with it. The WD Green 6TB drives have been replaced with WD Red WD100EFAX 10TB drives. None of the greens failed. One gave an error last year which I took as a cue for replacement. When the replacement came I pulled a different drive and didn't catch the mistake for a month. Rather than resilver the good used drive back into service I bought a second new drive. I bought 3 more this year. The last very recently. It was installed on Sept 20th. The pool is set to autoexpand so with that final replacement the array gained approximately 20TB of space. The allocated space on the array was 19.4TB with 5.8TB free. There is now 19.8TB allocated and 25.5TB free.
Some time ago I added a Sedna SE-PCIE-USB3-4-20E card to the unused pci-e slot which improved greatly the usefulness of the front panel USB slots.
The X650 power supply failed while under warranty. Seasonic made it good but I didn't have a suitable psu on hand. Being impatient of the wait for a replacement I bought two Seasonic Titanium Fanless SSR-600TL 600W units. They have a twelve year warranty and are silent if priced a little more than some others options. Twelve years is a long time. They're physically a bit longer than the X650. It was a tight fit. It's still in there quietly doing its bit. I've yet to decide if the replaced X650 or the SSR-600TL will power the new box.
At the time of this writing the server is providing NFS to my LAN devices. I'm downloading a 400GB collection of 'The Three Stooges' appearances in film and tv from an internet archive via wget. There is ffmpeg running on another collection of 'The Three Stooges' shorts. This server is also caching crawled web pages and the search indices generated by my yacy node; yacy being a p2p search engine. Those tasks run in the background while I view then save photos of my brand new grandson.
In the choice of hardware for the new NAS I gave much consideration to buying another ASRock C2550D4I or a C2750D4I. This server still performs well as network attached storage. The promise of greatly improved performance in the secondary use for media encoding won me over.
It's assembled but I'm short an hdmi cable and install media for the operating system.
| Hardware list | |||
|---|---|---|---|
| amazon | 2019.02.11 | Seasonic Prime 600 Titanium SSR-600TL 600W fanless PSU | $219.99 |
| ebay(t-traderz) | 2019.09.03 | LSI/Broadcom HBA 9400-16i Tri-Mode Storage Adapter | $274.00 |
| newegg | 2019.09.03 | Coboc mini-SAS SFF-8643 to 4 x SATA Breakout Cable x 4 | $39.95 |
| overclockers | 2019.10.03 | Lian-Li PC-Q26A Mini-ITX Chassis, Silver | $225.00 |
| amazon | 2020.09.01 | ASRock Series B550M-ITX/AC Motherboard | $147.15 |
| ebay(hugohk) | 2020.09.11 | AMD Ryzen 7 PRO 4750G 8 core 16 thread cpu | $414.18 |
| avadirect | 2020.09.15 | Kingston KSM26ED8/32ME DDR4 32gb 2666MHz ECC Memory x 2 | $294.58 |
| newegg | 2020.09.16 | Noctua NH-U9S CPU Cooler with NF-A9 92mm Fan | $68.41 |
| newegg | 2020.09.22 | Intel 16gb M.2 2280 MEMPEK1J016GAL pcie solid state drive | $21.99 |
| _________ | |||
| TOTAL (includes tax and shipping) | $1705.25 |
I installed the X650 from the previous build instead of the SSR-600TL fanless power supply. The primary reason for this is that the X650 box was opened.
My intention is to use 8 of the lanes provided by this for SATA hard drives and the remainder for 2 high speed U.2 solid state drives. This may change. I wrote about the previous NAS years after putting it together. This time I'm writing while still ruminating over details. Sorry if I'm rambling. When the build is complete I'll condense this to be more concise.
I bought four of these in two different lengths. I used the shorter pair and will keep the others as spares. They seem just fine. I'll need to shop for cabling for the intended U.2 drives.
I placed the order on a PC-Q26A but received a PC-Q26B Black case. A similar but inverse mixup happened when I ordered the Lian Li PC-Q35A in 2015. The PC-Q35A is silver but was described and depicted as a black case. This was fine. It all works out in the end. I'm absolutely not knocking overclockers.co.uk here, they are awesome. I'd admired this case for too long before pulling the trigger on the purchase. I think this one was possibly the last of these cases at retail anywhere.
I'm worried the convenience of these screwless side panels on the PC-Q26B may be payed for in rattles. The 4 case fans aren't speed controlled either. I don't yet know whether this will belong in the living room cabinet or a closet in back. These concerns have thus far proven groundless. I still would prefer traditional side panels with screws but it doesn't rattle. It's quiet and the temps are good.
What can I say? This is the right board at the right price. That price allowed me to splurge a little on the cpu. It doesn't have some of the server features but in combination with the Ryzen 4000 it compares very favorably and for the most part surpasses other boards I had in consideration. Some of those embedded boards are quite dear. I'm very pleased with this.
I paid too much but it's an absolute beast and I love it.
These ram modules weren't on the ASRock Memory QVL. The 16GB version, KSM26ED8/16ME is the only ECC module listed there. I'll very soon find out if they'll work. They do.
The 16GB Intel Optane ssd is tiny. I chose this for financial reasons. Hard drives and this build have my budget for computer items near exhaustion while 16GB is just enough. The OS partion in the 2015 box contains 10GB after 5 years. FreeBSD graphics support for the APU is still experimental. My enjoyment may be limited until spring when the FreeBSD-13.0 release is scheduled. By then I will have researched a couple larger ssd drives that will fit my budget. I intend eventually to use this small Optane device as an SLOG for the ZIL where I used mirrored Intel 320s in the past. I don't intend to mirror it this time.
I'd read some glowing reviews of a slightly larger Noctua cooler before committing to this purchase. This one fits in the Mini-ITX case and the build quality seems excellent. It was packaged very well and is performing well. I'm now a fan of this manufacturer and of this fan. It's good.
After morning coffee I downloaded a memstick image and copied it to a USB key.
$ fetch http://ftp4.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-mini-memstick.img.xz $ unxz FreeBSD-12.1-RELEASE-amd64-memstick.img.xz $ dd if=/dev/zero of=/dev/da0 bs=1M count=10 $ dd if=FreeBSD-12.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync
Now to find the hdmi cable that must exist somewhere in this home.
The motherboard failed to POST. The HDMI cable is good. The monitor does receive signal on that input. There was no POST beep. The internal speaker is connected. I performed a CMOS reset with a jumper. The CPU fan bumped in an aborted start. I discovered my neglect to install the ATX 12V 8 pin power connector. Now there is still no post but the CPU fan spins up. Removal of the HBA and the memory sticks one at a time with a reset after each brought no joy. The forward edge of the motherboard lies practically against a channel used for cable routing. I will disassemble everything then mount the motherboard on a platform I have from a disused mini-itx case. That will eliminate any possibility that there may be a short. I had a bit of trouble with the Noctua bracket. Per the instructions I used a .4 cm diameter dollop of paste but the cpu cooler slid about in a disconcerting way when I placed it on the cpu. I'll confirm that no excess paste squeezed out as to be troublesome. Someone on the ASRock Support Forum reported a similar issue that resolved after a temporary disconnection of the CMOS battery. It occurs to me that I never actually tested the X650 psu after Seasonic replaced it. I'll open up the SSR-600TL psu for my temporary bench rig. I'm old enough that presbyopia is becoming a real handicap in this sort of assembly work. It's very frustrating.
I have a working board after using a screwdriver instead of an old jumper to bridge the CMOS pins. That's the magic.
Both 32GB memory modules are detected and functioning.
For reasons I do not yet understand the UEFI would not see the OS install key as bootable while it was inserted into either a front panel or rear panel USB 3.0 slot. It did work using a rear panel USB 2.0 slot. I chose the standard ZFS guided installation this time and used the GPT UEFI option. FreeBSD 12.1 now boots from the Intel Optane card.
A quick comparison between this new Ryzen 4750G without gpu acceleration against the old Atom C2550 yielded the Ryzen 11.5 times faster when each encoded an identical video. That's what I hoped to see.
I've been transcoding videos and toying with this for almost two weeks. This box is a screaming demon in comparison to the old one when transcoding to HEVC. It is also capable of transcoding video to AV1 in timescales only slightly slower than the old box could do HEVC. Perhaps when the amdgpu driver is used AV1 will become practical.
I'm awaiting delivery of a new battery for the UPS which failed a self test.
In the weeks since replacing the UPS batteries I've seen a couple failures from the old hard drives I used in the server. This wasn't unexpected. One of the 6TB drives failed completely and a second is reporting unrecoverable read errors similar to that the first one reported for some weeks prior to failure. I've temporarily stopped populating that pool with media or transcoding until I obtain replacements. I've been considering shucking again. There are two 2TB mirror vdevs using drives left over from 8-bay USB tower of which I had eight potentially good 2TB drives. These were WD Greens with almost three years on them when they were stored away. None had been in use during the last 5 years. One failed the first day, another on day two, a third has reported transient errors but self-tests okay.
# zpool status -v pool: archive state: ONLINE scan: scrub repaired 0 in 0 days 00:00:01 with 0 errors on Fri Oct 23 09:32:33 2020 config: NAME STATE READ WRITE CKSUM archive ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 gpt/18855 ONLINE 0 0 0 gpt/94909 ONLINE 0 0 0 errors: No known data errors pool: media state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://illumos.org/msg/ZFS-8000-2Q scan: scrub repaired 0 in 0 days 00:18:29 with 0 errors on Sun Nov 8 09:30:13 2020 config: NAME STATE READ WRITE CKSUM media DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 gpt/7NJ7U ONLINE 0 0 0 gpt/7NP3A ONLINE 0 0 0 gpt/7NEAJ ONLINE 0 0 0 8137105344758302774 UNAVAIL 0 0 0 was /dev/gpt/53850 gpt/7N5EV ONLINE 0 0 0 errors: No known data errors pool: p2p state: ONLINE scan: scrub repaired 54M in 0 days 05:08:21 with 0 errors on Sat Nov 7 12:30:56 2020 config: NAME STATE READ WRITE CKSUM p2p ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 gpt/31802 ONLINE 0 0 0 gpt/99207 ONLINE 0 0 0 errors: No known data errors pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 nvd0p3 ONLINE 0 0 0 errors: No known data errors
An update of this box, the older NAS, and the remote backup server to FreeBSD 12.2-RELEASE was accomplished without a hitch. I read a forum post which caused me a minor concern regarding the procedure to update the bootcode for this box, which is the first machine I've set to boot from UEFI. While the bootcode update wasn't strictly necessary for this minor version upgrade the command differs slightly from what I've used on my other machines.
Where previously I've used:
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada6
# gpart bootcode -p /boot/boot1.efifat -i 1 nvd0