<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="https://www.rssboard.org/media-rss">
  <channel>
    <title>HomeLab on Eva Winterschon</title>
    <link>https://winterschon.gitlab.io/tags/homelab/</link>
    <description>Recent content in HomeLab on Eva Winterschon</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Some copyright notice - [my license](https://example.com/license)</copyright>
    <lastBuildDate>Mon, 02 Mar 2026 20:52:00 +0000</lastBuildDate><atom:link href="https://winterschon.gitlab.io/tags/homelab/index.xml" rel="self" type="application/rss+xml" /><icon>https://winterschon.gitlab.io/logo.svg</icon>
    
    
    <item>
      <title>Superfun Supermicro SMBUS Seriousness</title>
      <link>https://winterschon.gitlab.io/en/posts/superfun-supermicro-smbus-seriousness/</link>
      <pubDate>Mon, 02 Mar 2026 20:52:00 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/superfun-supermicro-smbus-seriousness/</guid>
      <description><![CDATA[<p>Repurposing now somewhat older system, a Supermicro X11SSM-F motherboard in a 2U chassis with Xeon E3-1285 v6 and 64GB ECC.</p>
<ul>
<li>Old role: VM box for local infrastructure analytics</li>
<li>New role: BSD router w/ CNAs for RoCE-v2 RDMA fabric.</li>
</ul>
<p>Installed for the purpose: QLogic QL41234HLCU, and&hellip;</p>
<ul>
<li>NIC #1, <a href="https://dl.dell.com/manuals/all-products/esuprt_ser_stor_net/esuprt_pedge_srvr_ethnt_nic/qlogic-adapters_user's-guide6_en-us.pdf">QLogic QL41164HLRJ,</a> 4x 10GbE BASE-T,</li>
<li>NIC #2, <a href="https://www.supermicro.com/manuals/other/datasheet-AOC-S40G-i1Q_i2Q.pdf">Supermicro AOC-S40G-I2Q</a>, 2x 40GbE QSFP+, Intel XL710</li>
<li>NIC for Nodes: <a href="https://www.marvell.com/content/dam/marvell/en/public-collateral/ethernet-adaptersandcontrollers/marvell-ethernet-adapters-fastlinq-41000-series-product-brief.pdf">Qlogic QL41234HLCU</a>, 4x 10/25GbE SFP28 w/ RDMA</li>
</ul>
<p>Great, nice upgrades. The router will have its 4x 10GbE QL41164 ports connected in 802.3ad to the switch-fabric, with two VM host nodes direct-connected using SFP28 ports on the QL41234 NIC. These systems run lightweight validation suites for Project Coherent Flash (the full cluster lives in the colo) and therefore require RDMA and RoCE networking.</p>
<p>In other connectivity areas, the XL710 based NIC is for non-RDMA traffic to the nodes via direct non-switched connection. It does not participate in the memory fabric. In this mode, each QSFP+ 40GbE port has a quad-lane breakout cable going to 4x 10GbE SFP+ connectors, and each of those (8 total) offers 2x 10GbE to each of the four nodes in an adjacent cluster.</p>
<p>Just remember, on this board there&rsquo;s a jumper to inspect and possibly flip, for reasons better described via the following nerdery.</p>
<blockquote>
<p>the X11SSM-F bridges the slot SMBus (SMCLK/SMDAT on PCIe pins B5/B6) to the board SMBus via jumpers JI2C1/2. Some PCIe cards expose an I²C device on those lines at the same addresses used by DIMM SPD EEPROMs (0x50–0x57). That creates address conflicts, which can block SPD reads, hide a DIMM, scramble IPMI sensors, or hang POST. Disabling JI2C1/2 isolates the slot SMBus and removes the conflict.</p>
</blockquote>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Storage Unlimited, Hypothetical</title>
      <link>https://winterschon.gitlab.io/en/posts/storage-unlimited-hypothetical/</link>
      <pubDate>Tue, 13 Jan 2026 01:54:04 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/storage-unlimited-hypothetical/</guid>
      <description><![CDATA[<p>Sometimes hypothetical scenarios and questions of intrigue require delving into the realm of imagination and then back to the cold-harsh reality of the physical world. Let&rsquo;s focus on a recent <strong>Hypothetical Storage Architecture Question</strong>: <em>&ldquo;If you had an unlimited budget, how much data would you store?&rdquo;</em></p>
<blockquote>
<p><strong>Adjusted Query</strong>: how much storage space would the user deploy to an existing multi-Petabyte array, with consideration to physical limitations in systems design which prioritize two common architectural decision targets: More or Faster?</p>
<p>(1) maximizing raw-block capacity<br>
(2) maximizing I/O performance</p>
</blockquote>
<h2 id="tldr">TL;DR</h2>
<p>Between 4-5PB is the simplest answer, but those are just numbers. Could be 10x either, but that&rsquo;s not realistic - it&rsquo;s conjecture. The full picture requires insight into physical limits of the transfer time, storage space, rack space, and rotational speeds involved; spacetime could be analyzed by the right minds if this were JPL <code>^_^</code> .. instead of limited to hardware I&rsquo;ve acquired over a small handful of years.</p>
<h2 id="hypothetical-or-reality">Hypothetical or Reality</h2>
<p>Let&rsquo;s say that I contacted the datacenter and ordered additional power circuits to light-up additional drive shelves, which are already installed <em>(minus the box of drive trays which are in a massive box on a parts shelf in my home office)</em>. Ok, reality checks out there.</p>
<p>The circuit drops would go to the central storage rack which is currently at 84% power limit. I know this because power is monitored and validated via a combination of Check_MK + Prometheus + SNMP exporters, which poll power stats remotely from the cabinet&rsquo;s APC ATS, the rack&rsquo;s per-port metered and switched outlet PDUs, and then if I really want to I can look at the DC&rsquo;s circuit stats (via MRTG) which are tracked for the cabinet. Reality checks out there decently enough. Moving on&hellip;</p>
<hr>
<h2 id="the-hypothetical">The Hypothetical</h2>
<p>First we&rsquo;ll cover some raw numbers and theoretical maximums by looking at two high-level approaches required for <em>&ldquo;More or Faster&rdquo;</em>.</p>
<p>The astute reader may wonder why we&rsquo;re not discussing &gt;100TB QLC NVMe drives or ultra-dense E2 ruler-style 2U chassis, and the answer is that those calculations are generally similar in equation workflow <em>(eg: how many things of X can we put into Y at A,B,C performance/size/latency)</em>, however those hardware types are not currently racked in my real-world systems at an interesting scale. However, migrating to denser NVMe arrangements will likely be part of an eventual down-scaling forklift operation whenever the SAS3 arrays are no longer useful for my personal labs or colo bills.</p>
<p>Production is another story, where large format SAS3 is still relevant and being deployed and improved over time; in the last several years we&rsquo;re seen drive capacity double, along with some innovative designs. It&rsquo;s not often considered exciting, but it lasts A LONG TIME, and the NSA loves archiving the internet on this medium over in their Utah storage complex <em>(overheard, surely).</em></p>
<p>So, back to the math&hellip;</p>
<h4 id="decision-optimize-for-faster-prioritize-iops--bw">Decision: Optimize for Faster (prioritize IOPs + bw)</h4>
<p>Aggregate per-rack w/ 10x shelves of raw 4K block <code>= 3,824 TB == 3.72 PB</code></p>
<table>
  <thead>
      <tr>
          <th>Shelves</th>
          <th>SAS3 Drives</th>
          <th>Brand</th>
          <th>Model</th>
          <th>Total</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>8x DE3-24P</td>
          <td>192</td>
          <td>Seagate</td>
          <td>EXOS Mach2 @ 18TB</td>
          <td>= 3,456 TB</td>
      </tr>
      <tr>
          <td>2x DE3-24C</td>
          <td>48</td>
          <td>Oracle</td>
          <td>SSD @ 7.68TB/drive</td>
          <td>= 368 TB</td>
      </tr>
      <tr>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td>== 3,824 TB</td>
      </tr>
  </tbody>
</table>
<h4 id="decision-optimize-for-raw-storage-capacity">Decision: Optimize for RAW Storage Capacity</h4>
<p>How about the same hardware focused on max-total raw space with less regard to per-drive IOPs <em>(perhaps we offset the latency reduction per-drive via larger</em> <a href="https://github.com/openzfs/zfs/blob/master/module/zfs/arc.c"><em>L1ARC and L2ARC</em></a> <em>buffers on the head-nodes, which becomes a loaded tangent)</em>&hellip; then the rack could be upgraded to host <strong>4.85PB @ $800/m MRC ($400/m cabinet + $400/m amperage)</strong>**.</p>
<p>We&rsquo;ll also save the conversation about concessions made at time of contract signing where I might / maybe / surely have saved on recurring costs by locking-in a multi-year multi-rack contract. Sales team, thanks!</p>
<h4 id="what-is-this-mrc-mrr">What is this MRC, MRR?</h4>
<p>MRC in this situation is the <strong>&lsquo;Monthly Recurring Cost&rsquo;</strong> for power + rack. This value does not include the cost of acquired hardware, which is variable on supply-chain sourcing and other factors. I&rsquo;m also not going to describe potential MRC or MRR offsets which factor into profit margin potential and/or influence EBITDA.</p>
<p>Ok, what is MRR and EBID..? Fine, at least with MRR it&rsquo;s <strong>&lsquo;Monthly Recurring Revenue&rsquo;</strong>, and one can read <a href="https://www.investopedia.com/terms/e/ebitda.asp">all about EBITDA elsewhere</a>.</p>
<table>
  <thead>
      <tr>
          <th>Shelves</th>
          <th>SAS3 Drives</th>
          <th>Brand</th>
          <th>Model</th>
          <th>Total</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>8x DE3-24P</td>
          <td>192</td>
          <td>Seagate</td>
          <td>EXOS X30 @ 24TB</td>
          <td>= 4,608 TB</td>
      </tr>
      <tr>
          <td>2x DE3-24C</td>
          <td>48</td>
          <td>Oracle</td>
          <td>SSD @ 7.68TB/drive</td>
          <td>= 368 TB</td>
      </tr>
      <tr>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td>== 4,976 TB</td>
      </tr>
  </tbody>
</table>
<h4 id="what-about-flash-cache-or-optane-or-non-volatile-blah-blah-blah">What about Flash-Cache or Optane or Non-Volatile blah blah blah</h4>
<p>Sure, those are considerations, where applicable. Some footnote notes&hellip;</p>
<ul>
<li>It&rsquo;s prudent to deploy storage controllers with SLC NVMe or PMem/NVDIMM persistent cache <em>(which are often a baseline performance requirement)</em>. These are sized anywhere from cumulative 1-12TB per-controller, depending on available PCIe lanes and/or NV-DIMM slots.</li>
<li>It&rsquo;s a good idea to make scoping decisions like that ahead of time, instead of later realizing that the controllers&rsquo; lanes are maxed out or all DIMM slots are used (or you bought 128GB NVDIMMs instead of 512GB, thinking <em>&ldquo;8x 128GB should be fine for PMem&rdquo;</em> or the other fun one about ignoring (or being unaware) about GHz speed reduction by running <a href="https://lenovopress.lenovo.com/lp2000-balanced-memory-configurations-4th-5th-gen-2s-intel-processors#maximizing-memory-bandwidth">4-DPC in a 2-DPC</a> max-perf system.</li>
<li>Those determinations may be either workload dependent, or in my personal life sometimes it qualifies as the <em>&ldquo;because I wanted to&rdquo;</em> type of maximalist methodology, or the <em>&ldquo;this is relevant for future proofing my own rationalization on fun hardware&rdquo;</em>, or could be considered a baseline in pre-sales because <em>&ldquo;they always want more performance eventually; just bake it in from the start&rdquo;.</em> It varies, but remember where you started and where any future requirements for performance headroom exists.</li>
</ul>
<hr>
<h2 id="wheres-the-math">Where&rsquo;s the Math?</h2>
<p>Validation on spec baselines can be tedious, but anyway&hellip; the <a href="https://docs.oracle.com/en/storage/zfs-storage/zfs-appliance/os8-8-x/service-manual/oracle-storage-drive-enclosure-de3-24.html">DE3-24C and DE3-24P</a> have very shiny and well made <a href="https://docs.oracle.com/en/storage/zfs-storage/zfs-appliance/os8-8-x/cabling-guide/cabling-tables-and-diagrams-for-oracle-zfs-storage-appliance-racked-system-zs11-2-capacity-configurations.html">Dual-Redundant IOMs with 4x SAS3 SFF-8643</a> connectors.</p>
<h3 id="specs-for-our-sas3-fabric-with-de3-24-shelves">Specs for our SAS3 Fabric with DE3-24 Shelves</h3>
<ul>
<li>One SAS-3 lane (PHY): 12 Gbit/s ⇒ 1.5 GB/s (raw line-rate, decimal GB)</li>
<li>External SAS x4 port connector: 4 PHY × 12 Gbit/s ⇒ 48 Gbit/s ⇒ 6 GB/s</li>
<li>Each DE3-24{C/P} has 2× IOM, with each IOM having 4× SFF-8643 ports</li>
</ul>
<table>
  <thead>
      <tr>
          <th>Item</th>
          <th>Value</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>SAS-3 lane rate</td>
          <td>12 Gbit/s</td>
          <td>per PHY</td>
      </tr>
      <tr>
          <td>1 PHY raw</td>
          <td>1.5 GB/s</td>
          <td>12/8</td>
      </tr>
      <tr>
          <td>1 x4 port raw</td>
          <td>6 GB/s</td>
          <td>4 PHY × 1.5</td>
      </tr>
      <tr>
          <td>Shelf fabric cap</td>
          <td>12N GB/s</td>
          <td>dual-IOM</td>
      </tr>
      <tr>
          <td>10-shelf fabric cap</td>
          <td>120N GB/s</td>
          <td>10 shelves</td>
      </tr>
  </tbody>
</table>
<table>
  <thead>
      <tr>
          <th>N active x4 ports per IOM</th>
          <th>Per-shelf fabric cap (GB/s)</th>
          <th>10-shelf fabric cap (GB/s)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>12</td>
          <td>120</td>
      </tr>
      <tr>
          <td>2</td>
          <td>24</td>
          <td>240</td>
      </tr>
      <tr>
          <td><strong>3 (N+1 on 4-port IOM)</strong></td>
          <td><strong>36</strong></td>
          <td><strong>360</strong></td>
      </tr>
      <tr>
          <td>4 (no spare)</td>
          <td>48</td>
          <td>480</td>
      </tr>
  </tbody>
</table>
<h4 id="drive-specs---seagate-exos--oracle-ssd">Drive Specs - Seagate EXOS &amp; Oracle SSD</h4>
<table>
  <thead>
      <tr>
          <th>Drive</th>
          <th>Metric</th>
          <th>Value</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Seagate Exos ST24000NM007H (24TB HDD)</td>
          <td>Max sustained OD (MB/s)</td>
          <td><strong>285</strong></td>
      </tr>
      <tr>
          <td>Seagate Exos Mach.2 ST18000NM0272 (18TB HDD)</td>
          <td>Max sustained OD (MB/s)</td>
          <td><strong>554</strong></td>
      </tr>
      <tr>
          <td>Mach.2 ST18000NM0272</td>
          <td>4K random @ QD16 (IOPS)</td>
          <td><strong>304 read / 560 write</strong></td>
      </tr>
      <tr>
          <td>Oracle 7.68TB RI SAS-3 SSD</td>
          <td>Seq (MB/s)</td>
          <td><strong>2150 read / 1980 write</strong></td>
      </tr>
      <tr>
          <td>Oracle 7.68TB RI SAS-3 SSD</td>
          <td>4K random (IOPS)</td>
          <td><strong>450k read / 95k write</strong></td>
      </tr>
  </tbody>
</table>
<h2 id="scenario-a--maximum-raw-block-space">Scenario A – Maximum RAW Block Space</h2>
<p>Before going into the theoretical weeds, let&rsquo;s look at some per-shelf media limits.</p>
<p><strong>1) Oracle DE3-24P shelf w/ 24TB</strong> Spinners**:** 24 × 285 MB/s = <strong>6.84 GB/s</strong> (media-limited)</p>
<p><strong>2) Oracle DE3-24C shelf</strong> w/ SSDs:</p>
<ul>
<li>Read: 24 × 2150 MB/s = <strong>51.60 GB/s</strong> → <strong>capped by fabric</strong> at <strong>36 GB/s</strong> (N=3)</li>
<li>Write: 24 × 1980 MB/s = <strong>47.52 GB/s</strong> → <strong>capped by fabric</strong> at <strong>36 GB/s</strong> (N=3)</li>
</ul>
<table>
  <thead>
      <tr>
          <th>Tier</th>
          <th>Shelves</th>
          <th>Per-shelf effective (GB/s)</th>
          <th>Tier aggregate (GB/s)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>DE3-24P (24× 24TB HDD)</td>
          <td>8</td>
          <td>6.84</td>
          <td>54.72</td>
      </tr>
      <tr>
          <td>DE3-24C (24× 7.68TB SSD)</td>
          <td>2</td>
          <td><strong>36.00</strong> (fabric-capped)</td>
          <td><strong>72.00</strong></td>
      </tr>
      <tr>
          <td><strong>Total (10 shelves)</strong></td>
          <td>10</td>
          <td>—</td>
          <td><strong>126.72</strong></td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="scenario-b-maximum-performance">Scenario B: Maximum Performance</h2>
<p>Hardware has limits, and we&rsquo;re looking at 8× DE3-24P w/ 18TB Mach.2 HDD + 2× DE3-24C w/ 7.68TB SSD (N=3)</p>
<h3 id="aggregate-sequential-bandwidth-n3">Aggregate sequential bandwidth (N=3)</h3>
<ul>
<li><strong>Mach.2 18TB HDD shelf</strong>: 24 × 554 MB/s = <strong>13.296 GB/s</strong> (media-limited; below 36 GB/s fabric cap)</li>
<li><strong>SSD shelf</strong>: remains <strong>fabric-capped</strong> at <strong>36 GB/s</strong> read and write (N=3)</li>
</ul>
<table>
  <thead>
      <tr>
          <th>Tier</th>
          <th>Shelves</th>
          <th>Per-shelf effective (GB/s)</th>
          <th>Tier aggregate (GB/s)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>DE3-24P (24× Mach.2 HDD)</td>
          <td>8</td>
          <td>13.296</td>
          <td>106.368</td>
      </tr>
      <tr>
          <td>DE3-24C (24× 7.68TB SSD)</td>
          <td>2</td>
          <td><strong>36.000</strong> (fabric-capped)</td>
          <td><strong>72.000</strong></td>
      </tr>
      <tr>
          <td><strong>Total (10 shelves)</strong></td>
          <td>10</td>
          <td>—</td>
          <td><strong>178.368</strong></td>
      </tr>
  </tbody>
</table>
<h3 id="aggregate-random-rw-4k-iops-n3">Aggregate Random R/W 4K IOPS (N=3)</h3>
<p><strong>Fabric-derived 4K IOPS cap per shelf (upper bound)</strong>:<br>
36 GB/s @ 4KB = approx 8.79M IOPS</p>
<ul>
<li><strong>SSD shelf</strong>
<ul>
<li>Read: 24 × 450k = 10.8M IOPs → <strong>capped</strong> to <strong>8.79M IOPs</strong></li>
<li>Write: 24 × 95k = <strong>2.28M IOPs</strong> → <strong>media-limited</strong> (below fabric cap)</li>
</ul>
</li>
<li><strong>Mach.2 HDD shelf (4K @ QD16)</strong>
<ul>
<li>Read: 24 × 304 = <strong>7,296 IOPs</strong></li>
<li>Write: 24 × 560 = <strong>13,440 IOPs</strong></li>
</ul>
</li>
</ul>
<table>
  <thead>
      <tr>
          <th>Tier</th>
          <th>Aggregate Read IOPs</th>
          <th>Aggregate Write IOPs</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>8× DE3-24P (Mach.2 HDD shelves)</td>
          <td>58,368</td>
          <td>107,520</td>
      </tr>
      <tr>
          <td>2× DE3-24C (SSD shelves)</td>
          <td><strong>17,580,000</strong></td>
          <td><strong>4,560,000</strong></td>
      </tr>
      <tr>
          <td><strong>Total (10 shelves)</strong></td>
          <td><strong>17,638,368</strong></td>
          <td><strong>4,667,520</strong></td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="lets-see-the-deltas">Let&rsquo;s See the Deltas!</h2>
<p>What&rsquo;s <em>&ldquo;a delta&rdquo;</em>? Sometimes it&rsquo;s the headwaters of a bay, where the river distributes across a flood-plane into many separately-unified channels, eventually giving way to deeper waters and&hellip;. no no not that kind.</p>
<p>Delta as a value in storage is often used as a marker to show the differential of two functions which indicates directional change. At least, that&rsquo;s what comes from my brain while I sit here having an ice cream sandwich, but it has some alternate terminology which applies irrespective of ice cream hour:</p>
<blockquote>
<p>Delta uppercase Δ, lowercase δ<br>
Uppercase: a change of any changeable quantity<br>
Lowercase: the central difference for a function</p>
<p>~ The discriminant of a polynomial equation or symmetric difference of two sets<br>
~ The determinant of the matrix of coefficients of a set of linear equations</p>
</blockquote>
<h3 id="scenario-b-vs-scenario-a-with-n3">Scenario B vs Scenario A (with N=3)</h3>
<ul>
<li><strong>Total sequential BW</strong>: <strong>126.72 → 178.368 GB/s</strong> (increase <strong>+51.648 GB/s</strong>)
<ul>
<li>Primary determinant: per-shelf BW <strong>6.84 → 13.296 GB/s</strong> (Mach.2 dual-actuator).</li>
</ul>
</li>
<li><strong>SSD tier</strong> remains <strong>fabric-capped</strong> at <strong>36 GB/s per SSD shelf</strong> under N=3; increasing N (or adding more independent uplinks with additional HBAs) is what changes that cap.</li>
</ul>
<ol>
<li>Faster array = <strong>less space @ higher IOPs and BW</strong> == 178 GB/s @ 3.8PB</li>
<li>Larger array = <strong>more space @ lower IOPs and BW</strong> == 126 GB/s @ 4.9PB</li>
</ol>
<p>Equations w/ decimal units: 1 TB = 1000 GB</p>
<ul>
<li>jaja usually we work in 1024 (but I&rsquo;m tired today, so not right now)</li>
</ul>
<pre tabindex="0"><code>t_1TB(s)      = 1000 / BW_GBps
t_full(s)     = (Capacity_TB * 1000) / BW_GBps
t_full(hours) = t_full(s) / 3600
BW_density    = BW_GBps / Capacity_TB   (GB/s per TB)
              = 1000 * BW_density       (MB/s per TB)
</code></pre><table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Faster array</th>
          <th>Larger array</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Bandwidth (GB/s)</td>
          <td>178</td>
          <td>126</td>
      </tr>
      <tr>
          <td>Capacity (TB)</td>
          <td>3824</td>
          <td>4976</td>
      </tr>
      <tr>
          <td>Time per 1 TB (s)</td>
          <td>5.62</td>
          <td>7.94</td>
      </tr>
      <tr>
          <td>Full sweep time (h)</td>
          <td>5.97</td>
          <td>10.97</td>
      </tr>
      <tr>
          <td>BW density (GB/s per TB)</td>
          <td>0.04655</td>
          <td>0.02532</td>
      </tr>
      <tr>
          <td>BW density (MB/s per TB)</td>
          <td>46.55</td>
          <td>25.32</td>
      </tr>
      <tr>
          <td>Density ratio (faster/larger)</td>
          <td>1.84×</td>
          <td>—</td>
      </tr>
  </tbody>
</table>
<h2 id="so-whats-the-answer-more-faster">So&hellip; what&rsquo;s the answer? More, Faster?</h2>
<p>Is bigger is better? Sometimes. Sometimes you need it faster. Sometimes you want both.</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>My EOY-2025 as told by the Ai</title>
      <link>https://winterschon.gitlab.io/en/posts/my-eoy-2025-as-told-by-the-ai/</link>
      <pubDate>Thu, 01 Jan 2026 20:58:01 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/my-eoy-2025-as-told-by-the-ai/</guid>
      <description><![CDATA[<p>I&rsquo;ll keep this simple, relatively speaking. There are a lot of inference providers on the market and most of them are either a waste of time, a waste of money, or wasteful in their resource burn and lack of attention to optimization. We do not have time to waste.</p>
<p>People in the industry are playing hard and fast, and whether those qualities may be considered a good thing is up for endless debate, but not right now. Right now I&rsquo;m going to show some End of Year snapshots which are relevant to the blog&rsquo;s purpose: wtf am I doing here anyway?</p>
<p>2025 was mostly extremely challenging, and mostly in helpful ways, but also featured a repetition of lessons which it seems I need to reflect on for additional forward momentum.</p>
<p>Let&rsquo;s take a look at some of my core qualities as told by the oft-loved and oft-maligned OpenAi&rsquo;s Chat-GPT 💟.</p>
<hr>
<h3 id="your-year-painted-in-pixels">Your Year, Painted in Pixels</h3>
<p>Very close, nice work GPT. While I do not have a 400GbE switch on my desk, I do have a few 100GbE 32-port switches in the racks, and occasionally 200GbE NICs and optics will float around the test bench.</p>
<p><img src="/content/images/2026/01/GPT-00-EOY2025-1222-153913-2-1.png" alt=""></p>
<hr>
<h3 id="the-architect-archetype--39-of-chatgpt-users">The Architect Archetype ~ 3.9% of ChatGPT Users</h3>
<p>It&rsquo;s true! Over the 25 years of this career I&rsquo;ve held architecture specific roles across the domains of Hardware Systems, Infrastructure Automation, Databases, and HPC Storage realms. It&rsquo;s what I&rsquo;ve always wanted to do, going all the way back to 1985 when introduced to the 4.77MHz IBM PC, Model 5150.</p>
<p><img src="/content/images/2026/01/GPT-01-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="personality-specialist-planner-conceptual">Personality: Specialist, Planner, Conceptual</h3>
<p>That&rsquo;s fairly accurate, more so if we add &ldquo;spatial reasoning&rdquo; to a list of cognitive methods.</p>
<blockquote>
<p>&ldquo;Thinks in structures and systems. Uses ChatGPT to design elegant frameworks and long-term strategies within a domain.&rdquo;</p>
</blockquote>
<p><img src="/content/images/2026/01/GPT-02-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="a-datacenter-in-the-living-room">A Datacenter in the Living Room?</h3>
<p>Close in accuracy, however the <em>&ldquo;living room datacenter&rdquo;</em> is more commonly located in a home-office room <em>(when living in an apartment),</em> or in a dedicated area of the garage with HVAC filtration + dedicated 208/220/240V power, and the requisite automated cooling systems <em>(usually Tripp-Lite units with duct-blowers).</em> For systems at home the machines are often bought as separate server components along with a 4-5U chassis + rails + multiple sub-50 decibel large-format 120-180mm fans. Systems with high RPM 40-80mm axial screamers belong in a proper colocation facility.</p>
<p><img src="/content/images/2026/01/GPT-03-EOY2025-1222-153913-1.png" alt=""></p>
<h4 id="how-about-that-homelab---is-it-in-a-constant-state-of-flux">How about that Homelab - is it in a constant state of flux?</h4>
<p>Yes, mostly. It&rsquo;s often helpful for proof of concept tests, hypothesis validation, and running benchmarks without having to drive to the DC or go back and forth with Remote Hands requests. Plus, lots of fun going on with hardware at home, but sometimes results in broken nails 😔.</p>
<p><img src="/content/images/2026/01/GPT-DC-EOY2025-1025-00.png" alt=""></p>
<p>Messy cables? Sometimes. Labels? Sometimes.</p>
<p><img src="/content/images/2026/01/GPT-DC-EOY2025-1215-01.jpg" alt=""></p>
<p>The homelab is often rebuilt: storage devices, fiber, dac, cables, and test clusters revised.</p>
<h5 id="homelab-sure-but-how-about-those-colocation-photos-instead">Homelab, sure&hellip; but how about those colocation photos instead?</h5>
<p>As we&rsquo;ve seen, some of the server hardware lives at home in my 25U shorty-racks, some is <a href="https://he.net">across the bay at a datacenter</a> where big-loud machines require CRAC style cooling, and some of it is spread across the globe at other colocation facilities where The Providers have megawatt and gigawatt infra capacity. My personal infrastructure is a hybrid design, utilizing everything from embedded systems to multi-GPU hosts to public-cloud virtual machines&hellip; so, let&rsquo;s see a bit more&hellip;</p>
<ul>
<li>Recent datacenter photos: <a href="https://prose.winterschon.com/a-recent-datacenter-colo-visit/">https://prose.winterschon.com/a-recent-datacenter-colo-visit/</a></li>
</ul>
<hr>
<h3 id="your-chat-style">Your Chat Style</h3>
<p>The analysis says&hellip; well, it&rsquo;s fairly accurate for a description of being in-person as well as at the keyboard during remote meetings or daily chats.</p>
<p>Technical or otherwise, usually this is consistent. I&rsquo;m often chatty, verbose, attentive, talkative, opinionated, even positively bubbly at times. Unless you catch me on a day where those qualities are supplanted by the clouds of quietly recalcitrant moods - the type which are grounded on a dualistic view of existence best described as Stoicistic-Nihilism, having been sourced from far too many post-traumatic stress events endured.</p>
<blockquote>
<p>Your Chat Style: Direct, technically precise, often layered with humor and a critical edge, mixing structured reasoning with conversational spontaneity and sharp observational wit.</p>
</blockquote>
<p><img src="/content/images/2026/01/GPT-04-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="your-2025-chat-stats">Your 2025 Chat Stats</h3>
<p>Hold on now. I&rsquo;ve used em dashes since 6th grade English class—so if seeing those in my writings is giving an impression that I use LLMs for all of my authoring is quite incorrect. For all of <a href="https://www.theringer.com/2025/08/20/pop-culture/em-dash-use-ai-artificial-intelligence-chatgpt-google-gemini">those people who don&rsquo;t like them</a> I have a solution: go to the settings section and set your rules and move on with your life. 😏</p>
<ul>
<li><strong>Total Chats</strong>: 720</li>
<li><strong>Messages sent</strong>: 4,861 (not tokens, messages)</li>
<li><strong>Chattiest day</strong>: September 5th (why? we&rsquo;ll need to see&hellip;)</li>
<li><strong>Images generated</strong>: 3 (Sora kinda sucks)</li>
<li><strong>Em-Dashes &ldquo;Exchanged&rdquo;</strong>: 1,882</li>
<li><strong>Top Messages Sent</strong>: 1% (percentile)</li>
</ul>
<p>Regardless of those stats, even with my use of ChatGPT&rsquo;s advancements with their &ldquo;Pro Account&rdquo;, most of my Ai/ML occurs on self-made infrastructure. I don&rsquo;t rely on closed source, I don&rsquo;t like closed source, and I don&rsquo;t like non-democratized intelligence services that are just in it for profit. My career was built on Open Source and this current infra uses tooling like Ollama, Open-WebUI, vLLM, llama.cpp, CUDA, PyTorch, ROCm, and many other examples of collaborative ingenuity - free to use, free to improve, so please contribute if you can.</p>
<p><img src="/content/images/2026/01/GPT-05-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="three-big-themes-of-2025">Three Big Themes of 2025</h3>
<ol>
<li><strong>Building Ultra-Low-Latency Systems</strong> (true)</li>
<li><strong>Experimenting, Measuring, Refining</strong> (true)</li>
<li><strong>Engineering Meets Everyday Life</strong> (true)</li>
</ol>
<p><img src="/content/images/2026/01/GPT-06-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h2 id="thoughts-on-2026-ai-industry-trends--rules">Thoughts on 2026, Ai Industry Trends != Rules</h2>
<p>Working in the Ai/HPC/ML industry, an observable fact is that the majority of consumer-facing Ai companies are still trying to figure out this new landscape, how it works, why anyone should care, and how to monetize whatever it is that they&rsquo;re focused on.</p>
<p>Most will repeat the errors of the past, most will fail, most will malign the tech while misunderstanding nearly everything about the topic; and that&rsquo;s fine. That&rsquo;s the routine in Silicon Valley, but it doesn&rsquo;t have to be.</p>
<ol>
<li><a href="https://cansel-soergens.com/2022/08/01/okr-for-complex-problems/">We cannot solve today&rsquo;s problems with yesterday&rsquo;s methods</a>, and that is a simple fact. We need the core technologies involved with Ai in order to resolve the massive amount of tech debt from earlier generations, but we need to stop expecting the same success from the same methods from the past; this is not the same world as 10, 20, or even 5 years ago.</li>
<li>The current anti-Ai mentality in mass-media is occurring despite companies like IBM, Cray, Fujitsu, BullSequana, and a handful of others with <a href="https://top500.org/lists/top500/2025/11/highs/">Top-500 dominant postures</a> being focused on Ai-enabled Supercomputing, HPC, and acceleration hardware domains for well over two decades. These clusters have been active at research facilities with names like <a href="https://home.cern/news/press-release/cern/cern-leads-new-european-community-initiative-supercomputing">CERN</a>, <a href="https://ats.org/our-impact/rosman-center-fuels-technion-supercomputing/">Technion</a>, and of course the DoD and Military labs. These clusters keep us safe, they advance human understanding, assist with solving otherwise unsolvable problems, and are used to maintain the systems and functions our current world relies on for security and the advancement of human potential.</li>
<li>Ai is not just chatbots, it&rsquo;s not limited to multi-modal agentic buzz-words, but that&rsquo;s a tangent for another day. Datacenters are not ruining the world like mass-destruction of rainforests just so people can eat more cows. Conversely, we have an entire section of the Supercomputing industry <a href="https://top500.org/lists/green500/">focused on green energy and resource efficiency</a>. Medical advancements, brain research, climate science and modeling, cancer research, etc&hellip; all of this is and has been advanced by Ai - but it&rsquo;s not from the consumer side and it&rsquo;s not how the media presents the information. Gosh, I wonder what incentive the media has to engage in such maligning tactics?</li>
</ol>
<h3 id="how-do-we-move-forward">How Do We Move Forward?</h3>
<p>In spite of or despite anti-Ai sentiments, while the public-facing corporate marketing landscape fights for <em>&ldquo;Consumer Economy Dominance&rdquo;</em>, engineers and architects like myself are busy in the background innovating with <em>(sometimes our own)</em> Ai/ML systems and <em>(sometimes our own RSU/ISO/BST* funded)</em> heavy-compute big-data storage infrastructures.</p>
<p>People like myself do this because we love it <em>(mostly, nothing is perfect)</em>, and because we want to improve the lives of those around us, not to simply make money and acquire material goods. These skills require compromise, dedication, attention to detail, and a deeply held desire to improve the human condition through personal investment of time, mentoring younger engineers, and the occasional runway.</p>
<h4 id="together-with-the-ais-we-will-build-a-better-ultron">TOGETHER WITH THE AIs WE WILL BUILD A BETTER ULTRON</h4>
<p>Kidding, mostly. <a href="https://marvel.fandom.com/wiki/Ultron_(Earth-616)">Ultron</a> had some good philosophical points, but we&rsquo;re not in Strawberry Fields or the BS about paperclips from unimaginative and uninformed bloggers; this is real life and The Terminator is not around the corner. Pass the espresso and let&rsquo;s check the local-node TTFT and CHRs to see how SkyNet is doing. ❤️</p>
<hr>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>A Recent Datacenter Colo Visit</title>
      <link>https://winterschon.gitlab.io/en/posts/a-recent-datacenter-colo-visit/</link>
      <pubDate>Sat, 06 Dec 2025 06:06:59 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/a-recent-datacenter-colo-visit/</guid>
      <description><![CDATA[<p>A short post with annotated photos should be sufficient for this post. Perhaps more detail later, but the short version is that just about everything in racks 1,2,3 – aka Cab.68, 69, 70 – is going to be mostly upgraded. My hardware has been here for several years and it needs a refresh.</p>
<p>So, where to begin&hellip; let&rsquo;s see&hellip; we start with the <a href="https://www.raptorcs.com/TALOSII/">POWER9</a> at home on my desk, and me looking a wreck in the morning&hellip;</p>
<p><img src="/content/images/2025/12/IMG_20251203_161129_750_960px-1.png" alt=""></p>
<hr>
<p>Where is this wonderful place that brings me so much joy? <a href="https://he.net">Hurricane Electric</a> of course.</p>
<blockquote>
<p>For Silicon Valley datacenter nerds, Hurricane Electric’s Fremont and San Jose facilities are the spiritual home of budget-friendly colo: cabinet and partial-cabinet plans with same-day turn-up, straightforward BGP, and native v6 on a backbone that’s been aggressively peering since the early 2000s, making it a historically significant and still notably affordable place to park gear in the Bay Area.</p>
</blockquote>
<p>And as such&hellip; it&rsquo;s where most of my gear resides. What was once a HomeLab at home has become a situation of _&ldquo;let&rsquo;s move everything into the colo and tell PG$E to suck it on their $300-600/month apartment electric bills <em>(which is physically impossible, they&rsquo;re a proven CA Governor sponsored monopoly)</em>.</p>
<h3 id="tools-and-so-forth">Tools and So Forth</h3>
<p>How about a photo of my lovely <a href="https://www.wera.de/en/tools/highlights-great-tools/textile-boxes/">Wera designed Datacenter tool bag</a>? Yes! It&rsquo;s rugged and strong and doesn&rsquo;t distort with heavy items. Love it. At the top of the photo is whichever purse happened to be brought along that day; Kors or Burbs or Coach or whichever fit size requirements at the time.</p>
<p>Not shown: a squared-rasp-file occasionally required for <em>&ldquo;standardizing&rdquo;</em> the rail mounting holes in those old-ass blue racks. My right hand still has scars from years ago - before owning that rasp to fix the burrs.</p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-19_10.png" alt=""></p>
<hr>
<h3 id="always-getting-injured-but-thats-ok">Always Getting Injured, but that&rsquo;s OK.</h3>
<p>Now, about those old scars - there are surely new ones periodically. While getting ready for the colo, just standing at the sink with some sheers, cutting&hellip; cutting&hellip; and ohffs that&rsquo;s my finger. Yep, it&rsquo;s definitely deep! Apply pressure! Wrap it tight! Not too tight though&hellip; and what was at my disposal? Paper medical tape and clear plastic industrial packing tape.</p>
<p>FINE. It&rsquo;s FINE. The bleeding mostly stopped, and off we go to the datacenter!</p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-15_4-1.png" alt=""></p>
<p>done cut my self real bad</p>
<hr>
<h3 id="networking-servers-drives-dpus-and-all-the-other-fun">Networking, Servers, Drives, DPUs, and all the other fun!</h3>
<p>Ok, enough rambling. Here&rsquo;s a photo gallery with annotated pics. Each rack has some major revisions to undergo, which requires planning and documentation updates and all the usual production readiness routines.</p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-16_5.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-16_6.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-17_7.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-18_8.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-18_9.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-19_11.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-20_12.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-21_13.png" alt=""></p>
<hr>
<h3 id="more-hardware---more-arm64">More Hardware - More ARM64!</h3>
<p>Now you may wonder, where is all of my ARM64 equipment and the other clusters? Those are still in the 2x 25U racks at home – they&rsquo;ll be migrated to the colo as well, once I convert them to use industrial Compact-PCI chassis blade mounts with integrated/redundant power and backplane. I bring you&hellip; the <em>ADLINK cPCIS-2632R 3U Compact PCI chassis.</em></p>
<p><img src="/content/images/2025/12/ADLINK-cPCIS-2632R-CompactPCI.webp" alt=""></p>
<p>Industrial ADLINK cPCIS-2632R CompactPCI</p>
<hr>
<h3 id="sata3-really">SATA3&hellip; Really?</h3>
<p>And we wrap up the day&rsquo;s fun with&hellip; decisions on what to do with these SATA3 SSDs recovered from some old R420 systems&hellip; perhaps the LC922 boxes can use those + some 240GB Intel or Samsung boot drives. These days I never bother with SATA, only SAS or NVMe. <em>HoHumBoringSataSoSlow.</em></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-14_2.png" alt=""></p>
<hr>
<h3 id="a-tale-of-two-labs---one-is-real-the-other">A Tale of Two Labs - One is Real, The Other&hellip;</h3>
<p>I love having my own hardware for my own labs. I love not having to rely on a corporation over-promising on lab resources for the architecture design process – real physical hardware which is absolutely required for <em><strong>&ldquo;Proof of Concept Engineering&rdquo;</strong></em>.</p>
<p>As a wise-one once related, not everything can be a <em>Power Point Presentation.</em> Engineers need physical hardware for validation workflows, otherwise it&rsquo;s all just vaporware.</p>
<p>🙉 🙈 🙊</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>DPU Cabling and Rack Elevations</title>
      <link>https://winterschon.gitlab.io/en/posts/dpu-cabling-and-rack-elevations/</link>
      <pubDate>Sat, 11 Oct 2025 18:32:15 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/dpu-cabling-and-rack-elevations/</guid>
      <description><![CDATA[<p>Generally when deploying DAC for inter-rack network connections, particularly the quad-breakout heavy gauge Mellanox type, I&rsquo;ll go with the RU waterfall–fanout method. If I&rsquo;m using regular fiber-optics and MMF/SMF then the calculations sometimes change, depending on whether those are multi-lane MPO to single-port fanouts or port-to-port direct connections. Anyway, those acronyms aside, let&rsquo;s move on.</p>
<p>In preparation for a hardware refresh and much needed colocation visit, I&rsquo;ve ordered additional Mellanox DPUs. Those require a few additional cables to augment the existing hardware stockpile. I already have some 100G to 4x 25G breakouts, but not enough, and not in the correct lengths. Yay for ebay, all acquired for under $100 as <em>&ldquo;new old stock&rdquo;</em>.</p>
<h3 id="what-do-those-dpus-look-like">What do those DPUs look like?</h3>
<p>Well, for starters they don&rsquo;t look exactly like these old ConnectX-3 QDR Infiniband NICs but the DAC are similar. Mellanox changed their heatsink aesthetic along the way, and the heatsinks are far larger on the newer chipsets, with no less cooling required (~200+ LFM).</p>
<p><img src="/content/images/2025/10/eva-mellanox-QDR-Infiniband.960px-1.png" alt=""></p>
<p>Mellanox ConnectX-3 Infiniband NICs and QDR DAC from ~2015, photo circa 2022</p>
<p>Once the DPUs arrive - <em>which is supposed to be today</em> - I&rsquo;ll take some photos and clean all of the PCBs and traces and slot connectors. In the interim, here&rsquo;s the eBay photo for reference.</p>
<p><img src="/content/images/2025/10/mellanox-bluefield2.png" alt=""></p>
<p>The big question&hellip; spend precious time with the R630 cluster in cab68, remove their ConnectX-4 Dual-Port 100G NICs, or install the BF2 DPUs to the cluster of IBM LC922 POWER9 systems in cab70&hellip; hmmmm.. 🤔 This decision will not be completed today. So, let&rsquo;s think about cable maps and rack units.</p>
<h3 id="heres-a-lazy-ascii-diagram">Here&rsquo;s a lazy ASCII diagram</h3>
<p>Showing three lengths of DAC being used for rack-height designated connections, each cable SKU being 0.5M longer/shorter to account for the destination system&rsquo;s location. DAC is heavy, so any time we can make the cable runs shorter we&rsquo;ll (perhaps marginally) reduce latency while reducing load on the rack-cabling organizers, and generally resulting in a cleaner layout. The following diagram is not to scale for either cab68 or cab70, it simply shows how the waterfall method uses length-based drops.</p>
<pre tabindex="0"><code>+----------------------------------------------------------+
| RU42 | [Leaf Switch, QSFP28/56]                          |
|      |  [P01..P16]                                       |
|      |     |                                             |
|      |     +-DAC-1 1.5m ——————————&gt; [RU38] Server-A      |
|      |     +-DAC-2 2.0m ————————————&gt; [RU32] Server-B    |
|      |     +-DAC-3 2.0m ————————————&gt; [RU26] Server-C    |
|      |     +-DAC-4 2.5m ———————————————&gt; [RU20] Server-D |
+----------------------------------------------------------+

Labeling scheme:
  Leaf ports: P01–P16 (logical)
  Designators: 4x 25G lanes per 100G QSFP28 port (physical)
  Servers: A,B,C,D with SFP28 1–4 (A-1, A-2, A-3, A-4)
  Cables: DAC-1..4 with length tag (DAC-3 2.0m)
</code></pre><hr>
<h2 id="where-are-these-new-dac">Where are these new DAC?</h2>
<p>On their way&hellip; hopefully sooner than the stated arrival.</p>
<p><img src="/content/images/2025/10/ebay-dac-order.960px.png" alt=""></p>
<hr>
<h2 id="update-guess-what-showed-up">[update] Guess What Showed Up?</h2>
<p>One of the correct SKU with correct firmware and PCB revision <em>(MBF2H332A-AECOT Rev-C1 2022-02-15)</em>, and three of the same SKU without the correct firmware or PCB revision. So, three of them will not work for this project, and in an ideal world the vendor will reship the correct ones quickly.</p>
<p><img src="/content/images/2025/10/Bluefield2-Four-Shipped-SideSide.960px.png" alt=""></p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Serial RS232 &#43; Crossover Keystones</title>
      <link>https://winterschon.gitlab.io/en/posts/serial-rs232-crossover-keystones/</link>
      <pubDate>Sat, 20 Sep 2025 22:07:07 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/serial-rs232-crossover-keystones/</guid>
      <description><![CDATA[<p>HomeLab, Networking, Cables&hellip; let&rsquo;s look at the requirements for building custom keystone jacks and RS232 serial cables. A minor discussion of the core components is necessary before looking at the technical aspects.</p>
<p>This post was written over a series of months, initially as lab notes, with some bits and bytes added each time the tools come out or the patch panels are rewired. While perhaps not a common task, hopefully the knowledge finds someone else looking for these solutions.</p>
<h2 id="switch-port-system-roles">Switch-Port System Roles</h2>
<p>This post discusses several types of connections and signals conversion in a field where the list of potential operating modes is prone to complexity. Brands involve APC, Avocent, Blackbox, Cisco, Cyclades, Moxa, Netshelter, OpenGear, Vertiv, and more - but here in my HomeLab and in the enterprises in which I&rsquo;ve worked, there&rsquo;s a common requirement for critical equipment to talk to a System Infrastructure Manager system or OOB device.</p>
<h3 id="system-infrastructure-manager">System Infrastructure Manager</h3>
<p>Featured in the post&rsquo;s header image, I&rsquo;m using Blackbox for OOB services, but these specs are matched by various brands in similar price points.</p>
<p><strong>Device:</strong> BlackBox model LES1248a out‑of‑band (OOB) connection manager<br>
<strong>Specs</strong>: 48‑port, 1U, dual-PSU, dual-LAN, cellular 3G and POTS optional</p>
<p><strong>Provided Features</strong></p>
<ol>
<li>Remote access services using web-based serial console interface for infrastructure devices (switches, routers, PDUs, UPS, etc).</li>
<li>Centralizes remote‑management via multi-protocol connections and bridging between serial devices and user-facing network services.</li>
<li>Access‑control lists (ACLs) and role‑based access control (RBAC)</li>
<li>Monitoring, logging, and alerting</li>
</ol>
<h4 id="reference-generic-pin-mapping-for-8p8c-rj45">Reference: Generic Pin Mapping for 8P8C RJ45</h4>
<p>This represents the usual 8P8C RJ45 connector layout, with pin usage according to different serial standards. While we are focused on RS232, it can be helpful for visualization purposes to see how other standards are implemented.</p>
<table>
  <thead>
      <tr>
          <th>Pinout</th>
          <th>EIA‑232</th>
          <th>EIA‑422</th>
          <th>EIA‑485 Full Duplex</th>
          <th>EIA‑485 Half Duplex</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1 (in)</td>
          <td>DCD</td>
          <td></td>
          <td></td>
          <td></td>
      </tr>
      <tr>
          <td>2 (out)</td>
          <td>RTS</td>
          <td>TxD+</td>
          <td>TxD</td>
          <td>DATA+</td>
      </tr>
      <tr>
          <td>3 (in)</td>
          <td>DSR</td>
          <td></td>
          <td></td>
          <td></td>
      </tr>
      <tr>
          <td>4 (out)</td>
          <td>TxD</td>
          <td>TxD‑</td>
          <td>TxD‑</td>
          <td>DATA‑</td>
      </tr>
      <tr>
          <td>5 (in)</td>
          <td>RxD</td>
          <td>RxD+</td>
          <td>RxD+</td>
          <td></td>
      </tr>
      <tr>
          <td>6</td>
          <td>GND</td>
          <td>GND</td>
          <td>GND</td>
          <td>GND</td>
      </tr>
      <tr>
          <td>7 (in)</td>
          <td>CTS</td>
          <td>RxD‑</td>
          <td>RxD‑</td>
          <td></td>
      </tr>
      <tr>
          <td>8 (out)</td>
          <td>DTR</td>
          <td></td>
          <td></td>
          <td></td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="working-with-keystone-connectors">Working with Keystone Connectors</h2>
<p>Those 48 ports aren&rsquo;t going to fill themselves up without some occasional head scratching along the lines of..</p>
<blockquote>
<p><em>Q: &ldquo;How can I connect this RJ12 RS232 based APC PDU to a RJ45 RS232 infrastructure manager?&rdquo;</em></p>
</blockquote>
<blockquote>
<p>A: You&rsquo;re going to have to convert the pin-out for an RJ12 cable to the expected pin-map of an RJ45 RS232 rollover cable.</p>
</blockquote>
<p>Great. I have those requirements!</p>
<p><img src="/content/images/2025/09/Serial-Cables-IMG_0996.png" alt=""></p>
<p>Let&rsquo;s see the various pin and cable maps involved with some common use cases. We&rsquo;ll get to the RJ12 content, but let&rsquo;s see standard mappings first.</p>
<h3 id="1-standard-ethernet-8p8c-straight-straight">1) Standard Ethernet, 8P8C Straight-Straight</h3>
<p>These are simple and have no pin conversion to map. This is a basic reference only, there&rsquo;s nothing to do.</p>
<table>
  <thead>
      <tr>
          <th>J1 (Keystone Front)</th>
          <th>J2 (Keystone Back)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>J1‑1 →</td>
          <td>J2‑1</td>
      </tr>
      <tr>
          <td>J1‑2 →</td>
          <td>J2‑2</td>
      </tr>
      <tr>
          <td>J1‑3 →</td>
          <td>J2‑3</td>
      </tr>
      <tr>
          <td>J1‑4 →</td>
          <td>J2‑4</td>
      </tr>
      <tr>
          <td>J1‑5 →</td>
          <td>J2‑5</td>
      </tr>
      <tr>
          <td>J1‑6 →</td>
          <td>J2‑6</td>
      </tr>
      <tr>
          <td>J1‑7 →</td>
          <td>J2‑7</td>
      </tr>
      <tr>
          <td>J1‑8 →</td>
          <td>J2-8</td>
      </tr>
  </tbody>
</table>
<hr>
<h3 id="2-cisco-rollover-8p8c-switch-crossover">2) Cisco Rollover, 8P8C Switch-Crossover</h3>
<p>Standard rollover cable pin-map. In this case it&rsquo;s what we want to use when connecting a Cisco style switch to our Blackbox (both with RJ45 RS232 ports).</p>
<table>
  <thead>
      <tr>
          <th>Pin</th>
          <th>Signal</th>
          <th>Direction</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>DCD</td>
          <td>in</td>
      </tr>
      <tr>
          <td>2</td>
          <td>RTS</td>
          <td>out</td>
      </tr>
      <tr>
          <td>3</td>
          <td>DSR</td>
          <td>in</td>
      </tr>
      <tr>
          <td>4</td>
          <td>TxD</td>
          <td>out</td>
      </tr>
      <tr>
          <td>5</td>
          <td>RxD</td>
          <td>in</td>
      </tr>
      <tr>
          <td>6</td>
          <td>GND</td>
          <td><em>(none)</em></td>
      </tr>
      <tr>
          <td>7</td>
          <td>CTS</td>
          <td>in</td>
      </tr>
      <tr>
          <td>8</td>
          <td>DTR</td>
          <td>out</td>
      </tr>
  </tbody>
</table>
<h4 id="keystone-pins-8p8c-switch-crossover">Keystone Pins, 8P8C Switch-Crossover</h4>
<p>My patch panels use keystone jacks to simplify things, and they ship with straight-through RJ45-RJ45 connectors which do not change the wiring. That&rsquo;s fine in some cases, but let&rsquo;s see what we need to do to build a custom crossover keystone jack.</p>
<table>
  <thead>
      <tr>
          <th>J1 (BlackBox side)</th>
          <th>J2 (Cisco side)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>J1‑2 (RTS) →</td>
          <td>J2‑8 (CTS)</td>
      </tr>
      <tr>
          <td>J1‑3 (DSR) →</td>
          <td>J2‑2 (DTR) (optional)</td>
      </tr>
      <tr>
          <td>J1‑4 (TxD) →</td>
          <td>J2‑6 (RxD)</td>
      </tr>
      <tr>
          <td>J1‑5 (RxD) →</td>
          <td>J2‑3 (TxD)</td>
      </tr>
      <tr>
          <td>J1‑6 (GND) →</td>
          <td>J2‑4 (GND)</td>
      </tr>
      <tr>
          <td>J1‑7 (CTS) →</td>
          <td>J2‑1 (RTS)</td>
      </tr>
      <tr>
          <td>J1‑8 (DTR) →</td>
          <td>J2‑7 (DSR)</td>
      </tr>
      <tr>
          <td>J1‑1 (DCD) →</td>
          <td>— (no connection to J2)</td>
      </tr>
  </tbody>
</table>
<hr>
<h3 id="3-apc-pdu-conversion-6p6c-rj12--8p8c-rj45">3) APC PDU Conversion, 6P6C RJ12 → 8P8C RJ45</h3>
<ul>
<li>APC PDU side: 6P6C RJ12 connector with grey ethernet cable</li>
<li>Blackbox side: 8P8C RJ45 connector with grey ethernet cable</li>
</ul>
<h3 id="rj12-6p6c-connector-for-apc-940-0144a">RJ12 6P6C Connector for APC (940-0144A)</h3>
<p>While APC has more than one RJ12 connector on their products, this one is the most common from my SKU usage in the enterprise.</p>
<table>
  <thead>
      <tr>
          <th>Pin</th>
          <th>Signal</th>
          <th>Direction / Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>—</td>
          <td>No connection (NC)</td>
      </tr>
      <tr>
          <td>2</td>
          <td>GND</td>
          <td>Ground</td>
      </tr>
      <tr>
          <td>3</td>
          <td>TX</td>
          <td>Serial transmit <strong>to</strong> peer</td>
      </tr>
      <tr>
          <td>4</td>
          <td>RX</td>
          <td>Serial receive <strong>from</strong> peer</td>
      </tr>
      <tr>
          <td>5</td>
          <td>GND</td>
          <td>Ground</td>
      </tr>
      <tr>
          <td>6</td>
          <td>—</td>
          <td>No connection (NC)</td>
      </tr>
  </tbody>
</table>
<h3 id="keystone-pins-6p6c-rj12-for-apc-pdu">Keystone Pins, 6P6C RJ12 for APC PDU</h3>
<p>This is where things get fun? We have an 8-pin cable on both sides of the jack, but only 4 pins are needed on the APC RJ12 side. Look closely and plan ahead when you&rsquo;re chopping wires and punching connectors.</p>
<p><strong>Rj45 Blackbox View</strong></p>
<table>
  <thead>
      <tr>
          <th>J1 (BlackBox side)</th>
          <th>J2 (APC side)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>J1‑1 (DCD)</td>
          <td>— <em>(no connection to J2)</em></td>
      </tr>
      <tr>
          <td>J1‑2</td>
          <td>— <em>(no connection to J2)</em></td>
      </tr>
      <tr>
          <td>J1‑3</td>
          <td>— <em>(no connection to J2)</em></td>
      </tr>
      <tr>
          <td>J1‑4 (TxD – out)</td>
          <td>J2‑4 (RxD – input to APC)</td>
      </tr>
      <tr>
          <td>J1‑5 (RxD – in)</td>
          <td>J2‑3 (TxD – output of APC)</td>
      </tr>
      <tr>
          <td>J1‑6 (GND)</td>
          <td>J2‑2 (GND) <strong>and</strong> J2‑5 (GND)</td>
      </tr>
      <tr>
          <td>J1‑7</td>
          <td>— <em>(no connection to J2)</em></td>
      </tr>
      <tr>
          <td>J1‑8</td>
          <td>— <em>(no connection to J2)</em></td>
      </tr>
  </tbody>
</table>
<p><strong>Rj12 APC View</strong></p>
<table>
  <thead>
      <tr>
          <th>APC RJ12 (6P6C)</th>
          <th>Console RJ45 (8P8C)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>pin 1 –</td>
          <td>–</td>
      </tr>
      <tr>
          <td>pin 2 GND</td>
          <td>pin 4 GND</td>
      </tr>
      <tr>
          <td>pin 3 TX →</td>
          <td>pin 6 RXD (into console)</td>
      </tr>
      <tr>
          <td>pin 4 RX ←</td>
          <td>pin 3 TXD (out of console)</td>
      </tr>
      <tr>
          <td>pin 5 GND</td>
          <td>pin 5 GND (optional second ground)</td>
      </tr>
      <tr>
          <td>pin 6 –</td>
          <td>–</td>
      </tr>
  </tbody>
</table>
<p><strong>USOC (RJ‑12) Pinout</strong></p>
<table>
  <thead>
      <tr>
          <th>Pin (L→R)</th>
          <th>Colour (typical US C)</th>
          <th>Pair</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>White</td>
          <td>P3</td>
      </tr>
      <tr>
          <td>2</td>
          <td>Black</td>
          <td>P2</td>
      </tr>
      <tr>
          <td>3</td>
          <td>Red</td>
          <td>P1</td>
      </tr>
      <tr>
          <td>4</td>
          <td>Green</td>
          <td>P1</td>
      </tr>
      <tr>
          <td>5</td>
          <td>Yellow</td>
          <td>P2</td>
      </tr>
      <tr>
          <td>6</td>
          <td>Blue</td>
          <td>P3</td>
      </tr>
  </tbody>
</table>
<p><strong>RJ‑45 (T568B) Pinout</strong></p>
<table>
  <thead>
      <tr>
          <th>Pin (L→R)</th>
          <th>Colour (T568B)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>White‑Orange</td>
      </tr>
      <tr>
          <td>2</td>
          <td>Orange</td>
      </tr>
      <tr>
          <td>3</td>
          <td>White‑Green</td>
      </tr>
      <tr>
          <td>4</td>
          <td>Blue</td>
      </tr>
      <tr>
          <td>5</td>
          <td>White‑Blue</td>
      </tr>
      <tr>
          <td>6</td>
          <td>Green</td>
      </tr>
      <tr>
          <td>7</td>
          <td>White‑Brown</td>
      </tr>
      <tr>
          <td>8</td>
          <td>Brown</td>
      </tr>
  </tbody>
</table>
<p><em>Both USOC/T568B tables assume the connector tab is facing down and the pins are read left‑to‑right.</em></p>
<h2 id="regarding-flow-control---dsrdtr-assertion">Regarding Flow Control - DSR/DTR Assertion</h2>
<p>Fun times with RS232 sometimes involve flow-control, though often this is set to &ldquo;None&rdquo;, there are more options than None where None is concerned. Let&rsquo;s see why Blackbox offers the following options, given the following debugging scenario:</p>
<h5 id="defining-a-common-flow-control-issue">Defining a Common Flow Control Issue</h5>
<p><strong>Problem</strong>: Blackbox shows incomplete port status*, with no terminal output when connecting via Cisco rollover cable.</p>
<p><em>[*] (&ldquo;RTS | DTR&rdquo; instead of &ldquo;RTS | DSR | DTR | DCD&rdquo;)</em></p>
<h5 id="signal-debugging-workflow">Signal Debugging Workflow</h5>
<table>
  <thead>
      <tr>
          <th>Configuration</th>
          <th>Action</th>
          <th>Purpose</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1. Validate &ldquo;Hardware Flow Control&rdquo;</td>
          <td>Enable sampling</td>
          <td>Detect carrier signals</td>
      </tr>
      <tr>
          <td>2. Pinout Verification</td>
          <td>Check mappings</td>
          <td>Ensure proper signal visibility</td>
      </tr>
      <tr>
          <td>3. Signal Testing</td>
          <td>Use multimeter</td>
          <td>Confirm remote device asserts DSR/DCD</td>
      </tr>
      <tr>
          <td>4. Manual Carrier Assert</td>
          <td>Add loop adapter</td>
          <td>Force carrier presence</td>
      </tr>
  </tbody>
</table>
<h5 id="inspecting-flow-control-modes">Inspecting Flow Control Modes</h5>
<table>
  <thead>
      <tr>
          <th>Configuration</th>
          <th>Result</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>None - Default</td>
          <td>Take no action</td>
      </tr>
      <tr>
          <td>None - Flow control signals unpowered</td>
          <td>FC signal pins explicitly disabled</td>
      </tr>
      <tr>
          <td>Hardware</td>
          <td>(implied: signals are powered)</td>
      </tr>
      <tr>
          <td>Software</td>
          <td>(implied: signals are powered)</td>
      </tr>
      <tr>
          <td>Software - Flow control signals unpowered</td>
          <td>FC signal pins explicitly disabled</td>
      </tr>
  </tbody>
</table>
<ul>
<li><strong>Q: What, surely the two None types are equivalent?</strong></li>
<li><strong>A: They are not equivalent.</strong></li>
</ul>
<p>The port is usable in either <em>&ldquo;None-Type&rdquo;</em> modality <strong>only if TxD/RxD signals are present</strong>. The console server will report <em>&ldquo;No signal data available&rdquo;</em> when the connected Blackbox port is operating in the following states:</p>
<ol>
<li>not powering when it needs power</li>
<li>actively sampling modem-control lines</li>
<li>when the remote device side never asserts them</li>
</ol>
<h4 id="confusions-with-state-mode-usability">Confusions with State-Mode Usability</h4>
<p>Using <em>&ldquo;None - Flow control signals unpowered&rdquo;</em> disables the port&rsquo;s modem-line sensing, which prevents the appliance from reporting DSR/DCD/CTS.</p>
<ul>
<li>Whether or not you can connect over the line depends whether the device has active TxD/RxD connection signals, irrespective of whether Blackbox knows about DSR/DCD/CTS state.</li>
<li>Alternatively, the remote device may never assert DSR/DCD, as many network-console ports don&rsquo;t provide carrier signals, so the server has nothing to report.</li>
</ul>
<hr>
<h2 id="ok-what-else">Ok&hellip; What else?</h2>
<p>Despite many efforts and assumptions, it&rsquo;s a fact that RS232 is not going anywhere any time soon and it remains not simply useful but necessary.</p>
<p>The global view of serial connection usage includes datacenters, industrial automation systems, expansive cellular / broadband / telco networking hardware, mainframe connected terminals, all the way to a near-endless number of embedded systems. Good times, plenty of TxD/RxD signals to go around. 😄</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Sunday Homelab TPM OMGOSH</title>
      <link>https://winterschon.gitlab.io/en/posts/sunday-homelab-tpm-omgosh/</link>
      <pubDate>Sun, 31 Aug 2025 15:08:18 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/sunday-homelab-tpm-omgosh/</guid>
      <description><![CDATA[<p>It&rsquo;s 0721 on a Sunday morning. I&rsquo;m laying on the couch, pondering the facts of existence, still dealing with C19 Nimbus side effects, and going through a mental checklist for #HomeLab tasks which need attention.</p>
<p>During standard weekends, when not afflicted with the covids, all of the following tasks could be completed in a relaxing and reasonable pace. Perhaps two or three.. time will tell. 😌</p>
<ol>
<li>Remove all ephemeral hardware from 25U rack #2</li>
<li>Swap out 4U APC 3kVA UPS for 2U APC 1.5kVA, in 25U rack #2</li>
<li>Move ARM64 cluster from 12U rack to 25U rack #2</li>
<li>Swap 1x APC PDU (metered only) for APC PDU (switched), in 25U rack #1</li>
<li>Validate LACP map on EX3300-48T, rack #2</li>
<li>Validate 40mm fan situation on EX3300-48T, rack #2</li>
<li>Recable 3x 24 port patch panels, rack #2</li>
<li>Deploy 1x 24 port patch panels, rack #1</li>
<li>Replace all fans in 2U net-infra SmartOS node</li>
<li>Finish firmware updates on all APC devices</li>
<li>Upgrade firmware on all managed switches</li>
<li>Validate 5GbE SFP+/BASET optic for FTTH on X710 NIC</li>
<li>Install 3x SM863 SSD boot drives for Talos II Power9</li>
<li>Install 3x 883DCT SSD storage drives for Talos II Power9</li>
<li>Swap 2x10G Intel X550 for 4x25G QL41234 in Talos II</li>
<li>Swap 2x 120mm &amp; add 1x 92mm fans in Talos II</li>
<li>Ident 1000W PSU for EPYC box, needs PMbus</li>
<li>ooooh there&rsquo;s so much more&hellip;</li>
</ol>
<p><img src="/content/images/2025/08/MessyHomeLab-SunnyCA_2025-08-31_07-43-28_1.png" alt=""></p>
<p>rack consolidation strongly needed</p>
<p>Ehrlich gesagt, just look at this mess, and it&rsquo;s on carpet? Even with solid 14 gauge copper grounding straps on every UPS, PDU, ATS, along with GFCI + AFCI isolation breakers, I cannot in good conscience recommend such blasphemy of electrical code compliance concerns.</p>
<p>So, add this to the list: find some manner of solid platform with a grounding-strap for the two 25U racks <em>(12U needs to be elsewhere, byeeeee).</em></p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>🌐 Ai/ML Cluster for Traveling</title>
      <link>https://winterschon.gitlab.io/en/posts/nvidia-ai-cluster-for-traveling/</link>
      <pubDate>Sun, 25 May 2025 14:24:31 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/nvidia-ai-cluster-for-traveling/</guid>
      <description><![CDATA[<p>A little travel cluster, all set for Ai engineering and development ❤️</p>
<ul>
<li>1x Nvidia Jetson Xavier NX 16GB</li>
<li>3x Nvidia Jetson Orin NX 16GB</li>
<li>3x GoWin R86S, N6005 16GB</li>
<li>2x Pi-KVM v4-mini for remote/headless access</li>
<li>2x NanoPi nodes, a RISC-V LeechiPi, and LattePanda Mu</li>
<li>Associated networking for 10/5/2.5/1G ports</li>
</ul>
<p>Setup in a Pelican Air case, ready for the flight!</p>
]]></description>
      
    </item>
    
    
  </channel>
</rss>
