8x10Gb backplane for the basement has arrived - will install this after work not interrupting school internet and such. Image
Let’s do this. ImageImage
Racked up - working on the aggregate bonds now. ImageImage
Alrighty, all configured (I kept doing it backwards after moving the controller...that's on me). 20Gb to the 24x PoE, currently 2Gb to upstairs (ready to go 20Gb), and UXG-Pro routing 10Gb through to this spine. Overall: looking good. ImageImageImage
Also wasn’t happy with front panel on the CloudKey - so routed back through the rear port and patch panel: Image
Alrighty, let's start upstairs. First up is rack, patch panel, keystone bits, and a USW-Pro-24-POE. I'm not sure if I'm going with a 8x 10Gb spine switch upstairs or the slightly larger 28x 10Gb + 4x 25Gb option (depends on availability). Still, step 1 is 2x 10Gb to basement. ImageImage
Overall: I'm converting my existing layout of some network gear, UPSes, and drives in 2 IKEA units with desktop systems on top to...a rack! That'll give me more office space overall. Here's a recent-ish pic of the current layout. Picture the right as a 15U rack instead: Image
I'll have overall less gear in the end - that second black tower will be a 2U-3U server chassis. Main desktop (new build, more to come) will be a 3U chassis most likely. 2U for switches, 1 for patch, and 2-4U for UPS down bottom (likely 1500VA + expansion battery...we'll see!)
The drives and Synology in the upper left, time capsule in the upper right, etc. will all be collapsed into that second tower replacement. Maybe a custom build with TrueNAS, maybe Synology, not sure yet. Likely a ~6-8x 12TB option for photo backup, Plex, etc. Suggestions welcome!
People keep telling me a rack in the office is too noisy, but I don't buy that!

First: racks are silent, they make no noise. Things *in* them make noise, and we're going to be paying attention to that. Lower wattage everywhere possible means less to cool and longer UPS runtime.
The rack will have soundproofing and cooling - and this will likely be my first water cooling build for the 3U server chassis for my main machine. The file/Plex/etc. server I'd like to have a GPU in for transcode offline and a lower TDP processor, basically: quiet less playing.
ImageImage
Maybe an afternoon project… Image
Alrighty, we’re back from a short rest - let’s pick this back up. Time to build the 15U rack for the office: ImageImageImageImage
First layer assembled with casters on - this is the inner rack and sound baffling: ImageImageImageImage
Vertical rails in and sides on. Note for anyone doing this: I recommend different steps ordering: swap 2 and 4 since rails easily block top screw access. ImageImageImage
Annnnnd we’ve hit a big snag. Evidently they didn’t drill holes for the hinges on one side. Or more precisely, the side positions matter and I have to disassemble it and invert the left side, blahhhhhh fuck, what a waste of time. Instructions are just the 1 sheet from earlier. ImageImage
Luckily with the vertical rails supporting, we could do some surgery without a lot of hassle…just the 2 panels. Now we’re back on track: ImageImage
Cable panel installed - cords exit through here (sound baffling has a slot in it) for minimum noise leak: ImageImage
Alrighty - hinges, doors, and locks installed. Fully assembled! Really not a bad experience other than the panel direction oops. I’m exhausted though, because it’s quite heavy overall…kids and school tomorrow, after that we’ll move stuff into it :) ImageImageImageImage
For reference, here’s the pair (2 deep) of IKEA shelves this is replacing: ImageImage
Been lazy about this - finally settled on (ordered) a UPS setup. I'm going with a PR3000RTXL2U unit (3000VA, sinewave) with a BP48VP2U02 expansion unit (+3360VA). That should be a decent amount of backup runtime for the desktop and network gear in the bottom 4U of rack space.
Well, oops. SOMEBODY (...it was me...) read input specs on the wrong UPS model the other way. A 30 amp circuit install for the office has now been added to the project - needs a NEMA L5-30P for power.
As I'm listing parts out to run a new 30 amp circuit to my office for the rack...okay, yes, the UPS I'm going with miiiiiiight be overkill. Only a little though. If we sell this house, explaining the NEMA L5-30P in a bedroom will be fun at least. ImageImage
If we ever sell this house, I've decided I'm going to advertise this as the ultimate guest bedroom. You could even hookup an RV.
"Why is there a dryer outlet in here?"
"That's not a dryer outlet, it's for an RV"
"..."
"It's a guest room"
I giggled ImageImage
First up is the battery backup expansion unit. I’m installing it on the bottom so that the plugs on the main unit are more easily accessible (being a bit higher). Rails in first: ImageImageImageImage
Unit racked - handles and faceplate to make things accessible and pretty: ImageImageImageImage
If anyone's curious - the backup unit charges itself (it'll be on a separate 20 amp circuit already in the room). This pic isn't quite right because the main unit in my case uses a NEMA L5-30P, but same connection principal: Image
Still in a hardware shortage so I’ve been really lazy, but did rack the main UPS unit this afternoon. Here is is connected up. And yes, I’ll have to address that 30 amp outlet next: ImageImageImageImage
Patch panel initial assembly. It’s not too beefy because local systems will be connecting via 10-25Gb SFP+/SFP28 cabling - this is purely for uplinks to other devices. ImageImage
Time for a 20 amp & 30 amp circuit pair for the new UPS and expansion units…and since were crawling around in the attic, another Cat 6a run to the basement. Let’s do this.

