企業の中で情報システム部門の役割が増しています。これまでの情報システム部門は開発や運用の多くを外部の業者やベンダに依存し、それらを管理することが仕事の中心でした。しかし経済状況や個人情報保護法のような規制の強化などの流れの中で外注化は徐々に削減され、情報システム部門自身がシステム開発と運用の主導権を取り戻そうとしています。
ITガバナンスの強化も、もう1つの大事なキーワードです。部門ごとに乱立し全社的な管理が難しかった部門サーバなどは、全体最適とガバナンスのために情報システム部門が統合管理することになるでしょう。
情報システム部門が置かれたこのような状況の中で、IBM DB2がどのような役割を果たすことができるのか? というのが本稿の主題です。
複数のハイパーバイザなど多様な環境に対応するDB2
社内のITリソースにおけるガバナンス強化の最大の武器として使われるのが、「サーバの集約」(サーバコンソリデーション)です。部門にちらばっていた多くのサーバを情報システム部門が集約し、サービスとして各部門や子会社へと提供します。
これによって、重複していた無駄なリソースをスリム化すると同時に運用効率を高め、さらに情報漏洩、バックアップやディザスタリカバリなどの面でセキュリティを高めることができます。各部門も面倒なサーバの管理からも開放されます。
集約されたサーバは、最終的には標準化されたハードウェア、仮想化ハイパーバイザ、OSなどへと収れんさせていく必要がありますが(そしてプライベートクラウド的なものへ進んでいくと思われますが)、当初はPCサーバ、Linuxサーバ、UNIXサーバなどのハードウェア、Windows、Linux、Solaris、HP-UX、AIXといったOS、それに仮想化ハイパーバイザなどが複数混在する環境からスタートせざるを得ません。
DB2は、こうしたサーバ集約のインフラ環境に対して、前述したすべてのOSに対応するだけでなく、リソースを効率的に利用するために不可欠な仮想化ハイパーバイザでも、主要な製品、VMware、Hyper-V、Xenのすべてに対応し動作保証しています。仮想環境でのデータベースの動作は、性能などの面で心配されがちですが、「IBMは仮想環境に関してどこよりも長い歴史と実績があります」(日本IBM テクノロジー・エバンジェリスト 中林紀彦氏)と自信をのぞかせています。
日本IBMは以前から「DB2はAIXだけではなくSolarisでもHP-UXでもLinuxでもWindowsにもちゃんと対応しています」とオープンさをアピールしていますが、IBM製品にまつわるイメージなのか、このことはあまり浸透していないかもしれません。
仮想環境に対応したライセンスでコスト効率も高く
DB2の仮想化対応は、ライセンスにも及んでいる点も指摘しておきましょう。DB2ではベースとなるハードウェアのCPU数ではなく仮想環境を単位としてライセンス可能なため、仮想環境下での効率的なライセンス利用が可能とのこと。
また、UNIXサーバが持つハードウェアによる仮想化機能では、例えば月末の繁忙期のみCPUを多く割り当てるといったこともよく行われます。DB2では、こうしたハードウェアの仮想化アーキテクチャに対応して、使った分だけライセンスが発生するような仕組みになっています。
仮想化に対応したライセンス体系かどうかはベンダによって差があるのが現状ですが、IBMは柔軟なライセンス体系を備えていることが分かります。
複数のデータベース統合を容易にするワークロード管理
サーバ統合を行うときには、データベースもできるだけ集約して運用したほうが運用効率を高める点で有利です。
しかし、負荷の高い処理が走った場合など、ほかのユーザーへの影響を気にする場面が増えます。月末のバッチ処理や分析を行うアプリケーションとOLTPを混在させてしまうと、重い処理が走ったときにOLTPのレスポンスに影響を与えてしまうのではないかということも気になるでしょう。
DB2はワークロード管理機能(図1)を備えており、例えば重いクエリは自動的に低い優先度で、OLTP処理は高い優先度で実行する、といった設定が可能です。これにより、種類の異なる操作を行うユーザーやアプリケーションでも1つのデータベースに統合しやすくなるでしょう。
優先度の設定でいちばん簡単なのはユーザーごと、もしくはアプリケーションごとの設定で、早いレスポンスが必要とされるオペレータや業務には高い優先度で、集計処理や分析などバッチ的な処理の人や業務には低い優先度で、といった設定はよく使われそうです。
クエリの実行コストを計算して一定の閾値以上だったら、あるいは大きすぎる一次表領域を使う場合に優先度を落とす、といった設定もできるので、間違ったクエリで多大な影響を被るといった事故も予防できます。
データ圧縮で過去のデータは小さく、性能向上も
データベース集約では、ストレージ容量も懸念事項になるかもしれませんが、最近のデータベースには標準でデータ圧縮機能が搭載されるようになりました。DB2にも当然その機能が含まれています。
DB2の圧縮機能(図2)は、「表全体のパターンを分析して圧縮辞書を作成するので、非常に効率よい圧縮を実現します」(中林氏)というように、DB2の目玉機能として紹介されることの多い機能です。過去のキャンペーン結果や古い売上げデータなど、たまにしか使われない大量のデータは、圧縮して集約することでストレージを節約しつつ運用コストを下げることができるでしょう。
しかし圧縮の対象は、こうした古いデータだけではありません。DB2の圧縮機能では、データ圧縮されたままでディスクの読み書きからバッファプールへの記憶まで行われます。一般にデータベースの性能はI/Oとキャッシュがボトルネックになることが多いため、圧縮して取り扱うデータが小さくなることで性能向上も期待できます。
自動チューニングも運用工数の削減に貢献してくれるでしょう。これは3分ほどの間隔で実行クエリをモニタし、それに合わせてDB2の設定が自動チューニングされる機能です。例えば昼と夜で動作パターンが変われば、それに合わせてチューニングも変わるようにできるため、ある程度自律的に効率の良い運用を行うことができるでしょう。
マニュアルチューニングを行う場合も、自動チューニングされたパラメータを起点に行うことで正確かつ効率の良い追い込みが可能です。
サーバ統合や効率的運用に沿ったデータベースを
ここでは情報システム部門がこれから果たすであろう役割の中で、DB2の持つ機能がどのような利点を提供するのかについて紹介してきました。このほかにもDB2にはXMLデータベース機能など独自の強みがありますが、それはまた別の機会に紹介するとしましょう。
今後の情報システム部は、全体最適なシステムの構築やガバナンスの強化など、より経営に密接な役割が求められます。その手段として、サーバ統合や効率的な運用に沿った機能を備えたデータベースも同時に求められることになるでしょう。