From 0d88d0501bff3fef95e542c592de10e34b5280c7 Mon Sep 17 00:00:00 2001 From: godp21 <godp21@inf.ufpr.br> Date: Tue, 25 Apr 2023 10:47:53 -0300 Subject: [PATCH] adding write cahce info in zfs --- ZFS-RAIDs.md | 24 +++++++++++++++++------- imgs/zil-writes.png | Bin 0 -> 47649 bytes 2 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 imgs/zil-writes.png diff --git a/ZFS-RAIDs.md b/ZFS-RAIDs.md index e092e52..973b065 100644 --- a/ZFS-RAIDs.md +++ b/ZFS-RAIDs.md @@ -3,9 +3,6 @@ - [x] ZFS description and capabilities - [x] RAID implementations in ZFS - [x] Cache systems in ZFS -___ - -- [ ] ZFS for DB or lvm+ext4 # RAIDs ### **R**edundant **A**rray of **I**ndependent **D**isks @@ -75,10 +72,23 @@ It's important to know that a RAID0 and RAID1 requires at least two disks, and a ## Cache in ZFS ### Read caching: -ARC (**A**daptive **R**placement **C**ache) +ARC (**A**daptive **R**placement **C**ache) - Simple RAM cache, hot data blocks are stored in memory for faster acces, ZFS tries to fill all RAM disponible at max, if max level is achieved, oldest blocks gets flushed from memory and needs to be taken in the disk if a read operation requires then again. + +L2ARC (**L**evel **2** **ARC**) - Adds SSDs in cache flow so oldest data removed from RAM gets on a device faster than hard drives. + +### Write caching: +By default, ZFS stores all write requests in RAM as Transaction Groups (**TXGs**) and foward them to the disk in a setted time interval (5 seconds as default). This benefits performance as all disk writes are somewhat organized and is easier to disks to process them. In a power failure event, this system also avoid data inconsistency as no parcial writes will be executed, instead, all data in TXG will be flushed as it is stored in a volatile data device. + +The two types of writes in ZFS are: + +#### Asynchronous: -Simple RAM cache, hot data blocks are stored in memory for faster acces, ZFS tries to fill all RAM disponible at max, if max level is achieved, oldest blocks gets flushed from memory and needs to be taken in the disk if a read operation requires then again. +- Data immediately cached in RAM and seen as completed by client, then written to disk; +- If a power failure occurs, all data in TXGs is lost, so it's very fast but no so consistent. -L2ARC (**L**evel **2** **ARC**) +#### Synchronous: -Adds SSDs in cache flow so oldest data removed from RAM gets on a device faster than hard drives. +- Data still goes to RAM first, but client just see acknowledge if data has been written to persistent storage media. It's slower on client side. +- There is a part o ZFS pool called ZFS Intent Log (**ZIL**), this blocks stores all write transactions initiations and receive the acknowledge of completion to forward to the client. This way, if a write fails, there is a persistent memory block logging that some data was not written and prevents data loss +- ZIL is reliable if implemented in a faster memory device, as an SSD, usually on a separate device. + diff --git a/imgs/zil-writes.png b/imgs/zil-writes.png new file mode 100644 index 0000000000000000000000000000000000000000..120ed14cb76b4b54618487ef0efa9d6e10b1b7a0 GIT binary patch literal 47649 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 Fp8%BjEA#*W literal 0 HcmV?d00001 -- GitLab