Step 1: lay out all the tools & supplies you know you’ll use so there’s no pausing to go hunting. ImageImage
In retrospect, it’s obvious I need to tear the office apart to get at where I want these outlets easily…so I guess we’re switching to the rack today too. Starting to tear tech out not required for the day: ImageImageImage
Yummy dust! *cough* Enclosed rack should help with this greatly: Image
Disassembly complete - I now have a temporary/minimal network setup so APs upstairs still have PoE. ImageImageImageImage
Please take pride in your work boys and girls. Image
Stopped to cut some boxes out - almost ready to drop the new power and cat6a runs down: ImageImageImageImage
Basement leg is done for all 3 - getting the office side drop in next. Attics suck. ImageImage
Well, shit. ImageImageImageImage
Fishing line destroyed…shoulda started with the camera… ImageImageImageImage
But, the lines are run - breaking for dinner and probably the day. I was laying in insulation for a while fighting that one, ugh. My brother-in-law was with me for the latter part of this…can’t imagine doing that one alone. Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Nick Craver

Nick Craver Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @Nick_Craver

17 Dec 20
The last 3 days is one of the longest deep dive debugs we've had in years. We finally got the culprit for some timeouts this afternoon: the compiler. It eats more CPU in a later version, not by much, but enough. Here's a segment of our build with .NET SDK 3.1.402 vs. .NET 5.0.101
Note: we've run builds on our web tier for the past decade. Why? Because they're typically at 5-10% CPU and we don't have a lot of hardware - so we used the spare capacity. Now, with Roslyn pegging all cores in that spike, it finally hurt.

Let's walk through the past few days.
Typically, our web tier is very idle, you could say it's boring. Thread pool queues sit at 0, the largest app sits at 1-4% CPU, and concurrent requests are generally sub-10 (because they're in and out fast). It looks like this (last 7 days - note the spikes the past few days):
Read 31 tweets
17 Dec 20
We're currently working on a way to dump all threads from the current app pool somewhere when an event occurs to narrow down the blocking issue. This is getting fun, processes dumping themselves.
We are definitely calling this method Dumpster.Fire();
Read 6 tweets
16 Dec 20
I explained this a few times today, and I think it's important for every dev to know: timeouts are not necessarily what they seem.

A timeout happens when an operation doesn't complete fast enough. But, what does that mean? What are the details of that check? Well...
You almost never check timeouts live, unless doing so is VERY critical and worth being a primary CPU consumer. That's very expensive. Usually, what happens is one of 2 things:
- A timeout event is queued, and if it goes off first: boom.
or:
- Timeouts are checked on an interval.
If you check timeouts "live", well...nothing's "live". It's some period of time, even if it's 1ms.

To queue a timeout with the event and you're checking both: that means another item to track and schedule, which means cost, that scales.

On an interval, you sacrifice fidelity.
Read 8 tweets
23 Oct 20
I've seen the question "what is the best gaming WiFi" several times this week.

The answer is "cat5e or higher".
Yes that's a smartass answer, but seriously: if you can at all possible: cable!

WiFi is, in most homes, a time-share based model and the weakest/lowest device still dictates some of the overall behavior. It's not the bandwidth, it's the stalls when it's other people's turn.
I've covered this before, but it's worth saying again: we represent units in seconds because that's how *humans* can reasonably compare them. Computers operate in nanoseconds. You need to break down what's inside a second, then the lower time intervals matter for your purpose.
Read 7 tweets
22 Oct 20
I am really not a fan of GitHub Actions change. A YAML file format for key value pairs and...we can't use it? Environmental variables for a build are super common, at least for me, and now all config support is tossed away:
github.blog/changelog/2020…
Okay my fault! If you're hitting this it is *not* the env: lines (I'm going to poke that this get clarified in the docs, since the only way listed is the other way). env: works fine, it's an older version of Nerdbank.GitVersioning (not that old) causing it here...upgrade to fix.
Props to @m0sa who's already hit this for pointing me at the cause...I would have hunted for a while there.
Read 4 tweets
8 Oct 20
I cannot wait to *not* maintain a build server anymore.
Building on the latest software on agents you maintain is fine when stable, and not fine when moving fast on platforms.

To canary Stack Overflow on .NET 5 I need to build on TeamCity, but it's not detecting .NET 5 right, so I need to upgrade, which means chasing a license and...
Yeah, it's yaks. I just want to run dotnet build and you think that'd be simple but no - it can't be simple. They have to do fancy detection and lots of mess.

On GitHub Actions we'll be able to just pick an SDK version to install and go anytime - a self-contained app to deploy.
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!