ZFSのintent log(ZIL)についての考察

intent logについてあれこれ。 ZFSのL2ARCについての考察 http://togetter.com/li/24493 続きを読む
5
らむ @mayn_lum

@tokuhy ARCはメモリなのでWrite時のCacheとしてもつかいますがL2ARCはRead専用です。

2010-05-26 00:39:23
らむ @mayn_lum

@tokuhy ARC/L2ARCの説明がリードキャッシュとかいてあります。あとZILが使われるのは同期Write時のみで非同期Writeのときは使われません。

2010-05-26 00:45:02
TAKI, Yasushi (瀧 康史) @kohju

@mayn_lum あれ、ライトパケットが、30秒でフラッシュ出来ないときも使いませんでしたっけ?

2010-05-26 01:39:18
TAKI, Yasushi (瀧 康史) @kohju

@mayn_lum あとメモリのzilバッファがあふれたとき。

2010-05-26 01:39:34
らむ @mayn_lum

@kohju ZILは同期書き込みのために使います。ARCがディスクにフラッシュされるのが30秒くらい遅れるので、これでは同期書き込みにならないのです。

2010-05-26 01:47:47
TAKI, Yasushi (瀧 康史) @kohju

@mayn_lum その同期書き込みの瞬間ってのは、nfsdからsyncしたとき、arcバッファが書き込みであふれたとき、30秒でおわらないとき・・・と思ってるんですけど、他にあります?

2010-05-26 01:52:01
らむ @mayn_lum

@kohju 同期書き込みが必要になるのはそれなりのAPIコールされたときだけで通常は使われません。

2010-05-26 01:57:41
Kazuyuki Sato @satokaz

@kohju 同期書き込みきたら ARC にも ZIL にもいっちゃいますよ。ちゅどんって電源落ちた時に同期書き込みのデータ整合性を確保するために。

2010-05-26 01:59:30
Kazuyuki Sato @satokaz

@kohju O_SYNC とか O_DSYNC で書かれる時です

2010-05-26 02:01:35
TAKI, Yasushi (瀧 康史) @kohju

@satokaz いや、同期書き込みが明示的に呼ばれるときは当たり前として、同期書き込みが発効されていないのに、ZILがつかわれるときの話です。

2010-05-26 02:02:37
TAKI, Yasushi (瀧 康史) @kohju

ew kalu 同期書き込みが明示的に発効されていないのに・・・というべきかなw

2010-05-26 02:02:52
らむ @mayn_lum

@satokaz O_SYNC/O_DSYNCはファイル単位なので該当するファイルのみZILを使いまくります。syncはファイルシステム全体なのでがんばってARCからディスクに書きにかきに行きますがそのときはARCの内容をZILに書くことはしません。

2010-05-26 02:03:51
TAKI, Yasushi (瀧 康史) @kohju

@satokaz 書き込みをキャッシュするARCバッファがあふれたときとか、30秒分のライトが終わらないときとかも、外付けのlogディスクをつかわないのかなと。

2010-05-26 02:04:02
らむ @mayn_lum

@kohju ARCバッファが溢れるような事はなくて、実際にはRead分が削られるか、Writeのコールが待たされるだけです。

2010-05-26 02:06:24
TAKI, Yasushi (瀧 康史) @kohju

@mayn_lum え。でもARCが512Mとかの時とか、あふれますよ?

2010-05-26 02:07:47
Kazuyuki Sato @satokaz

@kohju たぶん、pool が持ってる intent log と SSD とか使って外だしする separate intent log の役割の違いってことですかね?

2010-05-26 02:08:33
らむ @mayn_lum

@kohju logディスクが使われるようなことは無いです。NFS Writeの場合でもcommitが帰ってくるのが遅くなるだけです。

2010-05-26 02:08:38
TAKI, Yasushi (瀧 康史) @kohju

@satokaz ですです。外付けのlog ディスクは一体、ほんとにsyncの時だけしか使われてないのかしら?と言う話。

2010-05-26 02:09:39
Kazuyuki Sato @satokaz

@kohju separate intent log は、arc から溢れたもにはつかわれないんじゃなかったかと

2010-05-26 02:11:33
らむ @mayn_lum

@kohju もし外付けのLogディスクがSyncの時につかわれるとしたらそのあとでlogからpoolへのコピーが実行される必要があります。

2010-05-26 02:11:57
TAKI, Yasushi (瀧 康史) @kohju

@satokaz なるほど。それがしりたかったww

2010-05-26 02:12:27
TAKI, Yasushi (瀧 康史) @kohju

@satokaz そうなると、COMSTARの時は効果的にZILが使われたりするのかなあ。。。

2010-05-26 02:13:09
TAKI, Yasushi (瀧 康史) @kohju

@mayn_lum でもZIL自体、かかれたら、ディスクにいどうしますよね?

2010-05-26 02:13:42
らむ @mayn_lum

@kohju fsync ->ZIL->poolという動きはあります。sync->arc->zil->poolという動きは?です。

2010-05-26 02:16:18
らむ @mayn_lum

@kohju zilに書かれた内容はいずれpoolに書かれます。でもそれは30秒後かもしれません。APIコールを呼んだ側にはZILに書かれた時点でリターンしてきています。

2010-05-26 02:17:52