<?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>Datacenter on Eva Winterschon</title>
    <link>https://winterschon.gitlab.io/tags/datacenter/</link>
    <description>Recent content in Datacenter on Eva Winterschon</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Some copyright notice - [my license](https://example.com/license)</copyright>
    <lastBuildDate>Thu, 11 Jun 2026 03:26:36 +0000</lastBuildDate><atom:link href="https://winterschon.gitlab.io/tags/datacenter/index.xml" rel="self" type="application/rss+xml" /><icon>https://winterschon.gitlab.io/logo.svg</icon>
    
    
    <item>
      <title>Let&#39;s Build a Lab - Part 2</title>
      <link>https://winterschon.gitlab.io/en/posts/lets-build-a-lab-part-2/</link>
      <pubDate>Thu, 11 Jun 2026 03:26:36 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/lets-build-a-lab-part-2/</guid>
      <description><![CDATA[<p>So many words. Even today with my own writing I want a TL;DR, so fuck it here&rsquo;s a not-boilerplate version of one standardized <em><strong>&ldquo;Statement of Work&rdquo;</strong></em> contracts that is oriented on building labs. Timeline are negotiable, scope is negotiable, hourly rate is not often negotiable - I learned that lesson a long time ago.</p>
<p>For those not familiar, the <strong>SoW</strong> is a consulting agreement between contractor and employer, which defines the scope and timeline and requirements etc to <em>&ldquo;do the needful&rdquo;</em> in a broader sense of everyone&rsquo;s favorite phrase from the &lsquo;ol &ldquo;<a href="https://en.wikipedia.org/wiki/Follow-the-sun#History">Follow the Sun</a>&rdquo; SLA support model from the early pre-Cloud era <em>(sorry cloudbabies it&rsquo;s from when you were single digits old or not yet born)</em>.</p>
<p>This specific SoW has been used in prior endeavors which eventually follow the typical enterprise hardware lifecycle in no specific order [1]: forklifts, retros, rebuilds, expansion, and&hellip; words.. so many words.</p>
<p>Labs last a long time, so it&rsquo;s important to build things correctly the first time - not waste time hacking together whatever compromised decision trees were necessary due to last-minute planning (or no planning at all) and little to no experience with building labs. Remember, if you are a specialized engineer who excels in one or two areas, that does not imply domain specific knowledge from adjacent or entirely different sides of engineering worlds. I&rsquo;m a systems architect .. I don&rsquo;t build jet engines (though it&rsquo;s probably fun), so I do what I&rsquo;m good at. Otherwise to say, &ldquo;stay in your lane or learn to love losing - but protect that ego at all costs and never admit fault ever!&rdquo; <em>(yes, I&rsquo;m bitter and for exceptionally valid reasons).</em></p>
<p>So, until the pre-IPO runway runs out, or the post-IPO environment bores people to tears and they jump ship with their ISOs and RSUs and START ALL OVER AGAIN! <em>(I have definitely never not done this exact thing several times never for sure for sure? sure.)</em></p>
<hr>
<h2 id="successful-labs-require-people-and-hardware">Successful Labs Require People and Hardware</h2>
<p>Vaporware labs don&rsquo;t have hardware. Real labs do not revolve around PPTX slide decks, or Slack Canvas, or Sharepoint whatever, or ephemeral Confluence pages that change ownership by a click of a button. Real labs have real hardware and real engineers and architects involved at every critical stage to ensure that <a href="https://www.dcs.warwick.ac.uk/~sdh/pmbs10/pmbs10/Workshop_Programme_files/sst.pdf">standards are being used, implemented, tested, and validated</a>.</p>
<p>If you think I&rsquo;m wrong, go ahead, do it all by slide deck, by half-baked simulators that don&rsquo;t even <a href="https://www.osti.gov/servlets/purl/1170619.pdf">use SST and parallelization correctly</a>, with lots of Big Discussions for the Big People you want to impress to get ahead instead of making quality hardware.</p>
<p>See how far the Peter Principle gets you - chances are, if you&rsquo;re surrounded by &ldquo;Yes Men&rdquo; and &ldquo;C-Suite but never Technical&rdquo; boardrooms, you will get far enough to be proven the fraud that you are.</p>
<blockquote>
<p>The <a href="https://en.wikipedia.org/wiki/Peter_principle"><strong>Peter principle</strong></a> is a concept in management .. which observes that people in a hierarchy tend to rise to &ldquo;a level of respective incompetence&rdquo;: employees are promoted based on their success in previous jobs until they reach a level at which they are no longer competent, as skills in one job do not necessarily translate to another.</p>
</blockquote>
<p>Having risen rapidly, since you&rsquo;re up high now - you can destroy entire companies by making extremely stupid choices <em>&ldquo;to save money&rdquo;</em> by not spec&rsquo;ing hot-swap trays for NVMe drives on 1U systems which were never designed for the wattage you&rsquo;re running - and were not spec&rsquo;d for the BTU and LFM required to keep the systems from burning out 100G optics..</p>
<p>Just when you think it&rsquo;s all good, um why are there only seven drives in this chassis that can run with eight?</p>
<ul>
<li>Oh it&rsquo;s because the 8th drive would draw too much power and overload the non-redundant PSUs. What happens when a system which should have N+1 has only N?</li>
<li>The PSUs could be in redundant mode but Billy didn&rsquo;t want to authorize the enablement of active/active mode, and instead has demanded that his lacky make the systems run the PSUs in <em>&ldquo;combined mode&rdquo;</em> to try to get more power to that 8th drive&hellip; but no&hellip; not possible.</li>
<li>So all of the fancy new systems can&rsquo;t have eight drives like the original spec REQUIRED in order to fulfill global fleet machine generation scaling models. As in, you lose 1/8th of your drives on every new system for so many thousands of systems. 1/8th, for those not inclined to fractional conversions, is</li>
<li>So now all of those systems will be missing ~2-16-64TB of NVMe drives (multiply by number of nodes per rack, per pod, per cage, per site, per region, per global fleet). That&rsquo;s a lot of expected high-speed storage that is now not being deployed.</li>
<li>Hopefully no contracts were made to customers based on <em>&ldquo;Total NVMe Raw Storage per &lt;unit/region/etc&gt;&rdquo;</em> variables, which now renders the deliverable impossible.</li>
<li>What can be done? Those contracts have to either be revised and compensated <em>(yeah good f&rsquo;in luck),</em> or a massive workaround must be implemented to compensate - at additional cost to the company.</li>
</ul>
<h3 id="why-does-that-matter-to-building-labs">Why does that matter to building labs?</h3>
<p>Because any lab worth their salt would have raised immediate red flags and halted the entire ill-devised scope. Then they would use standardized and periodically revised for betterment:</p>
<ul>
<li>provide technical backing evidence</li>
<li>scaling costs, IOP/s cost, power assessments, baseline to STDDEV ratio, then appropriation wear-cycle equations</li>
<li>All that industry jargon that managerializes into the ether for all to repeat.</li>
<li><em>&ldquo;keep me honest&rdquo;</em> you may say, so then.. are you often lying? Ill-informed, unprepared, completely clueless?</li>
<li>Maybe not, hopefully not, but analytical people will see you that way and eventually the Peter Principle catches up and BAM! You&rsquo;re hit by a <!-- raw HTML omitted --> and your entire team is fired, and so you move on with your RSUs, talk yourself up, and try to ruin those who smote you from afar.</li>
</ul>
<p>Congrats, Billy, you&rsquo;ll never change - <strong>and that is why we test in labs</strong> - <strong>because things change</strong>.</p>
<hr>
<h2 id="the-contract-statement-of-work">The Contract Statement of Work</h2>
<p>Always get the scope in writing with sign-off. Scope changes mid-stream, not awesome.</p>
<pre tabindex="0"><code>﻿Statement of Work

Consultant Services Engagement

This Statement of Work (&#34;SOW&#34;) is entered into between [Client Legal
Name] (&#34;Client&#34;) and [Consultant Legal Name] (&#34;Consultant&#34;), effective
as of [Effective Date], and is governed by the [Master Consulting
Agreement / Professional Services Agreement] dated [Agreement Date] (the
&#34;Agreement&#34;). In the event of any conflict between this SOW and the
Agreement, the Agreement will control.

  -----------------------------------------------------------------------
  Client                              [Client Legal Name]
  ----------------------------------- -----------------------------------
  Consultant                          [Consultant Legal Name]

  SOW Effective Date                  [Effective Date]

  Initial Term                        Six (6) months from the SOW
                                      Effective Date

  Target Level of Effort              Forty (40) hours per week,
                                      approximately 1,040 hours over the
                                      initial term

  Primary Stakeholders                VP, OCTO, Eng-Org, App-Team, and
                                      Sales-Org

  Commercial Terms                    Billing rate, invoicing, payment
                                      terms, and approved expenses as set
                                      forth in the Agreement and/or
                                      applicable order form
  -----------------------------------------------------------------------

1. Purpose and Objectives

The Consultant will provide technical leadership, architecture,
implementation, documentation, mentoring, and subject matter expertise
to establish standardized HPC benchmarking, workload automation, and
telemetry/analytics capabilities, while also improving cross-functional
execution and the overall developer experience for CORP products and
associated collateral.

- Define, document, and deploy a modular &#34;Industry Expectations
  Benchmark Suite&#34; leveraging HPC, SPEC, Top500, AI/ML GPU leaderboards,
  and SNIA methodologies to support rigorous adherence and consistent
  results using standard performance testing tools.

- Define and deploy a standardized HPC &#34;Workload Automation Pipeline&#34;
  utilizing SLURM, Jenkins, Celery, RabbitMQ (&#34;RMQ&#34;), ClickHouse,
  Ansible, and related tooling.

- Define and deploy a standardized HPC &#34;Telemetry + Analytics
  Aggregation + Data Visualization Processing Pipeline&#34; utilizing
  Check_MK, SNMP, Elasticsearch + Kibana, Prometheus, InfluxDB, Grafana,
  and related tooling.

- Assess current organizational working patterns across Eng-Org,
  App-Team, and Sales-Org and provide a quarterly review to the VP and
  OCTO.

- Assess the current CORP collateral surface area, including SDKs,
  documentation, libraries, proofs of concept, and reference designs, as
  an ongoing initiative to improve the developer experience.

- Author white papers, research documents, and related technical
  materials, with a feedback loop to validate and improve internal and
  external documentation.

- Provide mentoring for junior through senior application and systems
  engineers, plus reasonable availability as an SME across storage,
  systems, database, and AI/ML domains.

- Provide ad hoc consultation to support Sales-Org customer scoping,
  implementation, and integration needs.

2. Term and Working Model

The engagement will begin on the SOW Effective Date and continue for an
initial six (6) month term. The Consultant will generally allocate forty
(40) hours per week to the engagement, subject to mutually agreed
priorities, holiday schedules, and reasonable scheduling adjustments.

The parties acknowledge that some workstreams in this SOW are ongoing or
iterative in nature. Accordingly, the Client and Consultant will jointly
prioritize and sequence the work so that the highest-value deliverables
are completed within the available time and level of effort.

Services may be provided remotely or through other mutually agreed
working arrangements. Any onsite work, travel, or work materially
outside the target level of effort will require prior written approval.

3. Scope of Services

3.1 Modular &#34;Industry Expectations Benchmark Suite&#34;

The Consultant will define, document, and deploy a modular benchmark
suite intended to measure representative performance, reproducibility,
and adherence to industry-standard methodologies across compute,
storage, and AI/ML use cases.

Illustrative deliverables:

- Benchmark taxonomy and workload catalog covering applicable HPC, SPEC,
  Top500-style, AI/ML GPU leaderboard-relevant, and SNIA-aligned
  methodologies.

- Benchmark execution standards, parameterization guidance, and runbooks
  designed to improve repeatability and result consistency.

- Result templates and reporting conventions for capturing baseline
  measurements and comparative findings.

- Initial implementation and/or deployment in designated Client
  environment(s), subject to infrastructure readiness and access.

- Validation summary describing observed results, known limitations, and
  next-step recommendations.

3.2 Standardized HPC &#34;Workload Automation Pipeline&#34;

The Consultant will define and deploy a standardized HPC workload
automation architecture using SLURM, Jenkins, Celery, RMQ/RabbitMQ,
ClickHouse, Ansible, and related tools as appropriate to the Client
environment.

Illustrative deliverables:

- Reference architecture and component interaction design for job
  submission, orchestration, execution, retry handling, and result
  capture.

- Deployment-ready configurations, automation artifacts, or initial
  implementation in designated environment(s).

- Operational workflows for benchmark or workload scheduling, execution,
  data collection, and reporting.

- Runbooks and handoff documentation sufficient to support repeatable
  operation and internal adoption.

3.3 Standardized HPC &#34;Telemetry + Analytics Aggregation + Data
Visualization Processing Pipeline&#34;

The Consultant will define and deploy a standardized observability and
analytics processing pipeline spanning infrastructure telemetry,
log/event aggregation, time-series monitoring, analytics storage, and
visualization.

Illustrative deliverables:

- Reference architecture covering Check_MK, SNMP, Elasticsearch +
  Kibana, Prometheus, InfluxDB, Grafana, and related integrations as
  applicable.

- Recommended data model, retention approach, dashboard structure, and
  operating practices for standardized reporting and analysis.

- Initial dashboards, visualizations, and/or deployment artifacts for
  designated environment(s).

- Documentation for data sources, ingestion paths, dashboards, and
  operational ownership considerations.

3.4 Cross-Functional Collaboration Assessment

The Consultant will assess current organizational working patterns
across Eng-Org, App-Team, and Sales-Org in order to identify friction
points, handoff gaps, role ambiguity, communication issues, and
opportunities to improve execution.

Illustrative deliverables:

- Current-state assessment and concise findings memo.

- Recommendations for cadence, decision ownership, communication flow,
  and escalation patterns.

- Quarterly review readout(s) presented to the VP and OCTO during the
  engagement term.

3.5 CORP Collateral Surface Area and Developer Experience

The Consultant will assess the current ‘surface area’ of CORP collateral,
including SDKs, documentation, libraries, proofs of concept, and
reference designs, as an iterative stretch initiative with the overall
goal of improving the developer experience.

Illustrative deliverables:

- Inventory and gap analysis of current CORP technical collateral.

- Prioritized recommendations and/or backlog themes to improve
  consistency, usability, completeness, and customer/integrator
  experience.

- Feedback loop for validating and improving internal and external
  documentation and supporting artifacts.

- Periodic progress updates and next-step roadmap recommendations within
  the engagement window.

3.6 White Papers, Research Documents, and Documentation Improvement

The Consultant will author white papers, research documents, technical
notes, and similar written materials as prioritized by the Client, and
will help create a feedback loop to validate and improve internal and
external documentation quality.

Illustrative deliverables:

- White papers, technical briefs, research documents, architecture
  notes, or similar written outputs as mutually prioritized.

- Document review comments, revision recommendations, and technical
  fact-checking input.

- Structured feedback loop to capture lessons learned and improve future
  documentation quality.

3.7 Mentoring and Knowledge Transfer

The Consultant will provide mentoring support for junior through senior
application and systems engineers, with an emphasis on practical
technical development and hands-on knowledge transfer.

Illustrative deliverables:

- Office hours, design reviews, pair-working sessions, workshops, or
  other mentoring interactions as appropriate.

- Guidance on benchmarking, automation, observability, storage, systems,
  database, and AI/ML topics relevant to the engagement.

- Knowledge transfer materials or summary notes where appropriate to
  support broader team adoption.

3.8 SME Availability and Sales-Org Consultation

The Consultant will maintain reasonable availability to organizational
staff in applicable subject-matter areas of focus and will provide ad
hoc consultation for Sales-Org customer scoping, implementation, and
integration needs, as capacity permits within the contracted level of
effort.

Illustrative deliverables:

- Advisory support for storage, systems, database, and AI/ML questions
  arising during the engagement.

- Participation in internal and customer-facing scoping discussions,
  solution reviews, or implementation planning sessions, when requested
  by the Client.

- Technical input intended to improve solution fit, implementation
  readiness, and integration clarity; provided as advisory support
  rather than as a standalone managed service or customer support
  commitment.

4. Indicative Delivery Plan

The following plan is illustrative and may be reprioritized by mutual
agreement based on Client needs, environment readiness, and emerging
business priorities.

  -----------------------------------------------------------------------
          Period          Primary Focus           Illustrative Outputs
  ----------------------- ----------------------- -----------------------
          Month 1         Discovery and Baseline  Stakeholder alignment,
                                                  current-state review,
                                                  environment access,
                                                  priority mapping,
                                                  benchmark/workload
                                                  definition, and
                                                  architecture framing.

        Months 2-3        Design and Initial      Benchmark suite v1,
                          Deployment              automation pipeline
                                                  design and initial
                                                  deployment artifacts,
                                                  telemetry pipeline
                                                  design, and initial
                                                  dashboards or data
                                                  paths.

        Months 4-5        Validation and          Validation runs,
                          Expansion               documentation
                                                  expansion,
                                                  collaboration
                                                  assessment findings,
                                                  collateral review,
                                                  white papers/research
                                                  outputs, and mentoring
                                                  support.

          Month 6         Handoff and Executive   Runbooks,
                          Review                  recommendations,
                                                  backlog or roadmap
                                                  items, knowledge
                                                  transfer, and
                                                  quarterly/executive
                                                  review presentation(s)
                                                  to the VP and OCTO.
  -----------------------------------------------------------------------

5. Governance and Reporting

- The Client will designate a primary engagement owner or point of
  contact responsible for prioritization, coordination, and consolidated
  feedback.

- The parties will maintain a regular working cadence, which may include
  weekly or biweekly syncs, technical reviews, design reviews, and
  status reporting as appropriate.

- The Consultant will provide concise updates on progress, risks,
  blockers, and recommended next actions.

- A quarterly review readout will be provided to the VP and OCTO during
  the engagement term.

6. Assumptions, Dependencies, and Constraints

- The Client will provide timely access to relevant systems,
  environments, credentials, documentation, repositories, data, and
  subject-matter stakeholders reasonably required for the services.

- The Client is responsible for providing or approving the hardware,
  software, licenses, network access, security approvals, and
  change-management windows required to implement or deploy
  deliverables.

- Any production deployment, change control, or release activity remains
  subject to Client approval processes and operational safeguards.

- Where this SOW references industry-standard benchmarks or
  leaderboard-adjacent methodologies, any formal external publication or
  third-party submission will remain subject to separate Client approval
  and third-party rules.

- The Consultant’s work product may include recommendations, reference
  architectures, configurations, code or scripts, runbooks, dashboards,
  presentations, reports, and live working sessions; not every
  workstream will result in a standalone written deliverable.

- Because certain activities are advisory and ongoing in nature, the
  parties will periodically rebalance priorities to remain within the
  contracted time and level of effort.

- Travel, onsite presence, after-hours support, and work materially
  beyond the initial term or weekly level of effort are excluded unless
  separately approved in writing.

7. Out of Scope

- Managed services, long-term production operations ownership, or 24x7
  operational support.

- Hardware procurement, datacenter installation, or unrelated
  infrastructure build-out not directly tied to the services described
  in this SOW.

- Binding commitments to end customers, contractual promises to third
  parties, or customer project delivery obligations not expressly
  authorized by the Client.

- Ongoing maintenance, enhancement, or support of deliverables after the
  end of the engagement term, except as separately agreed in writing.

8. Acceptance and Change Control

Commercial terms, invoicing, payment terms, intellectual property,
confidentiality, warranties, limitation of liability, and any formal
acceptance procedures will be governed by the Agreement.

Where the Agreement does not specify a separate acceptance procedure,
the Client will review deliverables promptly and provide consolidated
feedback within five (5) business days after delivery. Deliverables will
be deemed accepted when they materially conform to the scope described
in this SOW, subject to any documented punch-list items or agreed
revisions.

Any material change to scope, deliverables, timeline, or level of effort
will require written approval by both parties.

9. Signatures

The parties acknowledge and agree to this SOW as of the dates written
below.

By: ________________________________ 
Name: ______________________________ 


[Consultant Legal Name]
Title: _______________________________
Date: _______________________________
By: ________________________________ 

[Client Legal Name]
Name: ______________________________
Title: _______________________________
Date: _______________________________
</code></pre>]]></description>
      
    </item>
    
    
    
    <item>
      <title>Infra Monorepo Migration</title>
      <link>https://winterschon.gitlab.io/en/posts/infra-monorepo-migration/</link>
      <pubDate>Sun, 31 May 2026 04:22:04 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/infra-monorepo-migration/</guid>
      <description><![CDATA[<p>One weekend of fun follows many former, and also weekdays, and other weekends. It&rsquo;s nice to have a small team manage a lot of resources using a single pane of glass via tmux, rs232, ipmi, Ansible and BigNetwork.</p>
<blockquote>
<p>More details later&hellip; sleepy.</p>
</blockquote>
<hr>
<pre tabindex="0"><code> # NeoCortex Standards, Repo Storage, ZFS Dataset, M70 QAT Fast-Track Plan

  ## Summary

  Implement a non-destructive NeoCortex follow-up that locks
  these policies into code, tests, and docs:

  - Repos live under /opt/repos/&lt;repo&gt;; worktrees live under
    /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - /root is not a repo/worktree destination; /root/OMGFUCKED is
    temporary quarantine only.
  - New repos must be created from
    yukon-systems/YukonSYS-Standard-Definitions.
  - Every repo must use Git LFS and the standards repo
    .gitattributes byte-for-byte.
  - ZFS dataset creation for /opt/repos becomes reusable
    Ansible/policy logic, based on
    /root/bin/ZFS-M70-Forge_zroot-dataset_opt-repos.sh.
  - M70 QAT rollout uses canary first: build OpenSSL+QAT and
    OpenZFS/QAT binpkgs, validate on M70 canary, then promote.

  ## Key Changes

  - Standards and repo-placement policy
      - Update NeoCortex root policy docs and tests to forbid
        new repo/worktree paths under /root, except documented
        temporary quarantine paths under /root/OMGFUCKED.
      - Update tools/import-source-repos.py defaults from
        /root/&lt;repo&gt; to /opt/repos/&lt;repo&gt;, with
        /root/OMGFUCKED/&lt;repo&gt; accepted only as an explicit
        transitional override.
      - Add a repo-location audit script/test that fails active
        operational docs/scripts using /root/&lt;repo&gt; or
        /root/.config/superpowers/worktrees as live paths.
  - Git LFS and .gitattributes
      - Replace NeoCortex root .gitattributes with the standards
        repo version byte-for-byte.
      - Add a validation script that checks:
          - git lfs version works,
          - filter.lfs.required=true,
          - origin LFS locksverify=true,
          - root .gitattributes hash equals standards source,
          - LFS pre-push hook exists.
      - Document that non-compliant repos must be retrofitted
        before migration/import.
  - ZFS dataset automation
      - Convert
        /root/bin/ZFS-M70-Forge_zroot-dataset_opt-repos.sh into
        reusable NeoCortex Ansible/defaults for managed
        datasets.
      - First managed dataset profile: zroot/opt/repos mounted
        at /opt/repos with the script’s options, including
        compression=zstd-fast-1, dedup=sha256,verify,
        recordsize=256K, xattr=sa, POSIX ACLs, atime=off, and
        reservation=32M.
      - Add a second reusable pattern for per-user home
        datasets, but do not block on the NAS/NFS 777
        investigation; include a permission preflight that
        creates a test directory with umask 0027 and fails if
        mode becomes 0777.
  - M70 QAT binpkg fast-track
      - Extend the existing M70 canary stage4/binpkg lane to
        build a QAT package set:
          - QAT firmware/kernel module readiness package policy,
          - OpenSSL QAT engine/provider package path,
          - OpenZFS package built with QAT support,
          - rollback stock OpenSSL/OpenZFS binpkgs.
      - Add package/use/profile fragments under the existing
        Gentoo stage4 profile area instead of ad hoc host edits.
      - Add canary validation:
          - lspci -nnk sees QAT device,
          - qat_c3xxx and intel_qat load,
          - OpenZFS module parameters expose QAT controls,
          - openssl speed before/after artifacts are captured,
          - root pool imports and mounts after reboot,
          - rollback binpkg path is tested before wider
            promotion.
      - Do not promote to all M70 nodes until canary evidence is
        committed.

  ## Test Plan

  - Local static checks:
      - tests/shell/run-tests.sh
      - new repo-location standards test
      - new Git LFS standards test
      - new ZFS dataset defaults test
      - new M70 QAT package-policy test
      - YAML parse for all workflows/playbooks
      - git diff --check
  - Runtime/dry-run checks:
      - Ansible syntax-check for dataset roles/playbooks.
      - Dry-run dataset plan for /opt/repos confirms current
        zroot/opt/repos matches expected options.
      - M70 canary dry-run emits QAT binpkg build plan without
        mutating packages.
  - Canary acceptance:
      - QAT binpkgs build successfully.
      - M70 canary reboots with root pool intact.
      - QAT modules and OpenZFS QAT controls are present.
      - Benchmark and rollback evidence are recorded under
        NeoCortex audit docs.


  ## Assumptions

  - Canonical repo clone layout is /opt/repos/&lt;repo&gt;.
  - Worktree layout is /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - /root/OMGFUCKED remains temporary quarantine, not an
    approved steady-state repo location.
  - QAT rollout gate is canary first, not all-M70 immediate.
  - OpenZFS QAT implementation details must be verified against
    current OpenZFS/Gentoo package behavior during
    implementation; source basis includes OpenZFS QAT docs and
    module-parameter docs:
      - https://openzfs.org/wiki/ZFS_Hardware_Acceleration_with_QAT
      - https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Module%20Parameters.html

─ Worked for 22m 41s
───────────────────────────────────────────────────────────
  Implement this plan?
  1. Yes, implement this plan          Switch to Default and
  start coding.
  2. Yes, clear context and implement  Fresh thread. Context:
  53% used.
› 3. No, stay in Plan mode             Continue planning with
the model.



-----------------------
  ## Assumptions

  - Canonical repo clone layout is /opt/repos/&lt;repo&gt;.
  - Worktree layout is /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - /root/OMGFUCKED remains temporary quarantine, not an
    approved steady-state repo location.
  - QAT rollout gate is canary first, not all-M70 immediate.
  - OpenZFS QAT implementation details must be verified against
    current OpenZFS/Gentoo package behavior during
    implementation; source basis includes OpenZFS
    QAT docs and module-parameter docs:
      - https://openzfs.org/wiki/ZFS_Hardware_Acceleration_with_QAT
      - https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Module%20Parameters.html

─ Worked for 22m 41s
───────────────────────────────────────────────────────────

› 1) We also need to include the control plane fixes and
validations so that mutli-workers comms are fixed. 2) We need to
leverage the SLURM cluster nodes and
  additional distcc build hosts, 3) X12again &amp; FMT2 are
  effectively idle and can be blasted into submission to fast
  track all of these changes. 4) Once the
  M70-canary passes, we need to roll it out to K10 (tear-it-down
  AAA) and validate that type of OS netbooting. 5) Add those
  aspects to the Plans and we&#39;re
  looking better. 6) Finally, wrap up ALL changes necessary to
  complete the NeoCortex monorepo migration.

