本文へジャンプ

ソフトウェア > Lotus > Lotus Developer Domain > 製品別技術情報 > Lotus Notes/Domino > 

LDD Today

インタビュー:Jim Rouleau, Domino 6の可用性を語る


Lotus Software
by Jim Rouleau + Laura Rutherford
レベル:初心者
対象:Domino 6
原文の掲載:2002年6月4日

LDD Today の原文(US)

インデックス
サーバーの可用性についてお聞かせください。この言葉の意味、ユーザーに与える影響、さらに企業のネットワークに与える影響はどうですか?
ユーザーが必要とするものを使えないと、という表現をされましたが、その具体例は?
サーバーの可用性を向上または強化させるDomino 6の機能についてまとめてください。
自動による障害復旧機能についてお聞きします。これらの機能はDomino の新機能ですか、それともR5でも利用できましたか?
Domino 6では、UNIXで提供した障害復旧機能を改良しましたか?
自動的な障害復旧機能は、なぜ、ユーザーやシステム管理者にとって特に重要なのでしょうか?
サーバーの可用性の機能は製品の標準になっていますが、これを使用するためにシステム管理者は何か設定が必要ですか?
どのような経緯でDomino 6 に障害復旧機能を導入しましたか?カスタマーからの要求はありましたか?
障害復旧機能をNT用に設計するとき、どのような困難がありましたか?
障害復旧はUNIXの方が簡単なのですか?
Domino 6以降のサーバーの可用性について、どのような展望をお持ちですか?

サーバーを起動し稼働させているからこそ、人々は作業を進められる。サーバーが稼働し続けることは、基本的だがクリティカルなタスクであり、サーバーの可用性向上に対する最大の目標でもある。今月、Jim Rouleauと会う機会を得て、Domino 6サーバーの可用性に関する新機能と、自動による障害復旧機能がどのようにDomino 6サーバーの可用性を変えていくかについて話を聞いた。また、彼はこれらの機能がDomino 6に導入される経緯や将来のリリースについての彼自身の思いも語ってくれた。



サーバーの可用性についてお聞かせください。この言葉の意味、ユーザーに与える影響、さらに企業のネットワークに与える影響はどうですか?

可用性は、単純に言うと、製品を使用できる時間の長さです。ユーザーはこう思うでしょう「では、電子メールを使えるとき、これはサーバーが利用可能であることを意味している」。ユーザーは、仕事を進める上で必要なものが使えないと、不満が募り、仕事が止まってしまいます。1つのサーバーがダウンすると、会社全体にわたって多くの人が影響を受ける可能性があります。一瞬のうちに、何百、何千ものユーザーに影響が及びます。これはたいへんな事態です。システム管理者は問題の解決に奔走し、会社は混乱してしまうでしょう。

可用性(Availability)は、より広義のRASという用語のAにあたります。RASは、Reliability(信頼性)、Availability(可用性)、Serviceability(保守性)を意味します。IBMはすべての製品にわたり、これらのエリアの改善を図る大きな努力を開始しています。私は、Dominoにおけるこれらのエリアを扱うチームのプロジェクトリーダーです。
 
上に戻る
 
ユーザーが必要とするものを使えないと、という表現をされましたが、その具体例は?

たとえば、私の経験ですが、時間をかけてメールのメッセージを入力し、送信しようとしたときにサーバーがダウンして、送信できなかったことがあります。また、何か重要なものを期待していたときに、サーバーがダウンしたこともあります。このようなことが起こると、ひどくがっかりした気持ちになります。私たちは、人々が頼りにして、その上にビジネスを構築するような製品を売っています。人々は私たちの製品を信頼しています。私たちは、私たちの役割を遂行し、製品の可用性を維持することが重要です。
 
上に戻る
 
サーバーの可用性を向上または強化させるDomino 6の機能についてまとめてください。

自動による障害復旧機能があります。トランザクションログにおけるビューのロギングもあります。ビューのロギングは、$ServerAccessビューや$Usersビューなどの特殊なビューに設けました。これらのビューがログに記録されるので、クラッシュの後でサーバーを再起動するときも、これらの主要なビューを再構築する必要がなく、クラッシュ後のサーバーの再起動が早くなります。また、再起動を早くするために、新しいデータベースキャッシュを開発しました。これによって、大きなサーバーでも、再起動後にすべてのデータベースを再起動する必要がありません。以上が、私たちが追加した新しい障害復旧機能です。R4やR5で導入した基本機能にも磨きをかけています。たとえば、修復(fixup)機能が強化され、サーバーの実行中でもデータベースを修復できます。これまでは、開かれているデータベースを修復するときは、サーバーを停止する必要がありました。

また、私たちはJavaベースのDominoコンソールも開発しました。これを使用するとサーバーにアクセスできるので、間接的に役に立つでしょう。サーバーがダウンしていてもアクセスでき、より迅速に起動し直して実行することが可能です。これは、すべてのオペレーティングシステムのプラットフォームで利用できます。
(この新機能の詳細については、Iris Todayのインタビュー「Mallareddy Karra on the Domino Console(US)」を参照のこと)

