How to calculate your usable space on a ZFSSA
By Steve Tunstall on Oct 04, 2011
So let’s say you’re trying to figure out the best way to setup your storage pools on a ZFSSA. So many choices. You can have a Mirrored pool, a RAIDz1, RAIDz2, or RAIDz3 pool, a simple striped pool, or (if you’re REALLY anal) you can even have a Triple Mirrored pool.
How can you choose which pool to make? What if you want more than one pool on your system? How much usable space will you have when it’s all done?
All of these questions can be answered with Ryan Mathew’s Size Calculator. Ryan made a great calculator a while back that allows one to use the ZFSSA engine to give you back all sorts of pool results. You simply enter how many disk trays you have, what size drives they are, how many pools you want to make, and the calculator does the rest. It even shows you a nice graphical layout of your trays. Now, it’s not as easy as a webpage, but it’s not too bad, I promise. It’s a python script, but don’t let that scare you. I never used Python before I got my hands on this calculator, and it was worth loading it up for this. First, you need to go download and install Python 2.6 here: http://www.python.org/getit/releases/2.6/ Make sure you have 2.6 installed, as the calculator will not work with the newer 3.0 Python. In fact, I had both loaded, and had to completely uninstall 3.0 before it would work with my installed 2.6.
Now, get your hands on the Size Calc script. Ryan is making a new one that is for the general public. It will be out soon. In the meantime, ask your local Oracle Storage SC to do a calculation for you.
This is a copy from Ryan’s, but I fixed a few things to make it work on my Windows 7 laptop. If you’re not using Windows 7, you may find Ryan’s original blog and files here: http://blogs.oracle.com/rdm/entry/capacity_sizing_on_7x20
So now you’re ready. Go to a command line and get to the Python26 directory, where you have also placed the “size3.py” script.
Type “size3.py ZFSipaddress password 20”
Use your ZFSSA for the IP address and your root password for the password. You can use the simulator for this. Remember, the simulator is the real code and has no idea it's not a 'real' system.
Mine looks like this: “Size3.py 192.168.56.102 changeme 20” Now, you will see the calculator present a single tray with 20 drives, and all the types of pools you can make with that.
So now, make it bigger. Along with the first tray that has 20 drives (because of the Logzillas, right?), we also want to add a 2nd and a 3rd tray, each full with 24 drives. So type “Size3.py 192.168.56.102 changeme 20 24 24” You could do this all day long. Notice that now you have some extra choices, as the NSPF (no single point of failure) pools are now allowed, since you have more than two trays.
That’s it for the basics. Pretty simple. Now, we can get more complicated. Say you don’t want one big pool, but want to have an active/active cluster with two pools. Type “Size3.py 192.168.56.102 changeme 10/10 12/12 12/12”
This will create two even pools. They don’t have to be even. Check this out. I want to make two pools, one with the first 2 disk trays with 8 logzillas plus half of full trays 3 and 4. So the second pool would only be the other half of trays 3 and 4. I used “Size3.py 192.168.56.102 changeme 20/0 20/0 12/12 12/12”
Here’s the last one for today- Say you already have a 2-disk shelf system, with 2 pools, and you set it up like this: “Size3.py 192.168.56.102 changeme 10/10 12/12” Simple. Now, you go out and buy another tray of 24 drives, and you want to add 12 drives to each pool. You can use the “add” command to add a tray onto an existing system. It’s very possible that adding a tray will give you different results than if you configured 3 trays to begin with, so be careful. This is a good example. Note that you get different results if you do “10/10 12/12 12/12” then if you do “10/10 12/12 add 12/12”.
Our next lesson will be about VDEVs. When you add the “-v” command right after “size3.py”, you may notice a new column in the output called “VDEVS”. These are the most important aspect of your pool. It’s very important to understand what these are, how many you need and how many you have.
It’s so important, I’m going to save it for another blog topic. Have a great day!!!! J