Revisiting ZFS and FreeNAS in 2019
-
@travisdh1 said in Changes at Sangoma:
@scottalanmiller You'll want to double check you're article on the cult of ZFS, that was a direct quote. I know it's just a typo.
Fixed
-
@xrobau said in Changes at Sangoma:
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.
Sorry to go back to this, I was writing something else and just realized why you were saying this. So let's break this down because there are a few mistakes here leading you to some bizarre ideas.
- ZRAID2 doesn't exist, but we accept that you mean RAIDZ2, which is standard RAID 6.
- These are not copies, these are "pieces of the block". Each spindle gets one piece of it and you need at least three of the five spindles to put the data back together.
- There are three unique pieces of data, and two pieces of parity data. (Just explaining RAID 6 here.)
So far, everything stated here is just regular parity RAID. Nothing special or different about RAIDZ implementations of it. But there must be a reason that you mentioned this.
That's when I realized that you were talking about variable width stripes, which is the "big feature" of the RAIDZ parity implementations. This is what allows RAIDZ to close the famous "RAID 5 Write Hole". That's why you were thinking about "where" the data was put on the drives.
Yes, it does this. But as it is not related to random locations, and not copies but rather parity striping, it is in no way what you think that it is. It's just that what you were writing was so disconnected from reality that I'm sure none of us had any idea what had led you to write this, so we just overlooked it.
When ZFS does mirroring (RAID 1) it does not have this "feature". It's also not needed, it's a problem of RAID 5, not RAID 1. Doing this with RAID 1 (mirroring, copying) would just waste resources and slow things down and wear the drives faster.
Also, this is the biggest feature that ZFS was promoted over (and as you can see, you repeated it without realizing) and is unique to using the parity RAID feature. So while you may think that ZFS means mirroring, at some point the sources you are using are assuming that it always means parity (which most people do assume, for sure.) So some of what you are writing is based around the assumption that you will use parity RAID, so much so, that parity information is being applied to mirroring accidentally.
Also, this "feature" is widely considered to be worthless on ZFS because it has not affected any enterprise RAID system for a very, very long time. Both because of things like batteries, NVRAM and similar, but also because RAID 5 (aka RAIDZ) is no longer a widely used option.
-
@scottalanmiller said in Changes at Sangoma:
@xrobau dont' get us wrong, we totally know that you are a developer, not IT.
Funnily enough, you're wrong there - I'm a developer NOW, but I'm a Solaris Sysadmin originally. Then I got my Windows cert, and CCIE, and a bunch of other things before moving into DevOps. So, please - trust me when I say I know what I'm talking about.
@scottalanmiller said in Changes at Sangoma:
These are not copies, these are "pieces of the block". Each spindle gets one piece of it and you need at least three of the five spindles to put the data back together
Honestly, this is where you are 100% wrong, and you refuse to listen to me. I'm trying to explain how ZFS is different, and you can't just say 'You're wrong, and I know this because I know nothing about ZFS'.
ZFS is based on copies of the data. There is no parity. Stop using the word parity as it has NOTHING to do with ZFS. If you're using the word parity, in relation to ZFS, you are wrong.
I don't know how much more blunt I can be. ZFS does not use Parity. ZFS uses copies.
Right, now that I hopefully have made that clear, let me try again.
Parity, in RAID speak is 1+2+3+4=10 - If you lose one of the disks, you end up with this:
1+?+3+4=10
Simple maths lets you figure out that the missing value is 2. (10-4-3-1 = 2)
That's how parity works. Not rocket science.
ZFS works on copies. So, when you write 1, 2, 3 and 4 to a zpool, you get something like this:
Disk 1: x 1 x 3 x
Disk 2: 1 x 2 x 3
Disk 3: x 1 2 x 4
Disk 4: 4 x 2 x 3
Disk 5: x x x x 4Copies. Of. The. Data.
That looks vaguely accurate, but even if I missed something, assume 3 copies of all data across 5 spindles.
Copies. Not parity. COPIES.
OK, so can we move on from this now? Old RAID == Parity. ZFS == Copies. Hopefully I've made this clear now.
Now, if you want to learn more about this, please feel free to go on any of the Solaris Administration courses I have, OR, feel free to read any of the plethora of documentation on ZFS. But telling me I'm wrong isn't going to get you anywhere, because I know what I'm talking about here. This is my field of expertise.
Now, if you can take a breath, admit that you've learned something new about ZFS, I can continue on with the OTHER differences, and some of your potential misconceptions
-
I'm not going to bother going through all the individual replies - please try to consolidate them into a single response, but almost all of them are suffering from the same misapprehension that ZFS uses parity data instead of copies. If I missed something (I skimmed through them), feel free to reply in a single post and I'll try to address any confusion.
-
@xrobau said in Changes at Sangoma:
Honestly, this is where you are 100% wrong, and you refuse to listen to me. I'm trying to explain how ZFS is different, and you can't just say 'You're wrong, and I know this because I know nothing about ZFS'.
I listened and understand what you are saying. What I'm explaining is that this is NOT how ZFS works, at all. I don't know where you are getting this, but it is simply not reality. Can you find some source, because EVERY source says you are incorrect.
-
@xrobau said in Changes at Sangoma:
ZFS is based on copies of the data. There is no parity. Stop using the word parity as it has NOTHING to do with ZFS. If you're using the word parity, in relation to ZFS, you are wrong.
This is simply made up. Period
-
@xrobau said in Changes at Sangoma:
I'm not going to bother going through all the individual replies - please try to consolidate them into a single response,
That would be insanely obnoxious. The points are separate. Don't do "wall of text", that's a way to shut down discussion.
-
@xrobau said in Changes at Sangoma:
I don't know how much more blunt I can be. ZFS does not use Parity. ZFS uses copies.
You are missing the point that no one is misunderstanding you, we are all agreeing that what you are saying is absolutely and completely wrong. And every source from Oracle to Ubuntu to years of ZFS expertise to ZFS forums to wikipedia point this out. Even some of your own posts have info about this.
-
@xrobau said in Changes at Sangoma:
ZFS works on copies. So, when you write 1, 2, 3 and 4 to a zpool, you get something like this:
Disk 1: x 1 x 3 x
Disk 2: 1 x 2 x 3
Disk 3: x 1 2 x 4
Disk 4: 4 x 2 x 3
Disk 5: x x x x 4
Copies. Of. The. Data.Yes, we understand what you are saying. It's just not true, you can repeat it over and over. But the bottom line is that stating it "bluntly" doesn't change that there is no source for this. We all know how ZFS works, and it does nothing like you are saying. I don't know where you got these ideas, but they are false. They don't even make sense.
-
@scottalanmiller Sorry, dude, I'm going to give up. If you don't want to work with me here, then I'm just going to not bother.
I have no coin in this game. I'm just trying to help you out. I've been using ZFS for 15 years now, and I'm extremely confident in my knowledge. A lot of people try to simplify this and those simplifications are where you're getting confused.
Anyway, I'm out. Enjoy!
-
@xrobau said in Changes at Sangoma:
OK, so can we move on from this now? Old RAID == Parity. ZFS == Copies.
No, because you are missing EVERYTHING. That's NOT what old RAID means, nor is it what ZFS means. Period.
RAID 1, the first "old" RAID was mirroring (copies.)
You'll notice that I read everything you wrote and refuted it. You clear read nothing anyone here or elsewhere has written about RAID or ZFS or else you'd understand that what you are saying makes no sense and isn't a response to what we've been writing. You are acting like we aren't understanding what you are saying, when clearly we understood and showed references as to why it is incorrect.
-
OK, here's my last ditch gasp to try to get you to understand my point of view:
RAID1 doesn't use parity. RAID0 doesn't use parity. So, which RAID versions do use parity, being that this is what this entire discussion is about?
-
@xrobau said in Changes at Sangoma:
Now, if you want to learn more about this, please feel free to go on any of the Solaris Administration courses I have, OR, feel free to read any of the plethora of documentation on ZFS. But telling me I'm wrong isn't going to get you anywhere, because I know what I'm talking about here. This is my field of expertise.
Actually, this is mine. Telling you you are wrong isn't getting anywhere, but it doesn't change the fact that everything you think you know about RAID and ZFS is completely incorrect. I mean, honestly, this is the worst understanding of storage I've seen before. And that comes from more than a decade of these kinds of discussions. I've never seen anything this dramatic. From not knowing the basic terms you are using, to completely not knowing the basic technologies.
Just try Googling some of your stuff. And I've already provided documentation as to why you are wrong. And I've asked you to do the same. Please do so. The person making crazy claims and refuting the ENTIRE industry, including the makers of the product, is definitely the one is the "needs to provide proof" seat.
-
@xrobau said in Changes at Sangoma:
So, which RAID versions do use parity, being that this is what this entire discussion is about?
RAID 2 (no existing implementation)
RAID 3 (deprecated)
RAID 4 (rare)
RAID 5 (aka RAIDZ)
RAID 6 (aka RAIDZ2)
RAID 7 (aka RAIDZ3)This is RAID 101 here. Literally the A+ requires this in the first half.
-
@xrobau said in Changes at Sangoma:
RAID1 doesn't use parity. RAID0 doesn't use parity.
So let's flip it... which ZFS RAID levels are parity?
RAIDZ
RAIDZ2
RAIDZ3Which do not?
VDEV Mirroring
VDEV StripingAll information I already provided and is in countless links.
-
@xrobau are the official docs enough?
https://docs.oracle.com/cd/E19253-01/819-5461/gamtu/index.html
ZFS provides a RAID-Z configuration with either single-, double-, or triple-parity fault tolerance. Single-parity RAID-Z (raidz or raidz1) is similar to RAID-5. Double-parity RAID-Z (raidz2) is similar to RAID-6.
-
@scottalanmiller said in Changes at Sangoma:
RAID 2 (no existing implementation)
RAID 3 (deprecated)
RAID 4 (rare)
RAID 5 (aka RAIDZ)
RAID 6 (aka RAIDZ2)
RAID 7 (aka RAIDZ3)No. RAIDZ does not use parity. Just because people REFER to it as parity does not mean it is such. That is the 'simplification confusion'.
So yeah, sorry. There's no use continuing this discussion because you're adamant that you're correct, and you refuse to even think you could be wrong. So, being that there is no possible way for me to change you mind, there's no use me continuing, is there?
-
@xrobau said in Changes at Sangoma:
No. RAIDZ does not use parity. Just because people REFER to it as parity does not mean it is such. That is the 'simplification confusion'.
It uses parity. Oracle says so, the code says so, the entire industry says so. Just making things up doesn't change that. It's not "like parity", it's standard RAID 5 parity with a variable stripe width.
And parity acts nothing like mirroring (copies), so if your claims were correct, the amount of available storage wouldn't be correct. So it's trivial for anyone who has used RAIDZ to show that it has to be parity and cannot be copying.
-
@xrobau said in Changes at Sangoma:
So, being that there is no possible way for me to change you mind, there's no use me continuing, is there?
Well, start trying to change my mind by...
- Saying something rational.
- Saying something that seems crazy but at least has a REASON for your belief in it.
Right now, you are stating things we know are absolutely false, are common sense provably not true, go against ALL available documentation... and flatly refusing to provide so much as a casual reference. Basically you just called the sky red and instead of providing any reason to support why you believe it not to be blue, you are just jumping up and down screaming it is red.
So no, you've only convinced us that you made this all up and have no basis for what you are saying. The louder you yell and refuse to provide evidence (even just logic based evidence) the more it shows how likely you are to be wrong. People who are telling the truth can normally say why they believe something to be the truth. But you've not stated even where you might have gotten these ideas, let alone shown a solid foundation for them.
-
@xrobau said in Changes at Sangoma:
If you don't want to work with me here, then I'm just going to not bother.
In what way have I not worked with you? I've gone point by point and shown in every single case...
- Why it is historically believed to be wrong.
- Why it goes against previously documented understanding.
- Why it doesn't make sense.
- What seems to be (where possible) the source of your confusion.
- Asked you to provide the same level of documentation that I am to support your beliefs.
Working with you is exactly what I'm doing. Everyone else seems to have written you off. I actually bothered to respond as if you were being serious about this. But you are not giving me the common courtesy of providing a single reference to any of this. Just claiming to be an expert while missing basics at an A+ level (literally) doesn't suggest that you are an expert. I knew a guy who once installed a video game from a box he bought and claimed it made him a developer because that's what he thought programming was. Doesn't make him a developer.