partition SSD for ZIL, L2ARC and Pool

Status
Not open for further replies.

RegularJoe

Patron
Joined
Aug 19, 2013
Messages
330
Hi,

At home I have 16 gig of RAM in a HP ProLiant G7 N54L with two 2TB mechanicals and want to carve up the SSD dives to see how things work. From the command prompt I think I want to create da0 and da1 as a mirror, assign 8 gigs of the SSD to L2ARC in a mirror, 20 gig of the SSD to ZIL in a stripe and use 100 gigs of the SSD into a mirror for testing. Are these commands right?

zpool create tank mirror da0 da1
gpart create -s gpt da2
gpart create -s gpt da3
gpart add -t FreeNASlog -s 8g da2
gpart add -t FreeNASlog -s 8g da3
gpart add -t FreeNASzil -s 20g da2
gpart add -t FreeNASzil -s 20g da3
gpart add -t FreeNASdata -s 100g da2
gpart add -t FreeNASdata -s 100g da3
zpool create tank2 mirror da2p3 da3p3
zpool add tank log mirror da2p1 da3p1
zpool add tank cache da2p2 da3p2

I will be using this at home to provide an iSCSI LUN to my VMware ESXi box that runs a few VM's and test any of the FreeNAS services and plugins on the N54L. I am hoping to be able to test NFS 4.1 with VMware ESXi 6.0.

Thanks,
Joe
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
This is strongly discouraged, as it'll ruin the performance characteristics of most basic SSD's. Also, with only 16GB of RAM, what makes you think an L2ARC is a good idea, or that this is going to somehow help performance over simply forcing the NAS to read from the pool?
 

RegularJoe

Patron
Joined
Aug 19, 2013
Messages
330
jgreco,

That is the point of the LAB at home. I can take a peek and see how the resources are used. The N54L is a limitation on the RAM. I plan on really having 2 mechanical pools, 4 - 500 gig 2.5" 5400 rpm Apple Laptop drives that came out of relatives computers and 4 older Sun 250 gig drives in two separate mirrored pools. The SSD drives are also older Samsung 830 Pro drives that are not going to be used. All I want to do is see how things work. The existing LUN my VM's are a SATA DAS Mirror inside my ESXi box.

Thanks,
Joe
 

HoneyBadger

actually does care
Administrator
Moderator
iXsystems
Joined
Feb 6, 2014
Messages
5,112
@RegularJoe - what you're asking here is tantamount to asking "can someone help me shoot myself in the foot?" But as long as you're doing this just to learn concepts and have zero performance, reliability, and definitely zero expectations of support; I'm more than happy to load the gun for you. Just do try to aim between the toes. ;)

Create the initial mirror vdev "tank" from the GUI, because no need to command-line it.

Code:
gpart create -s GPT da2
gpart create -s GPT da3
gpart add -t freebsd-zfs -a 4k -s 8G da2
gpart add -t freebsd-zfs -a 4k -s 20G da2
gpart add -t freebsd-zfs -a 4k -s 100G da2
gpart add -t freebsd-zfs -a 4k -s 8G da3
gpart add -t freebsd-zfs -a 4k -s 20G da3
gpart add -t freebsd-zfs -a 4k -s 100G da3
zpool add tank log mirror da2p1 da3p1
zpool add tank cache da2p2 da3p2
zpool create tank2 mirror da2p3 da3p3


Continued ...
 
Last edited:

HoneyBadger

actually does care
Administrator
Moderator
iXsystems
Joined
Feb 6, 2014
Messages
5,112
Now with that said, a couple things:

This will run poorly. Since you're doing this for a learning experience then awesome - you'll get to see the impact of this yourself and do a bunch of A:B tests like:

- No L2ARC/SLOG at all
- Current split-load configuration
- Split-load without tank2
- Independent disks for L2ARC and SLOG
- Mirrored SLOG or single-disk SLOG only

Also note that iSCSI from ESXi by default is not sync writes, you'll have to force it via sync=always otherwise your SLOG will go unused.

Have a bunch of SSH sessions up with arcstat, zilstat, gstat, and collect some data.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
jgreco,

That is the point of the LAB at home. I can take a peek and see how the resources are used.

Ah, yes. Kind of like trying to understand NASCAR racing by putting racing tires on a Yugo.

And, really, that's kind of the point here. You won't actually get to see how the resources are used in a way that'd be representative of a real setup. With only 16GB of RAM and an 8GB L2ARC, you're not going to get much of an idea how a real L2ARC deployment pans out ... I could verbally *give* you a better idea by talking it out to you.

The N54L is a limitation on the RAM.

