From 3d615f7b4c19abf34f23ff09ea587a597f2de42a Mon Sep 17 00:00:00 2001 From: Kumar Damani Date: Fri, 24 Jul 2026 00:29:08 -0400 Subject: converted to typst --- post/framework-server-p2.typ | 104 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 post/framework-server-p2.typ (limited to 'post/framework-server-p2.typ') diff --git a/post/framework-server-p2.typ b/post/framework-server-p2.typ new file mode 100644 index 0000000..e40b8e7 --- /dev/null +++ b/post/framework-server-p2.typ @@ -0,0 +1,104 @@ +#import "/global/common.typ": * + +#let doc = [ +My process of converting my Framework server back into a laptop. + +My wife needs an upgrade from her 2015 MacBook Pro, but shelling out a cool +\$1600 + tax for one of the shiny new _M_ MacBooks for the 16GB variant hardly +seems an ideal proposition now that Apple has relinquished consideration of its +customers who would prefer to amortize upgrades over the lifespan of a machine. +It seems that leaving the Mac platform is our only consumer-friendly option, +which avoids fighting a losing battle with Apple w.r.t. upgradability. + +#quote(block: true)[Framework has entered the chat.] + +Meanwhile, Framework seems to have upheld its promise of providing a path to +long-term upgradability for its products. The new Ryzen mainboards being +compatible with my original Framework 13 (2021) is an example of this. So at +this point, I'm far more inclined to commit to the Framework ecosystem for my +wife (and probably myself) than Apple. + +Other than the initial non-trivial pain of migrating her from macOS to Windows, +she should have a substantially better user-experience running all of the Adobe +crapware she wants on my old Framework. + +*The only problem is that my entire home-lab currently +#pagelink("post/framework-server")[runs on my Framework].* + +Time to go shopping! + += The Pledge + +We'll be using second-hand equipment as much as possible. After all, the point +of all this is to avoid spending \$1600 on a new laptop. So we should be well +under that to make it worthwhile. + +I picked these up from eBay: + +#fig("framework-server-p2/server-front.png", alt: "server front") +#fig("framework-server-p2/ethernet.png", alt: "ethernet adapter") + +#table( + columns: 2, + [Part], [Price (shipped)], + [HP Z240 Workstation Intel Xeon 3.4GHz 16G RAM 180G SSD Nvidia K620], [\$150], + [Mellanox ConnectX-2 PCIe x8 10Gbe SFP+ network card], [\$23], +) + +#quote(block: true)[ + My Framework currently has 32GB of memory, and while this is much less, it + will still be okay with my current utilization for my current workload. +] + +One nice thing about this case is that it would be possible to rack-mount this +workstation sideways on a standard rack shelf if I decided to go that route in +the future. + +Also, I don't presently have 10Gb networking equipment at home to plug anything +into that network card, but I'm getting it now for future-proofing. + +IPMI would have been nice-to-have, but I decided that for this price, and the +bonus of that Nvidia K620 was too good to pass up! This is an immediate upgrade +from my current integrated Iris GPU on my Framework server. + +#fig("framework-server-p2/server-inside.png", alt: "server inside") + +All of my home-lab VMs, and LXC containers run within Proxmox. So I set up a +fresh Proxmox here. + +Fortunately for me, `lspci` showed all the hardware on the first go. But to use +(pass-through) the Nvidia GPU in my guests, I need to first set up the Proxmox +host. See my git repo for what I did to make this work. + += The Turn + +To make the migration of our services _less painful_, we utilize Proxmox's +migration features. We just need to make sure our nodes are part of a cluster. + +*Create the cluster on the old node.* Then, from the new node, we *join* the +existing cluster. + +#quote(block: true)[ + Proxmox 8 will not let a node with existing guests join a cluster. +] + += The Prestige + +Now it really is as easy as selecting a VM or an LXC container, hitting the +Migrate button, and watching your guest fly away to the new node! For guests +with large OS disks, it takes a little longer to copy over since my network is +slow. Eventually, I will use Ceph-backed VM storage to make this a +zero-downtime op. + +In a few minutes, I could knock out all of my services. Refer to my gitlab +project to see how I handled the Nvidia K60 pass-through to my Nextcloud AIO +instance and Plex guests. + +Here's what my "rack" looks like now: + +#fig("framework-server-p2/current-lab.jpg", alt: "current lab") + +Once everything was back online, I powered down the old Framework server and +re-installed it back onto its laptop chassis, bought a W10 license, and +finished the rest of the installation. +] -- cgit v1.2.3