intel SSDにおけるHPAの効果とZFS のZIL(slog) on intel SSD について

intel SSDのHPA(spare area、予備領域)の効果とSSDの特性についてと、ZFSでZILをslog(separate log)とする場合にintel SSDを使うまとめ。
9
testary @testary

ZFSのZIL用(slog)で使うSSDは、キャッシュが保護されていないものは、書き込みキャッシュを無効(パフォーマンスが落ちる)にしないといけない。X25-M G2は、無効にしてもデータロスするという話があるので使えないことになる。 http://bit.ly/iOMKCR

2011-05-29 22:59:55
testary @testary

RAIDカード越しに接続しない場合は、無効にしなくても大丈夫か

2011-05-29 23:07:15
testary @testary

キャッシュが保護されているIntel SSD 320で、予備領域を大きく取るのが良いと思う。まだ実際にパフォーマンス測定できていない。X25-Mだと160GBを96GBで使うとパフォーマンスがかなりあがって寿命も延びるという発表をIDFでしてた。320も同様ならいいんだけど。

2011-05-29 23:38:54
Fumiaki Tokuyama @tokuhy

@testary たしかに今新規でZILで使うなら320ですねぇ。コントローラはX25-Mと同じなんで予備領域の効果は踏襲されてると思います

2011-05-30 00:09:39
testary @testary

Intel SSDは寿命が延ばせていいですね RT @tokuhy: @testary たしかに今新規でZILで使うなら320ですねぇ。コントローラはX25-Mと同じなんで予備領域の効果は踏襲されてると思います

2011-05-30 00:23:52
Fumiaki Tokuyama @tokuhy

@testary そうですね。ただ明確な体感が得られにくいんですよねぇ。やっぱ予備領域あり・なしでZILミラー環境でS.M.A.R.Tの比較データ取らないとだめですね・・・

2011-05-30 00:33:11
testary @testary

@tokuhy ZILだと最大でもメモリの半分の容量しか使われないですよね。それ以上の領域は割り当てられていないことになって、差が出ない・・・とかなってしまわないですかね

2011-05-30 00:40:42
Fumiaki Tokuyama @tokuhy

@testary たとえば80GBのうちHPAで20GB確保して60GBの領域をZILで割り当てたとしてもメインメモリが24GBなら12GBが最大使用量にはなりますが、書き込みと削除を繰り返す間に60GBの全領域に一度は書き込みが発生するはずです(つづく

2011-05-30 01:07:44
Fumiaki Tokuyama @tokuhy

@testary OSがデータを削除してもtrimが発行されない限りコントローラ側は不要なデータがあったそのブロックを解放済みと認識できないです。全領域に書き込みが発生したあとにコントローラが未使用領域と判断できるスペースの差がここで出てくるとおもいます

2011-05-30 01:23:43
testary @testary

@tokuhy 不要になった領域に上書きがなされ、結局12GBの領域を使いまわすことになったりはしないのかなと。

2011-05-30 01:30:19
Fumiaki Tokuyama @tokuhy

@testary 実際にどこに書き込まれるかはSSDのコントローラが使える領域内でウェアレベリングで均一化させる動きになると理解しています

2011-05-30 01:34:49
testary @testary

@tokuhy そういう意味で言うと、論理的に12GBの領域への書き込みの繰り返しは、どちらの場合でも物理的にはより多くの領域を使用しているはずです。ZILで使われる場合に論理的に12GBを使いまわすのか否かによって、SSD側で使用していないと認識する容量に差が出ると思っています

2011-05-30 01:42:32
Fumiaki Tokuyama @tokuhy

@testary どちらの場合でも物理的にはより多くの領域を使用しているというのはそうだと思います。ZILが明示的に12GBのパーティションを確保してるわけではないので、先の例だとコントローラ側から認識出来る未使用領域はデフォルトのものとデフォルト+20GBのものとになるかと

2011-05-30 01:50:51
Fumiaki Tokuyama @tokuhy

@testary 言わんとしてることを自分の方で理解できてなかったりしてますかね?(汗

2011-05-30 01:52:23
testary @testary

@tokuhy いえ、理解いただけております。ZFSのlog領域にディスクを割り当てた場合に、SSD側は全てを使用すると認識するんですかね。普通に考えると全部使っていることになるか…。

2011-05-30 01:57:08
Fumiaki Tokuyama @tokuhy

@testary OS(ファイルシステム)的にたとえ12GBアドレス領域内で書き込みと消去を繰り返しているとしても、HDDと違いSSDはOSに論理アドレスを見せてるので実際の物理アドレスとのマッピングをどうするかはコントローラ次第です。内部のアドレスはOSには不可視です

2011-05-30 02:03:57
testary @testary

@tokuhy 12GBアドレス領域内で書き込みと消去を繰り返して、残りの論理アドレス分をSSDが使用していないと認識していれば、予備領域を確保した場合と同じになるのではないかと。

2011-05-30 02:04:01
Takeshi HASEGAWA @hasegaw

同じセクタ書き換えているからって、同じ記憶素子を更新していたら、SSD、クソ遅くなっちゃう! いかに書き込み先の記憶素子を分散させて性能を稼ぐか、が、各社のコントローラとファームウェア、腕の見せ所だね。 ゚+.(・ω・)゚+.゚

2011-05-30 02:06:38
TAKI, Yasushi (瀧 康史) @kohju

@hasegaw まぁSSDだとOSの管理とは関係無しに、書き込みする度にどこか着替えるか分かりませんからねえ。ついでに適度に使用回数数無いエリアを入れ替えるし :)

2011-05-30 02:09:39
Fumiaki Tokuyama @tokuhy

@testary スタティックウェアレベリングが働くのでそうはならないですね。内部で物理と論理のマッピングが書き換わるので、たとえOSが同じ領域に書き込みし続けても実際に使われている領域はパーティションとして割り当てられている全域に及びます

2011-05-30 02:10:46
TAKI, Yasushi (瀧 康史) @kohju

@tokuhy パーティション関係無しに跨ぐとは思いますけど。

2011-05-30 02:12:17
testary @testary

書き込み先を分散させる仕組みが、Intelの場合予備領域が多いと、より上手く働く。で、その予備領域と認識されるのは、OSから見える領域内で使われていなければそれで良いのか。スライス切って使うだけで良いのか。であれば、ZFSのZIL(slog)で使われていない領域は予備領域になる?

2011-05-30 02:12:25
Takeshi HASEGAWA @hasegaw

@tokuhy @testaryたとえOSが同じ領域に書き込みし続けても実際に使われている領域はそのSSDの全域」では? SSDのファームウェアはパーティションなんか意識しないでしょうし。 ゚+.(・ω・)゚+.゚

2011-05-30 02:13:11
TAKI, Yasushi (瀧 康史) @kohju

@testary 見えない領域も含めて全体で分散しますよ。なのでZILで利用する場合、パーティション切ろうが切らまいが、本当に利用してる分だけSSDが全体的に劣化しますよ

2011-05-30 02:14:52
Fumiaki Tokuyama @tokuhy

@kohju @hasegaw 表現が不正確でした。HPA以外のSSDが使用できる全領域でしたintelの場合に限ったお話ということで。他は良く知りません・・・

2011-05-30 02:17:09