/PowerEdge-shutup

shell ballgag for Dell servers, tested working with G11 and G12, G13 and G14 too but with conditions**.

Primary LanguageShell

PowerEdge-shutup

[ Changelog ]

  • 2023 XX XX | >Since last year my R720's motherboard has been dying. Not sure if I'll get around to do finish the full 2.0 rework of this script since I won't really use it, but who knows, could gamble of me getting incredibly bored at some point.
  • 2022 07 11 | >minor update: Swapping CPU IDs fixing single CPU detection failure.
  • 2022 05 13 | >minor update: Adding custom failsafe value. Work In Progress branch for upcoming R5.
  • 2022 03 04 | >R4 patch1 : Adding new CPU Data source option, minor log corrections.
  • 2022 03 03 | >R4 Deltacheck CPU mode, DeltaA/E with Ambient check, failsafes, infinite CPU count.
  • 2022 02 27 | >minor update: adding IPMI-fail fail-safe.
  • 2022 02 27 | >R3 Auto CPUn/Ambient mode switching, logging, auto hexadecimal conversion, and more.
  • 2022 02 01 | >minor update: beginner friendly guide for beginner friendly Unraid and minor edits.
  • 2021 11 10 | >/!\ r2f : fixing a small, but quite critical fluke.
  • 2021 08 19 | >R2 update: now takes in account intake and exhaust temperatures!
  • 2021 04-08 | > various shit edits
  • 2021 04 14 | >R1 initial dump from my running environment & comments

Requirements

  • iDrac Entreprise (afaik it won't work with express)
  • IPMItool
  • G11*, G12, G13/G14** Dell Poweredge server

See also me/PowerEdge-IPMItools for more applications and resources.

What about it

Does what it says, depending on your environmental constraints, it might let you make your servers whisper-quiet, which

  • for an office or small business, might let you have a functionnal and capable server room without ACTUALLY having to have a proper server room with space and soundproofing,
  • and for a small home setup or homelab might be a life and sleep saver

It's the "raw script" that can be almost used as is in a cron job, you're obviously free to use it and modify it.

I'ld just appreciate that if you itterate on it or send it somewhere, you could else reference the source or commit it here under a new file name*, or fork it. (*to keep the original as-is, as an example of lazyness)

As of what you can do with these great little commands... well..

You can run them as a cron job, or create a loop, but point is, lets you set your fan speed to bare minimum RPM depending of how warm or cool is your room and how hard you hit your servers.

What if Linux hangs, and my server stops adjusting its fan speed?

For the sake of simplicity in this repo, I won't dive into the whole mess of scripts in own setup, BUT but the script actually doesn't run on the server itself but on a Pi2 of which the sole purpose is to manage IPMI enabled machines' cooling, be a server to distribute UPS data/status, and answer pings.

  • If the Pi hangs, when the server pings it, it won't get an answer, and the server will switch itself on auto fan mode, which is BIOS/Firmware managed. The server can also change its curve when running some tasks/loads, in fact it goes through NetCat to tell the pie "now I need that" and the pie switches to an other set of fan curve for that server.

  • If the server hangs... well it hanged, no biggie, the Pi keeps its cooling managed, since the IPMI would still pull accurate temps readings and would still answer the phone when the Pi tells it to do some stuff. So yeah, bit more convoluted but it allows the servers to not be needing to be stable indefinitely to not risk to catch fire.

I simply haven't included all that because it's a lot more cumbersome and needs to be kinda adapted to each setup and set of needs, and I'm clearly not going to do that.


*G11 seem to lack CPU temps in the data you can pull and rely on. Beware of the comments about it in the script, look for Delta A/E mode and Ambient mode.

**I was told it is also working on iDrac8 (G13) and iDrac9 (G14), but that beyond iDrac update 3.30.30.30 for G13 and 3.34.34.34 for G14, Dell has modified/removed the ability to control the fans via IMPI.