add BTRFS storage plugin
This is mostly the same as a directory storage, with 2 major differences: * 'subvol' volumes are actual btrfs subvolumes and therefore allow snapshots * 'raw' files are placed *into* a subvolume and therefore also allow snapshots, the raw file for volume `btrstore:100/vm-100-disk-1.raw` can be found under `$path/images/100/vm-100-disk-1/disk.raw` * in both cases, snapshots add an '@name' suffix to the subvolume's directory name, so snapshot 'foo' of the above would be found under `$path/images/100/vm-100-disk-1@foo/disk.raw` or for format "subvol": `$path/images/100/subvol-100-disk-1.subvol@foo` Note that qgroups aren't included in btrfs-send streams, therefore for now we will only be using *unsized* subvolumes for containers and place a regular raw+ext4 file for sized containers. We could extend the import/export stream format to include the information at the front (similar to how we do the "tar+size" format, but we need to include the size of all the contained snapshots as well, since they can technically change). (But before enabling quotas we should do some performance testing on bigger file systems with multiple snapshots as there are quite a few reports of the fs slowing down considerably in such scenarios). Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
committed by
Thomas Lamprecht
parent
bba10cf4af
commit
af50c2e671
@ -38,6 +38,7 @@ use PVE::Storage::GlusterfsPlugin;
|
||||
use PVE::Storage::ZFSPoolPlugin;
|
||||
use PVE::Storage::ZFSPlugin;
|
||||
use PVE::Storage::PBSPlugin;
|
||||
use PVE::Storage::BTRFSPlugin;
|
||||
|
||||
# Storage API version. Increment it on changes in storage API interface.
|
||||
use constant APIVER => 8;
|
||||
@ -60,6 +61,7 @@ PVE::Storage::GlusterfsPlugin->register();
|
||||
PVE::Storage::ZFSPoolPlugin->register();
|
||||
PVE::Storage::ZFSPlugin->register();
|
||||
PVE::Storage::PBSPlugin->register();
|
||||
PVE::Storage::BTRFSPlugin->register();
|
||||
|
||||
# load third-party plugins
|
||||
if ( -d '/usr/share/perl5/PVE/Storage/Custom' ) {
|
||||
|
||||
Reference in New Issue
Block a user