ioDrive2の導入で支える、そのIOPS - 導入検討編.

こんにちは、インフラ領域を主に担当する増木です。

TECHSCORE Advent Calendar 2015 の 6 日目の記事です。

私の記事では特にインフラの中でもハードウェア面にやや軸足のある記事を書きたいと考えています。
どうぞ、よろしくお願い致します。

特に処理負荷の高いアプリケーションを運用するにあたり、データベースの性能向上・改善を目的としてフラッシュメモリ型ストレージを利用するケースが増えており、まだこれから試したいという方に向けてどのような製品であるのか、などを含めて導入への流れをご紹介出来ればと思います。今回は前編として導入に関する範囲での知見を、後半では実際のパフォーマンスに至る範囲を紹介します。

はじめに

現在はSanDisk傘下であるFusion ioDrive2を使用しています。
TB_20151204_pict01_iodrive2
これが実際のモノです。今回はこの製品を導入した経験から、いくつかのポイントをお伝えします。本製品は一般的なコンシューマー向けというよりも、エンタプライズ系で利用される製品であり、その価格からも個人利用は難しいですが業務にて案件にて導入する機会があればぜひチャレンジ下さい。

導入のポイント

ioDriveなどのフラッシュストレージ製品を選択する場合、その目的が何であるのかいくつか考えられます。例えばですが

  • ミドルウェアレイヤでのチューニングが限界。もはや他に取りうる手段がない
  • 既成品のソフトウェアを導入しており、チューニングの余地が無い。
  • アプリケーションのパフォーマンスを向上させたいが、力技でサーバ台数を増やしたくない。

....他にも色々な経験から検討する機会があるかと思いますが、ひとまずこの程度にします。いずれにも言える事は「今以上に大きく改善しなければ、今後の見通しがつかない」という事でしょうか。そして「既存の構成に手を入れるのは難しい」という事もあるでしょう。

これらの問題に対して、フラッシュストレージ製品を導入しファイル領域を移行すれば、一桁は異なるパフォーマンスが得られる....というのが昨今のフラッシュストレージ導入プランであります。勿論、パフォーマンスの課題がディスクIO領域にある場合にのみ顕著な伸びが得られますので、この点はご注意。

ハードウェア面での注意事項

実際に導入する場面では、いくつかの経験をしました。特にミドルウェアをインストールするのとは違いますので、そもそも、という部分があります。

  • 搭載サーバにPCI-Expressスロットがあるか。カード取り付けサイズを満たしているか。
  • 消費電力と排熱。熱問題で悩まされないか。
  • どこから購入するか。サポート体制はどうか。

いくつかの経験をしましたが、特にこの項目を確認します。PCIバス規格は概ね昨今のサーバであればPCI-Express x4 / x8を搭載しているものと考えられ、規格上はクリアしているかと思いますが、やはりPCIスロットに搭載しますので製品サイズを予め確認する必要があります。製品によってはフルハイト型もありますので、ハーフハイトスロットしかない....という後悔は避けたいところです。

そして、消費電力と排熱。特に排熱に対してはサーバ内部のエアフローが適切か、もしくは改善できるか。排熱フローが適切でなければ50度を超過する事など簡単に発生しますので、挿せば終わりと安易に考えてはいけません。重要なアプリケーションを数ヶ月・数年と安定稼働させる為にも。

最後は購入方法。サーバ本体とセットで購入可能ですので、保守体制も確認しましょう。特にテクニカルサポートを利用できる/できない、とでは雲泥の差になる可能性もあります。何枚も導入経験を積めばある程度抑えられるかと思いますが、最初に1枚目では障害分析・切り分けなどで苦労するケースがありますので、予算と相談しつつ確実なサポート契約をお勧めします。

とはいえ、これまでの導入経験から「本当に参った、これはお手上げ」というケースはありませんでした。本当に導入フェーズは数時間もかからずに終わります。この部分は後半で実際のケースから紹介します。

Comments are closed, but you can leave a trackback: Trackback URL.

Advent Calendar 2015の連載記事

  1. TECHSCORE Advent Calendar 2015
  2. Redshift と PostgreSQL に同時に JDBC 接続する
  3. Lombok で Spice up your Java!
  4. 画像を指定するだけ!非デザイナーでも簡単にそれっぽい配色ができるツールを作ってみた
  5. 新卒文系エンジニアの記録:配属半年間の失敗を振り返ってみた
  6. 非同期処理のすすめ
  7. ioDrive2の導入で支える、そのIOPS - 導入検討編.
  8. GoでパイプラインからSlackに通知する
  9. fuse でオレオレファイルシステムを作ってみた (Haskell で)
  10. Erlang はじめました
  11. ちょっと地味なビルドとリリースの話 (レガシーシステム改革、はじめの一歩)
  12. Java8 最速 boolean[] to Stream 選手権
  13. Google Apps の Directory API にてWebブラウザを介さずに認証する
  14. 風データをビジュアルに表現する
  15. マイクロフレームワーク「Ninja」を使ってみる
  16. 赤ちゃんvimmerからよちよちvimmerにクラスチェンジを果たすためのTips
  17. PostgreSQL FDW を作ってSQLでログ検索してみた
  18. Goで偽名ジェネレータを作りました
  19. 書き込み中に削除されたファイルを救出する
  20. 運用情報更新のススメ
  21. ちゃんと読んでくれましたか?
  22. Presto コネクターを実装する 第三回
  23. Ruby2.3を触ってみる
  24. Git 困ったときのtips集
  25. 5分で読む入門編:Java 8 ラムダ式 コレクション編(2)リストの検索
  26. CloudFront (+ S3) + JWPLAYER で様々なデバイスのブラウザから動画をストリーミング再生する