I’ve got a 500Gb pool that’s in STRIPE. My hard drive on there started failing, so i found another hard drive of the same model. I want to convert my single-drive STRIPE pool to a dual-drive MIRROR pool so that i don’t risk losing data. How do i do this, optimally without downtime? I asked Claude, but i’m not confident at all with this answer. I got this, is it a good idea to follow what he told me to do?:
Add drive #2 as a mirror to your existing STRIPE pool (creating a striped pool with one STRIPE vdev and one MIRROR vdev of just #2)
Remove drive #1 (the original STRIPE vdev) — forcing all data to evacuate to drive #2
Re-add drive #1 as a mirror partner to drive #2, creating a true 2-disk MIRROR vdev
Unfortunately, ZFS VDEV topology is immutable after creation. After step 2, your pool will be broken. The only way forward is to destroy your pool and recreate it as a mirror, and then reload the data from backup.
Stop, stop, stop. Claude’s advice is wrong, but if you haven’t followed it yet, no harm, no foul.
Yes, you can add a second drive as a mirror of the first. The way you do that is to extend the first vdev. You’ll find instructions in the TrueNAS docs, not in Claude.
I haven’t followed it. Can you post a link? I’ve already tried searching for it. But if i extend my STRIPE VDEV, i’ll just have two hard drives and when one’s full, the other one takes over new data? I’m a bit confused
zpool status -v returns:
pool: boot-pool
state: ONLINE
scan: scrub repaired 0B in 00:00:19 with 0 errors on Mon Jun 22 03:45:20 2026
config:
NAME STATE READ WRITE CKSUM
boot-pool ONLINE 0 0 0
nvme0n1p3 ONLINE 0 0 0
errors: No known data errors
pool: main
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see:
scan: scrub repaired 0B in 00:59:29 with 11 errors on Sun Jun 21 00:59:31 2026
remove: Removal of vdev 1 copied 376K in 0h0m, completed on Tue Jun 16 18:06:17 2026
2.20K memory used for removed device mappings
config:
NAME STATE READ WRITE CKSUM
main DEGRADED 0 0 0
a536d7f0-85ec-43ff-bc86-2c6a443832a1 DEGRADED 159 0 132 too many errors
errors: Permanent errors have been detected in the following files:
/var/db/system/netdata/dbengine/datafile-1-0000000116.ndf
/mnt/main/Films/Disney/L'Age de Glace/L'age de glace.mp4
/mnt/.ix-apps/truenas_catalog/trains/community/postgres/1.5.14/templates/library/base_v2_3_4/validations.py
/mnt/.ix-apps/truenas_catalog/.git/objects/pack/pack-7f42ae0d26a82ec84f3ed209598b57b86dc49916.idx
/mnt/.ix-apps/truenas_catalog/.git/objects/pack/pack-7f42ae0d26a82ec84f3ed209598b57b86dc49916.pack
I was mistaken earlier. Looks like ZFS has added the capability to attach new disks to VDEVs. I don’t know about the UI, but in the CLI, you can just go zpool attach main sda sdb to make sdb a mirror of sda.
There’s absolutely no reason to be using the CLI here. And the ability to add a second disk as a mirror of a first has been present in the GUI for ages.
Dan’s advice is sound.
But no one here can absolutely 100% guarantee what will happen in every possible scenario. That’s what a verified backup is for.