[libvirt] [PATCH 2/2] qemu: extend logging to record guest configuration events
Naoya Horiguchi
n-horiguchi at ah.jp.nec.com
Wed Apr 6 00:44:49 UTC 2011
Hi,
On Mon, Apr 04, 2011 at 03:55:26PM +0100, Daniel P. Berrange wrote:
> On Mon, Mar 28, 2011 at 05:13:47PM +0900, Naoya Horiguchi wrote:
> > The following events can be logged onto /var/log/libvirt/qemu/<domain>.log:
> >
> > starting/shutting down/suspending/resuming/migrating domains
> > changing the amount of memory
> > changing the number of VCPUs
> > inserting/ejecting a media into/from CDROM/Floppy devices
> > attaching/detaching PCI/SCSI/USB devices (including NICs and disks.)
> >
> > This patch generalizes qemudLog*() introduced in commit 93bc093ac
> > to handle the whole range of qemu driver's events.
> >
> > This is useful for the same reason as explainged in the previous patch.
>
> I think we need to think about the question of logging
> in a more thorough way.
>
> - libvirt.c: Logs invocation of every API call
> - qemu/driver.c/qemu_audit.c: Logs major lifecycle changes &
> any config change that is related host resources
> - virterror.c: Logs any API call that results in an error
> - qemu_driver.c: Logs a set of lifecycle/config changes
> (your previous patch 1/2) at VIR_INFO
> - qemu_driver.c: Logs a different set of lifecycle/config
> changes in /var/log/libvirt/qemu/<domain>.loog
Thank you for detailed explanation.
> I don't think the latter two are particularly great because
> they are only cover a fraction of the API calls in the QEMU
> driver. libvirt.c has full logging cover, but it only covers
> API calls, it doesn't indicate whether it was successful or
> failed.
I see.
> For SystemTAP, we likely want to add probes to libvirt.c
> which will log initial parameters, and the return values.
> Our SystemTAP probe macros also generate log statements.
>
> A further complication is that /var/log/libvirt/qemu/$NAME.log
> is intended for QEMU's stderr output. The only time that
> libvirtd currently writes to it, is before QEMU starts and after
> it has shutdown.
OK.
> This new patch means that libvirtd writes to it while QEMU is
> running, which is not really safe because you can now end up
> with 2 proceses writing to the same file at once. The log
> messages may well get interleaved/corrupted by each other.
> I don't think that is good for something that wants to be
> used as a formal record of operations on a VM.
>
> I think that in each driver we only really want to have to
> insert one set of formal "operation logging" calls. Since
> we already have the audit APIs present, I think we could try
> to make use of that to generate a record of operations against
> a VM in some way.
I didn't care about audit logging because it's not used in RHEL6.0.
I tried this logging mechanism and made sure that this logging recorded
enough information about operational events in /var/log/libvirt/libvirtd.log.
This feature meets our demand, so I'll drop this patch.
Thanks,
Naoya
More information about the libvir-list
mailing list