New Server Build (2025): Part Selection

It’s been a while since I built a new server, the last one was back in 2016. I’m hoping the transition to a new server will be quicker this time because it took me forever to migrate to the current one. Much has changed, I’ve moved to mostly docker containers hosting most of my services and things are much more organized. While there isn’t anything wrong with the server today, I’m starting to run out of storage and I could use more compute power.

This new build should solve those problems, it will also let me upgrade my local backup server which is currently my very old server build from 2009. Somehow I had in my head decided on about a $1000 budget, but things got fuzzy when I started to think about storage – as I was hoping to also fit my new storage drives into that price. I’d initially thought 4TB drives would be the sweet spot, but as time moved on I convinced myself that 8TB was the right choice as they are in around $200 each.

The current sever only has 120G as the boot volume (110G usable). I’ve got a RAID1 on top of two 480GB SSDs giving me 439G storage. Then a motley collection of storage drives managed by snapraid: 3TB, 6TB with a 8TB parity drive. I had done upgrades over time, moving the original 60GB boot volume up to 120GB, adding drives and upgrading sizes as I went along.. but upgrades are both a monetary cost, as well as a time investment.

Where do you even start with a home server build? For me, it is about storage. I need a place for my media collection, photos, backups, etc. I know I wanted to shift to a ZFS based solution based on some of my recent experiences. As mentioned above, initially a 6x4TB RAIDZ2 was what I was thinking, this would give me double parity (survive 2 concurrent drive failures) and 16TB of usable storage. With 4TB drives in around the $120 price point that seems feasible. With larger drives, we get increased risk that something will go wrong – there is just so much data all on one device.

Two things happened to change my mind on the drive size. Looking at drive prices and filtering on ‘new’ only we get the data in the screenshot above. Very interesting that many of the best prices are for external unit, this is why shucking drives is so popular. Keeping in mind my total usable storage currently is under 11TB, getting a massive drive seems unreasonable. However we can see 8TB drives are in this list, and we have to go a long way down to find 4TB at $28.50/TB. The second reason is that ZFS introduced the ability to expand vdevs, meaning we can add drives. This larger drive size also means I can have a 4x8TB RAIDZ2 and have 16TB of usable storage, and in future grow to 32TB by adding 2 more drives.

Next was the more difficult problem, building out a system to host these drives. I came across PCPartPicker which was a great way to start exploring various options and pricing. I did find that you could find better prices going directly to some stores websites, but it certainly helped me narrow down my search more quickly. I must also call out PerfectMediaServer which is another good starting point to inspire you. Did I want to find a close to what I wanted used system, or buy new? It took me a few days to wrangle this wide open set of choices simply focused on CPU/Motherboard(MB) but eventually landed on new being better value in the long term. A bit more expensive, but not that much more.

I started out with a bias towards Intel, I was fairly sure I wanted on board graphics to get QuickSync which is similar to what I have now. I did seriously look at AMD systems, and there are many more options there. Then I found a good price on 12th generation Core i5 and buying a comparable performance AMD system ended up about the same price, and the i5 had more cores. Still lots of nicely priced AM4 socket setups with good performance (an improvement over what I have) – and there are lots of CPU options that are lower cost but lack built in graphics.

Eventually I landed on the i5 and had to pick a motherboard which opened up an entirely new can of worms. Did I want DDR4 or DDR5? How many M2 slots? Some MBs disable one of the SATA ports if you used the second M2 slot. The 6xx chipset boards are cheaper, but lack capabilities (and might be going away?) gah! Networking, 1Gbps or 2.5Gbps? How many SATA ports do I want? I will say that the sales folk at ShopRBC were very helpful via email in making suggestions as to what may or may not work well. I finally picked a 7xx chipset motherboard, with 2.5Gbps network, two M2 slots, and 4 SATA ports that supports DDR5.

This CPU+MB is excessive, I probably could have gotten away with less – OR paid nearly the same price and added a lower end graphics card in. I’m still happy with the choices I made, I landed in the right ballpark – but my choices are by no means the best choices – they are simply a choice that will work. The whole Intel vs. AMD ends up being a wash too – because the market pricing works out that you get the same performance for the same price.

I still needed RAM, a cooler, and a couple of M2 SSDs, maybe a case? Luckily I have a ‘spare’ 650w power supply I bought from someone parting out a gaming system, so that saves some money.

One of my friends had an old AIO watercooler, but after checking it out it didn’t specify the newer 1700 socket and the wikipedia article called out that the mounting holes are different enough that it was too big a risk to re-use. As for air coolers, many recommend the dual tower Thermalright Peerless Assassin 120 – but what a monster cooler this is needing 157mm of clearance. After a lot of searching I landed on the Thermalright Burst Assassin 120 SE – a 6 pipe cooler, but only a single fan / tower. It’s still pretty big, but came in at the right price point.

Like every component in this build, I had difficulty deciding on how much RAM to put in. 32GB is the new normal, and the MB has 4 slots – but given that last time I did this I started with 16GB and never changed it, maybe I should leap to 64GB right away? While DDR5 is nearly the same price as DDR4, it is more expensive and 64GB lands you in around $250 where 32GB is easily half of that. Then lightning struck and someone locally was selling a 2x32GB DDR5 kit for $150. This quickly solved my RAM choice dilemma.

Just like RAM, I couldn’t decide if I wanted my boot drive (M2 form factor) to be 1TB or only 500GB. This boiled down to a choice between $100 or $150 as I plan to run a RAID1 boot volume. In the end it was why the heck not, I’ve already blown past my budget anyways, I got a pair of 1TB drives but two different brands. I tried to stick with brand names vs. some of the ultra-budget options out there for fear of making a bad reliability choice.

I do have an old case sitting around, but it’s literally 25 years old. Cooling needs have changed a lot. I was originally looking very seriously at the
Antec VSK4000E U3 case, but it turns out the max cooler is 145mm and my cooler choice needs 148mm. Finding a reasonable price on a ‘modern’ case that has lots of drive bays is tricky. I finally came across the Thermaltake Versa H21.

I could go on about all of the back-and-forth I did trying to decide on each part of the build, and while I’ve done a subset of that here so far, I will spare everyone all of the details. Let’s look at the list of parts:

  • Intel Core i5-12600K 3.7 GHz 10-Core Processor $216.96
  • Thermalright Burst Assassin 120 SE 66.17 CFM CPU Cooler $29.90
  • Gigabyte B760M DS3H AX Micro ATX LGA1700 Motherboard $189.00
  • Corsair Vengeance 64 GB (2 x 32 GB) DDR5-5200 CL40 Memory $150 (cash)
  • Kingston NV3 1 TB M.2-2280 PCIe 4.0 X4 NVME Solid State Drive $75.95
  • Lexar NQ700 1 TB M.2-2280 PCIe 4.0 X4 NVME Solid State Drive $79.99
  • Thermaltake Versa H21 ATX Mid Tower Case $74.99
  • be quiet! Pure Wings 3 49.9 CFM 120 mm Fan (x2) $9.99

Most items I bought locally at CanadaComputers or ShopRBC, and for the most part those local stores had the best prices for me (partly because I could avoid shipping costs). The cooler was an Amazon purchase. After tax I ended up with a total cost of $926.05 (ouch) but this is a machine I’ll probably use for at least 5 years, possibly closer to 10. It has 4x the memory of the current server, and is easily 2x faster. The same configuration via PCPartsPicker is currently $1041.64 before tax, but prices change daily and the big delta is the RAM which is over $300 right now.

Next up, putting this pile of parts together so I have working machine.

Epson Refurbished Projectors

I made the switch from CRT projection technology to a modern digital projector back in 2008 when I bought the Epson 1080UB. At the time, there was a lot of criticism of the new-ish digital projectors and their black levels, but the ease of use, reduced maintenance and price were attractive. I’ll likely write up an exit review of the 1080UB, but it lasted a long time and was a great projector until recently.

