Upgrading a 29 year old linux install and 16 year old server
My main home linux server, called gargamel, was actually first built in 1997, with an early version of debian (slink) that did not yet support apt-get, just to say how old that was. The impressive part is that my current gargamel server (a dual core duo built back in 2008 (Intel i3 2100T dual core CPU), where I built the entire server from scratch, motherboard, case, CPU, RAM and all. Later, I was able to upgrade the CPU to a quad core (Core(TM) i7-3770 CPU @ 3.40GHz), the biggest that would fit in that motherboard, and maxed out the memory to 32GB, which was useful for a few things, including operating over 20 terabyte filesystems: some pictures of gargamel here Old pictures:
![]()
Dual PIIi Xeon with 10x SCSI drives
![]()
Then I upgraded it to 10x hot swappable Sata drives which I upgraded over time
![]()
Old motherboard with dual CPU before dual core existed, WinTV capture card and sound card
![]()
then it was time to upgrade that old board
![]()
new version with single dual core I3 2100T (so obsolete today) and later upgraded to a quad core i7-3770
That said, it was literally a 32bit debian install (upgraded many times) from 1997, so it's literally going to turn 30 years next year. 30 years without ever re-installing, and just upgrading userland and kernels on a per need basis. I could have done a full userland upgrade to 64bit, but to save myself some upgrade work, I kept most things 32bit while having a 64bit kernel and a few utilities like btrfs-tools in 64bit, as required by some kernel interfaces. So, who here has installed windows (or hell, even linux) and kept it upgraded without ever re-installing for 30 years? That said, the hardware being more than 15 years old, did a good job, but it's really old and not power efficient anymore. At the same time, after 25+ years of having big disk arrays (I had up to 26 drives spinning early on, read up here, and settled on 2 arrays of 5 drives, or 10 drives running), it was finally time to switch to solid state drives (aka flash drives). Of course, those had been around for quite a while, but I had to get enough of them at a reasonable enough price. It wasn't my original plan, but after some ebay buying, I got another 12 SSDs to supplement the 6 4TB ones I already had, and ended up with 18 4TB drives. Now, I just needed a new server :)
Attempt to upgrade gargamel with an rPi5
I figured I would go for low power server, but I got a bit too optimistic and tried a Raspberry Pi 5, split its M2 PCI bus 4 ways. On paper, I got things to work, but in real life a single lane PCI split 4 ways with a PCI switch, once it's running 3 SATA cards and 18 drives, some cheap DRAM-less ones that can hang quite a while before they ack, ended up causing PCI timeouts and resets that crashed one or more sata cards and ruined the raid arrays I tested. Now, trying an rPi5 was not entirely crazy as I successfully upgraded my 2 internet facing servers magic and moremagic to rPi5 and while I did encounter some power issues with high performance Samsung M2 PRo SSDs crashing due to lack of M2 slot power (which given that all that power comes from a tiny ribbon cable, is not very surprising), the Pi5s were otherwise pretty stable and replaced some huge power hungry (200 to 400W) obsolete dell servers. Here are the related posts:Moving from 2x 5 drive Sata Raid5s to 18 Sata SSDs
After retiring my SCSI drives (73GB and a few rare 180GB ones), I went to Sata and multiple iterations from 1TB drives, 2TB, 4TB, 6TB and 12TB for the last array. I just upgraded one array at a time when the previous array was getting too full and the drives too old:
![]()
I loved those 5 drive triple height hot swappable sata carriers
Eventually I found the RocketRAID 2720 which only supported 8 ports, but with another silicon image 3124 which supported another 4 ports, allowed me to run the 10 ports as direct connect. It did require some special expensive splitter cables, but it worked overall and wasn't terribly priced. For switching to SSDs, I knew switching to NVMEs was not going to be reasonable, first because they cost a fortune, and second because I wouldn't find a way to connect enough of them to a motherboard, so I Went to the Sata SSD route. While they are limited to 600MB/s, with 18 of them, that's still 10.8GB/s of bandwidth or 86Gbit/s, which is more than I'd be able to get from a motherboard anyway, so going to the SATA route was not terrible. I didn't need insane bandwidth, just 60TB of SSD storage at decent enough speed (faster than the hard drives they were replacing)
So, I settled with 3 Sata controllers running at PCIe 3.0 speeds, which around 1GB/s per card, only the speed of 2 SSDs shen I'd plug 6 of them in each card, but that's still 3GB/s or 18Gbit/s of combined bandwidth across 3 PCIe slots, which is plenty.
![]()
it's a bit crowded, so it's good to label the cables to know where they go
Moving from an rPi5 to a quad M2 lane N355 StoneStorm server
After losing a couple of weeks building and testing that rPi5 solution, I had to admit that it was not going to work, and even if it did, dividing a single PCI lane bandwidth by 4, only to use 9 port sata cards, diving that 4th by 9 again, would negate any performance advantage from NVME drives. I asked Google Gemini was was the next best low power solution to run all my drives, and it first suggested a N150 system. I quickly found out that N355 as a more recent and more powerful than the older N150. Once I had settled on N355, gemini recommended a few systems that had 4 NVME slots, and one of them was from CWWK ( https://cwwkpc.com ). Their StoneStorm N355 server is amazing in how much it packs in such little space. After picking it and setting it up, I did struggle with working on it and wiring, as things are very cramped and most things are hidden under the quad NVME daughter board. This is how the server is meant to be used (although I found out later, that the daugherboard would not have enough power to deal with the peak demands of PRO drives): And instead, I did this (I used 3 cards to spread out the I/O load over 3 PCI lanes, whereas on rPi5 it was a single lane split 4 ways, so that wouldn't work)
![]()
spreading the I/O load across 3 M2/PCI sata cards
![]()
one downside is the chips get warm, so I had to add a fan to keep them cool so they didn't crash
Replacing the N355 StoneStorm server quad M2 daughterboard due to its weak 3.3V Voltage Regulator and lack of amps
Despite this, I ended up with my arrays crashing, gemini helped analyse the logs and confirmed that the sata chips were crashing due to voltage sag, PCI/M2 3.3V that came from the M2 daugherboard. Turns out that the voltage regulator on that board was only good for 7A on a good day, and mine partially failed under load (having an NVME PRo drive didn't help as those take extra power) By then my system wouldn't really work anymore, I needed a new daughterboard, so I ordered one from CWWK but that meant a one week+ delay with shipping from china (by then the servers were not available on amazon 2 day shipping anymore). So I discussed this with Gemini, and it gave me enough help to find the right 3.3V Vreg I could order overnight and how to wire it on my failed board: ` The board I built only had a 5A 3.3V Vreg, I was not able to find a 10A one, but it survived until limited load while the new board arrived. When I finally got it, I found out that the new board was actually a new version with an upgraded regulator that can sustain closer to 10A at 3.3V, which was exactly what I needed. The new board even had a dual pin power input to receive a bit more 12V power from the motherboard: The main problem was that the new board design was incompatible with the metal plate I had from the old one, so I contacted CWWK to inform them that they should ship both the plate and daughterboard at the same time, and they nicely sent me the correct plate which wasn't absolutely required for things to work, but provided EMI shielding between the motherboard and the PCI/M2 slots:
![]()
the old metal plate just didn't work with the new daughterboard (see the voltage regulator hitting the plate)
Review of the rest of the CWWK StoneStorm N355
As I alluded above, this server offers a lot in a small space, it's actually amazing how much it does offer if you use all of its IO. And at the time the price was incredible, only $350 without the RAM (now the price has unfortunately increased by $200). I didn't f around this time and just maxed out the RAM from the start, 48GB DDR5 for $472, even if RAM pricing had already doubled or tripled by then. Yes, the RAM cost 20% more than the entire PC, and it's probably even worse now (actually the RAM price almost doubled since I bought it!!!)If you want to know which mini PC exactly, I found this one:
![]()
the M2 looking card in my hand is the connector/bridge for the daugherboard
![]()
so my 'fix' was this, I put paper on top of the headers so that the pressure of the daughterboard would keep them in place
![]()
it really wan't clear what COM0 was, apparently a direct connection to the CPU for debugging
![]()
turns out I did have to use COM1 (and ignore COM0)
![]()
after that, I could get the bios over serial, which made it easier to feed screens to gemini for help