Yes, I know, I was one of the early adopters of 16G on the N36L's and introduced that capability here in the FreeNAS forums.

I plan on really having 2 mechanical pools, 4 - 500 gig 2.5" 5400 rpm Apple Laptop drives that came out of relatives computers and 4 older Sun 250 gig drives in two separate mirrored pools. The SSD drives are also older Samsung 830 Pro drives that are not going to be used. All I want to do is see how things work. The existing LUN my VM's are a SATA DAS Mirror inside my ESXi box.

Thanks,
Joe

As @HoneyBadger indicated, this isn't going to be pretty, and it is going to run poorly. We don't have anything against people doing things for educational purposes, but do bear in mind that we don't really care to see FreeNAS blamed for performing poorly if the actual problem is the hardware selections made...
 

RegularJoe

Patron
Joined
Aug 19, 2013
Messages
330
Once I see how poorly this runs I would assume I would just make the 3.5" drives a mirror set, the 2.5" drives a mirrors set and the SSD drives a mirror set. That would be the best I can do. I might want to make the 3.5" drives a RAIDz set as a target for replicating the other pool that is more important.

Thanks,
Joe
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
That is the point of the LAB at home. I can take a peek and see how the resources are used. The N54L is a limitation on the RAM. I plan on really having 2 mechanical pools, 4 - 500 gig 2.5" 5400 rpm Apple Laptop drives that came out of relatives computers and 4 older Sun 250 gig drives in two separate mirrored pools. The SSD drives are also older Samsung 830 Pro drives that are not going to be used. All I want to do is see how things work. The existing LUN my VM's are a SATA DAS Mirror inside my ESXi box.

What resources?! That's the problem. You have no resources to "use". Just as jgreco beat me to saying, you are going to learn nothing except that l2arc is a POS and horribly broken because it will NOT perform properly. It won't even behave properly. When I did experimenting with L2ARCs I didn't even use a system with 32GB of RAM (48GB was the minimum I went with). There is a *negative value* added to learning how it does *NOT* work, while trying to expect it to actually *DO* work.

No, just no. This is a bad idea. Even for learning, you are going to be worse off than never using it and assuming it uses magic pixie dust and unicorn tears.
 

HoneyBadger

actually does care
Administrator
Moderator
iXsystems
Joined
Feb 6, 2014
Messages
5,112
@cyberjock - as long as the disclaimer is here that he should expect absolutely horrible performance then I don't see a problem with it. It's worthwhile doing it once on a non-production box just to see how abysmal it is, so that you've got some experience, and then he'll be the first in line to tell the next person thinking of doing it "Just don't."

Pain is an effective learning tool. ;)

Once I see how poorly this runs I would assume I would just make the 3.5" drives a mirror set, the 2.5" drives a mirrors set and the SSD drives a mirror set. That would be the best I can do. I might want to make the 3.5" drives a RAIDz set as a target for replicating the other pool that is more important.

Thanks,
Joe

To be honest this system isn't a good candidate for an iSCSI target. Not enough RAM, too few drives. Even in an optimal configuration you shouldn't expect good performance off of anything but the two-SSD mirror. The four drive two-vdev pools might be OK for a couple VMs that have very low performance requirements.
 

Mlovelace

Guru
Joined
Aug 19, 2014
Messages
1,111
@RegularJoe - what you're asking here is tantamount to asking "can someone help me shoot myself in the foot?" But as long as you're doing this just to learn concepts and have zero performance, reliability, and definitely zero expectations of support; I'm more than happy to load the gun for you. Just do try to aim between the toes. ;)

Create the initial mirror vdev "tank" from the GUI, because no need to command-line it.

Code:
gpart create -s GPT da2
gpart create -s GPT da3
gpart add -t freebsd-zfs -a 4k -s 8G da2
gpart add -t freebsd-zfs -a 4k -s 20G da2
gpart add -t freebsd-zfs -a 4k -s 100G da2
gpart add -t freebsd-zfs -a 4k -s 8G da3
gpart add -t freebsd-zfs -a 4k -s 20G da3
gpart add -t freebsd-zfs -a 4k -s 100G da3
zpool add tank log mirror da2p1 da3p1
zpool add tank cache da2p2 da3p2
zpool create tank2 mirror da2p3 da3p3


Continued ...
Haha, This made me chuckle
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
@cyberjock - as long as the disclaimer is here that he should expect absolutely horrible performance then I don't see a problem with it. It's worthwhile doing it once on a non-production box just to see how abysmal it is, so that you've got some experience, and then he'll be the first in line to tell the next person thinking of doing it "Just don't."

