PowerEdge R740(以後PER740と記載)を少し前に購入した。Aamzonやらヤフオクやらで買い漁ったサードパーティ製の拡張カードやHDDをつけるとファンがめちゃくちゃ煩くなる。今回はこのファンを静かにする方法を書き記しておく。
これはHPEのサーバ製品とかでもよくある挙動。DELLの製品では「Third-Party PCIe Card Default Cooling Response Logic」と呼ぶらしく古いバージョンのiDRACならIPMIコマンドで無効にできたがPER740が搭載しているiDRAC 9以降はそのコマンドが封印され、できなくなっている模様。
ただしiDRAC9のファームウェア 3.30.30.30以下ならまだファンを手動でコントロールするコマンドが残っているらしく、PER740上で動いてるOSや外部からiDRACを操作することでファン制御を実現する。
有志の方がそれを実現するためのDockerイメージを作っており、サンプルのdocker-composeも用意されていたのでそれを参考に環境を構築した。
環境
- ハードウェア: PowerEdge R740
- IPMI: iDRAC9 ファームウェア 3.30.30.30
- ホストOS: Proxmox VE 8.2.4
環境構築
ホストOSはProxmoxVEを利用している。debianベースなのでホスト上でそのままdocker動かしてもいいけど、ハイパーバイザー的なOSの上でそういったことは心理的にあまりやりたくないので、LXCの中にdockerの実行環境を作ることにした。
LXCを作成
とりあえず、特権コンテナとしてdebian12のLXCを用意。ネストは有効。
設定ファイル(/etc/pve/lxc/VMID.conf)には以下のようにdev0: /dev/ipmi0
という行を追加してipmi0というデバイスファイルをパススルーする。これでゲストのLXCがこのファイルを用いて直接iDRACを操作可能になるっぽい。
TCP/IP通信でiDRACを操作するのかと思ったが、ホストOSが自身の筐体にのっかってるIPMIに直接アクセスする仕組みがるみたい。
arch: amd64
cores: 2
dev0: /dev/ipmi0
features: nesting=1
hostname: hostname
memory: 512
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=BC:24:11:A5:FA:55,ip=dhcp,type=veth
onboot: 1
ostype: debian
rootfs: local-zfs:subvol-101-disk-0,size=8G
swap: 512
Code language: plaintext (plaintext)
dcokerの実行環境用意
debian12で使える標準のリポジトリのdockerは古いのしか導入できないので、Docekr Docsで紹介されている手順に従ってdockerを導入。
任意のディレクトリでdocker-composeを作成して実行する
docker-compose.ymlを作る
services:
Dell_iDRAC_fan_controller:
image: tigerblue77/dell_idrac_fan_controller:latest
container_name: Dell_iDRAC_fan_controller
restart: unless-stopped
environment:
- IDRAC_HOST=local
- FAN_SPEED=20
- CPU_TEMPERATURE_THRESHOLD=50
- CHECK_INTERVAL=60
- DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false
devices:
- /dev/ipmi0:/dev/ipmi0:rw
Code language: YAML (yaml)
あとはdcoker-compose.ymlを作ったディレクトリの中で以下のようにコンテナをビルド and 起動させればおk
docker compsoe up -d
参考文献
- GitHub – tigerblue77/Dell_iDRAC_fan_controller_Docker: Docker image to control your Dell PowerEdge fans via IPMI
- Proxmox4.1のLXCコンテナにUSBパススルー #proxmox – Qiita
- Failed to run lxc.hook.pre-start for container | Proxmox Support Forum
- Dell PowerEdge Fan control – serverメモ @ ウィキ – atwiki(アットウィキ)
- iDRAC9: impossible to modify Fan Response for 3rd Party PCI cards | DELL Technologies
- How To Disable The Third-Party PCIe Card Default Cooling Response On PowerEdge 13G Servers. | Dell US
- Install Docker Engine on Debian | Docker Docs