3

I have 2 x 4TB disks and 3 x 6TB disk which I want use with ZFS. My objective is to maximise the usable storage space whilst allowing for a single disk failure.

Ideally a raidz setup would be used however from my research, different size drives cause the larger drives to be under utilized. That is, only 4TB out of 6TB would be used on the larger drives.

Is it possible to stripe (raid 0) the following:

  • two 4TB in a mirror (raid 1) configuration
  • three 6TB disks in a raidz (raid 5) configuration

Alternatively, could the two 4TB be striped and then the stripe used in a raidz configuration with the 6TB drives? That is:

  • Stripe the two 4TB drives
  • Raidz the 3 x 6TB and striped 4TB disk
6
  • 6
    "Exotic" is a frowned-upon concept in IT, for very good reason.
    – EEAA
    Commented Jan 18, 2017 at 4:49
  • 1
    @EEAA It depends on the case at hand, see paulgraham.com/icad.html . In this case (maximise storage space, allow one disk failure, performance irrelevant) the proposed solution may actually be more useful than to do what others are doing. Of course, everyone has to look at the pros and cons themselves for each case is different.
    – user121391
    Commented Jan 18, 2017 at 10:42
  • 1
    Nah, this is a bad idea. The barrier to entry of getting equal sized disks for storage is so low, this question isn't necessary. Any solution out of the accepted norms, especially in ZFS, introduces a level of risk that professional sysadmins frown upon.
    – ewwhite
    Commented Jan 19, 2017 at 4:08
  • 1
    @ewwhite As a general advice, I would agree with you. But (unfortunately) there exist different views on things and with them come things like unpractical rules or budget constrains that work against the good solution. We don't know the background, so it might be foolish recklessness without reason as much as it might be a good-faith attempt to at least get some basic data safety in the face of harsh budget cuts (where some is better than none).
    – user121391
    Commented Jan 19, 2017 at 10:22
  • 1
    @ewwhite I think the disclaimer in the accepted answer is more than sufficient to warn readers and asker, and I personally always add such disclaimers or line out the downsides of the approach to achieve this goal. In many cases, the asker is not aware of the downsides, but could make an informed decision if pro and con sides are explained to him.
    – user121391
    Commented Jan 20, 2017 at 7:52

2 Answers 2

5

For the love of all things good in the world, do not use this setup in a situation where your data is more important than /dev/null - it's simply an academic exercise of how you could and should not do it.

You probably will lose your data with this topology. It will also perform poorly as coalesced sequential operations would turn into random IO.

What you would do is the following:

Each drive would be partitioned into 2TB segments, the 4TB drives would have two partitions, and the 6TB drives would be partitioned into three partitions. Yes, ZFS does accept partitions as part of a ZPool - it works though not recommended.

From there, you would setup a RAIDZ3 triple parity across all 13 partitions. This would provide you single disk resiliency, as you could lose 3 "disks" (aka 1 6TB disk) and still keep going without issue.

You would have a 20TB ZPool with this setup. This technically is as efficient as you can get with the ability to survive a physical disk failure. As I said before, just because the math works, do not do it.

Keep in mind that when you replace a disk, you would have to make an identical partition table as the failed one, so keep your partitioning commands safe and use the same sector sized disks.

3
  • (don't encourage people to do bad things!!!)
    – ewwhite
    Commented Jan 19, 2017 at 4:00
  • Correct me if I am wrong, however it is okay to stripe mirrored vdev disks (raid 10), and it is okay to stripe vdev raidz disks, but it is not okay to mix mirror vdevs and raidz vdevs in a stripe?
    – Greg
    Commented Jan 20, 2017 at 6:26
  • This looks like an example of striping raidz: reddit.com/r/zfs/comments/2ejteb/…. It also seems to be confirmed by the best pracices wiki: solarisinternals.com/wiki/index.php/…
    – Greg
    Commented Jan 20, 2017 at 6:43
1

Don't use uneven-sized disks with ZFS.

If you absolutely can't avoid it, then accept that there will be some amount of wasted space due to the disk size inconsistencies. And shouldn't you be designing for systems that aren't already at capacity?

And no, it's not possible to stripe the disparately configured vdevs together in a reliable manner.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .