Content
starts here

|
HP ProLiant DL980
G7(以下、DL980)はインテル® Xeon®プロセッサー E7ファミリーを搭載する8ソケット/80コア/160スレッドのラックマウント型サーバーで、前回触れた通り数々のベンチマークでNo.1の高性能を実現しているが、ビッグデータ時代到来の昨今、増加するデータ量によってストレージI/O性能がボトルネックとなる場合がある。このストレージI/Oのボトルネックを解消し、大幅なパフォーマンス向上が期待できるデバイスとして大きな注目を集めているものに、半導体ストレージがある。今回はNAND型フラッシュメモリ(以下フラッシュメモリ)を搭載する半導体ストレージ「IOアクセラレータ」について、インテル、レッドハット、日本HPの3社共同によるDL980でのOLTP性能検証結果を含めて解説する。 |
 |
潮平さゆり
フリーライター。外資系IT企業におけるテクニカルマーケティングの勤務経験を経て、近年執筆活動に入る。ITバブル後に、カリフォルニアやコロラドで64ビットコンピューティングの研究開発に携わり、プロセッサーやサーバープラットフォームに関する造詣が深い。国内外に、豊富な業界人脈を持つ。 |
|
|

ストレージとして現在広く使われている外部記憶装置のHDDは、大容量化が進む一方で性能に関する技術向上はゆるやかだ。一方、CPUはマルチコア化やメモリの大容量化などが進み、大幅な性能向上が進んでおり、HDDの性能とのギャップが生まれてくる。これがストレージI/Oのボトルネックである。
このボトルネックを解消する方法としては、高速な外部ストレージシステムを利用することが一般的となっているが、外部ストレージほどの容量が必要でなくサーバー単体でストレージI/Oのボトルネックを解消したい場合は、内蔵のHDDをSSD(Solid
State Drive) にするという選択がある。
更にディスクアクセス性能が求められる場合には、「HP PCIe IOアクセラレータ(以下、IOアクセラレータ)」によって解決できる。IOアクセラレータはPCI
Expressスロットに空きがあれば搭載することができ、50マイクロ秒以下と従来ストレージとの比較で2〜3桁低いレイテンシを実現する他、コンシューマ向けSSDと比較して3倍・書き込み6倍の帯域幅を誇る、半導体ストレージである。実際、IOアクセラレータのスループット(図4)は、読み込み最大700MB/秒および書き込み最大600MB/秒でSSDよりも高い性能を発揮している。
 |
 |
図1: CPUとHDDの相対的パフォーマンス比較 |
図2: 各デバイスのレイテンシ比較 |
図3: IOアクセラレータ論理ブロック図
 |
 |
図4: IOアクセラレータとSSDのスループット比較 |
図5 : IOアクセラレータとSSDのI/O経路比較 |

コンピュータのメインメモリで利用されているダイナミックメモリ(DRAM)は揮発性であるため電源供給が停止すると消去されてしまうが、フラッシュメモリは不揮発性であるため電源供給が停止しても内部データは保存されるメモリ回路である。特にSSDなど大容量のストレージデバイスでは、フラッシュメモリが用いられる。IOアクセラレータは、このフラッシュメモリを使った最新鋭の高速半導体メモリデバイスだ。
フラッシュメモリには寿命がある。フラッシュメモリの寿命とは、書き換え可能回数を指す。フラッシュメモリ内部のビット保存単位であるセル(Cell)へは繰り返し書き込めるが、書き換えの際には、元のデータを消去してから書き込む手順が必要である。また、書き込みを繰り返すと、セル内の酸化膜が劣化してしまい、記録素子としての機能が低下していく。ノートPCなどで使われているコンシューマー向けSSDの場合、書き込みが特定のセルに偏るため、書き換え可能回数の上限が低くなる。また、断片化した場合、書き込み速度が非常に遅くなる傾向がある。この現象を回避するため、特定のセルに偏らずに全てのセルに均等にデータを書き込むことで長寿命化させる「ウエアレベリング」といった技術があり、エンタープライズ向けの一部の製品には実装され始めている。
一方、IOアクセラレータでは、デバイスの制御にVSL(Virtual Storage Layer)と呼ばれるソフトウエアを利用する。VSLには、高効率のウエアレベリングである「アドバンスドウエアレベリング」、フラッシュメモリの遅差の原因となる消去処理をバックグランド処理し、高速化する「グルーミング」といった独自のテクノロジーが含まれており、1日当たり2.5TB書き込んだ場合約10年以上という設計寿命と高速な書き込みを実現している。
これらの特徴は、VSLがホスト側(サーバー)の強力なプロセッサー上で動作するために可能となっている。また、高性能サーバーであるDL980とIOアクセラレータを組み合わせることで、相互作用によりシステム全体の性能を押し上げることができるのだ。さらに、IOアクセラレータをストライピングし、さらにIOPS性能および帯域幅を高めることもできる。
図6: ウエアレベリングの仕組み
図7: グルーミングの仕組み

