Gene Czarcinski
2013-Nov-17 16:18 UTC
[libvirt-users] /var/lib/libvirt/images on BTRFS (it works!)
Some of you may be interested in running your qemu-kvm (or other) disk image files on BTRFS. After some fumbling around, I have found out how to do it so it works and works very well (especially if it is on an SSD). Anyone investigating running on BTRFS immediately finds out that there is a fragmentation problem (just putting image files on btrfs can result in them having between 50,000 and 100,000 extents). Some may have seen that adding nodatacow to the mount option is a solution ... it is not. So what is the solution? 1. execute: chattr +C /var/lib/libvirt/images or wherever your image files are. This needs to be done on the directory whether you have a separate subvol or not. 2. This ONLY works for new files and ONLY works for "raw" storage format files. Pretty much by definition, qcow2 files are sparse format files and that is the primary problem on btrfs. So that the vm creation wizard will create a new disk using the raw storage format, you need to select: Edit->Preferences->VM Details->Default Storage Format->Raw After then, an created virtual will have the correct disk format. You can use "filefrag" to verify that things are working. Gene
Possibly Parallel Threads
- btrfs kernel threads producing high load and slow system down
- /boot as a btrfs subvolume
- [PATCH RESEND 2/3] Btrfs: use u64 for subvolid when parsing mount options
- [PATCH, RFC] btrfs: allow scanning multiple devices during mount
- chattr +C vs. btrfs subvolume snapshot