6

I want to run a virtualized Debian stable KVM guest on a Debian stable host (to run untrusted stuff like Skype, Flash or eclipse with third-party plugins). Naturally host and guest will have many files in common and it would be nice to make us of btrfs deduplication.

Now I found "direct kernel boot" but I could not find any documentation about it. Does it allow me to hand a btrfs subvolume of the host file system to the guest and the guest uses this subvolume as its own file system?

  • 2
    I'm not an expert so I don't dare to answer, but: 1. you cannot manage the same filesystem with two kernels at the same time, or you'll get corruption, therefore 2. the guest subvolume has to be managed by the host kernel, therefore 3. the guest must be passed the root via some method that's not physical access, for example root-over-NFS – ignis Oct 27 '13 at 11:27
2

@ignis is correct. No, you cannot use a btrfs snapshot subvolume of a host on a guest. btrfs merges the filesystem and block layers. A subvolume is not a block device; it is a filesystem.

In the LVM world you take snapshots of block devices and these snaps are block devices as well. Such a snap could be used as a root device for a guest (as long as the snap isn't mounted on the host).

You could mount the snap subvol on the host and export it via NFS and boot the guest with an NFS root but that would be awkward.

Based on your usage scenario I recommend looking into Linux Containers (LXC) (and Docker). LXC will provide the isolation and identical-file re-use you are looking for.

0

Well, I think you could run Ceph on the host, and have the client mount things via that, as ceph uses btrfs for the file system on the host, it could be made to work.

But do you really care, I mean, how much stuff is used by the OS and programs, a GB or five?

And yes, while Ceph is a cluster file system, you can run it on one host.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.