lvmcacheで低速大容量のHDD-RAIDをSSD並に高速化する

HDD-RAIDの欠点をSSDで補う

自宅ファイルサーバーはAdaptecのASR-71605を用いてSATA-HDD16本を接続しRAID6を構成している。このファイルサーバーはシーケンシャル性能は500~1000MB/sと非常に速いが、ランダムアクセス性能は10MB/s程度とHDD単体並に低い。

ランダムアクセスが改善すればVMの仮想ディスクやゲームPCのiSCSI に効果がでて、ボクのQOLが向上するはずだ。

その解決方法のひとつがlvmcache。それはSSDをHDDのキャッシュとして扱い、安価大容量の利点はそのままにディスクI/O性能をSSDの性能で底上げしようという試みだ。

現状の何が不満なのか

3DMarkを代表するゲーム系ベンチマークはCPUとビデオカードの性能をみるもので、それまでのローディングに掛かるHDDのアクセス時間は計測外なのが通常だ。一方で実際のARMA3などのゲームではテクスチャーやサウンドファイルといった細々としたものがアーカイブされた状態で格納され(たとえばpbo形式)、ゲーム中に必要なものだけを読み出しているのでランダムアクセスが多発する。

特にCQB(近接戦闘)で銃撃戦になると発砲音のシミュレートで両軍それぞれの兵科毎に違う小火器音源、破壊された建物のテクスチャーがガンガン読みだされている。MODを入れているとさらに増える。読み込みが間に合わないとフレームレートが下がり描画深度,ディティールを劣化させることになり、つまりは一番肝心なシーンの描画が最低レベルに下がるのでイライラするのだ。

効果はまずまず

連休前にいろいろと調べて試行錯誤して連休中に組み上げた。結果でいうとフロント側のSSD性能に律速するので直線番長だったRAIDアレイの性能は良くも悪くもスポイルされる。つまりシーケンシャルアクセスは若干下がり、ランダムアクセスは大幅に向上した。

今回用いたSSDはSATAのPX-256M6Vである。SATAではなくNVMeにするとすごいのかもしれない。ちなみにPX-256M6Vの公称値はSeq Read 535MB/s、Seq Write 335MB/s、Random Read 83000IOPS、Random Write 80000IOPSである。

lvmcache導入前のiSCSIの性能
(総じてランダムアクセス性能が低い)

lvmcache導入後のiSCSIの性能
(導入時にtarget側の容量も2TBから4TBに増量。lvmだと簡単だ)

4KIB Q8T8において、Random Read 78000IOPS、Random Write 64500IOPSでている。iSCSIのオーバーヘッドを考えればこのあたりが頭打ちだろう。

デメリット

使いはじめて3週間ほど経過したが、いいことばかりじゃない気がする。ネットであまり語られていないために、オマ環なのか判断できない点も含めてデメリットとしたい。

項目 内容
メンテナンス性 設定を変更したらLVがI/Oエラーで壊れた…バグ?
大量プロセス 整合にカーネル系の200プロセス前後が一斉に起動しiowaitが跳ね上がる。zabbix等で監視していると頻繁に警告される。
SSDの寿命 それはもう頻繁に書き込みが入っている模様
SSDのtrim fstrim -v -aでいいらしいが、そもそもキャッシュは容量100%使用を維持するのでプチフリ頻発していないか?
lvmのsnapshot lvmcacheを導入したLVはsnapshotができないとの報告
ファイル作成 理由は不明だがファイルの新規作成が非常に遅い。lvcacheはファイル単位ではないので別の原因かもしれない。
rsyncでビックリした。

 

Insurgency のCoop専用サーバーを公開

Insurgency が64bit版に

昨晩2018/5/4、Insurgency が64bit対応になりました。この時期に?と思わないでもないですが64bit OSで動かすので対応自体は歓迎です。

ついでなのでdedicated serverを構築してみました。サーバのsrcds.exeも64bit対応になり、srcds_x64.exeが提供されています。

ですが、どうも不安定な箇所もでているようで、クライアント側でWORKSHOPのマップを読むと高確率でクラッシュしてしまうようです。

回避策を探ってみましたがまだ見つからず、本家フォーラムでも騒がれだしてきたので、そのうち対策されるでしょう。それまでは仕方ないので、現状はWORKSHOP版サーバーは休止状態とし、標準マップのCheckpoint版のみ公開しています。

特徴的なところは次の通りです。

  • 初期ポイントがモリモリ フル装備可能
  • botが6~26人
  • botの強さは最大値
  • 昼間のCheckpointマップしかない
  • Battleye対応

キーワードは”team-boss”でサーバー検索するか、pingの小さいサーバーで検索してみてください。hostnameでは検索できない仕様のようです。

hostname: JP|TEAM-BOSS.COM#1|Checkpoint only
version : 2.4.2.4/2424 6993 secure
udp/ip  : 192.168.0.202:27015 (public ip: 14.128.106.20)
os      : Windows
type    : community dedicated
players : 8 humans, 24 bots (8/0 max) (not hibernating)

早速、盛況なようです。

雨は夜更け過ぎに

唐揚げが出来上がりそうな高揚感

PC部屋にこもっているので環境音を聞いている。外も雨だから部屋にも音を取り入れよう。音だけでも涼しくなりたい。現在の室温は 29.8℃

google home なら

「OK,google. 雨の音」

「こちらが雨の音です」

唐揚げだよなぁ。しかも出来上がる直前の細かい気泡がはじける音だ。

しかしあれだ。Twitterで投稿する癖がつくと、長い文章書きにくくなる。

暑い

5月連休だがずっと自宅にいる

暑いのでそろそろ冷房をいれようかと思う。

この4月末にファイルサーバーをRAIDアレイのサイレントクラッシュで飛ばしてしまい、壊れていることに気づかないまま1カ月ほどのローテーションのイメージバックアップを続けた結果、すべてを失った。つまり手元に正常なバックアップが存在しない。ということでこの連休中に少しでも立て直そうとしているんだ。このサイトもそうだ。

こういうのは物理インフラ整備さえ整えてしまえばあとはVPN接続して、さっさと涼しい湖畔や居酒屋でステーキ屋で飲みながら喰いながらできるのだが、物理が整わないと話にならない。だってRAIDアレイが壊れたわけで、全部チェックすることになる。チェックというのは48時間くらいのことだけれど、チェックしていると大半のHDDがST3000DM001だから1本くらい故障する。そしたらまたリビルドやり直す。
チェックやリビルドはバックグランドでできるのだが、いつ壊れるか判らないので自宅待機状態で実施しているわけだ。

そしてこの陽気である。スピーカーに尋ねてみた。
「OK, Google. 現在の気温は?」
「現在の気温は25℃です。」

狭い我が家、サーバー設置場所はマンションでいうところの子供部屋。ここに3台のサーバーと1台のゲーム専用PCとL3SWとL2SWと…先日は30℃近くまで室温が上昇した。

 

泣くぞ。