Currently running Truenas SCALE 22.02-RC2 with 5x 4TB HDDs in ZRAID1.
On Monday one drive failed so the pool became degraded, so I ordered a new disk. Today the disk arrived so I took the old disk out and replaced with the new one and clicked "Replace" as per the Truenas website instructions.
Unfortunately I then got this error:
Error: concurrent.futures.process._RemoteTraceback: """ Traceback (most recent call last): File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 297, in replace target.replace(newvdev) File "libzfs.pyx", line 404, in libzfs.ZFS.__exit__ File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 297, in replace target.replace(newvdev) File "libzfs.pyx", line 2074, in libzfs.ZFSVdev.replace libzfs.ZFSException: device is too small During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.9/concurrent/futures/process.py", line 243, in _process_worker r = call_item.fn(*call_item.args, **call_item.kwargs) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 97, in main_worker res = MIDDLEWARE._run(*call_args) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 45, in _run return self._call(name, serviceobj, methodobj, args, job=job) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 39, in _call return methodobj(*params) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 39, in _call return methodobj(*params) File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1273, in nf return func(*args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 299, in replace raise CallError(str(e), e.code) middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small """ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/middlewared/job.py", line 409, in run await self.future File "/usr/lib/python3/dist-packages/middlewared/job.py", line 445, in __run_body rv = await self.method(*([self] + args)) File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1269, in nf return await func(*args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1137, in nf res = await f(*args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/plugins/pool_/replace_disk.py", line 137, in replace raise e File "/usr/lib/python3/dist-packages/middlewared/plugins/pool_/replace_disk.py", line 117, in replace await self.middleware.call( File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1324, in call return await self._call( File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1289, in _call return await self._call_worker(name, *prepared_call.args) File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1295, in _call_worker return await self.run_in_proc(main_worker, name, args, job) File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1218, in run_in_proc return await self.run_in_executor(self.__procpool, method, *args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1192, in run_in_executor return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs)) middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small
The failed drive was a WD40EFRX but those are no longer sold so the replacement is a WD40EFZX but before purchasing I checked online and apparently this is a direct replacement with no differences exept a bigger cache so should be the same size.
Can someone help me with this so I can restore redundancy by adding the new disk?
P.S. I have backups of the data elsewhere but want to avoid recreating the pool and restoring from backups if at all possible due to the time that will take and due to it meaning the system will need to go down for an extended period.
Thanks
On Monday one drive failed so the pool became degraded, so I ordered a new disk. Today the disk arrived so I took the old disk out and replaced with the new one and clicked "Replace" as per the Truenas website instructions.
Unfortunately I then got this error:
Error: concurrent.futures.process._RemoteTraceback: """ Traceback (most recent call last): File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 297, in replace target.replace(newvdev) File "libzfs.pyx", line 404, in libzfs.ZFS.__exit__ File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 297, in replace target.replace(newvdev) File "libzfs.pyx", line 2074, in libzfs.ZFSVdev.replace libzfs.ZFSException: device is too small During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.9/concurrent/futures/process.py", line 243, in _process_worker r = call_item.fn(*call_item.args, **call_item.kwargs) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 97, in main_worker res = MIDDLEWARE._run(*call_args) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 45, in _run return self._call(name, serviceobj, methodobj, args, job=job) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 39, in _call return methodobj(*params) File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 39, in _call return methodobj(*params) File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1273, in nf return func(*args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 299, in replace raise CallError(str(e), e.code) middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small """ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/middlewared/job.py", line 409, in run await self.future File "/usr/lib/python3/dist-packages/middlewared/job.py", line 445, in __run_body rv = await self.method(*([self] + args)) File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1269, in nf return await func(*args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1137, in nf res = await f(*args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/plugins/pool_/replace_disk.py", line 137, in replace raise e File "/usr/lib/python3/dist-packages/middlewared/plugins/pool_/replace_disk.py", line 117, in replace await self.middleware.call( File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1324, in call return await self._call( File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1289, in _call return await self._call_worker(name, *prepared_call.args) File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1295, in _call_worker return await self.run_in_proc(main_worker, name, args, job) File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1218, in run_in_proc return await self.run_in_executor(self.__procpool, method, *args, **kwargs) File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1192, in run_in_executor return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs)) middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small
The failed drive was a WD40EFRX but those are no longer sold so the replacement is a WD40EFZX but before purchasing I checked online and apparently this is a direct replacement with no differences exept a bigger cache so should be the same size.
Can someone help me with this so I can restore redundancy by adding the new disk?
P.S. I have backups of the data elsewhere but want to avoid recreating the pool and restoring from backups if at all possible due to the time that will take and due to it meaning the system will need to go down for an extended period.
Thanks