Collect the zfs raid out of different discs

Hi, I have 5 old disks each of them of different size, cache, date of production and even vendor. How can I "truncate them to provide redundant storage"? is it even possible? Or I should buy 2 same brand new disks?
 
You can create a RAID-Z from them, but the smallest disk is going to dictate how large the array is going to be (all disks are going to be limited by the smallest one of the bunch).

Let's say you have 3 disks, 10, 20 and 30 GB to keep things simple. When you create a RAID-Z from those it's going to be 30 GB total with 20 GB usable (the other 10 is used for data redundancy). All three disks are going to be limited by that 10GB one. So you'd be wasting 10 and 20 GB on the other two disks.
 
You can create a RAID-Z from them, but the smallest disk is going to dictate how large the array is going to be (all disks are going to be limited by the smallest one of the bunch).

Let's say you have 3 disks, 10, 20 and 30 GB to keep things simple. When you create a RAID-Z from those it's going to be 30 GB total with 20 GB usable (the other 10 is used for data redundancy). All three disks are going to be limited to that 10GB one. So you'd be wasting 10 and 20 GB on the other two disks.
what is if have: one on 80G, 1 on 250G, 1 320.
it would be like 216.6 of space?
 
You will waste more energy to keep those disk running and you will get poor performance than buying two 240GB ssd disks and put them in raid1.
 
what is if have: one on 80G, 1 on 250G, 1 320.
it would be like 216.6 of space?
You will end up with a 3x80GB RAID-Z with 160 GB of usable space (remember, 1 disk is for redundancy).

You will waste more energy to keep those disk running and you will get poor performance than buying two 240GB ssd disks and put them in raid1.
That's probably the better option.
 
what is if have: one on 80G, 1 on 250G, 1 320.
it would be like 216.6 of space?
If you want your storage to be redundant (for reliability, excellent idea if a disk fails), you could partition your disks into slices. I think this would work:
  • Take the whole 80G disk, plus one 80G partition on the 250G and 320G disk. Make that into one 80G RAIDZ-1 pool. That gives you roughly 160G of usable capacity. The 80G disk is now full.
  • Take the remaining 170G partition from the 250G and 320G disks, make that into one mirrored partition. That gives you another roughly 170G of usable capacity. Now you have 330G of storage that is redundant.
  • The final 70G can not be made into redundant storage. You could use it for a scratch space for temporary files. You could ignore it.
  • Note that if you do that, the system will be relatively slow, since the large disks will be overloaded with IOs.
The real question is: What are you trying to accomplish? If this is just for playing around, and you don't care about real reliability and complexity and performance, go for it. If this system is actually supposed to get some work done, and that work has (financial) value, you're better off getting a pair of new disks.

EDIT: Covecat's suggestion of concatenating the two small disks first is even more efficient. And less reliable, but with such old disks, any dream of reliability is long gone.
 
you can gconcat the smaller ones and mirror with the larger one
I think that's by far the best solution to the problem, since you get adequate redundancy, and different pools are not going to compete simultaneously for access to the same disk.

Of course, given the price point for SSDs these days, it would be better to bin the disks, and buy a couple of 500GB SSDs.
 
If the disks and the PC are not old but awful old one might to consider the interface, too. I have at least 2 old PCs which have the pre-SATA interface which should be (E)IDE. This is the one with ~40pin flat cable. But if there is just the backup PC with such an interface and its power supply or so fails then it is difficult to access the disks with an outdated interface.
 
Back
Top