aboutsummaryrefslogtreecommitdiff
path: root/blog/posts/building_a_sensible_server
diff options
context:
space:
mode:
Diffstat (limited to 'blog/posts/building_a_sensible_server')
-rw-r--r--blog/posts/building_a_sensible_server/index.md38
1 files changed, 19 insertions, 19 deletions
diff --git a/blog/posts/building_a_sensible_server/index.md b/blog/posts/building_a_sensible_server/index.md
index 8ce60eb..aed513e 100644
--- a/blog/posts/building_a_sensible_server/index.md
+++ b/blog/posts/building_a_sensible_server/index.md
@@ -1,6 +1,6 @@
It has become clear to me that the [laptop NAS](../building_a_normal_server/) I built in December of last year, while a fun project and a good learning experience, is unfit for the purpose that I need it to fulfill and is best stripped for parts and replaced. Here I'll detail the main reasons why it sucks and my plan to build something just a little bit more sensible.
-## What In God's Name Have I Done
+# What In God's Name Have I Done
To get you up to speed in case the limit of your attention span is somewhere between one blog post and two blog posts, as of late last year I had been using an old gaming laptop as a home server for Minecraft and such things to great effect for a while, and had decided that I also wanted a proper NAS. Rather than buy a whole new CPU, motherboard, and RAM for this purpose, I saw fit to attempt to upgrade, or rather modify, or rather pervert, bastardize, and generally corrupt my existing laptop to have the storage capacity I wanted.
@@ -10,7 +10,7 @@ It was beautiful, and for reasons that are entirely beyond my ability to grasp,
This is where we find our intrepid hero today.
-## This Whole Enterprise Was Fundamentally Ill-Conceived
+# This Whole Enterprise Was Fundamentally Ill-Conceived
I was expecting this thing to have problems, but I was unable to anticipate the specific problems it ended up having. Performance is... fine, actually. Better than expected, even. That horrible little 2-port SATA expander, or, failing that, the SATA multiplexers, are almost certainly bottlenecking the bandwidth to the HDDs, but it's fast enough to saturate the gigabit network infrastructure in my <span class="house">house</span>, so it doesn't really matter.
@@ -24,9 +24,9 @@ Whatever this is, I feel pretty well hopeless to fix it, and even then, it's als
However, despite all the problems with the laptop itself, all the other hardware has been nothing short of totally rock-solid. All of it has worked as advertised and I'll be carrying the drives and, if possible, the PSU<sup id="n1r"><a href="#n1">1</a></sup> over into the new system.
-## Something Just A Little Bit More Sensible
+# Something Just A Little Bit More Sensible
-### Angle of Attack
+## Angle of Attack
Firstly, as previously mentioned, the PSU and storage are accounted for already. I have eight total drives I want to put in the system: two 256GB SSDs as mirrored boot devices, 2 1TB SSDs, also mirrored, for TrueNAS apps and such things, and four big boy hard disks for bulk storage. Most of that stuff was bought for the original build, but the mirrored SSDs proved infeasible in the end. I don't strictly *need* them, but it would be very nice to have. Anything in serious consideration will need some way to accommodate my preponderance of SATA devices.
@@ -36,7 +36,9 @@ I briefly considered getting a used workstation PC of some description. A used L
I could get a used rack-mount server, like a Dell PowerEdge or similar. This is also a decent option, and it would be *quite* cost-effective, but I've got a few good reasons not to. First, most of these servers have old Xeon datacenter chips in them that are still good for many home server tasks, but aren't particularly fast or efficient. Take this PowerEdge R730 for instance:
-![An Ebay listing for a Dell PowerEdge R730, with two Xeon E5-2623 v4 CPUs and 128GB of RAM, for $187 CAD, plus $57 CAD in shipping.](ebaypoweredge.png)
+<figure class="media">
+ <img src="ebaypoweredge.png" alt="An Ebay listing for a Dell PowerEdge R730, with two Xeon E5-2623 v4 CPUs and 128GB of RAM, for $187 CAD, plus $57 CAD in shipping.">
+</figure>
This has two Xeon E5-2623 v4 datacenter CPUs. At 4 cores/8 threads and 85 watts apiece, this server would have the same core count as the Ryzen 5700G in my desktop for almost three times the power draw, and *half* the single-threaded performance. In many cases, especially for servers, lackluster single-core performance isn't a problem, but if I want to run game servers on this, which I do, these chips may struggle.
@@ -44,7 +46,7 @@ Plus, rack-mount servers kind of suck for home use. They're very unweildy if you
Logically, then, the only remaining option is to build a system from scratch, out of used parts, to my specifications. That, therefore, is what I shall do, and I think I can do it for a similar amount of money to the GPU upgrade I was *planning* to get before this whole thing really started becoming an issue. Here's my plan:
-### My Grand Design
+## My Grand Design
In spite of the machine it's in, I've found that the i7-9750H in the laptop performs admirably for my use case. I don't really need a CPU upgrade here &mdash; hence my efforts to repurpose the existing one &mdash; unfortunately, however, the BGA form factor of this particular chip is incompatible with 100% of consumer desktop motherboards, so I'll be needing a new CPU regardless. Though I don't want or need a major upgrade, I also don't want a *downgrade* if I can avoid it, so I'll primarily be looking at other high end gaming chips from the era.
@@ -63,21 +65,21 @@ Finally, I need a case. Fortunately, this time around I don't have to build one
The first case I found that obviously fit my use case was this thing, the weathered old shell of a Pentium III tower from the dawn of the ATX standard:
<figure class="media">
- <div>
- <img src="servercase.jpg" alt="A beige PC tower with four 5.25&quot; bays and two external 3.5&quot; bays, populated with an optical drive and a floppy drive respectively. The only visible branding is a Pentium III sticker and a badge that reads &quot;TOUCH&quot;.">
- <figcaption>Based on my research, this is an Enlight 7237, or something closely related, but the front panel seems unique. I'm curious about the branding here. If anyone recognizes that "TOUCH" badge, get in the comments.</figcaption>
- </div>
+ <img src="servercase.jpg" alt="A beige PC tower with four 5.25&quot; bays and two external 3.5&quot; bays, populated with an optical drive and a floppy drive respectively. The only visible branding is a Pentium III sticker and a badge that reads &quot;TOUCH&quot;.">
+ <figcaption>Based on my research, this is an Enlight 7237, or something closely related, but the front panel seems unique. I'm curious about the branding here. If anyone recognizes that "TOUCH" badge, get in the comments.</figcaption>
</figure>
Honestly, I kind of love it. I'll transfer the 5.25"-to-3.5" adapter cage I bought to mount the drives in my homebrew case to the bays in this thing wholesale, and I can 3D print some brackets to mount the SSDs in the 3.5" bays. And, somewhat counterintuitively, it might actually be *easier* to build in than those modern RGB glass side panel power supply basement having ass Gaming&trade; cases:
-![The inside of the same old PC case. Its layout is extremely pragmatic: motherboard in the very bottom corner, PSU in the top corner above it, and all the drive bay mounts are in a cage lining the front side. In other words, it looks like an old PC case.](servercaseinside.jpg)
+<figure class="media">
+ <img src="servercaseinside.jpg" alt="The inside of the same old PC case. Its layout is extremely pragmatic: motherboard in the very bottom corner, PSU in the top corner above it, and all the drive bay mounts are in a cage lining the front side. In other words, it looks like an old PC case.">
+</figure>
Just look at it. Everything's right there. I can take the side panel off and instantly get to every component with my hands without spinning the case around and I don't need to run any cables through any fucking gromets to get them where they're going. It looks supremely convenient. As the type of person who enjoys *building* computers and not just using them as decoration, this is beautiful to me.
The biggest issue with this case is the cooling. It's absolutely pitiful by modern standards. Based on these photos, it looks like there's a single 92mm, possibly 80mm, fan each for intake and exhaust, with a passive vent in the side. I'm already bringing some extra cooling to the table &mdash; my drive cage has a mount for a 120mm fan, and I can use the fan in my much better ventilated modern PSU for extra exhaust, and with a 65W CPU and no meaningfully powerful GPU that might just suffice. If not, I've got some ideas involving 3D printing and/or a hole saw to make this thing a little less stuffy.
-### Actually Building The Sucker
+## Actually Building The Sucker
Everything above that heading there was in large part written a few weeks ago, when I was ordering all this stuff and it was all fresh in my mind. We now rejoin our intrepid hero as she receives the last of her Ebay orders and prepares for initial testing.
@@ -91,7 +93,7 @@ Assembly went smoothly; not much to say here that you couldn't get from Linus Te
What didn't go smoothly was actually booting the thing. On first power on, it failed to POST and got stuck on a code "8" on the little seven-segment diagnostic code display. I initially assumed it was training the memory, since this can take a while on first boot, but after about five minutes of no change I started getting worried. I read a lot of very worrying forum posts that suggested that either the CPU or motherboard were straight up dead, and I very nearly bought another CPU to see if that was the case. First, though, I decided to try updating the BIOS using the "BIOS Flashback" feature, and that fixed it immediately. I wasn't done yet, though.
-Astute readers will have figured out by now that I was using TrueNAS on the old machine and intended to continue using it on the new one. Installation went extremely smoothly, except for one small wrinke: I had decided to take the NVMe boot SSD from the old laptop to use as storage for my game servers<sup id="n6r"><a href="#n6">6</a></sup>, and even though I had done a fresh install of TrueNAS to a pair of mirrored SATA SSDs, the NVMe one, naturally, still had TrueNAS on it. This, from what I understand, caused the OS to get stuck trying to boot because there were two ZFS pools marked as the boot pool, and it would just give up and drop me into an initramfs shell instead. Booting into a live environment and using GParted to clear all the partitions on the drive didn't fix it, and after a bit of googling I learned I had to use the initramfs shell to clear the volume data for the disc directly.
+Astute readers will have figured out by now that I was using TrueNAS on the old machine and intended to continue using it on the new one. Installation went extremely smoothly, except for one small wrinkle: I had decided to take the NVMe boot SSD from the old laptop to use as storage for my game servers<sup id="n6r"><a href="#n6">6</a></sup>, and even though I had done a fresh install of TrueNAS to a pair of mirrored SATA SSDs, the NVMe one, naturally, still had TrueNAS on it. This, from what I understand, caused the OS to get stuck trying to boot because there were two ZFS pools marked as the boot pool, and it would just give up and drop me into an initramfs shell instead. Booting into a live environment and using GParted to clear all the partitions on the drive didn't fix it, and after a bit of googling I learned I had to use the initramfs shell to clear the volume data for the disc directly.
After that was cleared up and I was booting into TrueNAS, setup went off without a hitch. I imported the config I had saved from the old server and everything was instantly up and running like nothing had ever happened, and suddenly, I had a working server again.
@@ -114,13 +116,11 @@ The RAM is RAM. It's fast enough for my porpoises with or without XMP, which I l
I ended up getting those 10 gig ethernet cards, but I couldn't use them like I wanted. As it turns out, a GPU and 2 NVMe drives is all the PCIe bandwidth the B550 chipset in my main rig has to offer. My next upgrade might just be a used X570 board. I did still install one in the server, though, and since the fan on it was very loud on account of being very dying, I replaced the shambling corpse of the stock fan with a 40mm Noctua, spliced onto the original header and mounted using one of my best zip-ties:
<figure class="media">
- <div>
- <div class="gallery">
- <img src="nictua.jpg" alt="A 40mm wide, 10mm thick Noctua fan zip-tied to the heatsink on a PCIe Ethernet card.">
- <img src="ziptiemount.jpg" alt="The zip-tie is screwed into one of the original fan mounting holes on the heatsink. As in, the screw is going through the zip-tie.">
- </div>
- <figcaption style="margin-top: 0;">Yes, I attached the zip-tie to the heatsink by screwing it in. Clever, right?</figcaption>
+ <div class="gallery">
+ <img src="nictua.jpg" alt="A 40mm wide, 10mm thick Noctua fan zip-tied to the heatsink on a PCIe Ethernet card.">
+ <img src="ziptiemount.jpg" alt="The zip-tie is screwed into one of the original fan mounting holes on the heatsink. As in, the screw is going through the zip-tie.">
</div>
+ <figcaption style="margin-top: 0;">Yes, I attached the zip-tie to the heatsink by screwing it in. Clever, right?</figcaption>
</figure>
Would I recommend you follow in my footsteps? Absolutely. This thing is great. In order to make this work, I had to build a normal computer. Short of a rack-mount case and a rack in which to mount it, *this* is how you build a home server. Frankly, I was absolutely right that violently contorting my existing gaming laptop into a TrueNAS box would be cheaper than this, but I can now say with complete certainty that the savings were not worth it. This is less entertaining, sure, but I'm glad I finally did it properly. Well, at least to the greatest extent that I seem to be capable of "properly".