IOアクセラレータは、セル当たり1ビットを保存するSLC(シングルレベルセル)とセル当たり2ビットを使用するMLC(マルチレベルセル)の2つのラインアップが提供されている。SLCはセルに一定の電荷があるかないかで1ビットの値を保存し、MLCはセルの電荷量を制御することで複数ビットを保存している。書き換え寿命と速度を求めるのであればSLCモデルを、容量とコストパフォーマンスを求めるならMLCモデルを、と利用ニーズに合わせた選択が可能だ。また、IOアクセラレータはHDDのような駆動部品がなくシンプルなため、高速でありながら25W以下という省電力に加え、故障率も非常に低い。

IOアクセラレータでは、カード上に25のフラッシュメモリチャンネルが形成されている。24チャンネルでデータを保存、残りの1チャンネルはパリティデータを保存しており、いわばRAID-5を構成したディスクアレイと同じ冗長性をデバイス単体で持ち合わせているのだ。また、フラッシュメモリのソフトエラーはVSLによりECCアルゴリズムで訂正され、エラーカウントが保存される。
また、320GBモデルのIOアクセラレータであれば、実際には400GBのフラッシュメモリが搭載されており、余剰分の80GBは予約領域となっている。万が一データ領域にハードエラーが生じた場合には予約領域に再割り当てされるため、先述のアドバンスドウエアレベリングとの組み合わせにより、非常に高い信頼性が実現されている。
もし、フラッシュメモリのダイ単位で障害が発生したとしても、正常なダイ上にスペアリングされる。これらのエラー訂正が行われた場合でも、余剰領域を使い切らない限り、利用可能容量の減少など、利用上の支障をきたすような状況は発生しない。
予約領域の消費状況やチップスペアリング状況などのステータス情報は、GUIツールやCLIによるコマンドラインで確認できる。また、SNMPによる監視やイベント発生時のトラップ送信も可能で、既存の運用監視への組み込みが容易な点も魅力だ。
 |
 |
図9: CLIによるステータス確認 |
図10: GUIツールによるステータス確認 |