Near the end of May this year one of my friends had some projector woes and was looking for a replacement. There are a lot of choices out there and he first picked the Hisense PL2, but upon getting it and trying it out – it didn’t meet his needs. He then considered the Epson 3200 or the Epson 3800, the choice between these seems difficult and the street price was close. While he was mulling this decision over, I spotted an Epson 4010 as a refurb on amazon for only $1600 – and he jumped at this deal. He reported that the refurb arrived in perfect shape and that it was an amazing upgrade.

At the time I wasn’t looking to change things up, but the Epson 4010 ticked a lot of boxes for my next projector list. It wasn’t the UB range, and it still used a traditional lamp – but this refurb was great value for money.

A few week later I saw the Epson 5050UB as a refurb deal for under $3000, certainly tempting but while my 1080UB was giving me some trouble it was still kicking along. This 5050UB deal soon disappeared like any good deal, and that door closed.

Maybe a week after that, I start of have more frequent (daily) issues with the 1080UB and from a WAF it was time to get a new one. I started my hunt. A dream projector would be the Epson LS11000 which with the right deals lands in around $5000. At this price I start looking at the high end JVC and Sony offerings too. As mentioned a good deal on a current model UB projector would be nice too.

One constraint I need to work within, is where my projector is mounted. It’s on the ceiling, about 16′ from the screen – which is a 92″ diagonal (80″x45″). One day I may bump the screen size up a little, but size limitations are things like: room size, speaker placement, and brightness levels (larger screen, less intensity). In any case, this long throw was designed around the 1080UB which has a 2.1x zoom allowing for this placement. Great options like the Epson 3800 only have 1.62x zoom, forcing a much closer mounting to the screen.

Around this time I discover the official Epson refurb store – at the time it listed both the 4010 and 4050 at under $2k. The Epson 4010 is considered the consumer version, and the 4050 a custom installer version. The 4010 is white and you might see it for sale in the local big box store, The 4050 is black and comes with a few extras – but you’ll likely only get it via a boutique AV store that does whole theater builds outs, oh and it also has a 3yr warranty vs a 2yr warranty.  Other than these minor differences, the projectors are twins – totally identical performance.

While the 4050 was $130.01 more expensive than the 4010, I couldn’t resist the black exterior – and the idea that this would make my theater seem more like a custom install. It’s hard to figure out the actual street price for the 4050 as the Epson site just points you at places that will sell it to you (again, custom installers). You can find a price for the 4010 which is $3299.00, and if we assume the 4050 is a bit higher, the refurbished price is a nice discount.

I will share that I did find some debate over the quality and overall experience of ordering via the Epson refurb store. The website does list a return policy, but it is unclear if that is exchange only for refurbished units.

Still, given my requirements and the discounted price, this still seemed like a good choice. Fingers crossed I waited for the new to me projector to ship.

A day later, my credit card company flagged the attempt to charge my card from Epson as suspicious. Fair. However, very frustrating because while I did indicate to the credit card company I was good with the purchase, apparently the only thing to do is ask the merchant to try again? When I called Epson later (and it was quick to get to a live person) they seemed to not have any problem at their end with my payment, but they also had no idea about the decline. I was forced to just patiently wait to see if this all worked out.

It did. I got a shipping notice from Epson and a Purolator tracking number, checking my credit card online showed that I had been charged. Overall from when I made the web order to it arriving on my doorstep was 8 days, not bad.

It arrived in a large box, clearly marked as a renewed product.

While I knew the dimensions (19 cm x 52 cm x 45 cm), seeing the unit in person was a little surprising. That large box was mostly taken up by a large projector. It was well packed and protected.

I will post up more details on my new projector in a later post, but the unit that arrived was pristine. Not a mark. There are a few stickers added to the projector to indicate it’s renewed status but this is very much a new in box feeling. Unlike a full retail price version of the 4050, there was no extra lamp nor mount included (no surprise here). The remote was included (with batteries), a power cord, and a few cable locking clips. At this point, the extra $130 got me a black exterior and an extra year of warranty. Worth it? Absolutely.

Archiving Floppies

