Volgens mij klopt dat niet. Writes gaan niet per definitie naar ZIL/SLOG, alleen als re-ordering ten behoeven van de performance een gevaar voor de integriteit opleverd, gaan writes naar ZIL voor zover ik weet.CurlyMo schreef op dinsdag 21 maart 2017 @ 09:05:
Vraagje over de grote van de ZIL / SLOG. Op internet lees ik dat dit afhangt van de snelheid van je netwerk:
[...]
Nu draai ik ESXi waardoor het interne ESXi netwerk via RAM wordt gebruikt om tussen de virtuele machines te communiceren. Maakt dat de eis aan de grote van de SLOG / ZIL niet anders? Moet hij in die situatie niet veel groter zijn?
Als in 1 transactiegroep een heleboel async writes zitten die super goed direct uitgevoerd kunnen worden, maar er zit een kleine sync write in de weg die "eigenlijk" eerst moet. Zal ZFS in memory de sync write gewoon uitvoeren (waardoor reads alsnog goed gaan daarna), maar zal de daadwerkelijke IO naar ZIL gaan.
Daardoor kunnen al die async writes gewoon doorgaan in de transaction group, en kan de volgende transaction group gewoon alsnog de status van je memory naar disk geschreven worden (en er wordt dus ook niet van ZIL gelezen).
Stel je trekt tijdens de commit van de async transaction group de stekker er uit, zou je dus eigenlijk een invalid state hebben, omdat de sync write terug gecommit is naar de gebruiker.
Maar bij boot, tijdens de import van de pool, kijkt zfs of de laatste pointer de laatste write bevat van wat er in de ZIL staat. En alleen op *dat* moment zal er gelezen worden van de ZIL, en zal die ene (of een paar) sync writes alsnog toegepast worden op je pool.
ZIL wordt dus alleen belast met SYNC writes die ge-re-ordered worden. Als je 1 write hebt, in 1 transaction group op een pool die niets anders doet, zie je hem volgens mij niet door je SLOG heen gaan.
Als directe reactie op je post:
Dat verhaal met netwerk is leuk, maar mijn VMware machine kan toch echt via iSCSI zeggen:
ZFS kopieer even block x t/m y, naar z. Dat is een commando van 1KB, wat 18GB aan writes opleverd.
Dan zou mijn SLOG (die ik niet heb) toch wel even aan het werk gaan.
EDIT:
Hier een blogje die er iets dieper op in gaat:
https://blogs.oracle.com/realneel/entry/the_zfs_intent_log
Ik weet niet of mijn antwoord nog stand houdt, want ik lees hier dat het vooral om de grootte van de write gaat of deze direct weggeschreven wordt, en niet perse de re-ordering. Kan aan mij liggen, dacht dat ik dat ooit eens ergens gelezen heb
[ Voor 14% gewijzigd door FireDrunk op 21-03-2017 09:43 ]
Even niets...