新・闘わないプログラマ No.27

NTがサーバーに向かない理由


はじめにお断りしておきます。「NTがサーバーに向かない理由」の「理由」は「わけ」と読んでください。間違っても「りゆう」と読んではいけません、私が許可しません :-)
よーするに、その程度の内容だ、と思って読んでいたければ幸いです。よもやいらっしゃらないとは思いますが、これを読めば「客がNTをサーバーにしたい、と要求しているのを止めさせるための説得の理由」とか「技術的見地から、UNIXをサーバーにする場合とNTをサーバーにする場合の比較」とか、が見つかるかもしれない、などと期待されている方は、時間の無駄です。ほかを当たってください :-)

先日、稼働中のNTサーバーの設定変更をしているときのことです。設定変更自体は大した内容では無かったのですが、台数が30台近くあって、結構な重労働でした。いつもなら、若いのにやらせるのですが、あいにく、みんな休んでいたり外出中だったりして、仕方なくおじさんの私がやるはめになりました。
「あ〜あ、UNIXならtelnetで入ってちょこちょこっと直すだけなんだけどなぁ」などとブチブチ言いながら作業をしていました。サーバーが一個所に固まってあるわけじゃないので、サーバーの配置図とにらめっこしながら、気分はほとんどオリエンテーリング(^^;)
作業自体は、サーバーのある場所に行って、Administrator(システム管理者のユーザー名、UNIXのrootに相当する)でログオン、ちょこちょこっと設定変更したのち、ログオフ、という簡単なものでした。
悲劇が起こったのは、もうあと数台を残すのみ、となったころでした。いいかげん面度臭くなってきた私は、やることがかなり雑になってきました。とはいえ、本番稼働中のサーバーですから、変なことをすれば大変な問題になります。
いつものごとく設定変更をして、ログオフします。さて、次のサーバーに行こうかと席を立ちかけたときに、異変に気づきました。NTはログオフすると、ログオンを要求するメッセージを表示するのですが、なぜかそれが表示されない。その変わりにハードディスクがいつまでもカラカラ言っている。そうこうしているうちに、画面が真っ黒になって本体の電源が切れてしまいました。

「やべー、ログオフしようとしてシャットダウンしてしまった(^^;;;;;)」

ここで少し解説しておきます。
NTでログオフの操作は、「スタートボタン」から「シャットダウン」を選び、表示されたダイアログボックスで「アプリケーションを終了し、ログオフする」を選択して「はい」ボタンを押します。
一方、シャットダウンの操作は、「スタートボタン」から「シャットダウン」を選び、表示されたダイアログボックスで「コンピュータをシャットダウンする」を選択して「はい」ボタンを押します。
もうお分かりですね、NTでは、ログオフとシャットダウンの操作がほとんど同じなんです。要するに、ダイアログボックスで、ログオフを選択するかシャットダウンを選択するか、だけの違いなんですね。しかも悪いことに、前回シャットダウンしていれば「シャットダウン」が、ログオフしていれば「ログオフ」があらかじめ選択されているのです(小さな親切、大きなお世話)。ですから、ダイアログボックスで選択内容をよく見ないで「はい」を押してしまう(またはEnterキーを押してしまう)と・・・・

一応言い訳しておきますけど、この機械、サーバーなんです。サーバーって365日24時間フル稼動で、シャットダウンする機会なんてまず無いんですね。だからほかのサーバーは皆、「ログオフ」があらかじめ選択された状態になっていたんですね。もちろん目では確認してますけどね、でもこれだけ「シャットダウン」が選択されていたなんて・・・
え? その後どうしたか、ですか? もちろん、慌てて立ち上げましたよ。あとは何食わぬ顔でほかのサーバーの設定をしましたです。結局止まっていたのは2〜3分くらいだったのではないでしょうか。別にクレームは来なかったようなので、ユーザーは気づかなかったのかなぁ・・・イベントログを見られてしまえば、リブートしたことはバレバレなんですが、まぁ、クレームが来なかったということで、よしとしましょう(おいおい)

しかしですね、どう見ても解せないのが、ログオフとシャットダウンの操作がほとんど同じだ、ということなんですね。このユーザーインターフェース、もともとはWindows95で採用されたものをそのままNTに持ってきているのです。まぁ、NTでもNT Workstationならそれでもいいかも知れませんよ、でもNT Serverではねぇ・・・・
クライアントでは、ログオフとシャットダウンが似たようなカテゴリに入ることはそれなりに理解できます。どちらも、いま実行しているアプリケーションを終了して、別のことを行おうとしているのですから。
でも、サーバーは違うんですよね。サーバーのプロセスの主体は、画面上に表示されるアプリケーションなどではなく、バックグラウンドで常時動作しているプロセス群(NTでは「サービス」、UNIXでは「デーモン」)なわけです。サーバーでは、ログオフとシャットダウンはまったく異なったカテゴリに属している操作なのです。ログオフは設定変更等の変更を行った後などに頻繁に行いますが、シャットダウンはよほどのことが無い限り行わない。

誤ってシャットダウンをしてしまわないようにする件については、「シャットダウンの権限が無いユーザーを作って、通常はそれで操作すればいいじゃないか」とおっしゃられる方もいらっしゃるかも知れません。確かにそれは可能です、ちゃんとそういうユーザーを設定すれば。でも、大概の場合、面倒なんでAdministratorだけでやってしまうことが多いです。
シャットダウンと言えば、NTはちょっと何か設定変更するたびにリブートを要求してきますけど、あれなんとかならんもんでしょうかね。サーバーはそんなに気軽にシャットダウンできないの! UNIXなら kill -HUP で済むようなものでも、すぐに「リブートしてください」ですからねぇ。余談ですけど。

NT Serverは、サーバー用OSにクライアント用のユーザーインターフェースを持ち込むことによって、一見誰にでも簡単にサーバーの設定が出来ますよ、というのを売りにしています。でも、そんなのははっきり言って、単なる幻想です。サーバーの設定が難しい、と言われているのは、操作が難しいからではなく、概念をちゃんと理解していないところからくるわけで、GUIで簡単操作、なんて言ってもまったくのナンセンスです。
また、クライアントのユーザーインターフェースをサーバーに持ち込むことによって、矛盾というか分かりづらさが発生しています。例えば、NTのコントロールパネルを見ているといいでしょう。そこには、Windows95でお馴染みのアイコンが並んでいて、一見やさしそうに見えます。でもそこには、いくつかのまったく別のカテゴリに属する設定項目が雑多に並んでいることに気づくはずです。そこにはOSの設定も、GUIの設定も、サーバーの設定も含まれています。
サーバーの設定は、実はコントロールパネルでやるものはあまり多くなく、専用のアプリケーションで行うものが多いのですが。

ところで、これをお読みの皆さんの中にも、NTをログオフしようとしてシャットダウンしてしまった経験をお持ちのかたいらっしゃいませんか? ほら、隠したってだめですよ。そこのあなた、やったことあるでしょ。ね、私だけじゃ無いよね、そんなことやるの。ね、ね、お願い、「私も間違ってシャットダウンしてしまったことがある」って言って。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp