En dat noem je een SLOG (Seperate LOG), daar wordt dan de ZIL op geschreven. Dat heeft niets te maken met de checksums, dat mechanisme zit daar een paar laagjes onder. De ZIL bevat sync writes die normaal in een transaction group naar disk geschreven zouden worden.
Tijdens een normale synced write kan je filesystem pas verder gaan als deze synced writes gedaan zijn (omdat de applicatie dat persé wil). Als dit ook nog eens random writes zijn, word dat hele boeltje natuurlijk erg traag en het werkt nogal het transactionele systeem van ZFS tegen (het groeperen van meerdere random writes in grote groepen writes, waardoor alles sequentieel weggeschreven kan worden.)
De synced writes worden dus naar de ZIL geschreven, terwijl de transaction group waar de ZIL in zit nog steeds groeit (en niet naar disk geflushed word). Hierdoor kan je ook al heb je synced writes in de transaction group zitten, toch grote transaction groeps maken die een hoge performance halen door sequentieel te schrijven.
De checksum berekening vind plaats bij het committen van de transaction group. De ZIL is dan allang beschreven. De writes in de ZIL zelf worden voor zover ik weet niet voorzien van een checksum. De ZIL word in principe ook nooit teruggelezen, tenzij er een echte power failure (of kernel panic) geweest is. De writes zitten immers nog gewoon in de transaction group. Alleen bij een power failure krijg je een replay / redo van de ZIL (er worden nieuwe transaction groups gemaakt met de data uit de ZIL en deze worden gecommit naar disk). En op dat moment worden er weer checksums berekend.
De checksum validatie gebeurt bij reads, niet (zomaar) bij writes. In een transaction group kunnen ook reads zitten, en ten tijde van het afhandelen van deze reads word het hele checksum mechanisme doorlopen, en word daarna de data pas teruggeleverd aan de applicatie.
@Jadjong, het is niet eens verplicht om dat naar een SSD te doen, je kan dat zelfs naar een gewone disk doen of beter gezegd, naar elk block device wat beschikbaar is... Of dat verstandig is, is natuurlijk een tweede
Vroegah, kon je dus bijvoorbeeld 6 langzame 5400RPM disks in een RAIDZ2 pool stoppen en daar een 10/15k SAS disk als SLOG naast zetten.... Goedkoper dan een SSD
[
Voor 8% gewijzigd door
FireDrunk op 17-12-2013 20:37
]
Even niets...