From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Daniel P. Berrange" Subject: Re: [RFC] Unify KVM kernel-space and user-space code into a single project Date: Mon, 22 Mar 2010 13:05:13 +0000 Message-ID: <20100322130513.GJ21874@redhat.com> References: <4BA67F12.6030501@nagafix.co.uk> <4BA68063.2050800@redhat.com> <4BA68234.1060804@nagafix.co.uk> <4BA68997.60406@redhat.com> <20100321212009.GE30194@elte.hu> <4BA70F9A.8030304@redhat.com> <20100322114824.GF3483@elte.hu> <84144f021003220531p391975f2p5a2e0cfd3a2af6d@mail.gmail.com> <20100322123726.GH21874@redhat.com> <20100322125440.GB12475@elte.hu> Reply-To: "Daniel P. Berrange" Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Pekka Enberg , Avi Kivity , Antoine Martin , Olivier Galibert , Anthony Liguori , "Zhang, Yanmin" , Peter Zijlstra , Sheng Yang , linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Marcelo Tosatti , oerg Roedel , Jes Sorensen , Gleb Natapov , Zachary Amsden , ziteng.huang@intel.com, Arnaldo Carvalho de Melo , Fr?d?ric Weisbecker To: Ingo Molnar Return-path: Content-Disposition: inline In-Reply-To: <20100322125440.GB12475@elte.hu> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Mon, Mar 22, 2010 at 01:54:40PM +0100, Ingo Molnar wrote: > > * Daniel P. Berrange wrote: > > > > FYI, for offline guests, you can use libguestfs[1] to access & change files > > inside the guest, and read-only access to running guests files. It provides > > access via a interactive shell, APIs in all major languages, and also has a > > FUSE mdule to expose it directly in the host VFS. It could probably be made > > to work read-write for running guests too if its agent were installed inside > > the guest & leverage the new Virtio-Serial channel for comms (avoiding any > > network setup requirements). > > > > Regards, > > Daniel > > > > [1] http://libguestfs.org/ > > Yes, this is the kind of functionality i'm suggesting. > > I'd suggest a different implementation for live guests: to drive this from > within the live guest side of KVM, i.e. basically a paravirt driver for > guestfs. You'd pass file API guests to the guest directly, via the KVM ioctl > or so - and get responses from the guest. > > That will give true read-write access and completely coherent (and still > transparent) VFS integration, with no host-side knowledge needed for the > guest's low level (raw) filesystem structure. That's a big advantage. > > Yes, it needs an 'aware' guest kernel - but that is a one-off transition > overhead whose cost is zero in the long run. (i.e. all KVM kernels beyond a > given version would have this ability - otherwise it's guest side distribution > transparent) > > Even 'offline' read-only access could be implemented by booting a minimal > kernel via qemu -kernel and using a 'ro' boot option. That way you could > eliminate all lowlevel filesystem knowledge from libguestfs. You could run > ext4 or btrfs guest filesystems and FAT ones as well - with no restriction. > > This would allow 'offline' access to Windows images as well: a FAT or ntfs > enabled mini-kernel could be booted in read-only mode. This is close to the way libguestfs already works. It boots QEMU/KVM pointing to a minimal stripped down appliance linux OS image, containing a small agent it talks to over some form of vmchannel/serial/virtio-serial device. Thus the kernel in the appliance it runs is the only thing that needs to know about the filesystem/lvm/dm on-disk formats - libguestfs definitely does not want to be duplicating this detailed knowledge of on disk format itself. It is doing full read-write access to the guest filesystem in offline mode - one of the major use cases is disaster recovery from a unbootable guest OS image. Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|