ソースを参照

Version 0.0.4 in releases

- libpve-storage-perl 5.0-18
- qemu-server 5.0-25
Alexander Schmid 7 年 前
コミット
5534b7ac12
共有4 個のファイルを変更した70 個の追加50 個の削除を含む
  1. 1 1
      Makefile
  2. 61 48
      QemuServer.patch
  3. 7 0
      debian/changelog
  4. 1 1
      debian/control

+ 1 - 1
Makefile

@@ -1,5 +1,5 @@
 PACKAGE=pve-iscsi-zfs-scst
 PACKAGE=pve-iscsi-zfs-scst
-PKGVER=0.0.4
+PKGVER=0.0.5
 
 
 DEB=${PACKAGE}_${PKGVER}_all.deb
 DEB=${PACKAGE}_${PKGVER}_all.deb
 
 

+ 61 - 48
QemuServer.patch

@@ -1,48 +1,61 @@
-6147a6148,6188
->     #BEGIN addition
->     my $src_storage_plugin = PVE::Storage::Plugin->lookup($src_scfg->{type});
->     my $dst_storage_plugin = PVE::Storage::Plugin->lookup($dst_scfg->{type});
-> 
->     # in many cases the storage may have a better idea how to convert:
->     # if src and dst format is the same
->     # and src_storeid is dst_storeid
->     # and the storage has the feature
->     # and the feature is implemented as volume_copy / volume_snapshot_copy
->     # let the storage do the work as it quite sure is faster
->     if ( $src_format eq $dst_format ) {
->         if( $src_storeid eq $dst_storeid ) {
->             # this is the same storage
->             # and storage is capable of materializing snaps
->             if( $snapname ) {
->                 my $canCopySnap = PVE::Storage::volume_has_feature($storecfg, 'copy', $src_volid, $snapname, undef) && $src_storage_plugin->can('volume_snapshot_copy');
->                 if( $canCopySnap ) {
->                     print "delegate to storage plugin volume_snapshot_copy (snap $snapname)\n";
->                     $src_storage_plugin->volume_snapshot_copy($src_scfg, $src_volname, $snapname, $dst_volname);
-> 
->                     $src_storage_plugin->deactivate_volume($src_storeid, $src_scfg, $src_volname, $snapname);
-> 
->                     return 1;
->                 }
->             }
-> 
->             my $canCopyVolume = PVE::Storage::volume_has_feature($storecfg, 'copy', $src_volid, undef, undef) && $src_storage_plugin->can('volume_copy');
->             if ( $canCopyVolume ) {
->                 print "delegate to storage plugin: volume_copy (base)\n";
->                 $src_storage_plugin->volume_copy($src_scfg, $src_volname, $dst_volname);
-> 
->                 $src_storage_plugin->deactivate_volume($src_storeid, $src_scfg, $src_volname, $snapname);
-> 
->                 return 1;
->             }
->         }
->         # @todo: two zfs-storages might be able to receive stream from each other
->     }
->     #END addition
-> 
-> 
-6173a6215,6219
-> 
-> 	# added: deactivate the src-volume, even on failure
-> 	# this can be safely called as qemu_img_convert is never called on a running volume (that is not a snap)
-> 	$src_storage_plugin->deactivate_volume($src_storeid, $src_scfg, $src_volname, $snapname);
-> 
+--- QemuServer.orig.pm	2019-02-01 13:04:19.000000000 +0100
++++ QemuServer.patched.pm	2019-02-12 16:47:56.000000000 +0100
+@@ -6461,6 +6461,46 @@
+ 	my $src_path = PVE::Storage::path($storecfg, $src_volid, $snapname);
+ 	my $dst_path = PVE::Storage::path($storecfg, $dst_volid);
+ 
++    #BEGIN addition
++    my $src_storage_plugin = PVE::Storage::Plugin->lookup($src_scfg->{type});
++    my $dst_storage_plugin = PVE::Storage::Plugin->lookup($dst_scfg->{type});
++
++    # in many cases the storage may have a better idea how to convert:
++    # if src and dst format is the same
++    # and src_storeid is dst_storeid
++    # and the storage has the feature
++    # and the feature is implemented as volume_copy / volume_snapshot_copy
++    # let the storage do the work as it quite sure is faster
++    if ( $src_format eq $dst_format ) {
++        if( $src_storeid eq $dst_storeid ) {
++            # this is the same storage
++            # and storage is capable of materializing snaps
++            if( $snapname ) {
++                my $canCopySnap = PVE::Storage::volume_has_feature($storecfg, 'copy', $src_volid, $snapname, undef) && $src_storage_plugin->can('volume_snapshot_copy');
++                if( $canCopySnap ) {
++                    print "delegate to storage plugin volume_snapshot_copy (snap $snapname)\n";
++                    $src_storage_plugin->volume_snapshot_copy($src_scfg, $src_volname, $snapname, $dst_volname);
++
++                    $src_storage_plugin->deactivate_volume($src_storeid, $src_scfg, $src_volname, $snapname);
++
++                    return 1;
++                }
++            }
++
++            my $canCopyVolume = PVE::Storage::volume_has_feature($storecfg, 'copy', $src_volid, undef, undef) && $src_storage_plugin->can('volume_copy');
++            if ( $canCopyVolume ) {
++                print "delegate to storage plugin: volume_copy (base)\n";
++                $src_storage_plugin->volume_copy($src_scfg, $src_volname, $dst_volname);
++
++                $src_storage_plugin->deactivate_volume($src_storeid, $src_scfg, $src_volname, $snapname);
++
++                return 1;
++            }
++        }
++        # @todo: two zfs-storages might be able to receive stream from each other
++    }
++    #END addition
++
+ 	my $cmd = [];
+ 	push @$cmd, '/usr/bin/qemu-img', 'convert', '-p', '-n';
+ 	push @$cmd, '-l', "snapshot.name=$snapname" if($snapname && $src_format eq "qcow2");
+@@ -6487,6 +6527,11 @@
+ 
+ 	eval  { run_command($cmd, timeout => undef, outfunc => $parser); };
+ 	my $err = $@;
++
++    # added: deactivate the src-volume, even on failure
++    # this can be safely called as qemu_img_convert is never called on a running volume (that is not a snap)
++    $src_storage_plugin->deactivate_volume($src_storeid, $src_scfg, $src_volname, $snapname);
++
+ 	die "copy failed: $err" if $err;
+     }
+ }

