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
Story
As a VIC developer I want to have clean separation between functional interfaces
As a VIC developer and viadmin I want VIC to perform as few VMOMI calls as possible for a given function
Detail
We have two orthogonal disk interfaces, one for IO interaction and another for lifecycle operations:
typeArchiverinterface {
// Import data into a specific storage objectImport(...)
// Export data from a specific storage objectExport(...)
The lifecycle operations are basically pure CRUD:
typeStoreinterface {
// Create a storage object in the implementing storeCreate(...)
// Inspect details of a specific storage objectRead(...)
// Modify core details of a specific storage object, e.g. max size,Update(...)
// Delete a specific storage objectDelete(...)
}
For Image stores there is a single entry point for manipulating disk contents in the shape of the WriteImage function. This was done to provide a single call that, on completion, would have created and populated a disk. Currently the WriteImage call is not implemented using the orthogonal interfaces described above.
To support an efficient implementation of the existing WriteImage call using this interface separation we need to move to a deferred detach of disks from the endpointVM - this means that a detach call doesn't necessarily take immediate effect. The detach should take effect when:
a reconfigure is invoked for another operation - the easy opportunistic path - or
a VM that references the disk has an event or operation performed on it - avoid locking a disk that may now be needed by a different VM - or
a given delay has lapsed - avoid a disk being held indefinitely and to support dual mode management
To support (1) in conjunction with a pull operation we confirmed via #5565 that a single reconfigure operation can:
detach disk A
create and attach disk B where B is a child of A
This should:
implement the Archiver and Store interfaces (names are placeholders)
implement the deferred detach behaviour described
refactor the Write Image call to use Create followed by Import
The text was updated successfully, but these errors were encountered:
hickeng
changed the title
portlayer: investigate composite reconfigure for lazy disk detach operations
portlayer: lazy disk detach operations
Jul 10, 2017
Story
As a VIC developer I want to have clean separation between functional interfaces
As a VIC developer and viadmin I want VIC to perform as few VMOMI calls as possible for a given function
Detail
We have two orthogonal disk interfaces, one for IO interaction and another for lifecycle operations:
The lifecycle operations are basically pure CRUD:
For Image stores there is a single entry point for manipulating disk contents in the shape of the
WriteImage
function. This was done to provide a single call that, on completion, would have created and populated a disk. Currently the WriteImage call is not implemented using the orthogonal interfaces described above.To support an efficient implementation of the existing
WriteImage
call using this interface separation we need to move to a deferred detach of disks from the endpointVM - this means that a detach call doesn't necessarily take immediate effect. The detach should take effect when:To support (1) in conjunction with a
pull
operation we confirmed via #5565 that a single reconfigure operation can:This should:
The text was updated successfully, but these errors were encountered: