Degraded Pool : Cannot offline drive assume dead

lankster2k

Cadet
Joined
Oct 23, 2020
Messages
1
I have a degraded pool status and a disk I assume needs replacing.

But if I try to force OFFLINE the device in the Pool Status view it errors :

Capture1.PNG


Error: Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/middlewared/main.py", line 137, in call_method
result = await self.middleware._call(message['method'], serviceobj, methodobj, params, app=self,
File "/usr/local/lib/python3.8/site-packages/middlewared/main.py", line 1191, in _call
return await methodobj(*prepared_call.args)
File "/usr/local/lib/python3.8/site-packages/middlewared/schema.py", line 973, in nf
return await f(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/middlewared/plugins/pool.py", line 1070, in offline
await self.middleware.call('disk.swaps_remove_disks', [disk])
File "/usr/local/lib/python3.8/site-packages/middlewared/main.py", line 1233, in call
return await self._call(
File "/usr/local/lib/python3.8/site-packages/middlewared/main.py", line 1191, in _call
return await methodobj(*prepared_call.args)
File "/usr/local/lib/python3.8/site-packages/middlewared/service.py", line 42, in l_fn
return await fn(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/middlewared/schema.py", line 972, in nf
args, kwargs = clean_and_validate_args(args, kwargs)
File "/usr/local/lib/python3.8/site-packages/middlewared/schema.py", line 930, in clean_and_validate_args
value = attr.clean(args[args_index + i])
File "/usr/local/lib/python3.8/site-packages/middlewared/schema.py", line 470, in clean
raise Error(self.name, 'Item#{0} is not valid per list types: {1}'.format(index, found))
middlewared.schema.Error: [disks] Item#0 is not valid per list types: [disk] null not allowed



I'm on Version: TrueNAS-12.0-RELEASE

From the missing serial number in the disk view I can see its not listed. I assume its da7 that missing as all the other numbers were sequential.

ada0 is where truenas is installed - all the others are for storage in one pool.

tempsnip.png


Can someone assist in resolving? I assume I can't offline it as its already dead - that would make sense. I just want to confirm next steps.

If i try to REPLACE the following comes up :

replace.PNG


The top dialogue just has a dash.

Are there shell commands that would show if that disk is active but not visible to TrueNas Core?

Can i just replace it and then add to the existing pool ?

Many thanks
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,700
Replace is expecting to have a blank (burned in if you choose to do that) disk in order to replace the "failed" disk with.

That screenshot seems to indicate there are no such disks available.
 

TexUs

Cadet
Joined
Nov 19, 2020
Messages
2
I have the exact same issue.
Drive died. Replaced (could not offline, due to OP's exact stated error). Now I cannot offline NOR replace for the same reasons even though the underlying FreeBSD shows the device mounted.
 

TexUs

Cadet
Joined
Nov 19, 2020
Messages
2
The issue is that the middleware sucks.
To resolve from shell:

zpool offline poolname /dev/multipath/whatever
At this point, the new disk was still not available to use via Replace from the middleware. At least for me. Even though the underlying BSD (you can see this in "dmesg") mounts the drive as something like /dev/da123 the zpool doesn't bring it in for whatever reason so...

reboot
Even after this, for me, I then got "Error: [EZFS_NOENT] no such pool or dataset" when trying to Replace, again because the middleware sucks. So...

zpool replace poolname oldidhere /dev/multipath/whatever
Note that the oldidhere is what's displayed by "zpool status" as the bad disk.

You can monitor the resilver process with
zpool status
 
Top