[libvirt] guests and pulseaudio fighting over audio devices
by Dave Allan
I noticed that when a KVM guest created with virt-manager is running on
F10, sound on the physical host stops working. When all VMs are
shutdown, sound starts working again. Removing the <sound> tag from the
VM XML allows sound to work while the VM is booted. To further
complicate troubleshooting, if audio is already playing when the guest
is started it keeps playing, since pulse already has the device open.
The message in /var/log/messages when I try to play audio is:
pulseaudio[6492]: module-alsa-sink.c: Error opening PCM device front:0:
Device or resource busy
strace of pulseaudio shows:
open("/dev/snd/pcmC0D0p", O_RDWR|O_NONBLOCK) = -1 EBUSY (Device or
resource busy)
but fuser and lsof show nothing. A trivial test program also sees
Device or resource busy when trying to open /dev/snd/pcmC0D0p
I am in favor of removing the <sound> tag from the default
configuration, since I don't use sound from within guests and I do use
sound on my desktop, but perhaps this behavior is specific to my
configuration. I haven't investigated it exhaustively. What does
everybody else think?
Dave
15 years, 2 months
[libvirt] Resubmission: [PATCH 0/6] sVirt AppArmor security driver
by Jamie Strandboge
Resubmitting based on feedback from this list. Notably, *alloc calls
have been removed and syntax-check completes without error for all
files.
Jamie
On Fri, 04 Sep 2009, Jamie Strandboge wrote:
> This patch series implements the AppArmor security driver for sVirt.
> This implementation was developed for the Ubuntu AppArmorLibvirtProfile
> specification[1], but is general enough for any AppArmor deployment
> (such as Ubuntu, *SUSE and Mandriva).
>
> This patch has seen quite a bit of real world testing in Ubuntu 9.10
> (our development release) in our 0.7.0-1ubuntu3 package. I did make a
> few small changes after going through HACKING, but mostly I got the
> tests going and added documentation.
>
> DESIGN
> ------
> When a virtual machine is started, determine if a profile is currently
> defined for the machine, and use it if available. If not, generate a new
> profile for the machine based on a template, which is by default a very
> restrictive profile allowing access to disk files, and anything else
> needed to run, such as the pid, monitor and log files.
>
> Virtual machines should have a unique profile specific to that machine.
> To ensure uniqueness, the profile name will be derived from the UUID of
> the virtual machine. These profiles should be configurable, either by
> adjusting the profile template for new machines, creating/modifying the
> VM profile directly or through the use of AppArmor abstractions. This
> will allow for administrators to fine-tune confinement for individual
> machines if desired.
>
> If enabled at compile time, the sVirt security model will be activated
> if AppArmor is available on the host OS and a profile for the libvirtd
> daemon is loaded when libvirtd is started.
>
> libvirtd should not be allowed to create arbitrary profiles or modify
> profiles directly, so as to not allow libvirtd to potentially (ie via a
> security bug in libvirtd itself) bootstrap out of AppArmor confinement.
>
> Because root privileges are needed to manipulate AppArmor profiles,
> qemu:///session will not be supported at this time, but the
> implementation must allow for a confined libvirtd with qemu:///session
> guests running unconfined. This can be revisited when AppArmor supports
> per-user profiles.
>
> Please see the specification[1] for more details.
>
>
> PATCHES
> -------
> The patches are all against trunk as of yesterday. Testing was done on
> trunk and there seem to be no regressions over the the 0.7.0-1ubuntu3
> package in Ubuntu.
>
>
> [PATCH 1*]
> patch_1a_reenable-nonfile-labels.patch:
> When James Morris originally submitted his sVirt patches (as seen in
> libvirt 0.6.1), he did not require on disk labelling for
> virSecurityDomainRestoreImageLabel. A later commit[2] changed this
> behavior to assume on disk labelling, which halts implementations for
> path-based MAC systems such as AppArmor and TOMOYO where
> vm->def->seclabel is required to obtain the label. This patch simply
> adds the 'virDomainObjPtr vm' argument back to *RestoreImageLabel.
>
> patch_1b_optional.patch:
> Due to the above change, 'make syntax-check' fails because
> SELinuxRestoreSecurityImageLabel() does not use the 'virDomainObjPtr
> vm'. patch_1b_optional.patch is a simple patch to fix this by checking
> if vm->def->seclabel == NULL and returns with error if it does. I
> realize this may not be desired in the long term, but it should be
> harmless enough to include.
>
>
> [PATCH 2]
> patch_2_security_c.patch:
> Updates src/security.c for AppArmor
>
>
> [PATCH 3]
> patch_3_security_apparmor.patch:
> Adds security_apparmor.c, security_apparmor.h, virt-aa-helper.c and
> updates po/POTFILES.in. virt-aa-helper.c is a new binary which is used
> exclusively by the AppArmor security driver to manipulate AppArmor.
> These files compile without warning and pass syntax-check.
>
>
> [PATCH 4]
> patch_4_tests.patch:
> Adds tests for virt-aa-helper and the security driver. secaatest.c is
> identical to seclabeltest.c except it initializes the 'apparmor' driver
> instead of 'selinux'. These tests are integrated into 'make check' and
> pass.
>
>
> [PATCH 5]
> patch_5_docs.patch:
> Updates docs/drvqemu.html.in for AppArmor and adds profile examples to
> examples/apparmor.
>
>
> [PATCH 6]
> patch_6_autoconf.patch:
> Updates Makefile.am and configure.in for AppArmor. It is based on and
> should operate the same as the SELinux configuration.
>
>
> Caveats and known issues:
> 1. it does not take advantage of the recent host device labelling
> functionality yet
> 2. it does not properly handle hot-plugging of devices yet
> 3. qemu:///session runs unconfined (see above)
>
>
> Thanks!
>
> Jamie (jdstrand on Freenode and OFTC)
>
> [1] https://wiki.ubuntu.com/SecurityTeam/Specifications/AppArmorLibvirtProfile
> [2] http://libvirt.org/git/?p=libvirt.git;a=commit;h=c86afc85ee0d1ec6d76c2d25...
>
--
Jamie Strandboge | http://www.canonical.com
15 years, 2 months
[libvirt] Passing -no-kvm-irqchip to KVM/QEMU guests
by Garry Dolley
Dear libvirt,
Is there a way to tell a KVM/QEMU guest managed by libvirt to start
with the "-no-kvm-irqchip" argument?
I have some FreeBSD 7 guests with timing issues, and if I try to
start the VMs manually with -no-kvm-irqchip, the timing issues go
away (the only known workaround right now).
However, if the guest is managed by libvirt, I have found no way to
pass this command line option.
I'm running libvirt 0.6.4 on Ubuntu 9.04
Thoughts?
--
Garry Dolley
ARP Networks, Inc. | http://www.arpnetworks.com | (818) 206-0181
Data center, VPS, and IP Transit solutions
Member Los Angeles County REACT, Unit 336 | WQGK336
Blog http://scie.nti.st
15 years, 2 months
[libvirt] Python binding to virConnectListInterfaces
by Shahar Klein
Hi
I'm trying to implement virConnectListInterfaces for the ESX driver
(actually the esx_interface driver)
but the python generator does not write the code for this function
in generator.py this function is in a special table called: skip_impl
and there is a comment saying:
# Class methods which are written by hand in libvir.c but the Python-level
# code is still automatically generated (so they are not in skip_function())
I'm not sure what does it mean
should I implement in libvir.c?
and I'm done?
thanks ahead
Shahar
15 years, 2 months
[libvirt] ESX driver does not support vmxnet3
by Shahar Klein
diff --git a/src/esx/esx_vmx.c b/src/esx/esx_vmx.c
index 70e9305..6bd6b93 100644
--- a/src/esx/esx_vmx.c
+++ b/src/esx/esx_vmx.c
@@ -1409,10 +1409,11 @@ esxVMX_ParseEthernet(virConnectPtr conn, virConfPtr conf, int controller,
if (virtualDev != NULL &&
STRCASENEQ(virtualDev, "vlance") &&
STRCASENEQ(virtualDev, "vmxnet") &&
+ STRCASENEQ(virtualDev, "vmxnet3") &&
STRCASENEQ(virtualDev, "e1000")) {
ESX_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
"Expecting VMX entry '%s' to be 'vlance' or 'vmxnet' or "
- "'e1000' but found '%s'", virtualDev_name, virtualDev);
+ "'vmxnet3' or 'e1000' but found '%s'", virtualDev_name, virtualDev);
goto failure;
}
15 years, 2 months
[libvirt] [PATCH] doc: don't emit trailing blanks into generated and VC'd NEWS file
by Jim Meyering
Daniel Veillard reported that the generated and VC'd NEWS file
was causing trouble because the latest version contains trailing
spaces, which conflicts with our server-side hook to prevent that.
Here's the fix to avoid emitting those trailing spaces:
>From 8110d304f49a217021371321ade0026ccd2627e1 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering(a)redhat.com>
Date: Tue, 15 Sep 2009 15:01:26 +0200
Subject: [PATCH] doc: don't emit trailing blanks into generated and VC'd NEWS file
* docs/Makefile.am ($(top_builddir)/NEWS): Filter out trailing
white space.
---
docs/Makefile.am | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 9ac2f6d..1125931 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -131,6 +131,7 @@ $(top_builddir)/NEWS: $(top_srcdir)/docs/news.xsl $(top_srcdir)/docs/news.html.i
$(XSLTPROC) --nonet $(top_srcdir)/docs/news.xsl \
$(top_srcdir)/docs/news.html.in \
| perl -0777 -pe 's/\n\n+$$/\n/' \
+ | perl -pe 's/[ \t]+$//' \
> $@-t && mv $@-t $@ ; fi );
clean-local:
--
1.6.5.rc1.171.g3f463
15 years, 2 months
[libvirt] Release of libvirt-0.7.1
by Daniel Veillard
Okay, it's finally out of the box and available as usual at
ftp://libvirt.org/libvirt/
There is a fair amount of new features and improvement, not surprizing
considering 0.7.0 was 1.5 months ago. And of course many bug fixes and
cleanups:
* New Features:
- Add an internal <secret> XML handling API (Miloslav Trmač)
- VBox 3.0.6 API change support (Pritesh Kothari)
- also allow use of XZ for Qemu image compression (Jim Meyering)
- Multipath storage support module (Dave Allan)
- VBox add Storage Volume support (Pritesh Kothari)
- Support configuration of huge pages in guests (Daniel P. Berrange)
- Add support for encrypted (qcow) volume creation. (Miloslav Trmač)
- Secret manipulation public API (Miloslav Trmač)
- support lzop save compression for qemu (Charles Duffy)
- Support new PolicyKit 1.0 API (Daniel P. Berrange)
- Compressed save image format for Qemu. (Chris Lalancette)
- QEmu add host PCI device hotplug support (Mark McLoughlin)
* Portability:
- Fix win32 platform build (Daniel P. Berrange)
* Documentation:
- Minor comment changes (Laine Stump)
- Fix up virNodeGetCellsFreeMemory (Chris Lalancette)
- Fix some typos & remove unhelpful acronyms in QEMU docs (Daniel P. Berrange)
- Add documentation about the QEMU driver security features (Daniel P. Berrange)
- Remove 'the the' typo in docs (Daniel P. Berrange)
- Fix some URLs in virsh manpage (Mark McLoughlin)
- Add link to AbiCloud web management system (Daniel P. Berrange)
- Update logging documentation (Amy Griffis)
* Bug Fixes:
- VBox bug when starting machine from old versions (Pritesh Kothari)
- ESX avoid potential leaks (Matthias Bolte)
- Fix more OOM handling bugs (Daniel P. Berrange)
- Fix logging buffer overrun read (Daniel P. Berrange)
- Fix misc thread locking bugs / bogus warnings (Daniel P. Berrange)
- Fix regression from "Avoid polling on FDs with no events" (Chris Lalancette)
- Close logfile fd after spawning qemu (Ryota Ozaki)
- Check for libssh2 >= 1.0 for phy driver (Maximilian Wilhelm)
- Avoid another leak in src/xend_internal.c (Matthias Bolte)
- Avoid a leak in xenDaemonLookupByID (Matthias Bolte)
- VBox fix minor bugs in display and added OOM checks (Pritesh Kothari)
- Some close/fclose/closedir calls are missing (Matthias Bolte)
- lxc_container.c: avoid a leak on error paths (Jim Meyering)
- Fix several memory leaks (Ryota Ozaki)
- Fix a memory leak in virsh (Laine Stump)
- Fix ID field in virDomainPtr after starting Xen VM (Daniel P. Berrange)
- Fix memory leak of monitor character device (Daniel P. Berrange)
- Automatically set correct ownership of QEMU state directories (Daniel P. Berrange)
- Avoid polling on FDs with no events enabled (Daniel P. Berrange)
- esx_vi: return -1 upon failure, as intended (Matthias Bolte)
- python: let libvirt_virConnectDomainEventCallback indicate success (Jim Meyering)
- uml_conf.c: don't return an uninitialized pointer (Jim Meyering)
- storage_backend.c: assure clang that inputvol can't be NULL (Jim Meyering)
- libvir.c: avoid NULL dereference in virStoragePoolSetAutostart (Jim Meyering)
- lxc: avoid NULL dereference upon getmntent failure (Jim Meyering)
- storage_backend_fs: avoid NULL dereference on opendir failure (Jim Meyering)
- Fix bugs in virDomainMigrate v2 code. (Chris Lalancette)
- VMware ESX: Don't warn on some query parameter (Matthias Bolte)
- Don't blindly reorder disk drives (Daniel P. Berrange)
- Fix sexpr2string() to handle empty list. (Jim Fehlig)
- Fix driver entry table for UML numa APIs (Daniel P. Berrange)
- Fix crash in virsh vol-key command (Pritesh Kothari)
- 517157 fix selinux problem with images on NFS (Darryl L. Pierce)
- Fix phypOpen() escape_specialcharacters (Mattias Bolte)
- Power Hypervisor: fix potential segfault (Mattias Bolte)
- Fix bridge/tap system error reporting (Mark McLoughlin)
- Reset PCI host devices after hot-unplug (Mark McLoughlin)
- Reset unmanaged PCI host devices before hotplug (Mark McLoughlin)
- Fix up connection reference counting. (Chris Lalancette)
- Fix LXC driver crash when kernel doesn't support clone (Daniel P. Berrange)
- Make LXC / UML drivers robust against NUMA topology brokenness (Daniel P. Berrange)
- Run 'cont' on successful migration finish. (Chris Lalancette)
- Fix QEMU domain status after restore. (Chris Lalancette)
- Handle kernels with no ipv6 support (Mark McLoughlin)
- Set perms on /var/lib/libvirt/boot to 0711 (Mark McLoughlin)
- chown kernel/initrd before spawning qemu (Mark McLoughlin)
- Several fixes to libvirtd's log setup (Amy Griffis)
- Fix memleak if esxOpen fails (Matthias Bolte)
* Improvements:
- Add UUID definition required by storage encryption import (Daniel P. Berrange)
- Make secrets RNG more strict (Daniel P. Berrange)
- Fill in secret UUID for qcow encryption (Daniel P. Berrange)
- Add usage type/id as a public API property of virSecret (Daniel P. Berrange)
- Fix UUID handling in secrets/storage encryption APIs (Daniel P. Berrange)
- Save vcpuinfo in status file (Daniel P. Berrange)
- Restart libvirtd upon RPM upgrade (Daniel P. Berrange)
- Add support for qcow encrypted volumes to qemu. (Miloslav Trmač)
- Provide missing passphrase when creating a volume. (Miloslav Trmač)
- Add virsh commands for secrets APIs (Miloslav Trmač)
- Local file implementation of secret driver API (Miloslav Trmač)
- Mask out flags used internally for virSecretGetValue (Miloslav Trmač)
- Add <usage> to <secret> docs (Miloslav Trmač)
- Support relabelling of USB and PCI devices (Daniel P. Berrange)
- Add helper APIs for iterating over PCI device resource files (Daniel P. Berrange)
- Add helper module for dealing with USB host devices (Daniel P. Berrange)
- Test that domain-specific qemu machine types are used correctly (Mark McLoughlin)
- Probe machine types from kvm binary too (Mark McLoughlin)
- Look up machine types from all domains in qemudGetOldMachines() (Mark McLoughlin)
- Test qemu machine aliases (Mark McLoughlin)
- Add qemu -help test data for qemu-kvm-0.11.0-rc2 (Mark McLoughlin)
- Add a more featureful qemu capabilities test data (Mark McLoughlin)
- Add arm arch to capabilities schema (Mark McLoughlin)
- Update capabilities schema to allow multiple machines per domain (Mark McLoughlin)
- Add esx and tcp migration uri transports to capabilities schema (Mark McLoughlin)
- Reintroduce support for lzop compression (Charles Duffy)
- build: update gnulib submodule to latest (Jim Meyering)
- Add flags and requires for Multipath storage (Daniel Veillard)
- ESX raise error if UUID parse failed (Matthias Bolte)
- ESX add domain undefine based on esxVI_UnregisterVM (Matthias Bolte)
- ESX add esxGetCapabilities() with basic defaults (Matthias Bolte)
- Switch Power Hypervisor to libssh2 (Eduardo Otubo)
- Allow libvirtd to RPC to external libvirtd (Chris Lalancette)
- Add support for setting disk drive serial numbers (Daniel P. Berrange)
- VBox support for defining/dumping video devices (Pritesh Kothari)
- Generic parsing support for video acceleration (Pritesh Kothari)
- VMware ESX: Allow ethernet address type 'vpx' (Matthias Bolte)
- Support for getting/setting number of cpus in VBox (Pritesh Kothari)
- Make handling of monitor prompts more general. (Miloslav Trmač)
- Attach encryption information to virDomainDiskDef. (Miloslav Trmač)
- Recognize encryption format of qcow volumes. (Miloslav Trmač)
- Attach encryption information to virStorageVolDef. (Miloslav Trmač)
- Add volume encryption information handling. (Miloslav Trmač)
- Secret manipulation API docs refresh & wire up python generator (Miloslav Trmač)
- Secret manipulation remote client (Miloslav Trmač)
- Secret manipulation libvirtd wire protocol & remote dispatcher (Miloslav Trmač)
- Secret manipulation public API implementation (Miloslav Trmač)
- Secret manipulation internal API (Miloslav Trmač)
- Add test for recently fixed crash with latest XenD (Daniel P. Berrange)
- Don't expose 'vnet%d' to the user (Mark McLoughlin)
- Maintain a list of active PCI hostdevs and use it in pciResetDevice() (Mark McLoughlin)
- Simplify PCI hostdev prepare/re-attach using a pciDeviceList type (Mark McLoughlin)
- Use pci_addr=auto with QEMU's pci_add monitor command (Mark McLoughlin)
- Check active domain hostdevs before allowing PCI reset (Mark McLoughlin)
- Allow pciResetDevice() to reset multiple devices (Mark McLoughlin)
- Improve PCI host device reset error message (Mark McLoughlin)
- Reset and re-attach PCI host devices on guest shutdown (Mark McLoughlin)
- Allow PM reset on multi-function PCI devices (Mark McLoughlin)
- Detect KVM's PCI device assignment support (Mark McLoughlin)
- Split virDomainMigrate into functions. (Chris Lalancette)
- Consolidate code for parsing the logging env (Amy Griffis)
* Cleanups:
- Remove accidentally added UUID re-definition in storage schema (Daniel P. Berrange)
- ESX cleanup of CPU model strings (Matthias Bolte)
- Fix use of dlopen modules (Daniel P. Berrange)
- Consolidate "cont" into qemudMonitorSendCont() (Miloslav Trmač)
- Cleanup sec driver error reporting to use virReportSystemError (Daniel P. Berrange)
- Port QEMU driver to use USB/PCI device helpers (Daniel P. Berrange)
- Simplify and fix qemudCanonicalizeMachine() (Mark McLoughlin)
- Split up qemudGetOldMachines() (Mark McLoughlin)
- Re-factor qemu test machine allocation code (Mark McLoughlin)
- Canonicalize the qemu machine type in qemuxml2argvtest (Mark McLoughlin)
- Dump qemu driver capabilities if test debugging enabled (Mark McLoughlin)
- Fix formatting of machine types in capabilities XML (Mark McLoughlin)
- qemu_driver.c: factor out more duplication (Jim Meyering)
- Deprecate lzma and lzop in favor of xz, add dep (Daniel Veillard)
- qemu_driver.c: factor out duplication in compression-type handling (Jim Meyering)
- openvz_conf.c: remove dead store to "p"; use strchrnul (Jim Meyering)
- Remove some tabs used for indent (Daniel Veillard)
- Updated a number of localizations and regenerated (Daniel Veillard)
- Add a missing comment (Miloslav Trmač)
- Fix a pasto in storage_encryption_conf.c (Miloslav Trmač)
- xm_internal.c: remove four useless comparisons after strchr (Jim Meyering)
- xm_internal.c: remove dead increment of "data" (Jim Meyering)
- network_driver.c: remove dead store to "err" (Jim Meyering)
- iptables.c: remove dead store to "s" (Jim Meyering)
- util.c: avoid dead store to "flag" (Jim Meyering)
- domain_conf.c: remove two dead stores (Jim Meyering)
- xm_internal.c: remove two ret=... dead stores (Jim Meyering)
- xm_internal.c: remove dead stores of local, "type" (Jim Meyering)
- network_conf.c: remove dead store to "err" (Jim Meyering)
- openvz_driver.c: avoid dead store to "err" (Jim Meyering)
- xend_internal.c: Remove two dead stores to "ret" (Jim Meyering)
- storage_driver.c: remove two dead stores to "backend" (Jim Meyering)
- qemu_conf.c: add a comment suggesting why we leave a dead-store (Jim Meyering)
- hash.c: remove a dead store (Jim Meyering)
- interface_conf.c: remove a dead-store and declaration (Jim Meyering)
- eventtest.c: detect write failure and avoid dead stores (Jim Meyering)
- openvz_conf.c: Remove dead store to copy_fd (Jim Meyering)
- storage_backend_logical.c: appease clang: remove useless increment (Jim Meyering)
- ESX simplify SOAP request and response handling (Matthias Bolte)
- ESX use virXPathNode*() to simplify XPath handling (Matthias Bolte)
- ESX: make esxVI_GetVirtualMachineIdentity() robust (Matthias Bolte)
- ESX: Fix VMX path parsing and URL encoding (Matthias Bolte)
- VBox driver cleanups (Pritesh Kothari)
- PHYP driver cleanups (Daniel Veillard)
- Move QEMU monitor socket in /var/lib/libvirt/qemu (Daniel P. Berrange)
- xen_internal.c: remove two unused local variables (Jim Meyering)
- mdns.c: remove dead initialization (Jim Meyering)
- node_device_conf.c: remove dead initialization (Jim Meyering)
- openvz_conf.c: don't use undefined local, "net" (Jim Meyering)
- test.c: don't use undefined local, "def" (Jim Meyering)
- remote_internal.c: appease clang (Jim Meyering)
- infra: define ATTRIBUTE_NONNULL to mark non-NULL parameters (Jim Meyering)
- lxc: don't unlink(NULL) in main (Jim Meyering)
- storage_conf.c: avoid overflow upon use of "z" or "Z" (zebi) suffix (Jim Meyering)
- VBox cleanup and update of networking shutdown (Pritesh Kothari)
- Box cleanup and update of networking XML functions (Pritesh Kothari)
- Fix misc OOM bugs (Daniel P. Berrange)
- Misc fixes to secrets API code (Daniel P. Berrange)
- Only add glusterfs dep for Fedora >= 11 (Daniel P. Berrange)
- Remove redundant base64 include file (Daniel P. Berrange)
- Don't assume buffered output echoes the command. (Miloslav Trmač)
- Update chinese, polish and spanish localizations (Daniel Veillard)
- OpenVZ: accept NULL as type for GetMaxVCPUs. (Chris Lalancette)
- Remove use of strncpy in qemudExtractMonitorPath. (Chris Lalancette)
- Refactor policycode auth code to avoid compiler warnings (Daniel P. Berrange)
- spec file: add URL to Source tag (Mark McLoughlin)
- Small fixes for qemu save compression. (Chris Lalancette)
- Fix thinko in PCI hostdev detach (Mark McLoughlin)
- Revert changes to allow pciResetDevice() reset multiple devices (Mark McLoughlin)
- Fix list updating after disk/network/hostdev hot-unplug (Mark McLoughlin)
- Re-name remote_internal.c:driver to remote_driver (Mark McLoughlin)
- Cosmetic change to 'virsh nodedev-list --tree' output (Mark McLoughlin)
- Re-factor hostdev hotplug (Mark McLoughlin)
- Remove a duplicated assignment in Xen PCI parsing. (Chris Lalancette)
- Fix up a few minor indentation issues. (Chris Lalancette)
- Fix phyp escape_specialcharacters. (Chris Lalancette)
- Make openvzGetVPSUUID take a len. (Chris Lalancette)
- Minor cleanup of error path for c_oneVmInfo. (Chris Lalancette)
- Fix up a whitespace in comments in src/console.c (Chris Lalancette)
- Fix up a stray whitespace in virHashGrow. (Chris Lalancette)
- Remove unsafe strncpy from esx_vmx.c (Chris Lalancette)
- Cleanup VIR_LOG_DEBUG parsing in eventtest (Amy Griffis)
- Tighten libvirt's parsing of logging env (Amy Griffis)
- Cleanup structure name naming (Matthias Bolte)
- Add proper OOM reporting for esxDomainGetOSType (Matthias Bolte)
Thanks to everybody who contributed one way or another, this list is
getting longuer every release :-)
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
15 years, 2 months
[libvirt] Trouble booting Xen VM with NFS root file system
by Matthias Schmidt
Hi,
I'm currently trying to boot a Xen VM with the root file system on NFS
via libvirt. Previously we used a small python script and "xm create" to
boot a number of VMs (which worked fine). Now I'm trying to integrate
that functionality in a python project which uses libvirt, but
sadly booting the VMs fail.
The small script constructs a Xen command line which looks like the
following:
create =("/usr/sbin/xm create /foo.cfg \
kernel=%s ramdisk=%s memory=64\
root=/dev/nfs nfs_server=%s nfs_root=%s name=%s vif='mac=%s'\
dhcp='dhcp' vcpus=1 extra='init=/stateless.sh xencons=tty1'\
")%(vm_kernel, vm_ramdisk, vm_nfs_server, vm_nfs_root, hostname, vif)
kernel and ramdisk are the path to the installed version, vm_nfs_server is the
IP address of the NFS server and vm_nfs_root the path to the operating system
installation (which is a Debian Linux). Firing up the script brings up
all VMs with a read-only NFS root file system.
Now I tried to do this with libvirt, but all attempts failed with the
following error popping up after the VM boots (after a certain
time(out)):
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/nfs does not exist. Dropping to a shell!
BusyBox v1.10.2 (Debian 1:1.10.2-2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/bin/sh: can't access tty; job control turned off
(initramfs) cat /proc/cmdline
root=/dev/nfs nfs_server=10.0.0.150 nfs_root=/opt/xge/util/ph vif="mac=1A:00:00:00:00:64" dhcp=dhcp extra="init=./stateless.sh xencons=tty"
The cmdline looks the same as in the script, but booting won't work. I
can provide the libvirt XML used to boot the VM and further information
if that is necessary.
Cheers
Matthias
PS: I'm using Xen 3.2.1, Kernel 2.6.26 and libvirt 0.6.3 from Debian
here.
15 years, 2 months
[libvirt] RFE storage cloning across connections.
by "Jóhann B. Guðmundsson"
Virt-manager now supports migration and VM cloning however cloning only works within a connection though so you can't clone to another machine. It certainly would be a nice addition if supports storage cloning across connections.
Best regards.
Jóhann B.
15 years, 2 months