───────────────────────────────────────────────────────────

• I’ll revise the plan around the expanded end-state, but first
I’m doing a read-only pass over NeoCortex’s control-plane,
SLURM/distcc, X12/FMT2/K10, and
  migration-status artifacts so the replacement plan is grounded
  instead of generic.

───────────────────────────────────────────────────────────

• Proposed Plan

  # NeoCortex Standards-Complete Monorepo Migration Plan

  ## Summary

  - Make /opt/repos/&lt;repo&gt; the only canonical repo location; no 
  new checkouts or random repo files under any home directory, 
  including /root.
  - Finish standards adoption: all new repos must originate from 
  YukonSYS-Standard-Definitions; NeoCortex gets retrofitted 
  instead of restarted unless
    retrofit verification fails.
  - Complete NeoCortex monorepo migration with standards baseline, 
  Git LFS policy, control-plane comms fixes, ZFS dataset policy, 
  SLURM/distcc acceleration, M70 QAT canary, FMT2/X12again build 
  capacity, and K10 netboot AAA rollout validation.

  ## Key Changes

  - Repository standards
      - Merge standards policy PR work, then make NeoCortex 
      root .gitattributes byte-for-byte identical to the standards 
      repo version.
      - Update active NeoCortex import/migration tooling to default 
      source paths to /opt/repos/&lt;repo&gt;.
      - Preserve historical /root/... references only in immutable 
      audit/provenance docs; active scripts, runbooks, tests, and 
      templates must not depend on
        home-directory repos.
      - Use worktrees under /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - NeoCortex monorepo completion
      - Finish all migration blockers already tracked in 
      NeoCortex: M70 stage4/QCOW validation, Kata/container 
      runtime, FMT2 ephemeral VM lane, Gentoo/OpenRC
        replacement for temporary Rocky bootstrap, Thor replacement 
        path, and optional history graft/freeze decision.
      - Treat NeoCortex as authoritative after completion: source 
      repos become frozen compatibility references or are 
      history-grafted into NeoCortex with
        documented provenance.
      - Add/repair migration validation so PR completion proves 
      standards baseline, Git LFS, repo location policy, shell 
      tests, YAML parsing, and migration
        manifests.
  - Control-plane and multi-worker comms
      - Bring all control-plane fixes into NeoCortex and validate 
      Forge/FCP worker communication end to end.
      - Add tests for FCP envelope validation, replay/nonce handling, 
      approval ceilings, routing scope, transport policy, ntfy bridge 
      behavior, and multi-worker request/response flows.
      - Replace temporary Rocky bootstrap control-plane host with the 
      compliant Gentoo/OpenRC image once that image passes validation.
  - ZFS, NFS, and storage policy
      - Use the provided /opt/repos ZFS dataset options as the canonical 
      dataset profile for repo storage.
      - Add reusable dataset/playbook logic for repo datasets and 
      per-user home datasets.
      - Add NFS/floating-home validation that detects the NAS NFSv4.2 
      0777 directory-mode bug under expected 0027 umask and blocks 
      insecure rollout.
  - Build acceleration and hardware rollout
      - Use SLURM plus distcc for M70 stage4/QAT/OpenZFS builds.
      - Treat X12again and FMT2 as available fast-track build/validation 
      capacity.
      - Build binpkg path for OpenSSL + QAT + OpenZFS on M70 canary first; 
      non-QAT nodes may consume the same binpkgs with QAT unused.
      - After M70 canary passes, roll the validated path to K10 and 
      run destructive AAA/netboot validation with rollback evidence 
      captured.

  ## Test Plan

  - Run NeoCortex shell/YAML validation, including migration, 
  standards-baseline, Git LFS, .gitattributes, and no-active-home-repo-path 
  checks.
  - Run control-plane/FCP tests for envelope schema, replay rejection, 
  worker routing, ntfy bridge, and multi-worker comms.
  - Run Ansible/playbook syntax checks for ZFS datasets, NFS home policy, 
  SLURM/distcc build orchestration, M70 canary, FMT2/X12again lanes, and 
  K10 netboot
    AAA.
  - Execute staged hardware validation:
      1. SLURM/distcc dry-run.
      2. M70 canary build and QCOW/stage validation.
      3. FMT2/X12again accelerated build/ephemeral VM smoke.
      4. K10 netboot/AAA destructive validation after M70 success.

  ## Assumptions

  - Retrofit NeoCortex rather than restart the repo unless standards 
  validation exposes unrecoverable divergence.
  - Historical audit files may retain old /root/... paths as provenance; 
  active operational content may not.
  - M70 canary is the release gate for QAT/OpenZFS/binpkg rollout.
  - K10 destructive AAA/netboot validation is in scope only after M70 
  canary passes and rollback evidence is captured.

─ Worked for 2m 18s ───────────────────────────────────────────────────────────
</code></pre>]]></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>
    
    
  </channel>
</rss>
