How to build SSD RAID0 for L2ARC cache

Status
Not open for further replies.

skyyxy

Contributor
Joined
Jul 16, 2016
Messages
136
Hi Everybody here, I have a small question.
How to build SSD RAID0 for L2ARC cache in FreeNAS by command line or GUI? Thanks
I want to test the IOPS and multi user read performance. I have 2 Samsung 860evo 500gb SSD.
Thanks a lot advance.
 

Mihalich

Patron
Joined
Mar 14, 2017
Messages
297
L2ARC needs RAM to function. If there is not enough RAM for a adequately-sized ARC, adding an L2ARC will not increase performance. Performance actually decreases in most cases, potentially causing system instability. RAM is always faster than disks, so always add as much RAM as possible before considering whether the system can benefit from an L2ARC device.
 

Dice

Wizard
Joined
Dec 11, 2015
Messages
1,410
8gb ddr3.........?
 

HoneyBadger

actually does care
Administrator
Moderator
iXsystems
Joined
Feb 6, 2014
Messages
5,112
Which system is this going in? I'm assuming your Xeon v5, not the i3? Either way you'd probably be better off adding them as a separate mirrored pool, and/or adding more RAM first.

You should also use ashift=13 for the vdev/pool of the Samsung drives. This might mean you have to manually create the pool at the command line.
 

skyyxy

Contributor
Joined
Jul 16, 2016
Messages
136

Jailer

Not strong, but bad
Joined
Sep 12, 2014
Messages
4,977
Joined
Sep 13, 2014
Messages
149
To expand on Jailer's comment, the typical recommendation is to not bother with an L2ARC until you have 64GB or more of RAM.
 

skyyxy

Contributor
Joined
Jul 16, 2016
Messages
136
To expand on Jailer's comment, the typical recommendation is to not bother with an L2ARC until you have 64GB or more of RAM.
But acturlly when I have one 500GB SSD for L2ARC in my server, that is really helpful with my work, Im using adobe PR AE and Davinci resolve in my office and if no L2arc that is creazy slow when I import lots of clips and palyback like Powerpoint until set L2arc even just have 32GB RAM. So now I want to more faster, maybe l2arch raid0 can help me, but I dont know how to build it in GUI or command.
 

HoneyBadger

actually does care
Administrator
Moderator
iXsystems
Joined
Feb 6, 2014
Messages
5,112
I would still say that using them as a separate pool would be better - but if you're finding positive results, you can simply expand the pool with an additional special device of type "cache" from the GUI the same way as you did the first. FreeNAS will default the "cache" devices to being striped (RAID0 equivalent) concatenated (JBOD equivalent) so it will give you the extra space you need.
 
Last edited:

Stux

MVP
Joined
Jun 2, 2016
Messages
4,419
FWIW, I think l2arc is striped across multiple cache drives automatically. And mirrored for multiple log drives.

So just add the drives as l2arc/cache drives.

Of course. You probably shouldn’t do this.
 

skyyxy

Contributor
Joined
Jul 16, 2016
Messages
136
FWIW, I think l2arc is striped across multiple cache drives automatically. And mirrored for multiple log drives.

So just add the drives as l2arc/cache drives.

Of course. You probably shouldn’t do this.
The mean is raid0 automatically when i extend 1 more device for l2arc and mirror for zil log? thanks a lot.
 

skyyxy

Contributor
Joined
Jul 16, 2016
Messages
136
I would still say that using them as a separate pool would be better - but if you're finding positive results, you can simply expand the pool with an additional special device of type "cache" from the GUI the same way as you did the first. FreeNAS will default the "cache" devices to being striped (RAID0 equivalent) so it will give you the extra space you need.
wow... thanks a lot.
 

kdragon75

Wizard
Joined
Aug 7, 2016
Messages
2,457
https://wiki.freebsd.org/ZFSTuningGuide#L2ARC_discussion
Multiple L2ARC devices are concatenated, there's no provision for mirroring them. If a heavily used L2ARC device fails the pool will continue to operate with reduced performance. There's also no provision for striping reads across multiple devices. If the blocks for a file end up in multiple devices you'll see striping but there's no way to force this behavior.
Is this outdated?

Based on my reading, each L2ARC header consumes 70 bytes and is stored in the ARC (RAM). The maximum number of headers depends on the record size of the blocks being stored in the L2ARC. Therefore if we assume a typical record size of 128K.. 1T=1,000,000,000KB / 128K x 70B = 546,875,000B or 546MB or RAM. But if you do the same thing with an 8K record size that ends up being just under 10GB or RAM, potentaly half of your ARC. If you factor that with concatenated sata3 L2ARC drives, your better off with just one L2ARC drive to preserve your usable ARC space.
 

HoneyBadger

actually does care
Administrator
Moderator
iXsystems
Joined
Feb 6, 2014
Messages
5,112
Is this outdated?

No, you're right in that I misspoke with the "raid0" nomenclature, it's "jbod" style. The space is raid0-sized though; no redundancy, but losing one L2ARC device only affects the blocks on it rather than trashing the whole pool. You can force different redundancy for the cache vdevs (stripe, mirrors, raidz) from the command-line, but that's generally summarized as a silly idea.

sysctl -a | grep l2_hdr will give you the current size of the L2ARC headers in your ARC.
 

Stux

MVP
Joined
Jun 2, 2016
Messages
4,419
Neat. Assumption I guess is that you don’t gain enough of a performance boost from striping your cache considering that it should be plenty fast already vs the risk of losing your whole cache of a single drive fails.
 
Status
Not open for further replies.
Top