But he's expecting absolutely horrible performance. He's also expecting to learn something because he wants to see how the L2ARC works. The problem with the whole theory: the L2ARC is NOT going to work like its supposed to because the ARC is going to be horribly starved.

The L2ARC grabs the pieces and parts of the ARC that are about to be evacuated, have been used enough times to make the L2ARC think that it is important. But what happens when every piece of data comes in, is used at most one time (and maybe not used at all), then targeted for evacuation by the ARC and removed because it was used only once. Yes, you can force the L2ARC to be very very greedy with tunables. You can make it grab almost every byte and force it to the L2ARC. You can constipate the hell out of the L2ARC device until the system is literally unusable because write and read speeds to/from the zpool are less than 10KB/sec, even for metadata reads (yes, I saw this once first-hand).

This has never been about performance. If performance was crap, but the pieces and parts of ZFS that manage the L2ARC and make the L2ARC actually doing what its supposed to do, I'd totally recommend people do it for the learning experience. You'd see me putting together an awesome guide on how you can learn about the L2ARC with small amounts of RAM. But there's a reason I don't. Because if data is being evacuated from the ARC due to high turnover due to the overhead of the L2ARC and everything else, the L2ARC will not perform its function, as designed, so you will NOT see the L2ARC function as it is supposed to. So now you're going to only see one thing; how jacked up someone can make a system be and still not crash. That's it. Sorry, but there is no value to see how jacked up things can be until you've actually seen how it works properly. Without a fundamental, strong basis, with emphasis on seeing how it works properly in a well-configured system you are doing nothing to help yourself. In fact, I'd argue you are setting yourself back because you are only seeing a system that is broken in various ways, and you are certainly not capable of identifying all of those ways.

It's like me buying a Smart Car, trying to tow it with 5000 lbs hitched to the back, and when I blow out the engine and transmission, I walk away from the poor Smart Car and try to tell people I learned something about the Smart Car and how it functions in a normal environment. No, you didn't. You learned it can't do what you want it to do "just because you wanted it to". You have no clue how good or bad it is on the sidestreets, the highway, taking it for a pleasure drive around town, etc. The Smart Car might be the smoothest ride you've ever been in. You might love how it handles, the power it has for its size, and how great it is when you want to go for a joy-ride at Midnight. But you won't be able to talk about those things because you blew up the poor car in the parking lot. You'll just tell everyone the Smart Car can't tow 5000 lbs. Well, no duh!

So yeah, only negative learning experience can be gained.

Let me ask you this question, since it's the same principle. Someone at your job gets handed a broken FreeNAS server. You've never heard of FreeNAS before, you have no experience outside of Windows desktop support. Which is a better situation to learn FreeNAS:

- You are handed a server that is broken (you don't even know what OS it uses), you find out from a few people in the forum that they may be running hardware RAID with ZFS, is short on RAM, has some weird boot error you can't begin to understand, and you aren't completely sure if that USB stick on the back is supposed to be there or not? There is no time-pressure because the boss isn't sure the server is even a server that has ever functioned.

- The guy that is told to learn FreeNAS and ZFS and gets to build a system with proper server-grade hardware, do ZFS without hardware RAID and has proper amounts of RAM so that ZFS can operate properly with ample ARC size.

I'm betting #2 will learn much faster than #1. And I'm betting its because he gets to see things work properly and not because he got a crapload of warnings and he's got no choice but to ignore them because he's not even sure if turning a knob or pushing a button in the WebGUI might not give an outcome he can undo later.

I'm not pissed off or anything. I'm not on a rant. I'm pretty calm. I'm just trying to explain that seeing how an L2ARC won't work is no way to determine how an L2ARC "should" work. There is much more info to be learned seeing one operating properly, then seeing how a few tunables can totally break the L2ARC (maybe even the entire zpool) because of a single misconfigured tunable (again, i've seen this firsthand).

Doctor's don't learn about the human body by seeing a human body after it's been through a blender. They see the human body when it is working properly, then are trained on what can go wrong, how it goes wrong, the symptoms and the cures.
 

RegularJoe

Patron
Joined
Aug 19, 2013
Messages
330
cyberjock's guide has a lot of good info, I have read it before and I just read it again. Since I do not have 64gig or more of RAM I am just going to use the SSD's for something else. I also see from the guide that SAMBA 4 broke the way we could do a unified CIFS/NFS share with permissions. I was hoping to be able to do that at home so I could put the ISO images in a NFS share that VMware would see and CIFS share to upload, delete or replace ISO images from a Windows machine.

It sounds like for VMware iSCSI I need :
sync=always

monitor it with command line tools :
arcstat
zilstat
gstat