図11: DL980/Red Hat Enterprise Linux 6.1/MySQL5.5
コミュニティ版 OLTPベンチマーク性能
(スレッド数増加による性能)
インテル、レッドハット、日本HPとの3社共同で、DL980 G7とIOアクセラレータを利用しボトルネックが解消された状況でOLTP性能検証を行なっている。図11は、HDDとIOアクセラレータを比較したSELECT/INSERT/UPDATEの処理によるスケールアップ性能だ。
結論から言えば、40スレッドの負荷を与えた時にはHDDと比較すると約4倍の性能差という結果となった。この検証では、オープンソースソフトウェアのOLTPベンチマークツール「sysbench」を使用し、1秒あたりのトランザクション数を測定した結果である。検証環境は、以下の表をご参照頂きたい。
| サーバー |
| サーバー |
HP ProLiant DL980 G7 |
| プロセッサー |
インテル® Xeon® プロセッサー E7- 8870(動作周波数 2.4GHz) ソケット数8ソケット(80コア) メモリー128GB |
| OS |
Red Hat Enterprise Linux Server release 6.1 |
| データベース |
MySQL-server-5.5.17-1.el6.x86_64 |
| ストレージ |
HDD 146GBx2 RAID1、146GBx6 RAID5
IOアクセラレータ |
| クライアント |
| サーバー |
HP ProLiant BL680c G7 |
| プロセッサー |
インテル® Xeon® プロセッサー X6550(動作周波数 2.0GHz) ソケット数4ソケット(32コア) メモリー128GB |
| OS |
Red Hat Enterprise Linux Server release 6.1 |
| データベース |
MySQL-client-5.5.17-1.el6.x86_64 |
| ストレージ |
HDD 146GBx2 RAID1 |
表1:DL980でのOLTP性能検証 検証環境
図12は、IOアクセラレータによりReadのI/Oボトルネックを解消させた状態でSELECTの処理のみ行った結果である。40スレッドから50スレッドでスケールアップ性能が発揮できなくなっている。これはMySQLのスレッド性能の限界に達していると考えられる。そのため、Red
Hat Enterprise Linux 6.0からの新機能のcgroup(Control Groups)により、2つのインスタンスをそれぞれにDL980上で40コアの2つでグルーピングさせ、それぞれに50スレッドずつの負荷、つまり合計100スレッド分の負荷を与えた結果が図13である。
図12:DL980/Red Hat Enterprise Linux 6.1/MySQL5.5
コミュニティ版によるOLTPベンチマーク性能-SELECTのみ
(スレッド数増加による性能)
図13: DL980/Red Hat Enterprise
Linux 6.1/MySQL5.5
コミュニティ版によるOLTPベンチマーク(sysbench)性能
(マルチインスタンスによる性能向上)
このように複数インスタンスで起動したMySQLを各インスタンスが相互に干渉しないようにcgroup内で動作させることで、全体性能としてスケールアップさせることができている。つまり、MySQLのようにスレッド性能に限界を持つアプリケーションであっても、cgroupにより適切にグルーピングすることで、1.73倍のスケールアップ性能を引き出すことができる訳だ。
今回、Red Hat Enterprise Linux 6.1で、cgroupで、2つのインスタンスをそれぞれにグルーピングしている。こうすることにより、複数インスタンスで起動したアプリケーションが、各インスタンスが相互に干渉しないように動作させている。NUMA(Non-Uniform
Memory Access)構成のDL980 G7上で2つの論理的なグループを形成し、MySQLのようにスレッド性能に限界を持つアプリケーションであっても、全体性能としてスケールアップを実現している。

IOアクセラレータには、SLCとMLCのラインアップに加え、フルハイトとロープロファイルの2つのサイズのモデルがある。DL980は、11基のフルハイトPCIスロット、5基のロープロファイルPCIスロット、合計16基の拡張スロットを持つ。IOアクセラレータの容量はフルハイトで最大1.28TB、ロープロファイルで最大320GBある。
例えば、フルハイト10基で12TBのデータベースストレージ、ロープロファイル4基で1.2TBのログファイルストレージといった構成ができる。I/Oボトルネックの解消だけでなく、高速なトランザクション処理能力を必要とするデータベース全てを1台のサーバーで構成でき、購入コストのみならず消費電力や管理コストを大幅に削減できる最高レベルの組み合わせであると言えるだろう。
図14: DL980とIOアクセラレータの活用例


アンケートにお答え頂いた方はホワイトペーパーやパーフェクトガイドをダウンロードすることができます、ぜひご活用ください。
■ホワイトペーパー
半導体メモリアレイ、仮想化環境バッチ処理性能検証
Red Hat Enterprise Linux 6 KVMによる効率的なバッチ処理環境の構築
■パーフェクトガイド
HP ProLiantサーバー G7 マルチプロセッサー(MP)サーバー パーフェクトガイド
HP ProLiantサーバー G7のMPサーバーがITインフラの革新に向けた新しい選択肢を提供します。
|
 |
|
ご購入前のお問い合わせ
 |
 |
エンタープライズ向け製品のご購入前のご相談
03-5749-8328
09:00-19:00 (月曜−金曜)
10:00-17:00 (土曜)
※祝祭日と5月1日は除く |
|
|
 |
 |
 |
製品・キャンペーンに関するお問い合わせ
|
|
|
ご購入後のお問い合わせ
オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。
ショールーム
 |
 |
導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策を実体験して頂けます。
|
Intel、インテル、Intelロゴ、Itanium、Xeon、Xeon Insideは、アメリカ合衆国および他の国におけるインテル
コーポレーションまたはその子会社の商標または登録商標です。