IIS 6.0 を復旧してみる

SERVER


Web サーバを移行してみる

開発用 Web サーバを、Networld 社の提供している VMware Workstation 4.0 上の Windows Server 2003 から、物理 PC の Windows Server 2003 へ移動してみようと思ったのが、今回の事の発端です。

設定から新たに Web サーバを新設しなおしてデータを転送してしまおうかとも思ったのですけど、せっかくなので障害時の復旧という想定でやってみることにしたのでした。なお、IIS 5.0 以前と IIS 6.0 とではいろいろと少し違うらしいので、ここでは Windows Server 2003 の IIS でのお話です。

 

手順としてはおそらく、IIS 構成をバックアップしてそれを持ってきて、そしてサイトデータを適切な場所へ移動、基本的にはこのような感じなのでしょうか。

他にも COM コンポーネントを利用している場合にはそれもインストールするとして、気になるのはアクセス権限のあたりです。コピーした後に Server Extensions の確認で権限を修正すれば元に戻るのでしょうか。ともあれ権限についてはしっかりと自身で把握しておいた方が良さそうな気もします。それと IIS の構成をバックアップしたとなると、データやログのパス指定などもそのまま渡されるでしょうから、その辺りも気になるところです。

それと SSL のサイトの証明書についての取り扱いも、注意が必要そうです。

 

その辺りを踏まえてもう少し調べてみると、やっぱり IIS のメタベース (構成) をバックアップした場合はコンテンツ (サイトデータ) も別にバックアップしないといけないことと、復元先ではドライブやパスなども一致させる必要があるとのことでした。

SSL を利用している場合は、証明書がインストールしていないと、メタベースを復元しただけではそのサイトへアクセスしたときにエラーとなるそうです。これを修復するには、証明書を元と同じストアに配置する必要があるとのことです。

また、サーバが異なる場合にはまたバックアップに際にも注意が必要のようでした。パスワードで保護した状態でないとダメだとかどうだとか、この辺りはよくわからないのですけど一応気にしておくのが良さそうです。

 

そんなこんな調べてみたのですけど、いまひとつ手ごろなバックアップはなさそうですね。これらを踏まえて手順としては次のような感じになるのでしょうか。あくまでも推測ですけど。

バックアップ時の注意時点としては…。

  • 構成をパスワード付きでバックアップする。
  • サイトデータをバックアップする。
  • サイトの権限設定を把握しておく。
  • SSL サイトを使用している場合は証明書をバックアップする。
  • COM コンポーネントを利用している場合はそれらをバックアップする。

復元時の注意としては…。

  • 構成を復元する。
  • サイトデータを復元する。
  • バックアップしておいた証明書をインストールする。
  • パスが変わる場合は、IIS の設定を確認して調整する。
  • FrontPage Server Extensions を利用していた場合は Server Extensions の確認手続きを行う。
  • データのアクセス権限を調整する。
  • COM コンポーネントをインストールする。

想像してみただけですけど、これくらいの手間と配慮が必要な気がします。ハードディスクが 1 台だけの場合、故障したらコンピュータの交換と似たようなものでしょうから、これらを踏まえてバックアップしないといけないのはなんとも厄介そうです。

これなら設定状況を細かくではなく大雑把にメモしておいて、バックアップは COM とデータファイルのみでも良さそうな気がします。インストールしなおして改めて設定しなおした方が復旧も早そうな気もしますけど、とりあえず練習がてら体験として復旧作業をやってみようと思います。

 

旧サーバをバックアップする

とりあえず、IIS 6.0 のメタベースをバックアップしてみます。

IIS の 「インターネット インフォメーション サービス (IIS) マネージャ」 を起動して PC 名で右クリック、「全てのタスク」 から 「構成のバックアップと復元」 を選択します。そして 「バックアップの作成」 を選んで、バックアップ名を指定します。

このとき今回は別のコンピュータへの復元を予定しているので、パスワードも指定します。…と、今回に限らずともバックアップの際にはシステムの入れ直しも想定して、パスワードを指定しておいた方が良さそうな気がします。

構成のバックアップ手続きが終わったら、"C:\WINDOWS\system32\inetsrv\MetaBack\" フォルダに指定した名前でバックアップファイルが保存されているのでそれをとりあえずどこかへコピーしておきます。

なお、2 つほどファイルが出来ていましたけど、拡張子が MD0 の方は IIS 周りの設定のようでした。テキストエディタでも普通に参照できるので、パスの変更があった場合はここで調整することも出来そうです。SC0 の方も参照することは出来たのですけど、何の設定か良くわからず、またファイルの最初の方に編集しないでくれとの注意書きがあったので、念のため MD0 の方も含めて取り扱いには気をつけておくのが良いかもしれませんね。

 

そして SSL を利用している場合は証明書のバックアップをする必要があるのでしょうけど、今回は使用していないのでバックアップ実験は行いませんでした。

バックアップする場合は、該当するサイトのプロパティから証明書関連の操作を行えばエクスポートできそうな感じがします。ただ、実際に試した訳ではないので本当にちゃんとそういったことが出来るようになっているかは判りませんけど。

 

後は COM コンポーネントとデータファイルのバックアップです。

とりあえず良さそうな方法が思い当たらなかったので、Windows 標準の ZIP 圧縮を使ってアーカイブにまとめてそれを持ってくる形にしました。これを新サーバの方で展開することにします。なお権限などの調整を行えるよう、どんなアクセス権限が設定がなされているかも確認しておくこととします。

あとそういえば、Windows Server 2003 にも "ntbackup" というバックアップツールがあったので、それも一応使ってみることにしました。

内容は先ほどバックアップしたものと同じなので重複しますけど、ZIP の展開と再配置ならいつでも出来ることなので、今回は主にこちらでの復元を試してみようかと思います。バックアップ内容はサイトデータだけで、システム状態のバックアップは含まれていません。

 

新サーバへ復旧作業を行う

いよいよ復元手続きを行ってみます。

その作業に先立ってとりあえず IIS の構成をバックアップするだけしておくとして…、続いてバックアップしておいた IIS の構成情報を "C:\WINDOWS\system32\inetsrv\MetaBack\" の方へコピーします。

そうして IIS のサービスマネージャにて 「構成のバックアップと復元」 を行おうとすると、先ほど旧サーバでバックアップした "場所" (構成名) を選択することが出来るので、それを選んで 「復元」 ボタンを押します。このときパスワードの入力を求められるので、バックアップ時に設定したパスワードを入力します。

これで IIS の構成情報の復元は完了しました。

まだデータ周りを復元していないので、選択してもパスが間違っているようなエラーが表示されてしまいますけど、それでもプロパティも正常に参照することが出来るので修正も利きますし、とりあえずは損傷を受けたときに最初から入力しなおすよりは断然楽そうでした。

 

続いてデータの復元です。

"ntbackup" にてバックアップしておいたファイルをダブルクリックすると、"ntbackup" ウィザードが開始されます。

「ファイルと設定を復元する」 を選択して次へ進むと、復元項目の選択になるので、まずは 「参照」 ボタンを押して復元したいバックアップファイルを選択します。するとバックアップに含まれるファイルのうち復元したいものを選択することが出来るので、必要なもの全てにチェックを入れて次へ進みます。

基本的にはこれで手続き完了なのですけど、今回もそうなのですけど、バックアップ以前の場所と復元の場所 (パス) とが違う場合は 「詳細設定」 ボタンを押して、復元先として 「場所の指定」 など適切な物を選択しておきます。

その場所にファイルが存在していた場合に上書きするかどうかの指定や、セキュリティ設定の復元を行うかなどを選択したら、復元手続きの開始となります。

 

これでデータの復元は完了でした。

詳細設定にて選択できた通り、権限まわりもバックアップ前のものが適用されていたので手間がかからず、あとは適切なフォルダへデータを移動してあげればよかったので、バックアップするならば "ntbackup" を積極的に使ってゆくのが良さそうです。

データの復元が完了したら、フォルダ構成が変わってなければ必要ないでしょうけど今回はちょっとした都合で変更されることとなったので、IIS のサイト設定をひとつひとつ調整しておきます。

 

他にも気になるところとして、IUSER_ や IWAM_ で始まる IIS 固有のアカウントもあったのですけど、これらは不思議と旧環境のものが引き継がれ、Windows のアカウントにもそれらが自動的に登録されていました。具体的なタイミングは確認しなかったのですけど、おそらく IIS の構成を復元した際にそれらも追加されたのでしょう。

あとは必要な COM コンポーネントをインストールして復元は完了となると思われたのですけど、どうやら FrontPage Server Extensions が無効となっているようでした。

構成に含まれないのか、または構成を復元した後にローカルパスの修正を行ったからかは判らないのですけど、このままだと FrontPage での編集が出来ないので、改めて Server Extensions のインストールを行ってみることにしました。

該当するサイトにて 「全てのタスク」 から 「Server Extensions 2002 の設定」 の設定を改めて行ってみます。

そうしてみたところ、フォルダの権限は初期に戻りましたが、FrontPage にて開くことが可能となりました。Sub Web の方も維持されていたし、"発行しない" 設定になっていた文書もそのまま引継ぎ発行しない設定になっていたので、権限以外のそういう細かな部分は問題なく移行出来ているようです。