It sounds like the little N54L is just too limited to do any testing with ZIL or L2ARC. Sounds like the need for a LAB server at work.

Thanks,
Joe
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
Your N54L can run a SLOG (not "ZIL") just fine. It is the ARC and (probably) iSCSI that's problematic.

I've got a SLOG on an N36L that works just fine.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
But he's expecting absolutely horrible performance. He's also expecting to learn something because he wants to see how the L2ARC works. The problem with the whole theory: the L2ARC is NOT going to work like its supposed to because the ARC is going to be horribly starved.

The L2ARC grabs the pieces and parts of the ARC that are about to be evacuated, have been used enough times to make the L2ARC think that it is important. But what happens when every piece of data comes in, is used at most one time (and maybe not used at all), then targeted for evacuation by the ARC and removed because it was used only once. Yes, you can force the L2ARC to be very very greedy with tunables. You can make it grab almost every byte and force it to the L2ARC. You can constipate the hell out of the L2ARC device until the system is literally unusable because write and read speeds to/from the zpool are less than 10KB/sec, even for metadata reads (yes, I saw this once first-hand).

This has never been about performance. If performance was crap, but the pieces and parts of ZFS that manage the L2ARC and make the L2ARC actually doing what its supposed to do, I'd totally recommend people do it for the learning experience. You'd see me putting together an awesome guide on how you can learn about the L2ARC with small amounts of RAM. But there's a reason I don't. Because if data is being evacuated from the ARC due to high turnover due to the overhead of the L2ARC and everything else, the L2ARC will not perform its function, as designed, so you will NOT see the L2ARC function as it is supposed to. So now you're going to only see one thing; how jacked up someone can make a system be and still not crash. That's it. Sorry, but there is no value to see how jacked up things can be until you've actually seen how it works properly. Without a fundamental, strong basis, with emphasis on seeing how it works properly in a well-configured system you are doing nothing to help yourself. In fact, I'd argue you are setting yourself back because you are only seeing a system that is broken in various ways, and you are certainly not capable of identifying all of those ways.

It's like me buying a Smart Car, trying to tow it with 5000 lbs hitched to the back, and when I blow out the engine and transmission, I walk away from the poor Smart Car and try to tell people I learned something about the Smart Car and how it functions in a normal environment. No, you didn't. You learned it can't do what you want it to do "just because you wanted it to". You have no clue how good or bad it is on the sidestreets, the highway, taking it for a pleasure drive around town, etc. The Smart Car might be the smoothest ride you've ever been in. You might love how it handles, the power it has for its size, and how great it is when you want to go for a joy-ride at Midnight. But you won't be able to talk about those things because you blew up the poor car in the parking lot. You'll just tell everyone the Smart Car can't tow 5000 lbs. Well, no duh!

So yeah, only negative learning experience can be gained.

Let me ask you this question, since it's the same principle. Someone at your job gets handed a broken FreeNAS server. You've never heard of FreeNAS before, you have no experience outside of Windows desktop support. Which is a better situation to learn FreeNAS:

- You are handed a server that is broken (you don't even know what OS it uses), you find out from a few people in the forum that they may be running hardware RAID with ZFS, is short on RAM, has some weird boot error you can't begin to understand, and you aren't completely sure if that USB stick on the back is supposed to be there or not? There is no time-pressure because the boss isn't sure the server is even a server that has ever functioned.

- The guy that is told to learn FreeNAS and ZFS and gets to build a system with proper server-grade hardware, do ZFS without hardware RAID and has proper amounts of RAM so that ZFS can operate properly with ample ARC size.

I'm betting #2 will learn much faster than #1. And I'm betting its because he gets to see things work properly and not because he got a crapload of warnings and he's got no choice but to ignore them because he's not even sure if turning a knob or pushing a button in the WebGUI might not give an outcome he can undo later.

I'm not pissed off or anything. I'm not on a rant. I'm pretty calm. I'm just trying to explain that seeing how an L2ARC won't work is no way to determine how an L2ARC "should" work. There is much more info to be learned seeing one operating properly, then seeing how a few tunables can totally break the L2ARC (maybe even the entire zpool) because of a single misconfigured tunable (again, i've seen this firsthand).

Doctor's don't learn about the human body by seeing a human body after it's been through a blender. They see the human body when it is working properly, then are trained on what can go wrong, how it goes wrong, the symptoms and the cures.

Damn, dude, write a frickin' book.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
Damn, dude, write a frickin' book.

LOL. I've been told to. In fact, I started writing one. I didn't even finish "Chapter 1" and it was 40 pages. Haha.
 
Status
Not open for further replies.
Top