連載
» 2009年09月03日 00時00分 公開

OpenLDAPによるディレクトリサーバ運用(1):もしもに備えるバックアップ、リストア(1) (1/2)

ユーザー情報や組織情報などを一元的に管理するディレクトリサーバは、企業システムの中で重要な役割を果たしています。オープンソースの「OpenLDAP」によるディレクトリサーバの構築方法を解説した前連載に続き、その運用方法を紹介していきます。(編集部)

[菊池研自,伊藤忠テクノソリューションズ株式会社]

 以前の連載「OpenLDAPで始めるディレクトリサーバ構築」では、OpenLDAPサーバの概要から基本設定までに焦点を当ててきました。今回から始まる「OpenLDAPによるディレクトリサーバ運用」では、OpenLDAPサーバの運用時に考慮しておくべき点や便利な管理機能に焦点を当てていきます。

 第1回となる今回と続く第2回では、ユーザーデータを蓄積していくサーバアプリケーションの運用管理に欠かせない「バックアップ」と「リストア」について説明していきます。なお、本連載ではCentOS(注1)5.3上で、執筆時点におけるOpenLDAP 2.4系の安定版(注2)を中心にコマンド実行例を添えて説明していきます。

関連記事:

連載記事 「OpenLDAPで始めるディレクトリサーバ構築」
http://www.atmarkit.co.jp/flinux/index/indexfiles/openldapindex.html

LinuxでLDAPサーバを構築するには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/904ldapserver.html

LDAPによるパスワードの一元管理
http://www.atmarkit.co.jp/flinux/rensai/root02/root02a.html


注1:CentOSは、エンタープライズ領域で最も実績のあるLinuxディストリビューションの完全なバイナリ互換を目的とした無償のディストリビューションです。

注2:OpenLDAPの安定版の確認は、http://www.openldap.org/software/download/より「Stable(Release)」を確認すると便利です。


OpenLDAPのバックアップ、リストア概要

 ディレクトリサーバが受け取るリクエストの割合は、一般的なアプリケーションのデータストアとして利用するデータベースサーバと比較して、参照頻度が高く、更新頻度が少ない傾向があります。しかしながら、ディレクトリサーバはメールサーバなどのビジネスインフラとして利用される重要なシステムと連携することが多く、また、再インストールでは復元することのできないユーザーデータを蓄積しています。

 大規模な組織になれば、レプリケーション技術を用いてディレクトリデータを冗長化することで、障害時にも対処できる構成を取ることが一般的です。しかしバックアップ、リストアは、レプリケーションと異なり、ミスオペレーションによるエントリデータの削除や変更がスレーブ側に伝播することがなく、ある時点のデータを複数世代保持して復元できます。また反対に、レプリケーションサーバを用意せずとも障害に備えてデータを外部記憶媒体に退避できる点もあり、運用管理に欠かせない技術の1つです。

 OpenLDAPでのディレクトリデータのバックアップ、リストアは、

  • シンプルに、システム側から提供されるcptarなどのコマンドを用いてファイル単位でバックアップする方法
  • オンライン処理が可能なOpenLDAPが提供するツールコマンドを利用してデータをLDIFファイルへと抽出する方法
  • OpenLDAPのバックエンドデータベースが提供するコマンドを用いてバックアップし、トランザクション単位でリストア、ロールフォワードする方法

などから選択することができます。

 これら複数のバックアップ方法を純粋な技術面から選択するには、運用しているOpenLDAPサーバに要求されるサービスレベルに応じ、大まかに

  • バックアップ実行中にサービスの停止が可能であるか
  • リカバリ時に、どこまでの精度でのデータの復旧が必要か

を考慮して選択することができます(図1)。

図1 OpenLDAPのバックアップ方法の選択 図1 OpenLDAPのバックアップ方法の選択

 さらに、バックアップ、リストアの設計レベルでは、技術だけでカバーできない部分を補うため、

  • いつ、どれだけの間隔でバックアップを取得するか
  • どのような障害を想定し、バックアップファイルをどこに保存するか
  • どれだけの世代分、またはどれだけの期間バックアップデータを保持するか
  • どれだけ迅速にバックアップデータをリストアしサービスを復旧させるか

