 So, one of the questions I answer frequently, it seems like almost everyone in my live videos when the topic of FreeNAS comes up, or emails I get from people is, how do I extend my FreeNAS? FreeNAS uses ZFS, and yes, I know in the future, and currently it's November of 2018, in the future they plan to rework some features of ZFS as I understand to change this, but this is the reality of November 2018. You can't just drop drives in FreeNAS and extend the volumes, extend the VDEVs. Let me break this down a little bit here, because yes, there is a way to extend a current system, but there's a way you have to do it, and no, it's not just expanding to VDEVs, and we're going to explain that today and actually show you how it works. And I thought this article was good, the hidden cost of using ZFS for your home NAS. Now, this is one of those things that, and he notes that RAID-Z expansion is under development. ZFS is an amazing file system. The one drawback that you can say for it, though, if you're using some of the other NAS systems that use like a standard MDAM RAID, you know, software RAID systems that are more common like your standard RAID-5, as opposed to the way ZFS does it, is you can just drop drives and expand an existing pool of data. So the way ZFS works is each time you create a ZFS, and here's, I'm going to link to both of these articles as well, dististisk, dististisk, VDEV, VDEV pool. So VDEVs can create the pool, and then inside the pool, you have your data sets in ZVals. ZVals, block storage, file systems are data sets, like we're going to store files. So you can't increase the size of a pool by adding a duplicate VDEV. Now when you add this, it stripes the data. So right here's a RAID-Z pool, here's a RAID-Z pool. Here's that VDEV created from these three disk RAID-Zs. Together they build the ZFS pool. Now by doing it this way, you have the data RAID-Z, RAID-Z1s, I see three disks here, RAID-Z1, three disks, so one disk failure, and you can have two disks fail in this scenario as long as the two disks aren't on either side, because the ZFS pool stripes the data between the VDEVs here, and you can add multiple VDEVs. So you're kind of thinking, yes, I can just add more drives to my free NAS. Well that's where things break down in practice. You can add them, but as long as these three disks are identical to these three disks, or if there's four, four, they have to balance perfectly. So they have to be the same drives on all sides. So you can extend and add to your free NAS, and you can do so as long as the drives are balanced on it. Matter of fact, you can keep extending multiple times. Now why would you even want to do that? Why wouldn't you want to just rebuild it? Well one, rebuilding it, obviously you can see you have to put the data somewhere, rebuild the drives, and copy all the data back. That's the easy way, so to speak, if that is easy to you because you have somewhere to store it. That's the way you will rebuild it. So if I have a three disk array and I want to make it a four disk array because I finally got money for another drive, you have to get all the data off your free NAS, rebuild that array, put all the data back on the free NAS. That is the method of doing it, love it or hate it, I'll leave an article and they break down some of this. Now there are some performance advantages because well, if you kind of think about it, if you have a bunch of VDevs and you stripe the data across the VDevs, you can have some read advantages. And this is an interesting, really intricate detail, if you want to read this, this person really had some time under hands to put together all the different options with all the different drives and the different config scenarios. So it breaks down when you do different ways of doing this, different performances you get on there. So I'm not going to break down, I don't have time to do all the performance checking. Really speaking, I like keeping them all in a simple Z pool with all the drives at once. Generally when I've bought my systems, I've built them all at once. But we're going to show you how it works when you want to extend them. So we're going to head and create a new pool. So create pool is the test pool, one, two, three, three drives, grade Z, great test pool. Yep. Okay, this is created and I have 3.5 terabytes available storage. So now we're going to go over here to the pool operations and we're going to extend the pool. Yes, extending the pool creates new V devs and a stripe with existing V devs. So just like I said, so we add three more. Now, if you tried to add more than three, I already tell you it just fails. It just gives you an error that you can't do that, because it's just not a supported operation. So now we've added three more. And you notice it doesn't let me choose a name because we hit extend so it fills out the name and we're just going to extend the pool now. Also this operation can't be undone. So once you've extended build these pool, you can't go, I just want those drives out. Once the pools are created, it starts spreading the data across the pool. So it doesn't let you take them back apart anymore. You can of course, like any other CFS system, replace a single drive and error due to failure. So it's not that you can't repair it, but you can't change it. Once it is built, it is built. All right, so now we've extended the pool. So if we go over here and look at the status of it, grade Z, grade Z is striping the data between them. So this is the first part. This is the second part. But there's redundancy because the normal stripes are fast because it interleaves the data between these, but each one sets on this pool. Now we can still do this one more times. I still have three more drives left in this particular system. So we go over to pools and we can extend it one more time. Add these three, go to extend, confirm. All right, and now we have here, here, and here. And this is going to be in terms of IOPS much faster, well, at least somewhat faster, and this is where things get kind of hard to test to get all the details because I don't know exactly what hardware you have. But we've now striped three VDevs across each other. So any one drive and any one of these pools could fail, and we'd be fine. But if two drives fail here, we've lost it all. So now we have gotten a little bit more speed, but lost some of the redundancy that will come in there. Now I'm going to leave you with the most knowledgeable person on, you know, how you want to design this because some people are going, well, now I don't know how to pair up all my drives. If you have more than 10 drives, you may want to start thinking about it and start thinking about your use cases. And if you don't know, this is a blog post by Matthew Aarons. He is one of the co-founders and writers of the ZFS file system. So rather than jump around through forums, I'm going to leave you with this blog post because, well, he knows a few things about this. He gives you lots of math, lots of details, more than I got time to read to you. But I will leave once again this link as well. And it kind of explains some of the design options you have and efficiency options you get if you really need to do it. If you have like, you know, 30, 40 drives and suggestions for how you want to tie those together. And yes, ZFS can handle that many drives. Now, remember, ZFS, we started out talking about home users. A lot of home users like it. I like it for my business and we use it for a lot of our clients. But it's also a enterprise file system. So yes, people build petabyte arrays with this all the time because of the efficiencies and a performance. You can get a ZFS and of course the redundancies you can have for setting up in RAID Z3 where you have to have critical data up very high up times and be able to be very fault tolerant. So that's kind of it for building VDEVs. So yes, you can expand it. No, you can't unexpand it and all the drives have to match. And I'll leave you with these links to do some reading and further on there. But that's a summary of it. So now when people ask, I have a video to reply with them with that kind of breaks this down and explains it. Thanks for watching. If you liked this video, go ahead and click the thumbs up. Leave us some feedback below to let us know any details, what you like and didn't like as well because we love hearing the feedback or if you just want to say thanks, leave a comment. And if you wanted to be notified of new videos as they come out, go ahead and subscribe and the bell icon that lets YouTube know that you're interested in notifications. Hopefully they send them as we've learned with YouTube. Anyways, if you want to contract us for consulting services, you go ahead and hit launch systems.com and you can reach out to us for all the projects that we can do and help you. We work with a lot of small businesses, IT companies, even some large companies, and you can farm different work out to us or just hire us as a consultant to help design your network. Also, if you want to help the channel in other ways, we have a Patreon. We have affiliate links. You'll find them in the description. You'll also find recommendations to other affiliate links and things you can sign up for on LawrenceSystems.com. Once again, thanks for watching and I'll see you in the next video.