Jim Rouleau
 
上に戻る
 
自動による障害復旧機能についてお聞きします。これらの機能はDomino の新機能ですか、それともR5でも利用できましたか?

正確にはDominoの新機能ではありません。復旧機能は実際にはR4からスタートしていますが、最初はUNIXプラットフォームに限られていました。これらの機能はドキュメントに掲載されることも、デモで紹介されることなく、ほんの一部の人しか知りませんでした。当時はIBMが私たちの最大のカスタマーでした。IBMは可用性を重視し、それを求めました。使用していたのはAIXサーバーでした。基本的に、この機能(障害復旧)は知っている人だけをサポートするための情報でしたが、それが漏れ伝わったのでしょう。しかし、正式には一度も表明されませんでした。

その後、私は2?3年モバイル製品を担当した後、R5でUNIXに戻りましたが、そのときに、提案したのです。NTを含むすべてのプラットフォームで障害復旧を利用できるようにしよう、と。私は作業を開始し、約1年半の後に、正式に表明できる状態、つまり、現実的で堅牢な機能を得られたのです。
 
上に戻る
 
Domino 6では、UNIXで提供した障害復旧機能を改良しましたか?

はい。Windows用の仕事をしていたのと同じ時期に、私たちは埋めなければならない大きなギャップを埋めました。それができたことはたいへん大きな喜びでした。当時、よくサーバーがダウンして、再起動していました。そのときにIBMの担当者はこう言ったのです。「では、これが発生したときに、スクリプトまたはプログラムを実行できるようにして欲しい」。彼らは障害復旧を使用して管理者を呼び出し、サーバークラッシュのことを通知したのだと思います。そこで、私たちはそれを強化し、NOTES.INI変数を用意し、スクリプトを起動できるようにしました。最近になって、サーバーがクラッシュし、自動で再起動したことを通知する電子メールをシステム管理者に自動的に送信する機能を追加しました。

昨年、DevConに参加し、何人かの開発者と話をしました。私は、NT用の障害復旧をどのように行うのかを説明したのですが、彼らはそのような機能は使えないだろうと言うのです。なぜなら、Dominoは初期化のときによくクラッシュするという問題があり、このような場合、途中まで進んでクラッシュ、再起動して、また途中でクラッシュ、これを延々と続けるそうです。この会話をヒントにして、システム管理者が回数を制限できる機能を追加しました。たとえば、5分以内にサーバーが3回クラッシュしたときは、それ以上再起動しないよう設定できます。この場合、クラッシュしたまま放置することになります。
 
上に戻る
 
自動的な障害復旧機能は、なぜ、ユーザーやシステム管理者にとって特に重要なのでしょうか?

障害復旧機能をオフにしたサーバーがクラッシュすると、サーバーのクラッシュを示す兆候が現れますが、もともと、サーバーはひっそりとダウンするものです。システム管理者は状況を把握し、何らかの対策を講じなければならず、すべてのプロセスを終了させ、サーバーを完全に停止してから、再起動します。障害復旧機能はこれらの作業を自動的に実行します。システム管理者が動き回り、すべてを停止して再起動する代わりに、このプロセスが自動的に機能します。つまり、人間の手間を省くことができるのです。

利点はスピードです。たとえば、メールが使えないというユーザーからのクレームをシステム管理者が聞き、実際に何が原因なのかを特定するのを待たなくても、サーバーは自動的に故障箇所を検出し、すべてを停止させ、スクリプトを起動し(設定されている場合)、システムを元に戻します。秒単位までのなるべく短い時間でサーバーが復旧します。面白いことに、接続し直す必要があるのに、サーバーがダウンしたことにさえ気づかないユーザーもいます。

ユーザーにとってのもう一つの利点は、クライアントのクラッシュに対する精神的な要求から生じます。クライアントがクラッシュしたとき、ユーザーはすべてのプロセスを終了させるユーティリティを実行しなければならないときがあります。それ以外の場合は、システムの再起動が必要です。クライアントユーザーはこう言います「障害復旧機能を使用して、この問題を終わりにしたい」。そこで、私たちはNotes 6でこれを解決しました。クライアントがクラッシュしても、ユーザーは再起動するだけでよいのです。他の作業は一切必要ありません。この機能は自動的に組み込まれるので、設定は不要です。
 
上に戻る
 
サーバーの可用性の機能は製品の標準になっていますが、これを使用するためにシステム管理者は何か設定が必要ですか?

障害復旧はサーバー文書内の1セクションで、有効と無効を切り替えられます。私たちはこれをセットアッププロセスに入れ、システム管理者がセットアップ時に障害復旧のオン/オフを切り替えられるようにしたいと思っています。いずれにせよ、デフォルトでは無効にするつもりです。システム管理者の現在のサーバー管理スタイルに影響を与えたくないからです。
 
