I pleased to announce the a new public release of libvirt-sandbox,
version 0.0.3, is now available for download
ftp://libvirt.org/libvirt/sandbox/
The packages are GPG signed with
Key fingerprint: DAF3 A6FD B26B 6291 2D0E 8E3F BE86 EBB4 1510 4FDF (4096R)
The libvirt-sandbox package provides an API layer on top of libvirt-gobject
which facilitates the cration of application sandboxes using virtualization
technology. An application sandbox is a virtual machine or container that
runs a single application binary, directly from the host OS filesystem.
In other words there is no separate guest operating system install to build
or manager.
At this point in time libvirt-sandbox can create sandboxes using either LXC
or KVM, and should in theory be extendable to any libvirt driver. The first
release is able to run simple command line based programs. This release has
focused on making the sandbox infrastructure more reliable and expanding
the functionality available. Dan Walsh has also contributed a new tool called
virt-sandbox-service which facilitates the creation of sandboxes for running
system services like apache.
- Ensure root/config filesystems are readonly in KVM
- Add support for mounting host disk images in guests
- Add support for binding guest filesystems to new locations
- Add support for an optional interactive shell for debugging
or administrative purposes
- Add a virt-sandbox-service script for preparing sandboxes
for system services, integrating with systemd
- Misc compiler warning fixes
- Replace invocation of insmod with direct syscalls
- Refactor API to separate interactive sandbox functionality
from base class & service sandbox functionality
- Rewrite host/guest I/O handling to separate stdout from
stderr correctly, improve reliability of startup/shutdown
handshakes and propagate exit status back to host
- Exec away the first hypervisor specific init process,
so generic init process get PID 1
- Turn on reboot-on-panic in KVM to ensure guest exists on
fatal problems
Some examples
$ virt-sandbox -c qemu:///session /bin/date
Thu Jan 12 22:30:03 GMT 2012
$ virt-sandbox -c qemu:///session /bin/cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 2
model name : QEMU Virtual CPU version 1.0
stepping : 3
cpu MHz : 2793.084
cache size : 4096 KB
fpu : yes
fpu_exception : yes
cpuid level : 4
wp : yes
flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush
mmx fxsr sse sse2 syscall nx lm up rep_good nopl
+pni cx16 hypervisor lahf_lm
bogomips : 5586.16
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
$ virt-sandbox -c lxc:/// /bin/sh
sh-4.2$ ps -axuwf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
berrange 1 0.0 0.1 167680 4688 pts/0 S+ 22:31 0:00
libvirt-sandbox-init-common
berrange 47 0.0 0.0 13852 1608 pts/1 Ss 22:31 0:00 \_ /bin/sh
berrange 48 0.0 0.0 13124 996 pts/1 R+ 22:31 0:00 \_ ps -axuwf
Feedback / patches / etc should be directed to the main libvirt
development mailing list.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|