Can't expand my pool

hi i recently added a drive into my nas but for some reason i can’t add it to my pool in draid2 as data

error:

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 515, in run
await self.future
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 560, in __run_body
rv = await self.method(*args)
^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/service/crud_service.py”, line 287, in nf
rv = await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 48, in nf
res = await f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 173, in nf
args, kwargs = clean_and_validate_args(args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 167, in clean_and_validate_args
verrors.check()
File “/usr/lib/python3/dist-packages/middlewared/service_exception.py”, line 72, in check
raise self
middlewared.service_exception.ValidationErrors: [EINVAL] pool_update.topology.data: Item#0 is not valid per list types: [EINVAL] datavdevs.draid_data_disks: null not allowed

The ZFS vDev type dRAID does not support adding columns. In the ZFS context, dRAID vDevs are immutable / unchangeable.

Was this what you were trying to do?

For those that don’t know, dRAID on other environments, (NOT ZFS), does appear to support adding columns. Someone in the past wanted such with TrueNAS & ZFS. They referenced an IBM paper showing such. But, that IBM paper had nothing to do with ZFS, (used by TrueNAS).

i wanted to add a sixth disk to my pool to have more storage

There is no need to use dRAID with just 5 or 6 drives. Unfortunately it’s

  • backup
  • destroy
  • recreate
  • restore

now. If you create it as RAIDZ2 you can add more drives in the future.

3 Likes

yeah i figured, i needed it cause i had old drives

What’s your line of thinking there?
I can’t think of any reason why you would need to use dRAID just because you had old drives.

well as far as i know raidz write one disk at a time which mean big stress on one disk draid us all disks at the same time which mean the stress is shared among all the pool which mean fewer chances that one disk fail during a data transfert

I think this is a misunderstanding of how Mirrors or Raid-Z(1,2,3) works.

The pool layout whitepaper may help.

https://www.truenas.com/white-papers/#TrueNAS-PDF-zfs-storage-pool-layout/1/

5 Likes

Wrong on all counts.
Raidz spreads writes.
dRAID only makes sense if you have spares and multiple tens of drives. (Basically, you’re expected to take a full 60-drive shelf and make it one dRAID vdev.)
Then dRAIDn actually has only n drives worth of parity spread across the entire vdev, so it wouldn’t be good if these old drives actually died in very close succession…

Backup, destroy the dRAID and restore to your new 6-wide raidz2.

5 Likes

oh thank i thought it was if draid thanks