Ramdisk as ZIL?

Status
Not open for further replies.

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,525
So in another thread I realized I could use the ANS-9010 as a ZIL. Here's some background on the ANS-9010 family of devices: (Basically they are RAM drives with SATA ports)

-They have 6-8 RAM slots, use DDR2 ECC and non-ECC RAM(no registered RAM supported). If you use non-ECC RAM then 1/9th of the RAM is lost to support ECC. You can mix and match memory sizes with no ill effects.

-They have 1 or 2 SATA II ports(the ones that have 2 SATA ports can be jumpered to act like 2 separate drives for a RAID0 if you want higher performance).

-They have a CF slot and an internal battery that will backup the contents of the RAM to a ZIL in the event of a loss of power to the drive.

So I have some questions about how ZIL functions. Pretend my ZIL is 16GB for my questions:

1. If I try copying a 25GB file, how does the ZIL and zpool interact? Does the ZIL fill up and then after its full start dumping to the zpool or does the system dump to the zpool and if the zpool is too slow start using the ZIL?
2. What exactly should I expect as a result of the ZIL being full? Should I expect zpool performance to plummet to some terribly low performance or will the zpool simply act as though it has no ZIL?
3. During a proper shutdown of the system, is the ZIL actually flushed to disk as part of the shutting down? I'm figuring it is, just looking for confirmation.
4. What mechanism determines if data that needs to be written to the zpool is first put into the ZIL or zpool? This might be an extension of the answer from question 1.
 

paleoN

Wizard
Joined
Apr 22, 2012
Messages
1,402
-They have 6-8 RAM slots, use DDR2 ECC and non-ECC RAM(no registered RAM supported). If you use non-ECC RAM then 1/9th of the RAM is lost to support ECC. You can mix and match memory sizes with no ill effects.
Ah, good. I misread that. However, how does it work? If you use DDR2 ECC RAM what happens when you get a corrected single-bit error? What happens when the RAM detects an uncorrectable error? Reporting is an important aspect of ECC RAM.

-They have a CF slot and an internal battery that will backup the contents of the RAM to a ZIL in the event of a loss of power to the drive.
I would be curious on how they accomplish this as well. I assume there are minimal requirements for the CF card?

So I have some questions about how ZIL functions. Pretend my ZIL is 16GB for my questions:
Nit, you're asking more about a SLOG. The pool always has a ZIL.

  1. The ZIL is only for sync writes. The whole point of the ZIL is so you don't have to wait for a txg commit. Conversely, the ZIL isn't needed once a txg gets committed. Is this a 25GB sync write? Let's hope it's not a single write as large sync writes bypass the SLOG and goes directly to the pool. You would have several txg commits before you got to 25GB.

    The maximum size of a log device should be approximately 1/2 the size of physical memory because that is the maximum amount of potential in-play data that can be stored.
    This is a worst case however. It's much likely to be significantly smaller given most workloads especially ones with a small number of writers over 1GB ethernet.

  2. If during writing a log device fails or is temporarily full then the in-pool ZIL is used. Of course the point is moot as you won't actually fill it.

  3. Yes. The ZIL is usually a write-only workload. ZFS should only need to read it on unclean shutdown.

  4. Answered above.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,525
Ah, good. I misread that. However, how does it work? If you use DDR2 ECC RAM what happens when you get a corrected single-bit error? What happens when the RAM detects an uncorrectable error? Reporting is an important aspect of ECC RAM.

I would be curious on how they accomplish this as well. I assume there are minimal requirements for the CF card?

As for how the error correction works, the manufacturer in an email said that single bit errors are corrected automatically, uncorrectable errors are sent as a "disk read error". I have never had any of my 4 drives have an error.

As for CF, I think the only requirement was it had to support DMA transfers. Every CF flash I have used has worked perfectly except some no-name brand a friend wanted to try.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,525
I have a spare 2 port drive with 16GB of RAM. I'm thinking that just for experimenting I might split it into 2 and use 1 for ZIL and 1 for L2ARC. It would be interesting to see how a zpool performs.
 
Status
Not open for further replies.
Top