[pve-devel] [PATCH v4 storage 0/6] import/export api

Wolfgang Bumiller w.bumiller at proxmox.com
Fri May 12 11:56:05 CEST 2017


Changes to v3:
  * zfs import improvements:
    - assert a volume doesn't exist on non-incremental imports (so that
      destroying them on failure makes sense)
    - assert base snapshots exist on incremental imports
  * import/export methods: drop dying elsif paths for raw paths (since
    we most likely don't want to support them)
  * realizing that volume_transfer_formats() doesn't require the base
    snapshot to actually exist it was moved back up to before creating
    the initial snapshot - shortening the migration code a bit in patch
    6.

- Previous versions:

Changes to v2:
  * replaced `pvesm delsnapshot` with a -snapshot parameter for
    `pvesm free`.
  * stricter API parameter types
    Note that for snapshots we used a length-limited `pve-configid` in
    pve-container and qemu-server (which we should put into JSONSchema
    since they each define their own) - but for storage migration the
    '__migration__' snapshot name is not a valid pve-configid, so
    instead I just added a pattern representing a "limited enough"
    superset to cover it all.
  * volume_transfer_formats() now takes both source and
    destinationvolume ids
  * fixed typos

Still meditating on whether -with-snapshots is useful/required/worthless
in the import path... (but we can still remove it later...).

Changes to v1:
  * rebased onto current master
  * export: don't unlink on success...

- Original cover letter:

This is a first (working) draft of an import/export interface.

The idea is to provide the storage-side functionality required and
implemented twice - both by storage_migrate() and the replication patch
set's volume_send() plugin call.

The third patch replaces storage_migrate()'s ZFS case with an almost
storage agnostic implementation. The patches following it add transfer
format queries and the 6th patch then turns this into a storage type
independent implementation.


Wolfgang Bumiller (6):
  pvesm: import/export commands
  free: added snapshot parameter
  migrate: use pvesm import/export for zfs
  migrate: snapshot parameter for incremental transfer
  api: add import/export format querying
  migrate: query transfer stream formats

 PVE/API2/Storage/Content.pm  |  13 +++-
 PVE/CLI/pvesm.pm             | 139 +++++++++++++++++++++++++++++++++++++++++++
 PVE/Storage.pm               |  99 +++++++++++++++++++++++++-----
 PVE/Storage/Plugin.pm        |  21 +++++++
 PVE/Storage/ZFSPoolPlugin.pm |  78 ++++++++++++++++++++++++
 5 files changed, 334 insertions(+), 16 deletions(-)

-- 
2.11.0





More information about the pve-devel mailing list