上に戻る
 
どのような経緯でDomino 6 に障害復旧機能を導入しましたか?カスタマーからの要求はありましたか?

カスタマーは実際にはこの機能のことを知らないので、リクエストはありませんでした。私は、障害復旧機能がUNIXで有効に機能し、大規模なカスタマーはこの機能を使用してメリットを受けていることを見てきました。そして、誰もがこの機能から恩恵を受けられると思いました。しかし、NT用ではなく、UNIX用に設計されていたので、誰もNT用に拡張しようとはしませんでした。そこで、私が「やりましょう」と言ったのです。
 
上に戻る
 
障害復旧機能をNT用に設計するとき、どのような困難がありましたか?

UNIX用の障害復旧機能を設計するときは、UNIXオペレーティングシステム固有の特長を利用しました。NTにはない機能がUNIXにはあったのです。これが、UNIX用なら障害復旧機能を設計できると思った一番の理由です。しかし、NT用に同等の機能を設計する時が来たのです。

サーバーのパスワードについて考えてみましょう。通常は、サーバーのコンソールがあり、使用者にパスワード用のプロンプトを表示します。障害復旧ではこれがどのように働くのでしょうか。システム管理者はパスワードを物理的にタイプしなければならず、これが障害復旧全体の目的を損ねてしまいます。このため、最初に必要なことは、再起動時に使えるようにパスワードを保存することでした。もちろん、非常にセキュアな方法で。UNIXでは、パスワードはコード化され、カーネルメモリに蓄えられます。私たちはNTの場合も同様の方法を試み、パスワードをコード化し、共有メモリに保管しました。

しかし、NTではすべてのプロセスが終了すると、共有メモリも消えてしまいます。ここで工夫が必要になります。すべてがシャットダウンされるときに、特殊なプロセスを起動します。このプロセスは、サーバーが回復してメモリを利用できるようになるまで、パスワードメモリを保持し続けます。このように、障害復旧機能はUNIX用に設計されていたので、NT用の障害復旧機能を開発するまでたくさんの試行錯誤を行いました。
 
上に戻る
 
障害復旧はUNIXの方が簡単なのですか?

私はたぶん少し単純に言ってしまっているかもしれませんが、Domino以外で、自ら停止して自動的に再起動する機能を持った製品を知りません。ほとんどの製品は、クラッシュするときにはクラッシュします。サーバーはクラッシュするので、可用性が大きなテーマとなります。使えないものは良くありません。Dominoのクロスプラットフォームの可用性オプションに加え、私たちは各プラットフォームベンダーとも協力し、各プラットフォームが提供する可用性の機能を取り込んできました。可用性はTCO(Total Cost of Ownership)を減少させるので、重要なのです 。
 
上に戻る
 
Domino 6以降のサーバーの可用性について、どのような展望をお持ちですか?

もし、カスタマーから障害復旧機能の強化を求められたら、それに対処するでしょう。しかし、一番力を注ぎたいのは保守性(serviceability)の分野です。なぜ、サーバーがクラッシュするのかを分析できるようになりたいのです。サーバーを素早く回復できれば、可用性の面からは成功といえますが、問題を解決し、二度とこのようなことが起こらないようにするためには、なぜサーバーがクラッシュしたのかを理解する必要があります。何が悪かったのかを示せるだけの情報を得る前に、カスタマーはクラッシュのシナリオを何度も繰り返しています。私たちはこれを減少させ、最終的にはなくしてしまいたい、という希望を持っています。

もう一つの目標は、最初の障害発生時のデータ取得機能を改善し、サーバーが最初にクラッシュしたときに、原因を分析して問題を解決するのに必要な情報を得られるようにすることです。これは、Domino 6のリリースを通して注力してきた、継続中の目標です。このチャレンジによって、当分は忙しいでしょう。しかし、私はそれを楽しみにしています。それは、これまでにカスタマーを幸福にしたという幸運に恵まれ、それがとても満足できるものだからです。



Jim Rouleauについて
JimはWestfordから20マイルほど離れたFitchburg, MAで生まれ育った。現在でも、そこで仕事をしている。彼は空軍でロシア語の翻訳者として6年を過ごした。また、フランス語も堪能で、Quebecで過ごすことを楽しんでいる。空軍を退役した後、彼は学位を取得した。Fitchburg州立大学で、コンピュータサイエンスと数学の学位を取得し、さらにコンピュータサイエンスではマスターの学位も得ている。彼のコンピュータ分野での職歴は13年を数える。Jimは1994年にLotusに入社した(そして、Dominoを担当)。彼は妻のDebと猫とOreoとともに、Gardner, MAに暮らしている。家族、家事、そしてギターで毎日が忙しい。また、夫婦での旅行を楽しんでいる。
 
上に戻る