SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

DB Press(AD)

PostgreSQLとSymfowareの融合―Open I/F はじめました―

PostgreSQLを選んだ理由

 では、オープンソースの中でもなぜPostgreSQLを、富士通は選んだのか。1つには、長年にわたりPostgreSQLを活用、利用してきたノウハウが同社にあったことだと秀嶋氏は言う。さらに、MySQLのようなベンダーコントロールのオープンソース製品よりも、コミュニティがしっかりと独立していて、先行きが見通しやすいのも選択の理由だった。

「サポート、信頼性、性能という3つが同等に必要です」と秀嶋氏。これらがすべて揃っていれば、ミッションクリティカルな領域でも使える。PostgreSQL I/Fの下に位置するデータベースエンジン部分を、ミッションクリティカルで培ったSymfowarの技術をプラスして強化することで、このサポート、信頼性、性能という3つの条件を満たせるというわけだ。それではミッションクリティカルでも通用するために富士通はどういったことを行ったのか―「3つの条件」があるが、ここではそのうちの一つ、「信頼性」に焦点を当てて説明が行われた。

 実際に信頼性を向上するためには、いったいどんなことを行ったのか。1つが、WAL(Write Ahead Log:ログ先行書き込み)の二重化、さらにページチェックサム、透過的データ暗号化という3つの機能で、オリジナルのPostgreSQLにはない信頼性の大幅な向上を成し遂げている。

 まずは、WALの二重化だが「オリジナルのPostgreSQLだと、ログの書き込み先のディスク障害などでWALがロストすることがあります。その場合は、結果的にユーザーの業務データをロスすることにもなりかねません」と秀嶋氏。その対策のために、WALの二重化を行った。二重化のために専用のプロセスを加え、それを使って並列に別のディスクにWALを書き出す。別プロセスなので、本体のデータベース処理への影響もほとんど発生しない。

 また、ページチェックサム機能については、PostgreSQL 9.3からは本体機能として実装されるようになったが、富士通ではそれ以前からこれを実装している。

 「たしかに9.3でチェックサム機能は実装されましたが、オーバーヘッドがかなり大きいものです。そりゃチェックサムのために8Kものサイズに対し演算していたら、それはオーバーヘッドがかなりありますよね、という話です」(秀嶋氏)

 これに対し富士通の仕組みでは、ディスクにページを書き出す際、各セクタの一部のデータを使って、独自の方法でチェックサム値を計算し、ページ・ヘッダに記録する。ディスクからページを読み込んだときは、同じ方法でチェックサム値を計算し、ページ・ヘッダに記録した値と照合する。

「この考え方は、Symfowareでずっと行ってきている方法です。データ破損が起こるときは、だいたいセクタの内容全体が破損します。ですので、各セクタの一部のデータを検査しておけば、破損はほぼ間違いなく見つけられるのです。これは、富士通の長年の経験によるものです」(秀嶋氏)

 考え方としては、100%の検知率ではなくてもほぼ問題なく破壊を見つけられる範囲にあるということ。これにより、性能は殺さずに極力障害を見つけられるわけだ。このあたりの性能とのバランス加減も、ミッションクリティカル領域での運用では重要なポイントだと言えるだろう。

 もう1つの信頼性向上のための透過的データ暗号化でも、性能とのバランスをうまくとっている。現状のPostgreSQLでは、列を指定し暗号化を行うことができる。この方法では、結局は既存のSQLを変えないとうまくアプリケーションは動かない。さらに、SQLの単位で暗号化、複合をやることになり、そのオーバーヘッドもかなり大きくなってしまう。

  この対策として富士通がとった方法は、物理媒体に書くとき、読むときにだけデータを暗号化、復号し、アプリケーションの変更を不要にしたのだ。また、必要なものだけを暗号化することでオーバーヘッドを小さくした。これにより、データファイルが暗号化されるので、仮にそれを盗まれても情報が漏洩する心配はない。さらに、この暗号化、複合の処理にIntel Xeonチップの暗号化処理機能を活用する点も性能改善に大きく寄与する。暗号化のところは、チップに任せることでかなり高速化するという。

 これら暗号化、複合の処理については、すべてSymfowareのデータベースエンジン側で管理する。なので、アプリケーション側では、暗号化、複合を意識する必要はない。キー管理もデータベースで行うので、手間もほとんどかからない。

 暗号化の実装としては、OpenSSLを採用している。そして、具体的にはユーザーデータを含む主フォークを暗号化している。

 「結果的にWALも暗号化しているので、レプリケーションの際にデータをそのまま流しても、通信網が暗号化されていなくても途中で情報漏洩する心配はありません」(秀嶋氏)

 暗号化キーも2段階に保護されており、テーブル空間ごとに暗号化キーを用意し、暗号化方式はAES-256を採用することで、ミッションクリティカルでも通用するように安全性を確保している。

 この暗号化機能の検証を行っており、Xeonチップの暗号化機能を活用することで、かなり高速に処理できるとの結果も出ている。とくにバッチ処理、あるいはインデックス作成を含むロードなど負荷の高い処理において、Xeonの機能を利用することでかなり性能が向上することが明らかになっている。

 この他にも、オリジナルのPostgreSQLにはない機能を追加する予定があるとのこと。たとえば、NCHAR拡張を行っており、これについてはオープンソースのほうにフィードバックできないかとも考えていると秀嶋氏。すでに、GUIを用いワンクリックでバックアップ/リカバリー、あるいはコマンドによる一括でのバックアップ/リカバリーの機能は実装済みだ。

次のページ
富士通ハードウェアとの組み合わせで即日利用できるアプライアンスに

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
DB Press連載記事一覧

もっと読む

この記事の著者

谷川 耕一(タニカワ コウイチ)

EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/5380 2013/12/05 07:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング