Special
» 2013年03月18日 10時00分 UPDATE

スループットはHDDの10倍以上:既存アプリは触りたくない! DB高速化の本丸「Oracle RAC on SSD」を徹底解剖する

データベース性能のボトルネックとなりがちなI/Oとストレージ。ここに焦点を当てて日立製作所が投入したのが「DB高速化ソリューション for Oracle RAC on SSD」だ。本ソリューションのもたらす威力について、日立でPFコンピテンスセンタ長を務める鬼頭昭氏に聞く。

[PR/ITmedia]
PR

DB高速化の秘けつはI/Oとストレージの改善にあり

photo 日立製作所の鬼頭昭氏(情報・通信システム社 ITプラットフォーム事業本部 開発統括本部 ソフトウェア本部 PFコンピテンスセンタ センタ長)

 企業を取り巻くデータ量の増加に伴い、データベース(DB)の処理時間は年々長くなりつつある。こうした流れが加速すれば、例えば夜間バッチが朝までに終わらないなどの事態が一層増えるはずだ。だが「DBを高速化したくても、既存の業務システムに手を加える余裕はない」というのが、多くの企業がDBに関して頭を悩ませている課題だろう。

 「DBの高速化が必要な課題はさまざまですが、ベースにあるのはやはりバッチ処理を高速化したいというものです」と話すのは、日立製作所(以下、日立)の鬼頭昭氏。

 「処理するデータを増やせば増やすほど、DBの負荷が高まりバッチ処理に時間がかかるという課題を抱える企業は少なくありません。それを解決するためには、データの見直しを通じて完全に新しいシステムに作り替えるという方法もありますが、多くの企業はシステムを丸ごと刷新することに抵抗があります。実際には、性能さえ問題がなければ仮想サーバ環境上に既存のシステムをそのまま移したいなどのニーズが多いのです」(鬼頭氏)

 現在、DB高速化を実現するためにはさまざまな手段がある。その中で、比較的容易にDB高速化を実現できる手段として注目されているのがI/Oとストレージの見直しだ。そこに真っ向から取り組んだソリューションの1つが、日立が投入した「DB高速化ソリューション for Oracle RAC on SSD」である。

HDDの10倍以上、毎秒11GバイトのI/O処理を可能に

 「I/Oとストレージを高速化するためにはHDDをSSDに換装すればよいと思われがちですが、実際にはSSDに変えただけでは大して速くなりません。劇的な高速化を実現するには、DBを稼働させた際にどれだけ多くのI/O処理を並列で実行できるか、あるいは単位時間当たりどれだけのデータを読み込めるかなど、ハードウェア全体のバランスを調整する必要があります」と鬼頭氏は話す。

 HDDに変わるストレージとして、不揮発性メモリを採用したSSDがエンタープライズシステムでも本格的に導入されつつある。SSDはHDDと異なり、読み書き性能が回転数によって制限されることはないが、SSDの能力を生かすにはI/Oの帯域も調整する必要がある。例えば、性能に応じてFC(ファイバチャネル)接続パス数を変えたり、高性能なストレージコントローラを採用するなど、I/Oの高速化に最適な構成とチューニングが求められる。

 そこで日立が取り組んだのが、サーバとストレージをFCで接続する従来型DBシステムの構成は変えずにSSDを採用する、新しいDB高速化ソリューションの開発である。

 「DBを高速化したい場合、データ処理を実行するサーバのCPUコア数を増やす方法もありますが、それだけではバッチなどI/Oがボトルネックとなる処理は高速化できません。そのため、DB高速化ソリューション for Oracle RAC on SSDは、ストレージとI/Oインタフェースの処理能力アップを通じてI/Oのボトルネックを解消した上で、複数のサーバをクラスタ構成で運用する『Oracle Real Application Clusters』(Oracle RAC)で、DBシステム全体の性能を向上させました」

 「ストレージは、PCIeスロットにフラッシュメモリカードを搭載する選択肢もありましたが、フラッシュメモリカードは障害発生時に稼働中の交換ができない問題があるため、可用性を高めるためにSSDを用いたRAID構成を採用しました。ただし当初は、SSDを採用しても期待ほどの性能が出なかったため、すぐにI/O帯域を広げて対処しました。DBへのアクセスが全てのSSDに均等に配分されるよう、Oracle Databaseのストレージ管理機能『Oracle Automatic Storage Management』(Oracle ASM)も組み合わせています」(鬼頭氏)

 こうして完成したDB高速化ソリューション for Oracle RAC on SSDは、Intel Xeonプロセッサと最大768Gバイトのメモリを搭載できるサーバ「BladeSymphony BS2000」2ブレード、SSDの搭載を前提にI/O処理能力を拡張した「Hitachi Unified Storage 130」(HUS130)2台、ブレードサーバにPCIeスロットを追加する日立独自の「I/Oスロット拡張装置」で構成されている。

 これらを最適なチューニングと物理的な配置で組み合わせた結果、データ読み込み時には毎秒11GバイトものI/O処理を確認できたという。また、日立が検証用に用意したI/Oの多いSQLでベンチマークを計測したところ、HDDを潤沢に搭載した同等のDBシステムと比較して、10倍以上のI/Oスループットと約5分の1のレスポンスタイムを実現したという。さらに、同社が想定する6〜7年前のDBシステムと比べれば、レスポンスタイムは約100分の1以下まで短くなったとしている。

