1
0
Fork 0
hscloud/dc/hbj11/README.md

90 lines
3.3 KiB
Markdown

hbj11 - the Hackerspace Blade JBOD adapter
===
Replacement cards for M610 blades at the hackerspace.
![](doc/hbj11-a0-photo.jpg)
Usually, Dell M610 blades have the following disk controller setup:
```
“Mezzanine connector”
.'-------'-------'.
.-----------------. .----------------.
| Motherboard | | Dell CERC card |
|-----------------| PCIe |----------------|
| |-------| PCIe-- | LSI |
| | SAS | .--| Crap |
| .-----|-------| SAS-' '-------|
| | | '----------------'
| | |
| | | SAS .----------------.
| '-----|-------| Disk Backplane |
'-----------------' '----------------'
| |
.-----. .-----.
| HDD | | HDD |
| | | |
| | | |
'-----' '-----'
```
However, the Dell CERCs are hot garbage. Put them in writeback mode, and the
non-battery-backed cache will lose data on power loss (and block the boot
process after reboot to let you know it lost data). Put it in write-through
mode, and lose most of your IOPS.
Turns out, the connector for the Dell CERC mezzanine cards carries not just
PCIe to the CPU's root complex and SAS to the disks, it also carries two SATA
lanes (non-SAS) to the built-in AHCI controller on the motherboard. Thus, we
can fabricate a 'jumper' card like this:
```
“Mezzanine connector”
.'-------'-------'.
.-----------------. .----------------.
| Motherboard | | HBJ11 |
|-----------------| PCIe |----------------|
| |-------| N/C |
| | SATA | |
| AHCI |-------|--. |
| | SAS | | |
| .-----|-------|--' |
| | | '----------------'
| | |
| | | SAS .----------------.
| '-----|-------| Disk Backplane |
'-----------------' '----------------'
| |
.-----. .-----.
| HDD | | HDD |
| | | |
| | | |
'-----' '-----'
```
This allows us to use the drives via the built in AHCI controller on the
motherboard! Of course, only one lane of each SAS lane is connected, so you can
only use SATA drives. But who cares about SAS, anyway. We just put SSDs in
these machines anyway.
There actually is a commercially available card from Dell that does almost
this, but it uses some expensive SATA redrivers. Turns out, you don't need them
- and we've tested this quite extensively.
There's one more thing on the connector to the card: an I2C flash that
identifies the card according to the IPMI FRU Information Storage Definition.
We need to place these on our custom cards and flash them. We decided to
over-engineer that, find that below.
Hardware
--------
A JLCSMT-compatible design for a four-layer 'HBJ11' jumper card is available in [hardware](hardware).
EEPROM & flasher
----------------
See [flasher](flasher) for a WebUSB/STM32 based flasher for the cards.