といった点も、考慮することになるでしょう。

バックアップ対象ファイル

 それぞれのバックアップ方法を説明する前に、ここではOpenLDAPのバックエンドデータベースとして、デフォルトで選択されるBerkeley DBを利用することを前提に、バックアップが必要となるファイルを説明していきます。

 連載「OpenLDAPで始めるディレクトリサーバ構築」の第2回で説明したように、Berkeley DBとOpenLDAPがインストールされていれば、slapd.confの「datadir」ディレクティブで指定されたデータディレクトリ以下に、次のようなファイルが作成されているはずです。

# cd /usr/local/openldap-2.4.16
# ls -l var/openldap-data

合計 47784
-rw------- 1 ldap ldap        949  7月 18 05:42 DB_CONFIG
-rw------- 1 ldap ldap      24576  7月 23 21:32 __db.001
-rw------- 1 ldap ldap    9093120  7月 23 21:32 __db.002
-rw------- 1 ldap ldap  335552512  7月 23 21:32 __db.003
-rw------- 1 ldap ldap    2359296  7月 23 21:32 __db.004
-rw------- 1 ldap ldap     729088  7月 23 21:32 __db.005
-rw------- 1 ldap ldap      32768  7月 23 21:32 __db.006
-rw------- 1 ldap ldap       4096  7月 23 21:35 alock
-rw------- 1 ldap ldap    6344704  7月 18 05:42 dn2id.bdb
-rw------- 1 ldap ldap   19038208  7月 18 05:42 id2entry.bdb
-rw------- 1 ldap ldap   10485760  7月 23 21:35 log.0000000001
-rw------- 1 ldap ldap    1069056  7月 18 05:42 objectClass.bdb
…[略]…

 上記のコマンドでリストされたそれぞれのファイルは、以下のような役割を担っています。

ファイル名 役割
DB_CONFIG Berkeley DBの設定ファイル。Berkeley DBのホームディレクトリ(OpenLDAPの「datadir」以下)に配置する
__db.[00X] Berkeley DBが共有利用するメモリ領域(shared memory regions)がマッピングされたファイル
alock OpenLDAPがBerkeley DBの重複利用や正常停止を管理するために利用するアクセスロック(Access LOCK)ファイル
dn2id.bdb、id2entry.bdb OpenLDAPのエントリ情報を蓄積するデータファイル。OpenLDAPではメインのデータファイルとなる
log.[000000000X] Berkeley DBのトランザクションログファイル。データファイルリストア後のロールフォワード処理に利用可能
[インデックス指定属性名].bdb OpenLDAPのインデックス情報を蓄積するデータファイル。インデックスを指定した属性ごとに作成される

 Berkeley DBの設定を記述したDB_CONFIGファイルと、OpenLDAPのエントリ情報とインデックス情報を記録したBerkeley DBのデータファイルである*.bdbは、ファイル単位でのバックアップ時に必須となるファイルです。一方、db.[00X]ファイルは、Berkeley DBの実行時に作成され、Berkeley DBのプロセス、スレッドが利用する共有メモリ領域の情報が記録されるファイルです。これらのファイルをバックアップする必要はありません。

 alockファイルは、存在しなければOpenLDAPがBerkeley DBの利用時に作成します。このファイルにはBerkeley DBが正常にシャットダウンされたかどうかが記録され、正常にシャットダウンされていない場合は、OpenLDAPの起動時に自動リカバリを試みることができます。必須ではありませんが、ファイル単位でバックアップする場合は含めておいた方がよいでしょう。

 log.[000000000X]ファイルは、リストア後のBerkeley DBを起動するのに最低1ファイルは必要となります。採用するバックアップ、リストア方法にもよりますが、データファイルのリストア後のロールフォワード処理にも利用可能なファイルであるため、バックアップセットに含めるかの判断は、バックアップ、リストア方式とともに検討が必要です(注3)。

注3:今回の「ファイル単位でバックアップする方法」では、すべてのトランザクションファイルをバックアップしています。今後、本連載でもBerkeley DBのトランザクションログファイルの管理についても取り上げる予定です。


       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。