From: Corey Minyard <tcminyard@gmail.com>
To: kvm@vger.kernel.org
Subject: Adding an IPMI BMC device to KVM
Date: Fri, 04 May 2012 14:10:50 -0500 [thread overview]
Message-ID: <4FA429BA.3040006@acm.org> (raw)
I've been working on adding an IPMI BMC as a virtual device under KVM. I'm
doing this for two primary reasons, one to have a better test
environment than
what I have now for testing IPMI issues, and second to be able to better
simulate a legacy environment for customers porting legacy software.
For those that don't know, IPMI is a system management interface. Generally
systems with IPMI have a small microcontroller, called a BMC, that is
always on
when the board is powered. The BMC is capable of controlling power and
reset
on the board, and it is hooked to sensors on the board (voltage, current,
temperature, the presence of things like DIMMS and power supplies, intrusion
detection, and a host of other things). The main processor on a system can
communicate with the BMC over a device. Often these systems also have a LAN
interface that lets you control the system remotely even when it's off.
In addition, IPMI provides access to FRU (Field Replaceable Unit) data that
describes the components of the system that can be replaced. It also
has data
records that describe the sensor, so it is possible to directly
interpret the sensor
data and know what the sensor is measuring without outside data.
I've been struggling a bit with how to implement this. There is a lot of
configuration information, and you need ways to simulate the sensors.
This type
of interface is a little sensitive, since it has direct access to the
reset and power
control of a system.
I was at first considering having the BMC be an external program that KVM
connected to over a chardev, with possibly a simulated LAN interface.
This has
the advantage that the BMC can run even when KVM is down. It could even
start up KVM for a "power up", though I'm not sure how valuable that
would be.
Plus it could be used for other virtual machines. However, that means
there is
an interface to KVM over a chardev that could do nasty things, and even be a
possible intrusion point. It also means there is a separate program to
maintain.
You could also include the BMC inside of KVM and run it as a separate
thread.
That way there doesn't have to be an insecure interface. But the BMC
will need
a lot of configuration data and this will add a bunch of code to KVM
that's only
tangentially related to it. And you would still need a way to simulate
setting
sensors and such for testing things.
Either way, is this interesting for including into KVM? Does anyone
have any
opinions on the possible ways to implement this?
Thanks,
-corey
next reply other threads:[~2012-05-04 19:10 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-04 19:10 Corey Minyard [this message]
2012-05-06 13:11 ` Adding an IPMI BMC device to KVM Avi Kivity
2012-05-06 14:35 ` Anthony Liguori
2012-05-06 14:39 ` [Qemu-devel] " Avi Kivity
2012-05-07 14:30 ` Anthony Liguori
2012-05-07 14:44 ` Avi Kivity
2012-05-07 14:55 ` Anthony Liguori
2012-05-07 15:11 ` Avi Kivity
2012-05-07 15:21 ` Anthony Liguori
2012-05-07 18:07 ` Corey Minyard
2012-05-07 19:45 ` Dave Allan
2012-05-07 20:47 ` Corey Minyard
2012-05-07 23:17 ` Anthony Liguori
2012-05-18 13:08 ` Stefan Hajnoczi
2012-05-18 14:57 ` Corey Minyard
2012-05-18 15:01 ` [Qemu-devel] " Corey Minyard
2012-05-07 15:17 ` Zhi Yong Wu
2012-05-07 18:53 ` Corey Minyard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FA429BA.3040006@acm.org \
--to=tcminyard@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=minyard@acm.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).