Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Sep 2024 10:24:10 -0400
From:      Chris Ross <cross+freebsd@distal.com>
To:        FreeBSD Filesystems <freebsd-fs@freebsd.org>
Cc:        Chris Ross <cross+freebsd@distal.com>
Subject:   Unable to replace drive in raidz1
Message-ID:  <5ED5CB56-2E2A-4D83-8CDA-6D6A0719ED19@distal.com>

next in thread | raw e-mail | index | archive | help
Hello.  I have searched the interwebs a bit and seen tell of this and =
others
like it, but I haven=E2=80=99t found a solution.

I have a pool with three 3-disk raidz1 vols.  I want to replace the =
disks
in the first vdev with larger disks.  I=E2=80=99ve done this before, but =
may=E2=80=99ve
done something wrong here.

I belive I used =E2=80=9Czpool remove tank da3=E2=80=9D, but command =
history doesn=E2=80=99t
have that.  I=E2=80=99ve used many commands since I started.  I =
might=E2=80=99ve
=E2=80=9Czpool offline=E2=80=9Dd the device.  I=E2=80=99m sorry I =
don=E2=80=99t remember the original
command.

Then replaced the disk and rebooted.  This of course renumbered the
disks.  :-(. But, finding the new/replacement disk (da10), I try to
=E2=80=9Czpool replace tank da3 da10=E2=80=9D.
This always produces:

cannot replace da3 with da10: already in replacing/spare config; wait =
for completion or use 'zpool detach=E2=80=99

Now, I can=E2=80=99t use =E2=80=9Czpool detach=E2=80=9D I=E2=80=99ve =
learned because that doesn=E2=80=99t work
on zraid.  And I can=E2=80=99t tell what it _thinks_ is happening.  I =
even
Did a scrub of the pool and let that finish, but am still seeing the
same.

I have now:

=E2=80=948<=E2=80=948<=E2=80=948<---
>>>>>> zpool status -v tank
  pool: tank
 state: DEGRADED
status: One or more devices are faulted in response to persistent =
errors.
	Sufficient replicas exist for the pool to continue functioning =
in a
	degraded state.
action: Replace the faulted device, or use 'zpool clear' to mark the =
device
	repaired.
  scan: scrub repaired 0B in 17:14:03 with 0 errors on Fri Sep  6 =
09:08:34 2024
config:

	NAME                      STATE     READ WRITE CKSUM
	tank                      DEGRADED     0     0     0
	  raidz1-0                DEGRADED     0     0     0
	    da3                   FAULTED      0     0     0  external =
device fault
	    da1                   ONLINE       0     0     0
	    da2                   ONLINE       0     0     0
	  raidz1-1                ONLINE       0     0     0
	    diskid/DISK-K1GMBN9D  ONLINE       0     0     0
	    diskid/DISK-K1GMEDMD  ONLINE       0     0     0
	    diskid/DISK-K1GMAX1D  ONLINE       0     0     0
	  raidz1-2                ONLINE       0     0     0
	    diskid/DISK-3WJDHJ2J  ONLINE       0     0     0
	    diskid/DISK-3WK3G1KJ  ONLINE       0     0     0
	    diskid/DISK-3WJ7ZMMJ  ONLINE       0     0     0

errors: No known data errors
=E2=80=948<=E2=80=948<=E2=80=948<=E2=80=94

I=E2=80=99ll note that before the switcharoo, the second and third =
vdev=E2=80=99s listed
=E2=80=9Cda4 da5 da6=E2=80=9D and =E2=80=9Cda7 da8 da9=E2=80=9D.  The =
moving around of names caused the
above, which again I=E2=80=99ve seen before, and am fine with.

(Oh, you can see I ran a =E2=80=9Czpool offline -f=E2=80=9D on it most =
recently.  But
that was in the list of things I=E2=80=99ve tried that haven=E2=80=99t =
helped.)

Please let me know if someone knows how I=E2=80=99ve gotten to this =
state, and
what I need to do to correct it.  What is the "in replacing/spare =
config=E2=80=9D
meaning?

                      - Chris





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5ED5CB56-2E2A-4D83-8CDA-6D6A0719ED19>