Migration To New Disks


I am planning on doing a upgrade on the current setup. So currently I have a single pool of 6x4tb drives in raidz1. Now I want to move the data from that pool to the new array i want to build which is a 6x12tb raidz2. I wanted a sanity check to make sure I’m thinking through this right.

My plan is to attach the 6 12tb disks to a temporary DAS that I have and connect it via USB to my NAS that the other drives are in Then create a second pool for the 6x12tb raidz2 and then copy the data over from the old to the new. Then once the data is transferred disconnect the 6x4tb drives and replace with the 6x12tb set.

Am I overthinking this or does this make sense?

I guess there is a possibility it might work.

At least if it doesn’t scrub after you move the pool back to the host you’ll have your original disks as a backup still.

Btw, copy the data by using a replication.

The USB connection may compromise the creation of the new pool (duplicate serial numbers) or cause the data transfer to be flakey.

The USB connection may compromise the creation of the new pool (duplicate serial numbers)

This is not the case with USB drives!
(perhaps possible with a very cheap, non standard USB chipset or firmware).

or cause the data transfer to be flakey.

It’s true that certain USB drives CAN be flaky, but that’s an issue with that specific drive or USB chipset.

The USB standard does work well, but you need BOTH devices, the host and the device itself to have non-buggy USB chipsets.

I have been using 8TB, 10TB, 12TB and 14TB external USB drives, in at least 6 different machines with different vendors and models among them, for more than a year.

NONE have given me trouble. Some machines are running 24x7 and others shutdown and start daily.

Now, these are all 1 drive pools and not going through a DAS like in your case.

That introduces extra variables:
I would TEST the process with OTHER hard drives to ENSURE the data on the drives will NOT be corrupted.

You mentioned replication. I looked into that and it looks to be only snapshots. Now unless I’m not understanding something a snapshot is not a exact copy of the data. So when I disconnect the original drives and connect the new ones in there place I’ll just have the snapshot not the raw files. Is that right?

another option (time consuming but works) is to replace one disk at a time… after each disk… let the array resilver… and when the last drive is switched out… Truenas will report the new size…
Like mentioned it is time consuming as you do one drive at a time… but might be an easier option

That was my original thought. But I want to transition from raidz1 to raidz2 unless there is a way to do that to a existing pool I’m unaware of. I thought you couldn’t that.

Laziest way I could think of doing this if I didn’t have an extra HBA & wanted to avoid USB:

  • Grab a second system, toss truenas onto whatever extra drive (or even USB since this’ll live for maybe a day or two)
  • Connect new drives to temp system
  • Copy/paste
  • Shut down both & move new pool to the machine that’ll actually continue to be a NAS
  • Take out Truenas boot drive from secondary system

Realistically it’d mean you’re down your main system (unless you’re also a person who has a few motherboards & PSUs ready for stupid projects) for a day or two, but shouldn’t require any additional hardware.

Or grab a cheap HBA, make sure it is flashed to IT & latest firmware; toss into NAS & replicate. This’d be the cheapest, most reliable way if you did have to buy something extra.

Snapshots represent data already on disk when the snapshot was taken. That data will not be deleted until it is no longer referenced by any snapshots.

When you replicate a snapshot, all the data that is referenced by the snapshot but not on the destination is copied to the destination, so it can be referenced by the snapshot at the destination.

A replicated snapshot is the most exact copy of the data you can get.

And you can re-run the replication/snapshot to quickly pickup the delta, which means you can leave everything running right up until your final cutover snapshot.

There is no way to change raidz level on a existing vdev.
The USB enclosure is somewhat worrying though. Do you have spare ports in your current NAS? How much data is there?
(The vague hope is that if you had, say, two spare ports and less than 12 TB of actual data, you might create a 2x12 TB mirror pool, replicate to it, create a 6-wide raidz2 with the remaining 12 TB drives and two 4 TB from the old pool, replicate to the new pool and replace the smaller drives.)

1 Like

My comments relate to USB attach enclosures containing SATA drives. They are notoriously unreliabl.e

Worst of all, a USB enclosure holding (at least) six drives may well have some kind of RAID contoller inside…