You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Requiring a newly-created block to read as all zeroes is good security
practice, but for some hardware, the time required to explicitly zero
out the hardware can be lengthy. Enhance the spec with an option for
a CO to request volume creation without regards to contents of the
empty volume (safe if the volume will be handed to something that will
in turn initialize it, such as mkfs, but risky if handed to something
that will try to learn how the data was left by a previous tenant).
Existing Plugins that ignore this field (and thereby always zero
contents) are still compliant, but adding the field allows for some
faster allocations, in a carefully controlled environment where the
uninitialized storage is not setting up a data leak.
Signed-off-by: Eric Blake <[email protected]>
Copy file name to clipboardExpand all lines: spec.md
+18-2
Original file line number
Diff line number
Diff line change
@@ -789,7 +789,7 @@ Plugins MAY create 3 types of volumes:
789
789
- From an existing volume. When plugin supports cloning, and reports the OPTIONAL capabilities `CREATE_DELETE_VOLUME` and `CLONE_VOLUME`.
790
790
791
791
If CO requests a volume to be created from existing snapshot or volume and the requested size of the volume is larger than the original snapshotted (or cloned volume), the Plugin can either refuse such a call with `OUT_OF_RANGE` error or MUST provide a volume that, when presented to a workload by `NodePublish` call, has both the requested (larger) size and contains data from the snapshot (or original volume).
792
-
Explicitly, it's the responsibility of the Plugin to resize the filesystem of the newly created volume at (or before) the `NodePublish` call, if the volume has `VolumeCapability` access type `MountVolume` and the filesystem resize is required in order to provision the requested capacity. Likewise, if an empty volume is created, the Plugin must ensure that an access type `BlockVolume` exposes all bytes to initially read as zero, while an access type `MountVolume` exposes a filesystem with no files pre-populated.
792
+
Explicitly, it's the responsibility of the Plugin to resize the filesystem of the newly created volume at (or before) the `NodePublish` call, if the volume has `VolumeCapability` access type `MountVolume` and the filesystem resize is required in order to provision the requested capacity. Likewise, if an empty volume is created, the Plugin must ensure that an access type `BlockVolume` exposes all bytes to initially read as zero (unless the wipe_mode was `UNINITIALIZED`), while an access type `MountVolume` exposes a filesystem with no files pre-populated.
0 commit comments