I’m slowly getting to clearing out some of the old office stuff at home, and yes, I appear to still have some 3.5″ floppies. I did in fact have a 3.5″ floppy drive, but it was in an old husk of a former PC. My desktop machine has a modern power supply and didn’t even have the right power connector to hook up the drive (easy fix with an adapter) – at least the motherboard still had the right connector to hook up the data cable.

I then had to do the right BIOS dance to actually enable the device, once this was done I could see it under Linux as /dev/fd0. Unfortunately the handful of disks I tried to mount gave errors, it seemed either this drive is faulty or all of my disks are expired. Now, these are floppies from the early 90’s – which is oh my 35 years ago!

Time to bust out ddrescue, and see if I can image any of these disks to pull data. Sadly my initial attempts were not great – I wasn’t getting much data off of these at all. Maybe this is a huge waste of time. I found the useful seeming ddrescueview which gives me a way to look at the status of the rescue attempt.

Let’s cover the basics. My initial attempts looked like

This worked, but I got a lot of errors. Adding the -d flag seemed to help a lot, but later I found out that I needed more flags to make this right.

I found a useful wikipage entry from the archiveteam specific to recovering floppies.

Here is the ddrescueview visualization of my initial attempt:

So not great. Next up is when I added the -d flag

Better. Of course as I decided to make sure this was repeatable, I tried removing the -d flag and running it again to make sure it was really bad. This time I got a completely clean read (fully green). There were 2 errors reported, but it retried and it was good?

So I start trying various combinations to see if I’m getting repeatable results. Overall it’s random errors and no clean reads again.

Now the clever thing that ddrescue does, is maintain a map file. This captures what was done, and allows you to run another pass to try to have more luck. This is what I need. Referencing the archiveteam advice I landed on this as the right combination

Let’s break down the flags

  • -d : direct access
  • -b512 : sector size of 512 bytes, important for direct access
  • -r 3 : retry errors 3 times
  • –retrim : allows us to re-run, and re-try failed blocks in the map

Using this magic, I was able to run the command a second time and get a clean read! So you can either be lucky, or use the map file and try a few times with the right settings.

Now I can mount the image under linux

This particular floppy apparently contained a few rescue tools (NDD.exe ring any bells) Well, glad I got those bits back – guess I’ll toss it on the pile and move on to the next one.

Now that I have things sorted out – I’m finding a couple that read clean, which is pretty cool given the files are from 1991. Amazing how little fits on these floppies, when it used to seem like so much.

I did manage to ‘crash’ the floppy drive with bad disks or something, because it would get into a state that rebooting the machine would not fix. Powering it off for a minute or two and a full cold boot seemed to get things back on track. When it was busted I’d get errors like:

I did run into more problems just like this and I really don’t understand what was wrong, or how to get it to behave again. Very frustrating. I just had to keep trying cold boots and different floppies. Looking at dmesg I see:

I picked up a used USB floppy drive locally, it was only $15 and it gave me a secondary device to try some of these floppies with — and I was hitting my head against the wall with the errors above.

The USB floppy appears on my system as a drive /dev/sdc – but I can just use that device in place of /dev/fd0 and the same commands work. Hopefully resetting the state will be easier as I can just unplug the USB drive and try it again. We’ll see if it gets into a similar busted state (which appears to be triggered by bad reads). So far it seems much more stable overall and I’m working my way through my old floppies.

The USB floppy drive worked really well. It is starting to seem like that old 3.5 floppy drive I installed in my machine was maybe not so stable. Some floppies that had many errors, read just fine with the USB floppy drive.

To speed things up, I adopted a two phased approach. Trying an optimistic version which would fail out quickly – followed by the more aggressive 3 retry version above if I determined I wanted to get as much data as possible. This is the quick version:

As a bonus for anyone who’s hung on this far into the post, let me share some of the output you get from the ddrescue tool showing the progress it makes:

You can see above, that it did in fact get to 100%, but slowly and required a secondary run to finish.

This was certainly a trip down memory lane, I’m glad I persisted in trying to read the data. There were a few files I wanted to keep out of the pile of floppies, and now I’ve got the archived with my other files to keep.