photo HDDを採用したシステムと比較し、10倍以上のI/Oスループットと約5分の1のレスポンスタイムを実現した(出典:日立製作所)

独自の工夫で高速化をとことん追求

 DB高速化ソリューション for Oracle RAC on SSDがDBを高速化できる理由は何か。それは、ハードウェアの性能を追求し、その性能をフルに生かすさまざまなチューニングを施しているからだ。

 チューニングの1つ目は、サーバからストレージへのI/O帯域の拡張だ。BS2000に接続されているI/Oスロット拡張装置は、一般的なブレードサーバが搭載しないPCI-Expressスロットを備え、FCスイッチを介さずにホストバスアダプタ(HBA)をストレージに直結できるようにする。また、BS2000は2枚のサーバブレードを搭載し、1つのブレード当たり8ポートの8Gbps FC、合計16ポートからストレージに接続する。

 「ストレージI/Oの広帯域化を目指すと、どうしてもある程度のFCポート数が必要です。しかし、ブレード内蔵メザニンカードの搭載枚数には限りがあるため、FCの採用を優先すると、サーバ間通信LANやパブリックLANなどの冗長化ができなくなってしまいます。そこでDB高速化ソリューション for Oracle RAC on SSDは、I/Oスロット拡張装置を使い、HBAを全てPCIeスロットに接続する方法を採用しました」と鬼頭氏は話す。

photo DB高速化ソリューション for Oracle RAC on SSD(ミッドレンジモデル)の構成図(出典:日立製作所)

 2つ目のチューニングは、サーバからSSDまでの経路を均等化し、分散I/Oの処理能力を高めていることだ。

 ストレージ(HUS130)には、高い読み書き性能を持つコントローラと専用のSSDが搭載されており、これらの能力を引き出すためのチューニングが施されている。RAIDから切り出した論理ユニットと制御プロセッサを適切に割り当てたほか、4本のバックエンドパスを均等に使えるように物理的な位置も調整した。また、マルチパスFCの優先パスを効率的に分散する設定も施している。これらの構成やチューニングは全て日立のノウハウであり、従来の製品にSSDを搭載しただけの構成とは「ひと味もふた味も異なる」と鬼頭氏は胸を張る。

 とはいえ、ハードウェアそのものは特殊なものではなく、オープンなプラットフォームとなっている。そのため、業務システムからは一般的なDBシステムに見え、それまで通りの運用方法を継承できる。なお、サーバのOSには「Red Hat Enterprise Linux」を採用し、UNIXシステムから比較的容易にリプレイスできるようになっているほか、多くのミドルウェアの動作が保証されていることも心強い点と言えるだろう。

 このほか、障害耐性や安定性の高さもDB高速化ソリューション for Oracle RAC on SSDの特長という。

 ストレージI/Oは全てActive-Activeの冗長化構成を採用している。日立が行ったテストでは、PCIeバスの障害閉塞機能とFCのパス制御で、抜線時もDBが継続稼働するという実証結果を確認したという。

 HUS130自体も、信頼性に関して日立独自の作り込みがなされている。SSDはHDDと違って書き込み回数の上限があるが、現在ではSSDの全領域を1日10回書き換えても約5年間使えるほど長寿命化している。さらにHUS130は、SSD寿命の90%(と95〜98%の1%刻み)に達するとユーザーに通知を出す機能や、99%になるとスペアドライブにデータを自動複製する機能も備えている。

 DB高速化ソリューション for Oracle RAC on SSDの導入が最も威力を発揮するケースは、大量データを扱うI/Oの多いバッチ処理を実行する場合だ。処理時間が短縮されるだけでなく、同時に複数のバッチを処理することも可能になる。このほか、データウェアハウスやビジネスインテリジェンスにおけるデータ抽出処理を高速化したい場合にも有効と考えられる。

 サーバのCPU、メモリ容量、SSD容量は、処理内容に応じてカスタマイズできる。また、中小規模システム向けには、サーバに「HA8000/RS220」、ストレージに「BR1200」を採用した廉価版の構成も用意している。こちらでは、最大で毎秒3.2GバイトのI/O処理を行えるという。


 DBを飛躍的に高速化させたいが、既存アプリケーションには手を加えたくない――DB高速化ソリューション for Oracle RAC on SSDは、システム部門のそうした悩みに対して有効な解決策の1つと言えるだろう。

Copyright© 2016 ITmedia, Inc. All Rights Reserved.


提供:株式会社日立製作所
アイティメディア営業企画/制作:ITmedia エンタープライズ編集部/掲載内容有効期限:2013年3月27日