A 9U open-frame rack, a firewall built from a refurbished mini PC, a decommissioned enterprise server, and two laptops that were headed for a landfill.
| U | Device | Role | Powered by |
|---|---|---|---|
| U1–U2 | APC Smart-UPS X 15001 (mjolnir) |
Power | The wall |
| U3 | HPE ProLiant DL360 Gen92 | Proxmox hypervisor (Saruman, BMC shiva) |
The PDU |
| U4 | 1U vented shelf, carrying the 8-port unmanaged TP-Link switch3 | Feeds prometheus and oracle |
A UPS outlet, since 2026-09-08 |
| U5 | HP ProDesk 600 G4 Mini4 | pfSense firewall (morpheus) |
The PDU |
| U6 | MT-VIKI 8-port KVM5 | Console access | The PDU |
| U7 | 10-outlet PDU6 | Power distribution | The UPS |
| U8 | Jadol 24-port patch panel7 | Cabling | — |
| U9 | MokerLink 26-port managed switch8 | Core switching (neo) |
The PDU |
The Powered by column was added on 2026-09-20 and read at the rack that day
(#574): everything on the PDU
is on the UPS, so a mains cut longer than the pack stops all of it at once,
and until that day nothing in this repository said which hosts that was. The
UPS's model is read off the card as upsIdentModel and was in no document
before then either. Who acts on the pack running out — and who does not — is
ADR-0049,
and the runtime the pack actually gives at this load is not measured: the
card claimed 47 minutes at 21 % load on 2026-09-20, and the one mains pull
that turns that estimate into a number is
shut-down-on-the-ups.md §6.
Off-rack: two Ubuntu Server laptops on a shelf (prometheus, oracle), fed
by the TP-Link in U4; the NAS smaug, a tower in the media room powered
from the rack's PDU by a long cord, so on the UPS like everything else on
that strip and a subscriber under ADR-0049; and eero Pro 6E units distributed
through the house.
Both laptops ride a mains cut out on their own cells, so each cell is a
dependency of the mains-cut path and is watched as one: Alloy's node collector
exports node_power_supply_* from both, and host.rules.yaml alerts when the
shelf is off mains, when a cell falls below 80 % of its design capacity, when a
laptop reports no cell at all
(#454), when a cell reads above
45 °C, and when a host on its cell has under thirty minutes left
(#532). prometheus's cell was
replaced on 2026-09-18 and reads 101 % of its design capacity at one cycle;
oracle's is the original, reads 72 %, and its replacement — a Dell M5Y1K —
was bought on 2026-09-19 and is in transit, with eBay's estimate moved to
2026-09-28 (#531). prometheus's runtime
was measured on 2026-09-19: 2.72 Ah/h at the stack's load, about 2.5 hours
from a full pack, one measurement on one day. oracle's has never been
measured. Neither pack reports a moving cell temperature — the Dell exports
none, and the A1437 fitted to prometheus returns a constant — so the
temperature alert is blind until a pack that measures is fitted, and
HostBatteryTempNotMeasured says so.
The patch panel and the PDU were listed the other way round here until 2026-08-29. U8 is the panel and U7 is the PDU, confirmed against the rack. Nothing in this repository depended on the order, but the wiki's rack page had it right and this table did not, so the correction is recorded rather than quietly swapped.
| Host | Hardware | CPU | RAM | Storage | OS |
|---|---|---|---|---|---|
morpheus |
HP ProDesk 600 G4 Mini | i5-8500T | 32 GB | 1 TB NVMe SSD | FreeBSD 16.0 (pfSense) |
Saruman |
HPE ProLiant DL360 Gen9 | 2× Xeon E5-2680 v3 (48 threads) | 128 GB | 2× 1 TB SATA HDD, RAID 1 (pve); 2× 960 GB SATA SSD, RAID 1, LVM-thin large_data |
Proxmox VE 9 |
prometheus |
Apple MacBook Pro (2012, Retina 13") | i5/i7 | 8 GB | 256 GB SSD | Ubuntu Server 24.04 LTS |
oracle |
Dell Inspiron 15-3565 | AMD A6-9200 (2 cores) | 4 GB | 500 GB HDD | Ubuntu Server 24.04 LTS |
smaug |
Lenovo ThinkServer TS150 | Xeon E3-1225 v6 (4 cores) | 8 GB ECC | 240 GB SATA SSD (boot) + 2× 18 TB ZFS mirror erebor |
TrueNAS 25.10 |
The observability stack runs on a thirteen-year-old MacBook. It handles four SNMP devices at a 60-second interval, five Alloy agents, and 30 days of metric retention without complaint — which is a useful thing to know before spending money on a monitoring host. Its RAM is soldered at 8 GB and it has no built-in Ethernet, so it reaches the network over a USB NIC.
morpheus has two wired interfaces, and the second is not part of the model:
the onboard Intel I219-LM (em0, the WAN) and an Intel I226-V 2.5 GbE card on
an M.2 B+M-key adapter9 in the G4's second M.2 slot (igc0, the
switch-management LAN and every VLAN). The card is what a restore onto other
hardware depends on —
restore-the-firewall.md §3 — and it was
recorded as a USB NIC in four documents until 2026-09-09, when the box was
read directly: pciconf shows it on a PCIe root port, and the only USB device
is the Wi-Fi module's Bluetooth half. The table records the release line
only, as check_docs.py requires, and unlike the
Linux hosts nothing collects the running release from pfSense — so it is
written here with its date: pfSense CE 2.9.0-RELEASE, build
20260817-1836, from /etc/version on 2026-09-09. Restoring the config
needs a release at least that new
(restore-the-firewall.md §3).
oracle was previously recorded here as an i5-1235U with 32 GB and a 2 TB SSD.
It is not: it is a dual-core AMD A6-9200 with 4 GB and a 5400 rpm disk. The
older entry described a machine that does not exist, which is worth stating
plainly because it was load-bearing in planning.
The OS column names the release line and not the point release. Both laptops
were recorded here as 24.04.3 while both were running 24.04.4, and
check_docs.py could not see it — it compares this table against
network.md, and the two copies were stale together. A point
release changes when a host takes an update, which is not an edit to this
repository, so it is the wrong kind of fact to write down at all: the running
version is already collected on every Linux host as
node_os_info{pretty_name="Ubuntu 24.04.4 LTS"}. The check now rejects a third
version component in either table.
| Host | BMC | Address | Notes |
|---|---|---|---|
Saruman |
shiva — HPE iLO 4, firmware 2.82 |
10.0.30.10 |
iLO Advanced licensed. Dedicated network port. DHCP with a reservation. Hardened 2026-09-09 per ADR-0033: IPMI-over-LAN, SSH and iLO Federation off; HTTPS, the remote console and SNMP stay on; the account's credential is shared with nothing else; the security log was read for a baseline. Polled over SNMPv3 authPriv (SHA, AES, user prometheus) since 2026-09-20 per ADR-0036, with SNMPv1 Request off — it answers no community at all |
The BMC and the host it manages carry different names and different addresses:
shiva is the iLO, Saruman is the hypervisor at 10.0.30.110. Earlier
revisions of this repository treated shiva as the hypervisor itself.
- 1U rackmount tray for the ProDesk Mini10
- Sliding rails for the ProLiant11
- 1U universal rack mount for the APC12
- APCRBC115 replacement battery cartridge for the APC, fitted 2026-08-28,
proven by a passing self-test the same day and under a biweekly schedule on
the card (#93). The card's
upsBasicBatteryLastReplaceDatestill reads08/15/2026and wants resetting to the fit date — it is the only record of the pack's age - 1U vented rack shelf, 4-post with square-hole mounting — in U4 since
2026-09-08, carrying the unmanaged switch that feeds
prometheusandoracle(#110) - HP ProDesk 600 G4 Micro13 — i5-8500T, 32 GB, 512 GB SSD, the same
model as
morpheus— ordered 2026-09-08, in hand since 2026-09-14 and opened on 2026-09-15. This istrinity, and it is one box with two jobs, not two boxes: the sensitive tier's host, and the firewall's spare hardware in a disaster (ADR-0034). The documents call it "the tier's host" in one place and "the spare" in another, which is how it came to be read as two machines (ADR-0038); a second ProDesk is deferred, not ordered. This entry read "in hand since 2026-09-15" until 2026-09-17. The carrier's notice puts the drop-off at 15:05 local on the 14th; the commit that recorded it was written that evening and dated by UTC, which had already turned over. The opening date is a separate reading and stands. It enters the Compute table when #404 builds it, after the firewall restore has been rehearsed on it. It ships with the onboard NIC only; the I226 card the restore depends on was a separate purchase, made 2026-09-11 and the entry below — in hand and fitted since 2026-09-25. So what the rehearsal waits on is no longer this box or the card: it is the installer stick alone. The 512 GB SSD is M.2, and the second M.2 slot is free — read off the machine on 2026-09-15, and the answer the entry below was waiting for. There is no drive carrier and nothing contended: the I226 card went into that slot on 2026-09-25, and the contingency the documents carried since 2026-09-11 did not fire. It arrived carrying Windows 11 Pro, sold refurbished with a licence. The rehearsal's first act is to wipe it, so that licence is spent rather than banked: it is OEM, it dies with the install it shipped on, and it did not stand in for the two Windows 11 Pro keys in the buy table (roadmap.md). Those were bought separately on 2026-09-25 and are activated oncarbuncleandsiren, the lab domain's two endpoints (ADR-0029, #414) — a different machine and a different decision. The warranty runs to 2027-09-08 — one year from purchase, through SquareTrade, applied automatically because it was sold as eBay Refurbished. It is worth recording because ADR-0034 accepts that the tier is down until a replacement arrives: inside that year a deadtrinityhas a claim behind it, and after it the ADR's cost is the whole cost. The seller-return window closes 2026-10-08, thirty days from purchase. That is a deadline on the list below rather than a fact about the machine. Still the listing's claims rather than the machine's, and still to be read: the i5-8500T, the 32 GB and the 512 GB above, the serial and the product number off the case, and that it really does have the onboard NIC alone — read them before that date. Installing pfSense over the Windows partition is what ends the return and is the one step of the rehearsal that cannot be taken back, so the machine has to be proved while sending it back is still an option. It waits on nothing. - Intel I226-V 2.5 GbE card on an M.2 B+M-key adapter — bought 2026-09-11,
in hand since 2026-09-25 and fitted in
trinitythe same day. The second port on the ProDesk Micro above, matching the card inmorpheusso a pfSense restore onto the spare brings the LAN up asigc0and asks nothing (restore-the-firewall.md, #404). It is the one entry on that runbook's prerequisite list that was still unbought, and it is deliberately not a USB NIC: a USB adapter comes up asure0, which is the one thing a restore must not be asked about. It goes in the G4 Micro's second M.2 slot, and that slot is free: the box was opened on 2026-09-15 and its 512 GB SSD is M.2, so there is no 2.5" drive carrier to contend with. This entry carried the opposite contingency from 2026-09-11 until then — that a carrier and this card would want the same space, and that one of them would have to go. It was a real risk and it did not happen; recorded as answered rather than deleted, because the reason the card was bought before the box was opened is the part worth remembering. The free slot took it, fitted on 2026-09-25 —morpheusis the same model and does exactly this, which is why the same model was bought. Still to read: the part number off the card, and the port's MAC. The Windows the box shipped with shows the MAC before the rehearsal wipes it; after the install, FreeBSD shows it onigc0, which is also the proof that the driver claimed the card. - 2 TB USB portable hard drive — on hand, previously a games console's
storage. Becomes the photo library's disk on
trinity(#404): Immich's originals on it, its database on the internal SSD, after a wipe and anext4format. One consumer spinning disk with no mirror, so the off-estate copy ADR-0023 requires is what protects it — the same as would have been true of a bought drive, which this replaces. - Lenovo ThinkServer TS150 — Xeon E3-1225 v6 (4 cores, 3.3 GHz, Intel HD P630
with Quick Sync), 8 GB ECC, four 3.5" bays, no drives, no OS — bought
2026-09-09, in hand since 2026-09-15. The NAS
smaugof ADR-0016, tracked under #413. A tower, not a rack unit, and a 73 W part where the ADRs pictured an N100. It entered the Compute table on 2026-09-16, which is the trigger this entry set for itself — placed, addressed at10.0.40.30, and innetwork.md. It is powered from the rack's PDU by a long cord to the media room, read at the rack on 2026-09-20 — the one sentence #413 owed this entry, and the fact #574 could not find: the box is on the UPS, so a cut longer than the pack is a deferred unclean stop for the mirror rather than an immediate one, and ADR-0049 makes it a subscriber that halts on the signal instead. The Storage column reads the boot disk alone on purpose: the ZFS mirror does not exist until the two Exos drives land, and a Storage column describing a pool nobody has created would be the kind of claim this table exists to not make. The boot disk the TrueNAS install wants (ADR-0040) and the bracket that carries it in the optical bay are the entries below and landed with it; the two drives for the mirror, bought 2026-09-11, landed on 2026-09-18 and were in the bays that evening. The Storage column reads the mirror since 2026-09-19. Nothing for this machine was outstanding on the roadmap's list from 2026-09-18 until 2026-09-21, when memory re-entered it (#599) — the pool and the transcoder both landed after the box was specced, and neither was weighed against the one DIMM below when it was. Read off the machine on 2026-09-15, where everything above it came off a listing:ThinkServer TS150, machine type-model70UB000AUX, serialMJ05N4NK. Xeon E3-1225 v6 at 3.30 GHz, four cores, andActive Video: IGD— so the P630 this box was chosen for is live, which is the hardware half of ADR-0040's reopen condition and not the whole of it; whether Quick Sync reaches a container was tested on 2026-09-19 and it does — a hardware decode, scale andh264_qsvencode inside the Jellyfin container, perbuild-the-nas.md§6.1. 8192 MB at 2133 MHz, which is one SamsungM391A1G43EB1-CPBQ— 8 GB 2Rx8 PC4-2133P, ECC unbuffered, date code 1728 — in one of four slots. More memory is therefore an add and not a replace, and the part to match is ECC unbuffered: a registered DIMM will not run on this board. The label was photographed on 2026-09-21 and readsPC4-2133P-EE1-11, which is the same constraint in the form a listing photograph can be checked against: in the JEDEC module marking the two letters after the speed grade are the module type, andEEis ECC unbuffered.RAorRBis registered and will not POST here,LDis load-reduced and will not either, andUAorUBis unbuffered without ECC — which this board does accept, and which ADR-0040 rules out anyway, ECC being ZFS's home ground. Read those two letters rather than the vendor part number: most DDR4 sold as server memory isRA. The same label confirms every field this entry already carried, which is why it is recorded as a check rather than a correction. The board takes four DDR4 UDIMMs at 2133 or 2400 to a maximum of 64 GB, so 8 GB is an eighth of what it holds and three slots are empty. #599 takes it to 32 GB, and it does so by filling the board rather than by halves: three more of the same 8 GB part, bought 2026-09-22, in the entry below. The roadmap row that left the buy list that day had said 32 GB with two slots still free, which would have meant two 16 GB modules; new ECC unbuffered 16 GB ran $134 to $140 each against $44 for this part, and the 2133 stick already fitted sets the clock for whatever joins it either way. The cost of that choice is named rather than discovered later: at four slots occupied, 64 GB is a replacement of all four modules and not an addition, so the board's ceiling is reachable only by discarding what is in it. 32 GB is the number ADR-0040's workload was sized against, and the second half of the ceiling was never costed. Onboard NIC4c:cc:6a:xx:xx:xx, recorded as an OUI like every other address here. BIOSS06KT81Ldated 2024-02-05, boot block1.81, flashed 2026-09-16 while the box was still empty. It shipped onS06KT03Rdated 2017-05-22 with boot block1.03— a firmware predating the Spectre and Meltdown microcode by a year — and the flash was done before the pool existed precisely so that a reset ofConfigure SATA asor ofCSMwould cost a re-check rather than an unbootable host with data on it. Both were re-checked and both survived, as did the machine type-model, the serial, the UUID, the MAC and the clock. The embedded controller did not move: it readS06CT01Abefore and readsS06CT01Aafter, and whether the package updates that component at all is unestablished — recorded as an observation rather than as a failure, because nothing misbehaves and the BIOS half plainly took. Intel AMT was enabled and on its factory-default credential when this box arrived, and is now off. Intel MEv11.6.12.1204, MEBxv11.0.0.0012: the MEBx acceptedadminon 2026-09-16, which is Intel's default and means nobody had ever set one — the same class of thing the CRS326 entry below warns about, that a used device arrives carrying whatever its last owner left on it.Manageability Feature SelectionreadEnabled,Password Policythe stockAnytime, and the ME network name and domain were both blank, which is the evidence it had never been provisioned onto a network rather than a proof of it. Closed the same day, in the order the firmware requires: a new ME password (MEBx forces one at first login, and it lives in the operator's password manager), thenUnconfigure Network Access→Full Unprovisionwhile the feature was still enabled, thenManageability Feature Selection→Disabled. Verified by the<CTRL-P>prompt no longer being offered at boot. Disabled rather than hardened, which is the opposite of what ADR-0033 decided forshiva, and the difference is the host's job rather than a change of posture:Sarumanis headless in a rack and a remote console is load-bearing there, so its iLO was kept and locked down.smaugis a tower with a monitor beside it, on the segment with the televisions and the consoles. Out-of-band management buys it nothing and would cost a management plane that answers when the operating system is off. Six SATA ports, all enabled, and two settings that were already right rather than needing changing:Configure SATA as [AHCI], which is the raw-disk access ZFS wants and the thing #418 is the cautionary tale for, andCSM [Disabled], so it boots UEFI as TrueNAS wants. Two 3.5" trays, filled by the Exos pair on 2026-09-18 — exactly the mirror and no spare. The trays are not on those six ports. Read withlspciandreadlinkat the console on 2026-09-19, while triaging the faulted disk: both Exos enumerate underhost0at PCI01:00.0, a Broadcom / LSI MegaRAID SAS-3 3008 "Fury", PCI ID1000:005f— the SAS3008 in its MegaRAID personality, which is the ThinkServer RAID 520i option for this chassis, sitting in the PCIe slot and cabled to the bays. The chipset AHCI at00:17.0carries only the boot SSD onata6;ata1–ata5read SATA link down at boot. SoConfigure SATA as [AHCI]protects the boot disk and nothing else, and the pool has had a RAID controller between ZFS and its disks since the day it was built — the arrangement the line above calls #418's cautionary tale. It is the MegaRAID firmware, not the chipset, that handledsdb's failure with 60-second command timeouts, task aborts and a target reset.smartctlreaches the drives without a-d megaraidoption and reports them by their own model and serial, which is what a JBOD pass-through looks like — anddmesgconfirms it, read the same night: drivermegaraid_sas07.727.03.00-rc1, controller typeiMR(0MB)— the cacheless entry-level MegaRAID, no write cache and no battery to worry about — subsystem1000:9340, which is the 9340-8i family the ThinkServer RAID 520i is built on, Secure JBOD support: Yes, andJBOD sequence map : enabled, which is the driver's way of saying the disks are JBOD devices rather than virtual drives. So ZFS sees the drives themselves through a RAID firmware's error handling, which is the better of the two arrangements a MegaRAID offers and still not an IT-mode HBA. The firmware version is not indmesgand not in sysfs either —/sys/class/scsi_host/host0/fw_verdoes not exist, read 2026-09-19, andmegaraid_sasexposes crash-dump and queue attributes there and nothing about its firmware. TrueNAS ships nostorcli. So the version is read off the card's own boot-time utility. Read 2026-09-22 at the power-on after the faulted disk came out, in the UEFI setup's Advanced → AVAGO MegaRAID Configuration → Controller Management: product AVAGO MegaRAID SAS 9340-8i, PCI ID1000:005F:1000:9340, package 24.16.0-0104, firmware 4.660.01-8219, NVDATA 3.1605.01-0008, two connectors, status Optimal, no BBU, zero virtual drives, and the one remaining Exos on drive port 0 as JBOD. That reading is what #571 was owed. The card is coming out, by decision, 2026-09-23 (ADR-0052): at the swap, the Exos pair moves to the chipset's free ports on two plain SATA cables, bought for it because the only tray cable is the card's own mini-SAS breakout. The card and the breakout go on the shelf as the fallback. Until the swap, everything in this paragraph describes the path as it still is. The driver logged a disable/enable of its interrupts at 21:03:51 on 2026-09-19, the same second as the target reset in the fault'sdmesg— the controller resetting itself around a disk that had stopped answering, which is the Online Controller Reset it advertises as enabled.1000:005fis the ID to watch:1000:0097is the same silicon in IT mode, and the card was never recorded here, like the optical drive was not. Cabling below, inbuild-the-nas.md§1, saysSATA2andSATA3; that is now known to be wrong, and the same reading corrects it. The 5.25" bay was not empty: a PLDSDVD-RW DU8AESHanswered on SATA5. A photograph of the open case had been read here as an empty cage and was wrong; the BIOS summary is what caught it. The optical drive came out on 2026-09-16 and the boot disk took its place, its port and both its cables. The bay is a cage carrying its own fan on the board'sAUX1_FANheader, and that fan is not optional: it is the airflow over the drive bays, and two 7200 rpm Exos under a scrub will want it. Reconnected after the swap and readingAux Fan: Operating. - 2× Seagate Exos X20 18 TB (
ST18000NM003D, firmwareSN03), 3.5" SATA14 — bought 2026-09-11, in hand since 2026-09-18, a day after the carrier's window lapsed.smaug's ZFS mirror (ADR-0016, #413). A mirror of two is one drive's capacity, so this is 18 TB usable, not 36. Read off both drives withsmartctl -aat the console on 2026-09-18, before the pool existed: serialsZVTBS4NLandZVTBSDL3, bothPASSED, both at 0 power-on hours, 0 reallocated, 0 pending, 0 uncorrectable, no errors logged, 26 °C in the bays against a lifetime range of 24–26. The zero hours is a fact, not a claim, and it was checked the one way that settles it. SMART's hours counter can be reset, and used Exos drives with it zeroed were sold as new through 2025; Seagate's FARM log keeps a second counter that the reset does not touch, andsmartctl -l farmon this host read 0 power-on hours and 0 spindle hours on both drives. What the resettable counters add is consistent with new drives bench-checked by the seller and with nothing more:ZVTBSDL3arrived carrying a Windows quick format — a 16 MB Microsoft reserved partition and an NTFS volume labelledNew Volumefilling the rest — with 718,258 LBAs written, about 370 MB and the size of that format, three power cycles, and one short self-test logged at lifetime hour 0;ZVTBS4NLarrived blank, two power cycles, nothing written. Both spun up and enumerated on the first power-up. The TS150's SATA power lead has four wires and no orange one, read on 2026-09-18, so this supply puts nothing on pin 3 and the Power Disable trapbuild-the-nas.md§1 records does not apply on this box — it would on a supply that does. They entered the Compute table with the pool. Both extended self-tests completed without error. Started 2026-09-18 at lifetime hour 0, under the pool creation and the first day of the stack, and read on 2026-09-20 withsmartctl -l selftest:ZVTBS4NL(sda) logged the completion at lifetime hour 25 andZVTBSDL3(sdb) at 26, no LBA of first error on either, andsdb's log still carries the seller's short test at hour 0 above it. That was the last open line ofbuild-the-nas.md§7, and #413 closed on it.ZVTBSDL3(sdb) FAULTED on 2026-09-19 at 20:55 PDT (03:55 UTC 2026-09-20), at about lifetime hour 27 — one day after arrival and about an hour after the extended self-test above completed clean. TrueNAS raised "Pool erebor state is ONLINE: One or more devices are faulted in response to persistent errors … Disk ST18000NM003D-3DL103 ZVTBSDL3 is FAULTED". node_exporter's/metricshad stopped answering at 20:46, nine minutes earlier, with the port still accepting connections, soInstanceDownwas the page andZpoolNotOnline— the rule this fault produced — never got a sample.ZVTBS4NLcarries the pool alone until a replacement is fitted; the return runs under the eBay guarantee, thirty days from the 2026-09-18 delivery, to 2026-10-18. Whatdmesgand SMART said at the console, and the outcome, belong inreplace-the-nas-disk.md's status block and then here; #558 carries it. Read at the console on 2026-09-19 at 23:19 PDT, at lifetime hour 32: it is the drive.zpool statuscounts 3 read and 99 write errors on the leaf;dmesgis Logical unit not ready and 60-second command timeouts from 20:47 on, with no link resets and no CRC errors; SMART reads 850 pending and 850 offline-uncorrectable sectors against the 0 and 0 of the day before,Command_Timeoutnormalised to 1, overall health stillPASSED; and FARM puts all 850 reallocation candidates on head 5, with 124 command timeouts and 179 hardware resets, both rails in spec, 28 °C.ZVTBS4NLis unaffected. The extended self-test that completed at hour 26 was true when it was read and is not evidence now. The return was opened on 2026-09-20 under the eBay guarantee, as defective; the label is due by 2026-09-24, and the seller had not chosen refund or replacement when this was written — a replacement means no purchase, a refund means an 18 TB bought outright and a row inroadmap.md's buy list. Seagate's warranty, read 2026-09-22 with the tray out: none. The label's QR code verifies as a genuine 18000 GB drive, so the "0HR" lot is not relabelled stock, and Seagate's lookup forZVTBSDL3says "Your product is not under warranty. Please contact the place of purchase." The eBay return is the only remedy.ZVTBS4NLcame from the same lot and was not looked up, because its tray stays in; assume it is the same until it is read. Wiped and pulled 2026-09-22, runbook step 4. Offlined in the UI;shred -n 1ran on/dev/sdb, confirmedZVTBSDL3bysmartctl -i, at about 215 MB/s, which is a day or more for 18 TB. It was stopped at 93 GiB for time, so the fallback ran:zpool labelclear -frefused (failed to clear label, because shred had already overwritten the front), then addof zeros over the first and the last 1 GiB, both complete.wipefsthen listed no signature andsdb1no longer existed. The labels and partition tables at both ends are gone; the data blocks between 93 GiB and the last GiB were not overwritten. The drive took every write it was given, so this was a choice made for time and not a refusal. Tray pulled by its label, and shipped on eBay's label on 2026-09-22.ereborreadsDEGRADEDonZVTBS4NLalone,0 0 0, No known data errors. One correction from the same day: TrueNAS's alert did not stop at the web UI. TrueNAS Connect emailed it to the operator's mailbox 37 s after it fired, which is a mailbox rather than a page, and a cloud service this host initiates a connection to — #483's subject. The return came back as a refund, not a replacement. The drive reached the carrier on 2026-09-23, and eBay issues the refund within three days of the seller receiving it. So the replacement is a purchase, and it is the entry below.ZVTBSDL3stays in this entry as the drive that faulted. - Seagate Exos X20 18 TB,
ST18000NM003D15 — 3.5" SATA 6 Gb/s, 7200 rpm, eBay Refurbished, from goharddrive. Bought 2026-09-24, in transit, with an estimated delivery of 2026-09-26 to 2026-09-29, under #558. $499.99 and $51.50 tax, $551.49 all in. It replacesZVTBSDL3inerebor's mirror, alongsideZVTBS4NL. It is the same part number as the pair above but not the same lot or seller. That pair was sold as new "0HR" drives, and Seagate's lookup found no warranty on them. This one is sold refurbished, with eBay's refurbished-programme warranty serviced by Allstate rather than Seagate's own. It was bought the day the refund answer came in, becauseereboris one disk until it is fitted and the roadmap's NAS milestone waits on that. It went straight to a purchase rather than through the buy table (roadmap.md). Checked on arrival, not assumed: the serial and its warranty status by Seagate's lookup, SMART's power-on hours, reallocated and pending counts before it goes in a tray, and a long self-test. Thenreplace-the-nas-disk.md's fit, resilver and scrub. A refurbished drive's hours are the listing's claim until SMART reads them. The Compute table still reads a two-disk mirror, and the pool is whole again only when the resilver completes. - Intel DC S3520 240 GB, 2.5" SATA 6 Gb/s enterprise SSD with power-loss
protection — bought 2026-09-11, in hand since 2026-09-15.
smaug's boot disk, carrying TrueNAS and the media stack it launches (ADR-0040, superseding ADR-0016's Ubuntu Server), deliberately not the mirror — an arrangement TrueNAS wants anyway, since it keeps its boot device out of the pool entirely. A data-centre part where the roadmap asked only for "a 240–256 GB 2.5" SATA SSD": the endurance is beside the point for a boot disk, but the power-loss protection is the same property the SM863a pair was bought for, and a boot disk that survives a power cut is worth more here than one that is merely fast. The TS150's optical bay is 5.25" and this is a 2.5" drive, so it cannot be fitted bare: a bracket for the bay and double-sided tape to mount it were bought 2026-09-11, alongside the drive, and both landed with it on 2026-09-15. The bracket is a 5.25"-to-2.5" adapter and does fit both the drive and the bay — an assumption until it was fitted. It and the tape are still unnamed here, which is a naming this document owes rather than one it is waiting on. Fitted 2026-09-16 and detected: the BIOS summary readsSATA Drive 5 Hard Disk INTEL SSDSC2BB240G7, and theG7suffix is the S3520 generation — so the part is what the listing said, on the port the optical drive vacated, with both its cables inherited rather than found. SerialPHDV706401TM240AGN, firmwareN2010101, on SATA 3.1 at 6.0 Gb/s.smartctlread 2026-09-16, and it is a used drive with a history worth recording: SMART self-assessmentPASSED,Media_Wearout_Indicator088 — Intel's own counter, which starts at 100 and falls, so roughly a tenth of the write endurance is spent and the rest is ample for a disk that will carry an operating system and no data. 13,182 power-on hours, about eighteen months running. Around 72 TiB written by its previous host. Zero pending sectors, zero reported-uncorrectable, zero CRC errors, zero end-to-end errors, and 24 °C in the bay with the fan on. 509 unsafe shutdowns out of 538 power cycles, which is the number that says what this drive did before: it was almost never shut down cleanly. Re-read at the console on 2026-09-21: 519, at 13,301 power-on hours — ten more in the five days since the install, on a host that has been up throughout, which is the counter #574 wants watched and the reason ADR-0047's collector now reads it. Note that this drive reports it under two attributes, 174 and 192, both of whichsmartctlnamesUnsafe_Shutdown_Count; the collector renders one series and says why. It is also the argument above, tested. This part was chosen because a boot disk that survives a power cut is worth more here than one that is merely fast, andPower_Loss_Cap_Teststill passes after 509 of them — the capacitor works and somebody else did the proving. Four reallocated sectors, and that is a number to watch rather than to reject — normalised 099 against a threshold of 000, with nothing pending and nothing uncorrectable behind it. It has a consequence that is better written down now than discovered later:SmartDriveBadSectorsholds every drive to the reallocated count already recorded for it, and to zero when none is, because a remapped sector never un-remaps and the first one is the finding. So this drive's four are recorded, inscripts/render-smart-baselines.shbesideoracle's 32 with the day they were read — the answer #572 built in place of the silence #351 used, because a silence matches labels and no label carries the count, and a baseline lives in git and does not expire.SmartDriveBadSectorsGrowingcarries the trend above it. The row is inert untilbuild-the-nas.md§6.4 runs the collector on this host — a root cron job under the scrape, by ADR-0047, which closed #483 — and its device letter is confirmed that day from what the collector prints. Since that ADR the collector also reads this drive's wearout indicator, soSmartDriveWearHighcan see it, and its unsafe-shutdown counter, which is the number #574 asked for andSmartDriveUnsafeShutdownsGrowingnow reads (ADR-0049).SmartDriveWearHighwill not fire — it wants 80 % of rated life used and this is near a tenth. No self-tests had ever been logged in 13,182 hours, so a baseline was taken on 2026-09-16 before the machine carried anything: extended offline, completed without error, at lifetime hour 13,183. The drive took far longer than its own two-minute estimate because it advertises Suspend Offline collection upon new command and TrueNAS was live underneath it — worth knowing before reading a slow self-test as a sick disk. TrueNAS's scheduled tests take it from here; they run the tests, and ADR-0047 publishes the attributes. - 2× Samsung SM863a 960 GB (
MZ-7KM960N), 2.5" SATA 6 Gb/s enterprise SSDs with power-loss protection16 — purchased 2026-09-09, delivered 2026-09-11, fitted 2026-09-18 in bays 3 and 4 of the ProLiant, and since 2026-09-19 the P440ar's logical drive 2: RAID 1,915683MB, carrying the LVM-thin poollarge_data(volume group, pool and Proxmox storage id are all that one word). Bought against the number every sizing decision onSarumanstarts from: a 7.2K mirror serving about ninety random write IOPS (ADR-0029). Measured 2026-09-20 (fit runbook step 8: 4 KiB random write, queue depth 1,direct=1, an 8 GiB thin volume on each pool): the HDD mirror does 741 IOPS idle and 734 with the guest live, 1.3 ms mean and 12.5 ms p99, against the derived 83 — the controller's battery-backed write cache, whichssaclireads as10% Read / 90% Writeand the iLO reads as0, is absorbing writes; at queue depth 32 the mirror sustains 712. The SSD mirror does 7,952 IOPS at queue depth 1, 102 µs mean and 198 µs p99, and 51,600 at queue depth 32 — on SSD Smart Path, with no controller cache in the path. SerialS3F3NX0K601487in Bay 3 andS3F3NX0K806107in Bay 4, firmwareGXM5304Q, both negotiated at 6 Gb/s — as the iLO reports them over SNMP, not as read off the labels. The fit runbook asked for the labels first, because reading a serial back through the controller means reading it through the tool the fit is trying to verify; that was not done while the drives were unassigned, and the window closed when they joined an array. The iLO gives the model only asSAMSUNG— it names a third-party SATA drive by vendor where it gives the HPE disks their part number — so the part is proved by the size (915715MB), the firmware and the serial prefix rather than by the model string. Both read solid-state, SMARTokandnotConfiguredfrom the first scrape they appeared in, at 20:11 UTC on 2026-09-18, andconfiguredfrom 13:40 UTC the next day, the scrape the logical drive first appeared in — created through the offline Smart Storage Administrator, notssacli, which reached the host that evening from HPE'strixiesuite and read the controller for the first time. The array readokfrom its first scrape and nothing alerted for it; what did alert was the fourteen-and-a-half-hour power-off the SSA session sat inside, which the runbook now records. The iLO's wear columns stayed blank once the drives were configured — wear statusother, endurance and power-on hours unknown — which is the condition #529 was filed against, so wear on these two drives is #529's to read throughhpsa, andssacliagrees: both reportSSD Smart Trip Wearout: Not Supported.alexanderhas lived onlarge_datasince 02:41 UTC on 2026-09-20 — a 100 GiB disk mirrored across online in 7 min 28 s,unused0removed,ssd=1set, and rebooted so the guest sees a non-rotational disk. The cache reading #76 waited on since 2026-09-02 is taken and is the iLO's blind spot, not the controller's: the ratio is set and the cache is working. The numbers above are what #527 closed on, and the ADRs whose arithmetic they replace carry dated notes rather than edits. The two spinners in bays 1 and 2 are SATA, not the SAS this table said until 2026-09-20 —Interface Type: SATA,MM1000GBKAL, read byssacli— which changes no decision and one word. This entry is where the serials live, which is the question #148 asked. - 2× HP 2.5" SFF drive tray,
651687-00117 — bought 2026-09-11, arrived and fitted 2026-09-18, one under each SM863a in bays 3 and 4. The carriers the pair above needs to sit inSaruman's SFF bays (#418). A Gen9 bay holds a drive only in a tray, so two drives want two trays, and two is what was bought — worth writing down, because one tray short is one SSD fitted and one on a shelf. The arrival checks this entry asked for are answered by the bays rather than by the packaging: both trays took a drive, and the iLO reads the same carrier firmware on all four bays (cpqDaPhyDrvSmartCarrierAppFWRev11, bootloader6), so they are the Gen8/Gen9 SmartDrive carrier and not the Gen10 part or the 3.5" LFF one. This purchase went unrecorded for six days, which is the omission this entry exists to close. It was made in the same sitting as the I226 card, the Exos pair, and the boot disk's bracket and tape, every one of which has had an entry here since the day it was bought. The roadmap's rule is that a purchase is written down when the money is spent, so a gap like this is the rule failing rather than a thing the rule allows. Found on 2026-09-17 while reading the ProDesk's arrival paperwork for #92, which is not a way of finding purchases that can be relied on.651687-001is the listing's part number, not read off the tray. - MikroTik CRS326-24G-2S+RM18 — 24 × 1 GbE, 2 × SFP+, 1U, dual-boot
RouterOS / SwOS — bought used 2026-09-13, in hand since 2026-09-23.
The box held the switch and its rack ears and no power adapter. The rear
panel has no AC inlet: the only power input is a barrel jack marked
DC 10–28V, beside a ground screw, with a blank plate where other units carry an inlet. PoE-in on port 1 is the other input. MikroTik rates the unit at 24 W maximum. A MikroTik 24HPOW19 (24 V, 2.5 A, North American cord) was ordered 2026-09-23 and is in transit, and the bench steps wait for it (#444). Not 48POW: it is MikroTik's too, has the same plug, and puts 48 V into a jack labelled 10–28 V. The replacement forneothat ADR-0018 asked for in its last consequence and #444 decided. It is bought for one property, a TLS management interface: RouterOS serves its UI overwww-ssland imports a certificate, so the switch admin credential stops crossing the wire in clear through the device it protects. #84's GETBULK residual rides along; SNMPv3 is not the argument, because ADR-0036 found the switch in the rack already answers v3 on the wire. How it is configured was decided before the window rather than during it — ADR-0041 runs it on RouterOS, keeps the nameneoand the address10.7.7.2, serveswww-sslfrom a leaf off the estate's CA with plainwwwoff, and gives it an SNMPv3 authPriv user; the procedure isswap-the-switch.md. It enters the Rack table at U9 andnetwork.mdwhen it is racked —neocarries every VLAN, so the swap is a house-wide outage and shares a rack visit rather than getting its own — and until thenneois the switch in every document and every target. Checked on arrival, not assumed: which OS it boots and the version on it (/system resource), the serial and the management MAC, that the rack ears and the power supply are in the box, and a netinstall or factory reset before it touches the network — a used RouterOS device arrives with whatever its last owner left on it, users included. Those go here when it lands. - USB stick holding the pfSense installer — in hand since 2026-09-26; it
belongs in the rack beside the KVM once #92's rehearsal has used it.
restore-the-firewall.mdlists it as something you will need, so a restore attempted before it lands is a restore that stops to go looking for one - HP Smart Storage Battery 96W (
727258-B21, spare part815983-001) in the ProLiant, fitted 2026-09-02 to replace the pack that had failed. The Smart Array re-enabled its write cache on the first scrape after the fit; the cache ratio it reports is still open (#76) - A1437 battery cell for
prometheus20 — the pack that fits theA1425, the late-2012 Retina 13" in the Compute table — bought new 2026-09-13, delivered 2026-09-18 and fitted the same day. A consumable and not an upgrade: it is the one exception the roadmap's Never line names, bought because the estate's mains-cut path rests on this cell and the failure mode of a thirteen-year-old lithium cell on a shelf is swelling (#454). The listing calls it genuine and its brand field says unbranded, so it is recorded as a compatible cell, not an Apple part. That wording was written to be settled once the part could be looked at, and the fit settled it sideways.manufacturerandmodel_namecame back unchanged —SMP,bq20z451— because an aftermarket A1437 reuses the same gas gauge; but both design figures moved,charge_full_design6.6 → 6.8 Ah andvoltage_min_design11.21 → 11.4 V, which is a pack reporting its own numbers and is the only proof of a different part available on a machine that exports no serial. It stays recorded as a compatible cell. The new pack readscharge_full6.889 Ah of 6.8 Ah design (101 %) atcyclecount1. The cell it replaced read 94 % of design capacity after 108 cycles, on 2026-09-12 and again on 2026-09-17 — aboveHostBatteryHealthLow's 80 %, so it was bought on age and not on the alert — and went for recycling on 2026-09-18. Nothing in the Compute table changes; a cell is not a spec. Checked at the fit:charge_fullabovecharge_full_design,cyclecount1,charge_amperemoving, and both design figures changed — all read from this host's own Prometheus on 2026-09-18. Checked on 2026-09-19, and the check that closed #454: the mains pull on the fully charged pack. The host stayed up for a bounded 22 minutes on the cell,HostOnBatteryfired for it alone, and the draw measured 2.72 Ah/h — about 2.5 hours from full at the load the stack presents, the first runtime figure the estate has had for either laptop, and one measurement on one day. (replace-the-laptop-cell.mdcarries the baseline, the stack-down window — 14:53 to about 18:12 on the day, over its own two-hour bound — and the disposal.)oracle's cell reads 72 % and is second in line, bought 2026-09-19 — the entry below. - Dell M5Y1K 4-cell pack for
oracle21 — 14.8 V, 40 Wh, the latched pack the Inspiron 15-3565 in the Compute table takes. Identified and bought 2026-09-19, in transit, under #531: the part was written down here before the money was spent, which is the order that issue asks for, and the purchase followed the same day. The listing calls it genuine Dell, which — as with the A1437 above — is the listing's claim until the pack is looked at; a Dell label and aserial_numberthat is not1650are what would settle it, and the fit records which it turned out to be. The listing quoted delivery in two to four days. It had not arrived by 2026-09-26, and eBay's estimate had moved to 2026-09-28. The number comes off the machine rather than off the listing:/sys/class/power_supply/BAT0reportsmodel_nameDELL VN3N047, andVN3N0is one of the interchangeable Dell part numbers for this pack —M5Y1Kis the primary, andWKRJ2,HD4J0,991XPandGXVJ3the others listings carry — withmanufacturerSMP-Sanyo2andserial_number1650. The design figures agree with the part: 2.8 Ah at 14.8 V is the 40 Wh on the label. It is the second laptop cell and the same consumable exception as the A1437 above, second in line becauseprometheusdying is the estate going blind andoracledying is the wiki and the off-host jobs going quiet (#454). It measures worse than the cell that exception was written for:charge_full2.021 Ah of 2.8 Ah design, 72 %, read 2026-09-12 and unchanged on 2026-09-19 — the same figure across the whole 30-day retention — belowHostBatteryHealthLow's 80 % line, and that alert has fired for it since 2026-09-14 under a silence that expires 2026-10-08. A bare battery, not a kit: unlike the MacBook's glued cell this one sits behind a slide latch on the underside, so the swap is a latch and a lift with the machine off, and needs no solvent, no screws and no tools. The machine's coin cell is a separate CR2032 behind the keyboard and palmrest, which a latch swap never reaches — the reason its clock is expected to survive the disconnect that resetprometheus's (#519), and a thing the fit checks rather than assumes. What proves the swap differs from the MacBook too: this pack's info series carries aserial_number, which the MacBook's does not, so a changed serial is the clean proof row; and its firmware reportscyclecountas0always and exports notemp_celsius, so two of the MacBook's rows are unavailable here.replace-the-laptop-cell.mdhas the procedure and a section on what differs on this host. Nothing in the Compute table changes; a cell is not a spec. - Three Samsung
M391A1G43EB1-CPB22 — 8 GB DDR4-2133 ECC UDIMM, PC4-17000P-E, dual rank x8 — bought 2026-09-22 under #599, shipped FedEx 2026-09-25 and in transit. The seller held the order for an identity check. The check was answered and the order released the same day.smaug's memory, and the same part as the module the machine already carries: this is the matched-set answer to that issue rather than the two-16 GB one, for the reason the Compute entry above now records. $44 each, $132 the three, $15.30 FedEx 2Day, $147.30 all in, from Memory.NET with a lifetime warranty on the modules. New, not pulled — the used market for this part sat between $19 and $45 a stick with no warranty, so the premium here is small and buys the replacement path. It takes the board to 32 GB across all four slots, and what the arrival has to check is what no listing can answer: that three strangers and the incumbent train together at 2133 and that the board posts with every slot filled. Until then the Compute table reads 8 GB, because memory in a box in transit is not memory in the machine. Ordered the day after the label was photographed, which is what settled the part number —PC4-2133P-EE1-11off the installed module,EEbeing ECC unbuffered, and this listing namingPC4-17000P-Efor the same thing. - WD Elements Portable 5 TB,
WDBU6Y0050BBK-WESN23 — 2.5" USB 3.2 Gen 1, bus-powered, no power brick — bought 2026-09-22, under #455. The drive ADR-0023 was waiting on: the off-estate copy of the household's photographs and documents, kept at another address. Not the estate's backup sets — those ride with the second age recipient (ADR-0048,copy-the-backups-offsite.md) and this drive is not that medium. 5 TB against a 2 TB source — Immich's originals ontrinity's USB disk, plus Paperless's documents — so the capacity question does not come back. What it cost is not written down here, which is this entry's one gap and the thing to close when the receipt is to hand; the roadmap's rule is that a purchase is recorded when the money is spent, and the date and the part are what that rule is for. Delayed in transit. Amazon moved the delivery estimate on 2026-09-22 and refunded the delivery fee. It had still not arrived on 2026-09-26, and that day the delay went to Amazon customer service. What they answer, and the day it lands, go here. It has no vendor encryption and that is why it qualifies: ADR-0023 requires a key that is not the one only the operator holds, and a drive password is a single-holder secret behind a vendor utility, which is the failure that ADR exists to prevent moved one shelf further away. The encryption is the estate's own, over a filesystem the other person's machine can read — the pairing, and whose key it is, are #455's two open conditions, neither of which a drive satisfies. Three things the fit checks rather than assumes: it ships formatted for Windows and wants reformatting for that pairing; its cable is USB 3.0 Micro-B at the drive end, so the cable travels with the drive or the drive is a brick at the other address; and a 5 TB 2.5" drive of this class is shingled, which is fine for an archive written in one pass and not fine as a live target. - ViewSonic N1700W LCD, used as a rack console via the KVM
- RJ45 Cat6 in-line couplers24
- Cat6 patch cables25
Footnotes
-
HP ProDesk 600 G4 Micro, the refurbished unit that is
trinity↩ -
Seagate Exos X20 18TB SATA 6Gb/s 7200RPM Enterprise HDD ST18000NM003D 0HR Drives ↩
-
Seagate Exos X20 18TB 7200 SATA 6Gb/s 3.5" Enterprise Hard Drive - ST18000NM003D, eBay Refurbished ↩
-
HP 2.5" SFF drive tray, 651687-001, for DL360/DL380/ML350 Gen8 and Gen9 ↩
-
Dell M5Y1K 40 Wh 4-cell battery for the Inspiron 15 3000 series ↩
-
Samsung M391A1G43EB1-CPB, 8 GB DDR4-2133 ECC UDIMM PC4-17000P-E dual rank x8 ↩
-
WD 5TB Elements Portable External Hard Drive, WDBU6Y0050BBK-WESN ↩