Open Source Summit Japan 2017 の講演 WalB: Real-time and Incremental Backup System for Block Devices のつぶやきまとめ
@mhiramat はい。必ずデータデバイスにはWalBが無い場合と同様のI/Oをするので、ログデバイスがデータデバイスに対して遅いのでなければ、あくまで律速はデータデバイスですね
2017-06-01 07:59:16@satoru_takeuchi @mhiramat 一方書き込みはログデバイスに書き込んだらすぐackするので、ログデバイスが高速なほど高速になると思います。
2017-06-01 08:09:56@uchan_nos @mhiramat ログデバイスだけに書き込まれているデータを読むとログデバイスから読むという解釈で良いですか
2017-06-01 08:19:11@satoru_takeuchi @mhiramat あ、それは違います。読み込みはあくまでデータデバイスからです。書き込んだ直後に読むと、まだデータデバイスに書き込まれていないメモリ上のデータが読まれるはず。という認識で合ってますよね @starpoz
2017-06-01 08:23:50@uchan_nos @satoru_takeuchi しかしメモリが信用できるなら(Ryzenとかでない限り)ライトバックモードで動かしてページキャッシュに頼るのが最も速そう…
2017-06-01 08:24:09@mhiramat @satoru_takeuchi 信用というのがどのレベルを言ってるかちょっと分からないですが、突然の電源断でも一度ackを返したデータが消えないためにログを保存してます。
2017-06-01 08:27:42@uchan_nos @mhiramat @starpoz あー、buffered I/Oの場合はそうなりますね。失礼しました。direct I/Oだったらデータデバイスにも書いてからAckするのかな?
2017-06-01 08:29:21@uchan_nos @satoru_takeuchi @mhiramat WalBはバックアップのことしか考えてないのでlog deviceに書き込んだデータをキャッシュとして使う実装にはなってないですね。原理的にはもちろん可能で、log deviceに高速なデバイスを使うなら効果が見込めるかも。
2017-06-01 08:29:36@satoru_takeuchi @uchan_nos @mhiramat いえ、walb deviceに来たwriteIOは全てlog deviceに書いてdata device に書かずに返します。
2017-06-01 08:32:42@starpoz @uchan_nos @mhiramat すると 1.あるデータ領域をdirect writeした 2.WalBはログデバイスに書いてack返した(まだデータデバイスには書いてない) 3.上記のデータ領域をreadした という場合(上記書き込みに対応するページキャッシュは無い)はどこからデータが読み込まれるのでしょう
2017-06-01 08:39:52@uchan_nos @satoru_takeuchi @mhiramat あーでも log device に遅いストレージを使ったら返って遅くなるのでトレードオフがあるかもです。< log device のデータをキャッシュとしても利用
2017-06-01 08:46:34@satoru_takeuchi @uchan_nos @mhiramat WalB device driver が確保したメモリに置いてあるのでそこから読みます。使用メモリサイズは WalB device 作成時に与えますが、サイズいっぱいになると、log 書き込みが待たされます。なので定常的には data device への書き込み速度で律速します。
2017-06-01 08:49:05このつくりだとすればWalBは高速インクリメンタルバックアップに加えてwrite cacheの付加価値をつけるというのもいけそうなきがしてきた。評価してないから実際どうなるかはわからんが
2017-06-01 08:55:31walBのスライド、大変興味深く読ませて貰ったんですが、スナップショット取得によるI/Oスパイクを抑えたいって言う目的を読まずにアホーな質問をする人が出ないことを祈りたい
2017-06-01 10:06:22WalBの名前から想像するにWrite Ahead Log for Block deviceでしょ。なんでキャッシュの話されちゃうんだろ
2017-06-01 10:10:39ふと思ったんだけど、walBの役割をRAIDカード側のファームに実装したら無双できるんじゃ?と思ったけど、ホストが別も含めたRAIDカードまたぎがどうしようもないかな、。(´・ω・`) ブロックデバイスとして扱うことで柔軟に扱えるんだもんねぇ(´・ω・`)
2017-06-01 10:13:59リード/ライトパスを大幅にいじってはいないであろうWalBを初めて知ったのが2013年頃、2015年頃にサービスへの適用を試し始めるという話をサイボウズのエンジニアからモツ鍋食べながら聞いて、今回正式にサービスに投入ということなので、関係者は相当の期間テストしてきたんだろうね
2017-06-01 10:15:16RAIDカードに入れちゃうと、ボリュームごとにバックアップを取れなくなるので、用途によるとは思いますが我々の運用では使いにくい。
2017-06-01 10:23:23