]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: qemublock: Add test case for detecting bitmaps as we create snapshots
authorPeter Krempa <pkrempa@redhat.com>
Thu, 12 Dec 2019 12:50:55 +0000 (13:50 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 13 Dec 2019 12:22:55 +0000 (13:22 +0100)
Add test data gathered from a run of qemu after creating bitmaps and
snapshots together in various combinations.

The following sequence of commands was used to achieve the
configuration:

virsh checkpoint-create-as VM --name a
virsh snapshot-create-as VM --disk-only
virsh snapshot-create-as VM --disk-only
virsh checkpoint-create-as VM --name b
virsh checkpoint-create-as VM --name c
virsh snapshot-create-as VM --disk-only
virsh checkpoint-create-as VM --name d
virsh snapshot-create-as VM --disk-only
virsh checkpoint-create-as VM --name current

Note that VM was restarted after these operations to allow renumbering
of the bitmaps in a more human-readable way.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
tests/qemublocktest.c
tests/qemublocktestdata/bitmap/snapshots.json [new file with mode: 0644]
tests/qemublocktestdata/bitmap/snapshots.out [new file with mode: 0644]

index a0259912a9c32171a6f55dcfaa2350b9bcf312ca..55268197d8b0b661b8c7ae494c942dcbf4f4ec69 100644 (file)
@@ -777,6 +777,7 @@ mymain(void)
 
     TEST_BITMAP_DETECT("basic");
     TEST_BITMAP_DETECT("synthetic");
+    TEST_BITMAP_DETECT("snapshots");
 
  cleanup:
     virHashFree(diskxmljsondata.schema);
diff --git a/tests/qemublocktestdata/bitmap/snapshots.json b/tests/qemublocktestdata/bitmap/snapshots.json
new file mode 100644 (file)
index 0000000..87e77ad
--- /dev/null
@@ -0,0 +1,836 @@
+[
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "backing-image": {
+                "backing-image": {
+                    "backing-image": {
+                        "backing-image": {
+                            "virtual-size": 10485760,
+                            "filename": "/tmp/pull4.qcow2",
+                            "cluster-size": 65536,
+                            "format": "qcow2",
+                            "actual-size": 208896,
+                            "format-specific": {
+                                "type": "qcow2",
+                                "data": {
+                                    "compat": "1.1",
+                                    "lazy-refcounts": false,
+                                    "bitmaps": [
+                                        {
+                                            "flags": [
+                                                "auto"
+                                            ],
+                                            "name": "a",
+                                            "granularity": 65536
+                                        }
+                                    ],
+                                    "refcount-bits": 16,
+                                    "corrupt": false
+                                }
+                            },
+                            "dirty-flag": false
+                        },
+                        "backing-filename-format": "qcow2",
+                        "virtual-size": 10485760,
+                        "filename": "/tmp/pull4.1575911522",
+                        "cluster-size": 65536,
+                        "format": "qcow2",
+                        "actual-size": 208896,
+                        "format-specific": {
+                            "type": "qcow2",
+                            "data": {
+                                "compat": "1.1",
+                                "lazy-refcounts": false,
+                                "bitmaps": [
+                                    {
+                                        "flags": [
+                                            "auto"
+                                        ],
+                                        "name": "a",
+                                        "granularity": 65536
+                                    }
+                                ],
+                                "refcount-bits": 16,
+                                "corrupt": false
+                            }
+                        },
+                        "full-backing-filename": "/tmp/pull4.qcow2",
+                        "backing-filename": "/tmp/pull4.qcow2",
+                        "dirty-flag": false
+                    },
+                    "backing-filename-format": "qcow2",
+                    "virtual-size": 10485760,
+                    "filename": "/tmp/pull4.1575911527",
+                    "cluster-size": 65536,
+                    "format": "qcow2",
+                    "actual-size": 217088,
+                    "format-specific": {
+                        "type": "qcow2",
+                        "data": {
+                            "compat": "1.1",
+                            "lazy-refcounts": false,
+                            "bitmaps": [
+                                {
+                                    "flags": [
+                                        "auto"
+                                    ],
+                                    "name": "c",
+                                    "granularity": 65536
+                                },
+                                {
+                                    "flags": [
+
+                                    ],
+                                    "name": "b",
+                                    "granularity": 65536
+                                },
+                                {
+                                    "flags": [
+
+                                    ],
+                                    "name": "a",
+                                    "granularity": 65536
+                                }
+                            ],
+                            "refcount-bits": 16,
+                            "corrupt": false
+                        }
+                    },
+                    "full-backing-filename": "/tmp/pull4.1575911522",
+                    "backing-filename": "/tmp/pull4.1575911522",
+                    "dirty-flag": false
+                },
+                "backing-filename-format": "qcow2",
+                "virtual-size": 10485760,
+                "filename": "/tmp/pull4.1575911540",
+                "cluster-size": 65536,
+                "format": "qcow2",
+                "actual-size": 212992,
+                "format-specific": {
+                    "type": "qcow2",
+                    "data": {
+                        "compat": "1.1",
+                        "lazy-refcounts": false,
+                        "bitmaps": [
+                            {
+                                "flags": [
+                                    "auto"
+                                ],
+                                "name": "d",
+                                "granularity": 65536
+                            },
+                            {
+                                "flags": [
+
+                                ],
+                                "name": "c",
+                                "granularity": 65536
+                            }
+                        ],
+                        "refcount-bits": 16,
+                        "corrupt": false
+                    }
+                },
+                "full-backing-filename": "/tmp/pull4.1575911527",
+                "backing-filename": "/tmp/pull4.1575911527",
+                "dirty-flag": false
+            },
+            "backing-filename-format": "qcow2",
+            "virtual-size": 10485760,
+            "filename": "/tmp/pull4.1575911550",
+            "cluster-size": 65536,
+            "format": "qcow2",
+            "actual-size": 212992,
+            "format-specific": {
+                "type": "qcow2",
+                "data": {
+                    "compat": "1.1",
+                    "lazy-refcounts": false,
+                    "bitmaps": [
+                        {
+                            "flags": [
+                                "in-use",
+                                "auto"
+                            ],
+                            "name": "current",
+                            "granularity": 65536
+                        },
+                        {
+                            "flags": [
+                                "in-use"
+                            ],
+                            "name": "d",
+                            "granularity": 65536
+                        }
+                    ],
+                    "refcount-bits": 16,
+                    "corrupt": false
+                }
+            },
+            "full-backing-filename": "/tmp/pull4.1575911540",
+            "backing-filename": "/tmp/pull4.1575911540",
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": false,
+        "node-name": "libvirt-1-format",
+        "backing_file_depth": 4,
+        "drv": "qcow2",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "backing_file": "/tmp/pull4.1575911540",
+        "dirty-bitmaps": [
+            {
+                "name": "d",
+                "recording": false,
+                "persistent": true,
+                "busy": false,
+                "status": "disabled",
+                "granularity": 65536,
+                "count": 0
+            },
+            {
+                "name": "current",
+                "recording": true,
+                "persistent": true,
+                "busy": false,
+                "status": "active",
+                "granularity": 65536,
+                "count": 0
+            }
+        ],
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911550",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "virtual-size": 393728,
+            "filename": "/tmp/pull4.1575911550",
+            "format": "file",
+            "actual-size": 212992,
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": false,
+        "node-name": "libvirt-1-storage",
+        "backing_file_depth": 0,
+        "drv": "file",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911550",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "backing-image": {
+                "backing-image": {
+                    "backing-image": {
+                        "virtual-size": 10485760,
+                        "filename": "/tmp/pull4.qcow2",
+                        "cluster-size": 65536,
+                        "format": "qcow2",
+                        "actual-size": 208896,
+                        "format-specific": {
+                            "type": "qcow2",
+                            "data": {
+                                "compat": "1.1",
+                                "lazy-refcounts": false,
+                                "bitmaps": [
+                                    {
+                                        "flags": [
+                                            "auto"
+                                        ],
+                                        "name": "a",
+                                        "granularity": 65536
+                                    }
+                                ],
+                                "refcount-bits": 16,
+                                "corrupt": false
+                            }
+                        },
+                        "dirty-flag": false
+                    },
+                    "backing-filename-format": "qcow2",
+                    "virtual-size": 10485760,
+                    "filename": "/tmp/pull4.1575911522",
+                    "cluster-size": 65536,
+                    "format": "qcow2",
+                    "actual-size": 208896,
+                    "format-specific": {
+                        "type": "qcow2",
+                        "data": {
+                            "compat": "1.1",
+                            "lazy-refcounts": false,
+                            "bitmaps": [
+                                {
+                                    "flags": [
+                                        "auto"
+                                    ],
+                                    "name": "a",
+                                    "granularity": 65536
+                                }
+                            ],
+                            "refcount-bits": 16,
+                            "corrupt": false
+                        }
+                    },
+                    "full-backing-filename": "/tmp/pull4.qcow2",
+                    "backing-filename": "/tmp/pull4.qcow2",
+                    "dirty-flag": false
+                },
+                "backing-filename-format": "qcow2",
+                "virtual-size": 10485760,
+                "filename": "/tmp/pull4.1575911527",
+                "cluster-size": 65536,
+                "format": "qcow2",
+                "actual-size": 217088,
+                "format-specific": {
+                    "type": "qcow2",
+                    "data": {
+                        "compat": "1.1",
+                        "lazy-refcounts": false,
+                        "bitmaps": [
+                            {
+                                "flags": [
+                                    "auto"
+                                ],
+                                "name": "c",
+                                "granularity": 65536
+                            },
+                            {
+                                "flags": [
+
+                                ],
+                                "name": "b",
+                                "granularity": 65536
+                            },
+                            {
+                                "flags": [
+
+                                ],
+                                "name": "a",
+                                "granularity": 65536
+                            }
+                        ],
+                        "refcount-bits": 16,
+                        "corrupt": false
+                    }
+                },
+                "full-backing-filename": "/tmp/pull4.1575911522",
+                "backing-filename": "/tmp/pull4.1575911522",
+                "dirty-flag": false
+            },
+            "backing-filename-format": "qcow2",
+            "virtual-size": 10485760,
+            "filename": "/tmp/pull4.1575911540",
+            "cluster-size": 65536,
+            "format": "qcow2",
+            "actual-size": 212992,
+            "format-specific": {
+                "type": "qcow2",
+                "data": {
+                    "compat": "1.1",
+                    "lazy-refcounts": false,
+                    "bitmaps": [
+                        {
+                            "flags": [
+                                "auto"
+                            ],
+                            "name": "d",
+                            "granularity": 65536
+                        },
+                        {
+                            "flags": [
+
+                            ],
+                            "name": "c",
+                            "granularity": 65536
+                        }
+                    ],
+                    "refcount-bits": 16,
+                    "corrupt": false
+                }
+            },
+            "full-backing-filename": "/tmp/pull4.1575911527",
+            "backing-filename": "/tmp/pull4.1575911527",
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": true,
+        "node-name": "libvirt-2-format",
+        "backing_file_depth": 3,
+        "drv": "qcow2",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "backing_file": "/tmp/pull4.1575911527",
+        "dirty-bitmaps": [
+            {
+                "name": "c",
+                "recording": false,
+                "persistent": true,
+                "busy": false,
+                "status": "disabled",
+                "granularity": 65536,
+                "count": 0
+            },
+            {
+                "name": "d",
+                "recording": true,
+                "persistent": true,
+                "busy": false,
+                "status": "active",
+                "granularity": 65536,
+                "count": 0
+            }
+        ],
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911540",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "virtual-size": 393728,
+            "filename": "/tmp/pull4.1575911540",
+            "format": "file",
+            "actual-size": 212992,
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": false,
+        "node-name": "libvirt-2-storage",
+        "backing_file_depth": 0,
+        "drv": "file",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911540",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "backing-image": {
+                "backing-image": {
+                    "virtual-size": 10485760,
+                    "filename": "/tmp/pull4.qcow2",
+                    "cluster-size": 65536,
+                    "format": "qcow2",
+                    "actual-size": 208896,
+                    "format-specific": {
+                        "type": "qcow2",
+                        "data": {
+                            "compat": "1.1",
+                            "lazy-refcounts": false,
+                            "bitmaps": [
+                                {
+                                    "flags": [
+                                        "auto"
+                                    ],
+                                    "name": "a",
+                                    "granularity": 65536
+                                }
+                            ],
+                            "refcount-bits": 16,
+                            "corrupt": false
+                        }
+                    },
+                    "dirty-flag": false
+                },
+                "backing-filename-format": "qcow2",
+                "virtual-size": 10485760,
+                "filename": "/tmp/pull4.1575911522",
+                "cluster-size": 65536,
+                "format": "qcow2",
+                "actual-size": 208896,
+                "format-specific": {
+                    "type": "qcow2",
+                    "data": {
+                        "compat": "1.1",
+                        "lazy-refcounts": false,
+                        "bitmaps": [
+                            {
+                                "flags": [
+                                    "auto"
+                                ],
+                                "name": "a",
+                                "granularity": 65536
+                            }
+                        ],
+                        "refcount-bits": 16,
+                        "corrupt": false
+                    }
+                },
+                "full-backing-filename": "/tmp/pull4.qcow2",
+                "backing-filename": "/tmp/pull4.qcow2",
+                "dirty-flag": false
+            },
+            "backing-filename-format": "qcow2",
+            "virtual-size": 10485760,
+            "filename": "/tmp/pull4.1575911527",
+            "cluster-size": 65536,
+            "format": "qcow2",
+            "actual-size": 217088,
+            "format-specific": {
+                "type": "qcow2",
+                "data": {
+                    "compat": "1.1",
+                    "lazy-refcounts": false,
+                    "bitmaps": [
+                        {
+                            "flags": [
+                                "auto"
+                            ],
+                            "name": "c",
+                            "granularity": 65536
+                        },
+                        {
+                            "flags": [
+
+                            ],
+                            "name": "b",
+                            "granularity": 65536
+                        },
+                        {
+                            "flags": [
+
+                            ],
+                            "name": "a",
+                            "granularity": 65536
+                        }
+                    ],
+                    "refcount-bits": 16,
+                    "corrupt": false
+                }
+            },
+            "full-backing-filename": "/tmp/pull4.1575911522",
+            "backing-filename": "/tmp/pull4.1575911522",
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": true,
+        "node-name": "libvirt-3-format",
+        "backing_file_depth": 2,
+        "drv": "qcow2",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "backing_file": "/tmp/pull4.1575911522",
+        "dirty-bitmaps": [
+            {
+                "name": "a",
+                "recording": false,
+                "persistent": true,
+                "busy": false,
+                "status": "disabled",
+                "granularity": 65536,
+                "count": 0
+            },
+            {
+                "name": "b",
+                "recording": false,
+                "persistent": true,
+                "busy": false,
+                "status": "disabled",
+                "granularity": 65536,
+                "count": 0
+            },
+            {
+                "name": "c",
+                "recording": true,
+                "persistent": true,
+                "busy": false,
+                "status": "active",
+                "granularity": 65536,
+                "count": 0
+            }
+        ],
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911527",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "virtual-size": 459264,
+            "filename": "/tmp/pull4.1575911527",
+            "format": "file",
+            "actual-size": 217088,
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": false,
+        "node-name": "libvirt-3-storage",
+        "backing_file_depth": 0,
+        "drv": "file",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911527",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "backing-image": {
+                "virtual-size": 10485760,
+                "filename": "/tmp/pull4.qcow2",
+                "cluster-size": 65536,
+                "format": "qcow2",
+                "actual-size": 208896,
+                "format-specific": {
+                    "type": "qcow2",
+                    "data": {
+                        "compat": "1.1",
+                        "lazy-refcounts": false,
+                        "bitmaps": [
+                            {
+                                "flags": [
+                                    "auto"
+                                ],
+                                "name": "a",
+                                "granularity": 65536
+                            }
+                        ],
+                        "refcount-bits": 16,
+                        "corrupt": false
+                    }
+                },
+                "dirty-flag": false
+            },
+            "backing-filename-format": "qcow2",
+            "virtual-size": 10485760,
+            "filename": "/tmp/pull4.1575911522",
+            "cluster-size": 65536,
+            "format": "qcow2",
+            "actual-size": 208896,
+            "format-specific": {
+                "type": "qcow2",
+                "data": {
+                    "compat": "1.1",
+                    "lazy-refcounts": false,
+                    "bitmaps": [
+                        {
+                            "flags": [
+                                "auto"
+                            ],
+                            "name": "a",
+                            "granularity": 65536
+                        }
+                    ],
+                    "refcount-bits": 16,
+                    "corrupt": false
+                }
+            },
+            "full-backing-filename": "/tmp/pull4.qcow2",
+            "backing-filename": "/tmp/pull4.qcow2",
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": true,
+        "node-name": "libvirt-4-format",
+        "backing_file_depth": 1,
+        "drv": "qcow2",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "backing_file": "/tmp/pull4.qcow2",
+        "dirty-bitmaps": [
+            {
+                "name": "a",
+                "recording": true,
+                "persistent": true,
+                "busy": false,
+                "status": "active",
+                "granularity": 65536,
+                "count": 0
+            }
+        ],
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911522",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "virtual-size": 328192,
+            "filename": "/tmp/pull4.1575911522",
+            "format": "file",
+            "actual-size": 208896,
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": false,
+        "node-name": "libvirt-4-storage",
+        "backing_file_depth": 0,
+        "drv": "file",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.1575911522",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "virtual-size": 10485760,
+            "filename": "/tmp/pull4.qcow2",
+            "cluster-size": 65536,
+            "format": "qcow2",
+            "actual-size": 208896,
+            "format-specific": {
+                "type": "qcow2",
+                "data": {
+                    "compat": "1.1",
+                    "lazy-refcounts": false,
+                    "bitmaps": [
+                        {
+                            "flags": [
+                                "auto"
+                            ],
+                            "name": "a",
+                            "granularity": 65536
+                        }
+                    ],
+                    "refcount-bits": 16,
+                    "corrupt": false
+                }
+            },
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": true,
+        "node-name": "libvirt-5-format",
+        "backing_file_depth": 0,
+        "drv": "qcow2",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "dirty-bitmaps": [
+            {
+                "name": "a",
+                "recording": true,
+                "persistent": true,
+                "busy": false,
+                "status": "active",
+                "granularity": 65536,
+                "count": 0
+            }
+        ],
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.qcow2",
+        "encryption_key_missing": false
+    },
+    {
+        "iops_rd": 0,
+        "detect_zeroes": "off",
+        "image": {
+            "virtual-size": 328192,
+            "filename": "/tmp/pull4.qcow2",
+            "format": "file",
+            "actual-size": 208896,
+            "dirty-flag": false
+        },
+        "iops_wr": 0,
+        "ro": false,
+        "node-name": "libvirt-5-storage",
+        "backing_file_depth": 0,
+        "drv": "file",
+        "iops": 0,
+        "bps_wr": 0,
+        "write_threshold": 0,
+        "encrypted": false,
+        "bps": 0,
+        "bps_rd": 0,
+        "cache": {
+            "no-flush": false,
+            "direct": false,
+            "writeback": true
+        },
+        "file": "/tmp/pull4.qcow2",
+        "encryption_key_missing": false
+    }
+]
diff --git a/tests/qemublocktestdata/bitmap/snapshots.out b/tests/qemublocktestdata/bitmap/snapshots.out
new file mode 100644 (file)
index 0000000..5dafe94
--- /dev/null
@@ -0,0 +1,14 @@
+libvirt-1-format:
+        d: record:0 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+  current: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+libvirt-2-format:
+        c: record:0 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+        d: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+libvirt-3-format:
+        a: record:0 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+        b: record:0 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+        c: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+libvirt-4-format:
+        a: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
+libvirt-5-format:
+        a: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0