Revisiting ZFS and FreeNAS in 2019
-
@travisdh1 exactly! ZFS does not use parity. That seems to be where a bunch of this confusion is coming from.
Traditional RAID uses parity. ZFS uses copies.
-
@xrobau said in Changes at Sangoma:
- "ZFS Raid Levers aren't standard" - I have no idea what that means.
Neither do the people saying it, but we hear it said all the time.
-
@xrobau said in Changes at Sangoma:
@travisdh1 exactly! ZFS does not use parity. That seems to be where a bunch of this confusion is coming from.
Traditional RAID uses parity. ZFS uses copies.
FFS, what are you talking about? ZFS can use copies of data, but that's exactly what RAID1/10 is. Almost every reference I've seen on ZFS are with people using parity levels with it. ZFS is not magic, it still must calculate parity.
What you're claiming is that ZFS can do nothing but mirrored drives
-
@travisdh1 maybe they mean RAID LEVELS? Not levers? Which is correct. ZRAIDx means there are X ADDITIONAL copies of the data. ZRAID2 has 3 copies of each chunk, spread across physical devices. The "X" number is how many HDDs the zraid can tolerate failing.
The difference to RAID6 (for example) is that RAID6 has one copy of the data, but it's possible to figure out what the data was by looking at what remains and using the parity data to figure out what was on the missing disk(s)
-
@travisdh1 You still seem to be hung up on the RAID concept of parity. Truly, honestly, that's not how ZFS works. I cross my heart. It works on copies of data. Literal, exact, copies of the data.
Unfortunately, THIS is where the 'ZFS Can't expand a volume' problem comes into play. Because the location of those copies (on the physical spindles) is made by hashing the size and number of volumes in a zraid (I'm kinda simplifying here, but work with me!)
So if a ZRAID2 has 5 spindles, that means that a copy of block 1 of the zpool will be placed on spindle 1 at sector 10, 3 at sector 100 and spindle 5 at sector 500. The location of that doesn't need to be looked up, because it can be calculated.
The 'expansion' problem comes about because if you add another spindle to that ZRAID2, suddenly block 1 would be on spindle 1 at sector 10, spindle 3 at sector 500 and spindle 6 at sector 1000 (or whatever). So the location of the data would be wrong, and everything falls apart.
(Now, this is actually wrong, and there IS an index, but, that's advanced stuff, and this is good enough for you to get the idea).
Does that make more sense?
-
@xrobau said in Changes at Sangoma:
@travisdh1 maybe they mean RAID LEVELS? Not levers? Which is correct. ZRAIDx means there are X ADDITIONAL copies of the data. ZRAID2 has 3 copies of each chunk, spread across physical devices. The "X" number is how many HDDs the zraid can tolerate failing.
The difference to RAID6 (for example) is that RAID6 has one copy of the data, but it's possible to figure out what the data was by looking at what remains and using the parity data to figure out what was on the missing disk(s)
ZFS RAID levers aren't standard (they are very standard)
What is so difficult to understand about this statement?
-
@travisdh1 I don't know what a RAID Lever is? Something to do with tuning?
-
@xrobau said in Changes at Sangoma:
@travisdh1 I don't know what a RAID Lever is? Something to do with tuning?
Geesh, you're so bad as Scott.
-
@travisdh1 Dude, I've been doing this for almost 30 years, and I swear I have never heard of 'RAID levers'. RAID levels, sure. Not Levers. Can you explain what you mean?
-
@xrobau said in Changes at Sangoma:
@travisdh1 You still seem to be hung up on the RAID concept of parity. Truly, honestly, that's not how ZFS works. I cross my heart. It works on copies of data. Literal, exact, copies of the data.
Unfortunately, THIS is where the 'ZFS Can't expand a volume' problem comes into play. Because the location of those copies (on the physical spindles) is made by hashing the size and number of volumes in a zraid (I'm kinda simplifying here, but work with me!)
So if a ZRAID2 has 5 spindles, that means that a copy of block 1 of the zpool will be placed on spindle 1 at sector 10, 3 at sector 100 and spindle 5 at sector 500. The location of that doesn't need to be looked up, because it can be calculated.
The 'expansion' problem comes about because if you add another spindle to that ZRAID2, suddenly block 1 would be on spindle 1 at sector 10, spindle 3 at sector 500 and spindle 6 at sector 1000 (or whatever). So the location of the data would be wrong, and everything falls apart.
(Now, this is actually wrong, and there IS an index, but, that's advanced stuff, and this is good enough for you to get the idea).
Does that make more sense?
Not at all, because you are describing RAID 5/6. There is nothing special or different here.
-
@travisdh1 Ahh, yeah, there is a difference though.
RAID5 and 6 recover data based on parity.
ZFS recovers data based on reading a copy of the data from another spindle.
So, if a disk fails in a RAID5 (of, say 5 disks), the machine has to read the data from the remaining 4 disks, and then calculate what is missing by figuring it out from the parity data.
If a disk fails in a ZRAID2 (of, again, 5 disks), it just reads the data from one of the other 2 copies (which it knows the location of already).
This is where the zraid stuff scales. You can have a ZRAID8 for example (requiring 9 or more disks), where there are 8 copies of the data. Literal copies. The data is replicated onto those disks. There are no parity calculations, as there are with RAID5 and 6.
So, as long as you can get the idea of parity out of your mind, suddenly the zraid stuff makes sense.
Think of it like a traditional RAID10, but instead of the stripe and mirror being fixed in place, the data is load balanced across the physical spindles, and there is more than one mirror.
-
@xrobau said in Changes at Sangoma:
RAID5 and 6 recover data based on parity.
ZFS recovers data based on reading a copy of the data from another spindle.That's literally the same thing stated two different ways. The data "on the other spindle" is read via parity. ZFS is literally RAID 5 and 6 (and 7), it's not an alternative to them. If ZFS does it, those RAID levels do it.
-
@xrobau said in Changes at Sangoma:
So, if a disk fails in a RAID5 (of, say 5 disks), the machine has to read the data from the remaining 4 disks, and then calculate what is missing by figuring it out from the parity data.
If a disk fails in a ZRAID2 (of, again, 5 disks), it just reads the data from one of the other 2 copies (which it knows the location of already).Yes, that's the same thing in both cases. The data on the disks in both examples is identical, what it can read from them is identical.
-
@xrobau said in Changes at Sangoma:
This is where the zraid stuff scales. You can have a ZRAID8 for example (requiring 9 or more disks), where there are 8 copies of the data. Literal copies. The data is replicated onto those disks. There are no parity calculations, as there are with RAID5 and 6.
This is REALLY off. First, ZRAID8 is not a thing. Where did you see that? That's not something that exists.
Second, what you are talking about is RAID 1, we've had that forever. Every RAID system has that. ZFS isn't doing something special, nor does it scale. It's just the same RAID 1 as everywhere else.
I've been teaching this exact thing since before ZFS was created. This isn't new, or ZFS, or RAID8. RAID 1 has always, since day one, been able to have has many copies of the data as you want. But since they are literally copies as you say, the one thing it can't possibly do is scale - no matter how many drives you add, the storage never gets bigger.
-
@xrobau said in Changes at Sangoma:
So, as long as you can get the idea of parity out of your mind, suddenly the zraid stuff makes sense.
No, because everything that people rave about with ZFS is its parity capabilities. Yes, ZFS can do RAID 0, 1, and 10, but so can everything else.
What ZFS does special is that it is the sole implementation of triple parity, aka RAIDZ3, aka RAID 7. So if you keep thinking about parity, then ZFS offers that one, really isolated, unique case that is pretty cool. Without that, it's RAID is just run of the mill RAID like everyone else. And why we use ZFS' RAIDZ system as the reference standard for all RAID discussions - to specifically make sure no one can ever point to ZFS and say "see its better", because every time we say how RAID works, it's ZFS' implementation we look to.
-
@xrobau said in Changes at Sangoma:
Think of it like a traditional RAID10, but instead of the stripe and mirror being fixed in place, the data is load balanced across the physical spindles, and there is more than one mirror.
What you are describing here is just RAID 10 as it has always been. That it can be more than two disks in a mirror is standard and assumed when you say RAID 10.
You aren't describing something special about ZFS, nor something that people use in the real world because it doesn't scale. It's too costly. So even though RAID 10 has done that for decades, it's unheard of to implement due to cost.
ZFS does nothing to fix the limitations of RAID, RAIN continues to march forward for scalability. ZFS hasn't changed its RAID since 2005, and none of it (other than triple parity) was new or special then. It was all old hat.
But these beliefs that ZFS is magic, that it breaks all the rules, that it isn't RAID, that it isn't the RAID we talk about... read the articles I linked. I covered every one of these things in the Cult of ZFS and Myths of ZFS articles already. This is well trodden territory. These are exactly the kinds of beliefs that are repeated about ZFS and cause things like FreeNAS and ZFS to be so risky - because the people implementing them are mostly not IT pros and don't understand the things that are being said.
So you get a pool of "generally interested non-IT people" who hear about super basic RAID features, think that they are new and exciting, and repeat them as if they come from ZFS, then assign "magic" to ZFS for being so much cooler than they thought stock tech already was, and then treating it as magic rather than evaluating it logically or just asking experienced storage engineers why if this is magic and so amazing, it's not widely used and why FreeNAS is considered to be a flag for dangerously deployed storage.
The problem with things like FreeNAS and ZFS is that they require a good amount of storage knowledge or else they can make it seem like they are special. So unfortunately, the only people who can safely use them are storage experts who really know this stuff. And those are exactly the group that would never use FreeNAS because it makes no sense.
-
@xrobau dont' get us wrong, we totally know that you are a developer, not IT. We know that these scam firms work hard to push this stuff because that's their bread and butter. They prey on exactly people like you, people without the time to be IT pros who get this stuff thrown on their plate because they are in an adjacent technical field and it seems like IT must be something that can be done casually on the side. So we totally understand why these marketing tricks that their community is playing work and why they seem like they must be legit. But keep in mind that that community has long been identified for its cult mentality and that their user base is self filtering - the nature of FreeNAS means that basically only non-IT pros even end up looking at it (full time IT people have no need for it) so there is no IT presence in their community to expose the false statements.
This is a great example, though, of where bringing in IT folks, even for just fifteen minutes of info, can save hours or days of non-IT research. IT advisers would be able to tell you to avoid products like this, and give you quick lists of viable options off the cuff in minutes. IT advisory is cheap up front, and hella expensive to skip.
One of the most important roles that IT plays in any organization is protecting the business from predatory vendors.
-
@xrobau said in Changes at Sangoma:
So let's take it from MY perspective - Basically, FreeNAS is a really snazzy front end to ZFS. That's it.
Right, a really dangerous front end that adds risk. ZFS is super simple to manage on its own, it's a file system. You don't need a fancy front end to any other file system, why would you need it for ZFS? Filesystems aren't things that should have GUIs.
FreeNAS has been known to both...
- Cause huge data loss on its own.
- Set people up who used the GUI to not know how to manage ZFS when it is critical to do so - something FreeNAS doesn't keep a GUi for!
So your point is exactly why it is bad. Having a "fancy GUI for ZFS" is exactly the problem. It doesn't add value, but it does add risk.
-
@xrobau said in Changes at Sangoma:
It ALREADY comes with a bunch of scripts to monitor SMART, resilver, validate data integrity, and send me a warm-and-fuzzy email every week saying that everything is wonderful. That's pretty much it.
Standard business class servers already do this in hardware. It's not bad that FreeNAS does that, it's just not as valuable as it sounds.
-
@xrobau said in Changes at Sangoma:
So, Why is ZFS so cool? Because it has MULTIPLE checks on data integrity. In fact, the whole design of ZFS was based around integrity, not speed.
This is what the marketing says. But basically every feature that ZFS touts is something we already have.