rbd: added RBD features support for krbd

Added support for `object-map, fast-diff`

Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
This commit is contained in:
Konstantin Shalygin
2021-09-16 13:38:04 +03:00
committed by mergify[bot]
parent 64ce5e0949
commit 7411773f73
5 changed files with 48 additions and 14 deletions

View File

@ -206,7 +206,15 @@ var (
needRbdNbd: false,
},
librbd.FeatureNameExclusiveLock: {
needRbdNbd: true,
needRbdNbd: false,
},
librbd.FeatureNameObjectMap: {
needRbdNbd: false,
dependsOn: []string{librbd.FeatureNameExclusiveLock},
},
librbd.FeatureNameFastDiff: {
needRbdNbd: false,
dependsOn: []string{librbd.FeatureNameObjectMap},
},
librbd.FeatureNameJournaling: {
needRbdNbd: true,

View File

@ -88,21 +88,37 @@ func TestValidateImageFeatures(t *testing.T) {
false,
"",
},
{
"layering,exclusive-lock,object-map,fast-diff",
&rbdVolume{
Mounter: rbdDefaultMounter,
},
false,
"",
},
{
"layering,journaling",
&rbdVolume{
Mounter: rbdNbdMounter,
Mounter: rbdDefaultMounter,
},
true,
"feature journaling requires exclusive-lock to be set",
},
{
"layering,exclusive-lock,journaling",
"object-map,fast-diff",
&rbdVolume{
Mounter: rbdDefaultMounter,
},
true,
"feature exclusive-lock requires rbd-nbd for mounter",
"feature object-map requires exclusive-lock to be set",
},
{
"fast-diff",
&rbdVolume{
Mounter: rbdDefaultMounter,
},
true,
"feature fast-diff requires object-map to be set",
},
{
"layering,exclusive-lock,journaling",
@ -110,7 +126,15 @@ func TestValidateImageFeatures(t *testing.T) {
Mounter: rbdDefaultMounter,
},
true,
"feature exclusive-lock requires rbd-nbd for mounter",
"feature journaling requires rbd-nbd for mounter",
},
{
"layering,exclusive-lock,journaling",
&rbdVolume{
Mounter: rbdDefaultMounter,
},
true,
"feature journaling requires rbd-nbd for mounter",
},
{
"layering,exclusive-loc,journaling",