ZFS pool/dataset fine but middlewared can't see it

I want to add a new user thru the GUI with credentials–>users but I get an error about home directory must be a volume or a dataset. I have two zfs pools (default boot-pool and my usb HD’s kyoudaiHD pool). I have created a number of datasets within each and successfully mounted them in /mnt (/mnt/user, /mnt/kyoudai/backup/user). No matter whether I use /mnt/user or /mnt/kyoudai or /mnt/kyoudai/backup or /mnt/kyoudai/backup/user, I get the same error.

I did some trouble shooting and it appears that the middlewared cannot see my zfs pools.
midclt call pool.query returns an empty set .
midclt call pool.status kyoudaiHD [or boot-pool]
returns an error that no attribute “status” exists for “pool”.

Not sure what to do to fix this…Any suggestions most welcome.

obitori

WE don;t recommend USB HDDs but in any case.

Please state the software version.

Does the WebUI not show any drives or pools?

Version: 24.10.1 Community Edition.
Running on Proxmox 8.3.2 on Dell PowerEdge 640

Storage show NO pools (there are two: boot-pool and kyoudaiHD [USB HDD (ZFS Raid1 of 4 drives)]

Datasets, however, accurately shows all datasets on kyoudaiHD (5 of them). boot-pool doesn’t show up. (I believe that is by design.)

I passed thru two USB Controllers: USB to ATA/ATAPI Bridge and Mass Storage Function from Proxmox to TrueNAS.

Thank you for taking the time to evaluate my issue.

What is this?

Four individual USB enclosures (each with their own individual drive) that comprise a RAIDZ1 vdev for the kyoudiaHD pool?

Are there multiple drives in a USB “bay”?

ZFS Raid 1 disk mirroring using 4 drives in a bay to present one pool (kyoudaiHD).

1 Like

Just to be clear Storage tab in the GUI shows no pools, but Datasets in the GUI shows datasets for the KyoudaiHD pool. Both are viewable using CLI commands like zfs list and zpool status.

I reinstalled and added a second virtual VDA drive to act as pool storage. I configured TrueNAS to see it and added a user and samba share. This was further than I was able to get with the USB ZFS pool, kyoudaiHD.

Then, I added the USB hardware pass thru as above and mounted USB-based kyoudaiHD, which TrueNAS GUI and midclt both see! That problem is solved. When I try to add a SMB Share via GUI, I get an error:

 Error: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 211, in call_method
    result = await self.middleware.call_with_audit(message['method'], serviceobj, methodobj, params, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1529, in call_with_audit
    result = await self._call(method, serviceobj, methodobj, params, app=app,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1460, in _call
    return await methodobj(*prepared_call.args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 230, in create
    return await self.middleware._call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1460, in _call
    return await methodobj(*prepared_call.args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 261, in nf
    rv = await func(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 49, in nf
    res = await f(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 179, in nf
    return await func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/smb.py", line 875, in do_create
    verrors.check()
  File "/usr/lib/python3/dist-packages/middlewared/service_exception.py", line 72, in check
    raise self
middlewared.service_exception.ValidationErrors: [EINVAL] sharingsmb_create.path_local: The path must reside within a pool mount point
## END ##

The error seems to indicate that the dataset I am selecting is not in a ZFS mount point path, which is not correct. Any suggestions welcome.

Obitori

Post screenshots of your pool and dataset layout. You have to provide enough information for other to see what is going on with your system.

Joes Rules to Asking for Help