DB の処理高速化

DB の処理高速化
----- High IOPS アダプターのご紹介 ----RDB においてボトルネックとなることの多いディスク I/O を、フラッシュメモリを利
用することで、高速化出来ます。High IOPS アダプターは、記憶素子に NAND フラッ
シュを用いて高速な IOPS を提供する外部記憶装置です。ソリッド・ステート・ドライ
ブ
(SSD)が HDD と同じ SAS/SATA インターフェースに接続するのに対し、High IOPS
アダプターはサーバー内の PCI Express スロット(拡張 I/O スロット)に接続すること
により、プロセッサーの処理速度とデータ転送速度のギャップを大幅に縮め、SSD をは
るかに上回る高速な I/O 速度を実現しています。
IT 業界は日々技術が進歩しており、毎日の様に、新製品・新技術が発表されています。
ではこの 10 年で進歩がどの程度あったでしょうか。当時の資料で比較しますと、CPU
とメモリは 15 倍、BUS 速度は 30 倍、ネットワーク速度は 100 倍にまで向上していま
す。一方、HDD は集積率で考えますと 10 倍以上向上していますが、速度自体は贔屓目
に見ても 1.5 倍です。 結果、HDD がボトルネックになり、思った程のパフォーマンス
が得られないどころか、遅延の原因になってしまうケースが現れるようになってきまし
た。 今回ご紹介するのはこの HDD の速度問題を解決する High IOPS アダプターです。
High IOPS アダプター本体
旧来の HDD は CPU から見ると SAS(または SATA)インターフェースから、RAID
コントローラーを経由し、HDD にアクセスしています。つまり、CPU から遠い位置に
存在していました。対して High IOPS アダプターは PCIe に挿しますので、メモリと同
等という極めて近い位置に存在しています。
また、High IOPS アダプターの中身を覗くと、同一の IC チップがずらっと並んでい
ます。さながら広大な畑の様相を呈していますが、これがキーとなる NAND フラッシ
ュメモリチップの集合体です。少々乱暴な言い方をしてしまうと、デジタルカメラのデ
ータ保存に利用される SD メモリカードやデータ保存に利用される USB メモリキーに利
用されているものの高信頼・高速版です。High IOPS アダプターはこの NAND フラッ
シュメモリチップを 200 個以上集積し並列処理する事で、パフォーマンスを稼ぎ出しま
す。
信頼性についてはどうでしょうか。HDD は磁気を帯びた物体をモーターで物理的に
回転させている為、機械的な故障が避けられません。それに対して、High IOPS アダプ
ターは電子的な動きのみですので、故障の発生率は格段に低くなります。
無論、ゼロではありません。SD メモリカードや USB メモリキーが突然使えなくなっ
た経験をお持ちの方も多いかと思います。これは NAND フラッシュメモリの半導体素
子自体が連続使用により破壊されてしまうのが原因なのですが、High IOPS アダプター
はそれに備えて、予備領域が用意されており、データの欠損を防いでいます。デフォル
トでは 20%の領域が割り当てられていますが、初期設定によりこの比率を変更すること
も可能です。
また、アダプター自体の信頼性を考えた場合には、同一のアダプターを 2 つ用意し、
ソフトミラーを行うことになりますが、旧来の HDD によるソフトミラーに比べるとオ
ーバーヘッドが格段に少なくなります。
NAND フラッシュメモリには書き込み回数制限というものがあります。結果、High
IOPS アダプターにも書き込み回数制限は存在しており、これを気にされる方も見受け
られます。では、実際にどの程度使えるのかを計算してみました。
768GB の製品で約 8PB の書き込みが可能とされています。毎日データが入れ替わる、
即ち 768GB の書き込みが発生すると想定すると、8PB に到達するのは 29.9 年です。更
に倍の書き込みがあると想定しても約 15 年です。システム自体の寿命を考えれば、十
分ではないでしょうか。
さて、気になるパフォーマンスです。弊社検証環境において、Oracle のベンチマーク
上で 500 倍以上の性能向上が確認できました。
ポイントとしては DISK I/O 性能が劇的に向上するため、逆に CPU やメモリが追い付
かなくなってしまうケースがあり、考慮する必要があるという事です。
300GB 15K HDD RAID1
785GB High IOPS アダプター
ベンチマークスコア
Readのみ
Read/Write混合
514
427
297,512
238,920
※1 同一サーバーの RHEL5.9 上で Orion11.1.0.7 を用いて測定
※2 DB は 10GB の領域をそれぞれに作成
※3 Read/Write 混合の場合、Write は 20%の確率でランダムに発生
RDB の劇的な性能向上は単に処理が短くなるだけではなく、今まではバッチに回さざ
るを得なかった処理をリアルタイム側に回すことすら可能にします。確かに高価ですが、
Storage 製品と比べると、意外に変わりがありません。検討する価値のある製品と言え
るのではないでしょうか。
まとめ
フラッシュテクノロジーを活用することで、RDB の性能を大きく・簡単に伸ばしていく
ことが可能 です。 データベースを高速化することで、以下のような悩みを一 挙に解決
することができます。
・アプリケーションのレスポンスが悪い
・バッチ処理が時間内に終わらなくなってきた
・データベースの専門家が居ないのでチューニングを施せない
・分散した多数の RDB サーバーを統合したい
解説:ITPS1 部 藤田知秀