Switching datasets to different pools with different settings

The current system has 3 1tb drives. So 1 drive for boot and system and 2 drives for storage. This isn’t optimal and with my new knowledge I wanna move stuff around. I wanna move everything to a new pool and rather move my boot drive to a smaller 500gb drive or 500gb SSD and partition the rest of it to cache or metadata.

Now I wanna know: is this possible, how to do it and the pools would also be changed as the current one only allows the same size drive and I wanna make it possible to mount drives from 500gb.

I still have limited knowledge so please as little terminal commands needed or written out.

You don’t say whether your 2x1TB drives for storage are a mirror or striped. If striped then you are living very dangerously and should buy new bigger drives for a redundant pool.

However assuming that your drives are mirrored, then you have a few challenges:

  1. Rebuild your boot drive on SSD (easy), limiting space used to (say) 32GB (easy-ish).

  2. Convert your 2x 1TB mirror into a 3x 1TB RAIDZ1 (possibly more difficult unless you have somewhere to offload your existing data to).

But first a few rules of thumb:

  1. Don’t implement anything on your single boot drive which makes your storage pool less safe. That means do NOT implement a non-redundant metadata special vDev on it!!!

  2. Understand what issues you will face if you split your boot drive into the boot-pool and something else. It will make recovery more difficult so you need to understand and accept these risks.

So now to what you need to do.

New boot drive

  1. Download your current version and write it to USB.
  2. Backup your system configuration.
  3. Reinstall onto your new boot drive using the hack to restrict the size of the boot partition to 32GB.
  4. Restore your system configuration

Your system should be back working as it was.

Use the spare SSD space

My advice would be to create an apps-pool on the spare space. You haven’t said whether e.g. you use your NAS for Plex or not, but if you run apps then an apps pool would IMO be the best use for this.

Make use of now spare 1TB Drive

This will depend on what your current pool layout is and whether you can offload the data elsewhere or not. It will also depend on whether you are sufficiently technical and comfortable with command line or not.

1 Like

Well out of my head it’s in a raidz1 config as of now

I do have a option to either transfer it to GDrive for a moment. But is it possible to then move the data to a new pool with a lower minimum drive size?

And for then I will most likely partition the SSD into 2 parts and use the other part for apps as I have tailscale and home assistant running off it

Edit: also the reason as of now for 1tb disks is mostly costs. This is a diy budget build and it’s gonna be expended in the future with new hardware that’s also bigger

Minimum 3 drives for raidz1.
I don’t think you know enough about TrueNAS and ZFS to venture safely into unsopported configurations such as a partitioned boot drive

Hm alright, well what to do then.

It would go from 3x1tb with a 1tb boot drive to

3x1tb and a 500gb boot drive but the pool settings would change too. What’s the best course of action?

In terms of data: about 750gb and shared between 2 users and can be transferred for a short time to a external HDD or a Google Cloud drive.

Later on it will be connected to a AWS S3 bucket

Well I looked over a thing: I have a 250gb ssd as boot drive.

So basically its gonna be transferring the pool over from pool 1 to pool 2 but the issue is I want to set up pool 2 as having a minimum drive size requirement of 500gb. Is that possible to do?

The minimal size in a vdev is the size of the smallest drive. Put a 500 GB drive in there, and it will be the minimal size. Of course, if the remaining drives are 1 TB, only 500 GB will be used.
I don’t know what you’re trying to achieve here. :roll_eyes:

Hopefully you have a mirror (1 TB), not a stripe (2 TB). If so, the best course of action to increase storage is a stripe of mirrors 2*1 TB + (1 TB + 500 GB) = 1,5 TB.
To check: sudo zpool status
Please post the output as formatted text (</> button).