+ 7 - 0
debian/changelog

@@ -1,3 +1,10 @@
+pve-iscsi-zfs-scst (0.0.5) unstable; urgency=medium
+
+  * Upgrade to qemu-server 5.0-46
+  * Upgrade to libpve-storage-perl 5.0-37
+
+ -- Alexander Schmid <alex@modula-shop-systems.de>  Wed, 20 Dec 2017 13:46:00 +0200
+
 pve-iscsi-zfs-scst (0.0.4) unstable; urgency=medium
 pve-iscsi-zfs-scst (0.0.4) unstable; urgency=medium
 
 
   * Upgrade to qemu-server 5.0-25
   * Upgrade to qemu-server 5.0-25

+ 1 - 1
debian/control

@@ -7,7 +7,7 @@ Standards-Version: 0.0.3
 Homepage: https://git.modula-shop-systems.de/modula/pve-iscsi-zfs-scst/
 Homepage: https://git.modula-shop-systems.de/modula/pve-iscsi-zfs-scst/
 
 
 Architecture: all
 Architecture: all
-Depends: libpve-storage-perl (=5.0-18), qemu-server (=5.0-25), ${perl:Depends},
+Depends: libpve-storage-perl (=5.0-37), qemu-server (=5.0-46), ${perl:Depends},
 Package: pve-iscsi-zfs-scst
 Package: pve-iscsi-zfs-scst
 Description: zfs over iscsi with scst target
 Description: zfs over iscsi with scst target
  adds support for scst and ESOS target to the zfs over iscsi storage plugin
  adds support for scst and ESOS target to the zfs over iscsi storage plugin