Tested the series by setting up a iSCSI target using targetcli(d) (on a
separate PVE 8.4 system as a base, due to ZFS goodies) and then adding a
ZFS-over-iSCSI storage using the LIO provider to a test cluster.

Confirmed that

- `zfs-base-path` is correctly detected when adding the storage

- the iSCSI storage is seen correctly after setting up and that VM disks
  can be (live-)migrated to the ZFS-over-iSCSI storage w/o problems.

One small comment inline, just a typo in the API description.

Please consider the series in any case

Tested-by: Christoph Heiss <c.he...@proxmox.com>

--

One unrelated thing I noticed during testing, but wanted to note for
reference:

When one hits the error due to a bad `zfs-base-path` (e.g. as currently
happens):

  `TASK ERROR: storage migration failed: Could not open 
/dev/<poolname>/vm-100-disk-0`

the target zvol isn't cleaned up, e.g. the above would result in
`<poolname>/vm-100-disk-0` still being present on the remote zpool.

Fortunately this doesn't really break anything, as the next available
disk number (in this case, `vm-100-disk-1`), is chosen automatically
anyway when creating a new disk.

On Tue May 27, 2025 at 3:34 PM CEST, Fiona Ebner wrote:
> Use '/dev/zvol' as a base path for new storages for providers 'iet'
> and 'LIO', because that is what modern distributions use.
>
> This is a breaking change regarding the addition of new storages on
> older distributions, but it's enough to specify the base path '/dev'
> explicitly for setups that require it.
>
> Signed-off-by: Fiona Ebner <f.eb...@proxmox.com>
> ---
[..]
> diff --git a/src/PVE/Storage/ZFSPlugin.pm b/src/PVE/Storage/ZFSPlugin.pm
> index 94cb11f..64f1eda 100644
> --- a/src/PVE/Storage/ZFSPlugin.pm
> +++ b/src/PVE/Storage/ZFSPlugin.pm
> @@ -39,13 +39,13 @@ my $zfs_get_base = sub {
>      my ($scfg) = @_;
>
>      if ($scfg->{iscsiprovider} eq 'comstar') {
> -        return PVE::Storage::LunCmd::Comstar::get_base;
> +        return PVE::Storage::LunCmd::Comstar::get_base($scfg);
>      } elsif ($scfg->{iscsiprovider} eq 'istgt') {
> -        return PVE::Storage::LunCmd::Istgt::get_base;
> +        return PVE::Storage::LunCmd::Istgt::get_base($scfg);
>      } elsif ($scfg->{iscsiprovider} eq 'iet') {
> -        return PVE::Storage::LunCmd::Iet::get_base;
> +        return PVE::Storage::LunCmd::Iet::get_base($scfg);
>      } elsif ($scfg->{iscsiprovider} eq 'LIO') {
> -        return PVE::Storage::LunCmd::LIO::get_base;
> +        return PVE::Storage::LunCmd::LIO::get_base($scfg);
>      } else {
>          $zfs_unknown_scsi_provider->($scfg->{iscsiprovider});
>      }
> @@ -204,6 +204,12 @@ sub properties {
>           description => "target portal group for Linux LIO targets",
>           type => 'string',
>       },
> +     'zfs-base-path' => {
> +         description => "Base path where to look for the created ZFS block 
> devices. Set"
> +             ." automatically during creation if not specificed. Usually 
> '/dev/zvol'.",

small typo :^)
s/specificed/specified/g


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to