権限の方は改めてサーバチェックを行ってみましたけど、以前の状態に戻ることはありませんでした。

いったん "ntbackup" を使ってセキュリティ設定を元に戻してみましたけど、それでも FrontPage Server Extensions の方の設定までには影響しないようで、設定を確認したり修復をしたりしてみると、設定しなおした新しい方が有効になってしまうのでした。

 

IIS でバックアップした構成ファイルを見る限りはそれなりの情報は含まれているような感じだったので、もういちど構成の復元処理を行ってみることにしました。

今度はバックアップファイルを修正してから復元を行ってみます。パスの指定を新しいものに変更して、今回はさらに URL 設定を変更する予定もあったのでその辺りも変更しておきました。その上で改めて復元を行ってみると、復元処理自体は正常に終了しました。

ただ、権限の方は相変わらずで、やはり変わり映えはありませんでした。念のためもう一度、データファイルのフォルダをまるごと削除して、修正を施した構成を再び復元、改めて "ntbackup" からデータファイルを復元します。それでもやはり情報は引き継がれず、また、FrontPage Server Extensions 2002 の管理ページと思われる "Microsoft SharePoint の管理" サイトの内容を旧サーバから持ってきたりもしてみましたけど、それでも反映される様子は有りませんでした。

 

権限情報の管理方法

調べてみると、FrontPage Server Extensions 2002 の権限管理の方法は、Web ベースでなかった頃とはだいぶ違っているようでした。

以前のものはフォルダの権限を元に管理されていて、フォルダの権限を調整すればそれが反映されるようになっていたのですけど、今回のものはフォルダには専用のグループ権限が設定されていて、許可される場合はそのグループへアカウントが登録されるようでした。

具体的には、Microsoft SharePoint のロールごとにローカルグループが登録され、その中に、そのロールに所属されたユーザやグループが登録されるようです。確かに管理の面で言えば合理的だし、扱う上でもとても便利そうです。

 

そんな仕組みなため、 IIS を構成で復元した場合でも、このグループの情報自体が復元されるかはわかりませんけど、それだけでは Windows 自身にはアカウントおよびグループ情報はもって来れないため、権限設定は (未設定か、またはグループが存在しないため) 初期の状態に戻ってしまうようでした。

アカウント情報を一部分だけ移動するとかが出来れば良いのですけど、そういうことは Windows では出来るのでしょうか。さらりと調べてみた感じではそれらしいことは見つからず、今回のように別の環境へ IIS を引っ越すとなると、この辺りは手動でやってしまうのが利口なような気もしました。

とはいえ、IIS を復旧する場合でサーバから復旧するような場面の想定では、アカウントの復旧もなされるのが普通であって、今回のような悩みの種はある意味特殊なのかもしれないですけど。

 

ともあれ今回はそれほど複雑でもなかったので、手動で設定しなおすことにしておきました。

グループがなくなっているせいか、まずはロールの作成をしないことにはユーザの登録は出来ませんでした。「ロールの追加」 を行ってとりあえず "admin" という名前で全ての権限を付加して登録してみると、ロール名は "管理者" として登録されていました。そして改めて 「ユーザの管理」 からユーザの登録を行って、無事、権限の調整が完了となりました。

こういった状況の場合、たくさんのアカウントをその都度登録していては面倒ですし、管理の都合でも、Windows ドメインを使用している場合はドメインの方でグループ分けをしておくと、このような場面での IIS の再設定もしやすいかもしれないですね。

 

まとめ…

以上から復旧作業のあれこれをまとめてみると、次のような部分を注意して行えば良さそうでした。

  • IIS 6.0 の構成をパスワード付きでバックアップする。
  • コンテンツデータ等をバックアップする。フォルダの権限を保持したいときは "ntbackup" が便利。
  • SSL を利用している場合は証明書をバックアップする。
  • サーバが破損した場合に備えて、"ntbackup" でシステム情報をバックアップする。
  • COM コンポーネントなどを利用している場合はそれらをバックアップする。

こんなところでしょうか。

復旧の際には、アカウント情報もやられるような障害ならばシステム情報から復元し、IIS の構成を復元、コンテンツデータの展開と、COM コンポーネントのインストールと、そして全体的に復旧が終わったかなどの確認と。

そんな感じで作業を進めれば良さそうです。

IIS 5.0 までの管理と違って Windows のアカウント管理を自然に利用しているため、基本的にはバックアップおよび復元は簡単そうでした。システム全てがダウンしたときは少し厄介かもしれませんけど、それは IIS のみならず全てにおいて厄介でしょうから、それを抜きにすればなかなか復旧しやすそうな印象でした。