Windows Server 2012 R2 記憶域のライトバックキャッシュを試す

Windows Server 2012 R2 記憶域のライトバックキャッシュを試す

サーバーのHDDの一つが故障したので急遽メンテナンスを行った。Parityは正常に働いているようでキチンと元通りに復帰した。どうせならSSDによるライトバックキャッシュを導入したらどれくらいのパフォーマンスが上がるのかテストを行ってみた。

ライトバックキャッシュとは

ライトバックキャッシュ(以降WB)とは、HDDのデータを保存する際に一時的に別の媒体(今回はSSD)に保存し、書き込みの高速化を行う技術。書き込みの際にSSDに書いた状態で『HDDに保存しました』とOSに代返するため、OS側の配慮は全くいらない。実際のデータがHDDに書き込まれるのがいつなのかわからないのがポイント。

導入前の状態

現在のデータドライブの速度
まずは 復旧後のドライブのベンチを取ってみた。構成はSAS+SATA HDD(1GB)×9でパリティ(RAID5相当)の構成で、最大8HDDまでのストライピング化されている。ソフトウェアでパリティを計算するため、書き込み速度は図のように遅いが、シーケンシャルの読み込みはさすがに同時駆動するHDD分の速さは出ている。保存用仮想ストレージ(10TB)+冗長性と考えたらまあまあのものだと思う。最近は8TB HDDとか余裕で出てきているのでなんともいえないかも知れないが。

導入するSSDとSATAIIIカード

WBのサイズは最大でも15GB推奨なので、大きなサイズのSSDを用意する必要はない。しかし、使用する記憶域によって必要となるSSDの枚数が違うので注意が必要だ。今回はパリティなのでSSDが2枚必要となる。よって今回必要とされる要件は以下の通りだ。
  • 必要枚数:2枚
  • 必要サイズ:20GB程度
  • 特に書き込みが高速なドライブ
価格.com辺りで色々検索したが、最近では小容量で高速なドライブはあまり見かけないようだ。64GBまでサイズを拡大して書き込みの速いドライブに絞ってみたところシリコンパワーのS60シリーズ、SP060GBSS3S60S25辺りが適当だったのでチョイス。これを2台購入。
次に必要なのはSATAIIIカード。サーバーが古いのでSATAIIIが存在しないためだ。最近はやっとオンボードの性能に近いカードが出たようなのでそこから選択する。
Marvellの88SE9230というコントローラーが安めで速いようなのでその辺りからピックアップ。エアリアのSD-PE4SA3mSAL TTH LIMOUSINEという製品にしてみた。
サーバー用としてエアリアなのはどうなのかと思わなくもないが、あまり費用をかけたら意味が無い(大容量HDDが買えてしまう)のでこの辺りで妥協する。

記憶域を再構成

WBのサイズは一度構成してしまうと変更できない。つまりデータドライブを一旦開放してから新たに構成し直さないとならない。現状5TBくらいまで使用しているのでこれは面倒だ。
そこで考えたのはシンプロビジョニングを利用した移動計画だ。要するに現状のハードウェアはそのままで新たに仮想ストレージ(16GB WB版)を作成し、データのコピーと削除を同時に行うという話だ。
結果から言うと、仮想ストレージが使用されなくなってもいきなり使用領域はパージされないようで実HDDが溢れてしまった。特に重複除去を使っていた場合、ファイルが使用されなくなったとしても共有されているデータが含まれている部分は膨大な時間を書けてチェックしないと消して良いデータなのか判別されない。一つ勉強になった。

新ドライブの状態

WBを有効にしたデータドライブ
やっと全データを移行し終えて同条件でテストしてみた。なんと書き込み速度が落ちている。HDD書き込みより遅いSSDって一体……。問題の切り分けに入った。ちなみに読み込み速度は気にしなくて良い。WBからHDDへ書き込む前にOSから読み込まれたらSSDから読み込まれるためだ。さらに Crystal Disk Mark は計測した一番高速な結果を残す。このため、一度でもSSDから読み込まれたらその数値になってしまう。シーケンシャルリードがとても低くなっているのは恐らく、読み込みがストライピングHDDx 8 > SSD ということなのだろう。

問題はSSD

S60のスペックを調べ直したらとんでもなく遅いことがわかった。仕様に丁寧にCrystalDiskMarkの数値を載せてくれているではないか。シーケンシャルライトが60MB/sとか現行ドライブより下回るとか! 何とか金ドブ状態を回避しないとならない。

じゃあRAID0+通常でどう?

Curusial m4 単体
緊急対策として現在使用していなかったCurusial m4(64GB)を利用することを考えた。とりあえずこれを素の状態のままでベンチにかけてみた。これなら十分書き込みが高速になるはずだ。しかしこの書き込み速度と同等のSSDをもう一枚どこから調達しよう、と考えたところ、SATAIIIカードの機能にあるRAID0を活用できるのでは、と考えた。

S60 RAID0 構成
BIOSからストライピング設定を行い、S60 x 2(RAID0) でのベンチを取ってみた。正直言って遅い。しかし苦しいが使えないわけではなさそうだ。これを1SSD扱いとしてm4とコンビで使用することにする。

結果

旧ドライブ
WBを追加したドライブ
変則的なSSD運用でWBを組み直し再度ベンチ。やっとのことで書き込み性能の向上を確認できた。全般的に書き込みが向上している。特にランダムアクセスが著しく上がっているおかげで作業的なファイルがとても軽くなった。バックアップ兼作業用ドライブとしては十分効果が出た感じだ。

トータルで考えると?

トータルで考えてみると、載せ替える手間やら追加のハードウェア、体感速度から考えるとあまりお勧めではない感じだった。体感速度を上げるためにはもっと高価なSSDが必要になるし、それらに費用を割くのであれば6~8TB HDDを購入したほうがもっとスマートに解決するだろう。現行のシステムからのグレードアップと考えるにしても移行の手間がかかり過ぎる。個人ユースではあまりメリットがないオプションかも知れない。

途中で気づいたお得な設定など

本編とは無関係だが、途中で気づいた記憶域の設定があったのでメモしておく。
パリティドライブの検索にインデックスを張っているのだが、これを専用のHDDに割り振らずに記憶域プールからシンプル構成を作成してそこに収めるといい。
シンプル構成(ほぼRAID0)は、冗長性はないがストライピング化により読み書きが高速化される。これは構成台数分まで拡張できる(パリティは最大8台まで)ので、今回は9HDDをストライピング化して構成。パリティと同じHDDリソースから9GB分確保。これで検索はかなり高速化できた。変にSSDなどに置くより高速だった。

コメント

このブログの人気の投稿

カスタムメイド3D2用プラグインを作りました

VyOS 1.1.1とSoftEther VPN Serverで自宅VPN最速設定

プロバイダをオープンサーキットからIIJへ変更