連載
» 2008年02月21日 00時00分 公開

第9回 ターミナル・サービスによるクライアントの仮想化(中編)Windows Server 2008の基礎知識(2/3 ページ)

[安納順一(IT Pro エバンジェリスト),マイクロソフト株式会社]

TSセッション・ブローカ

 ターミナル・サービスで多くの利用者に対応する場合、その負荷が問題になることは想像に難くない。ターミナル・サーバはネットワーク・ロードバランス(NLB)機能やサードパーティのロードバランサによって負荷分散構成を採ることができる。これはWindows Server 2003でも同様だ。

■負荷分散時のセッション管理の課題
このような負荷分散の構成では、次のような問題が生じることがある。それは、同一セッションへの再接続だ。例えば、3台のターミナル・サーバがロードバランス構成で構築されている環境において、ある利用者がその中の1台を使用していたとする。何らかの理由で利用者が作業を中断し、時間をおいて再びターミナル・サービスに接続した場合、NLBもしくはロードバランサによって、負荷の低い別のターミナル・サーバにリダイレクトされてしまう可能性がある。このとき、利用者は中断前の状態のデスクトップ/アプリケーションには接続できず、中断した作業を再開できなくなってしまう。

 Windows Server 2003のEnterprise EditionおよびDatacenter Editionでは、この問題を解決するために「セッション・ディレクトリ」と呼ばれる機能が提供されていた。セッション・ディレクトリは、ユーザーIDをキーとして、ターミナル・サービス上のアクティブなセッションを保持することで、再接続時には既存のセッションに接続できる。この機能によって、利用者は会社での作業をいったん中断し、自宅から再び開始するといったことが可能になる。

■TSセッション・ブローカによるセッション管理の仕組み
Windows Server 2008ではセッション・ディレクトリをさらに強化し、「TSセッション・ブローカ」という新しい名前で実装した。TSセッション・ブローカには、セッション・ディレクトリ同様、アクティブなセッションを保持する機能のほか、最も少ないセッションを保持しているターミナル・サーバにリダイレクトするという負荷分散の機能が実装されている。そのため、運用上問題がないのであれば、従来のように負荷分散のためにNLBやロードバランサを構成する必要がない。また、Windows Server 2008 Standard Edition上で使用できるため、この機能のためだけに、より高価なEnterprise EditionやDatacenter Editionは不要となる。すなわち、投資コストを低減するという効果も得られる。

 下図にTSセッション・ブローカを使用して構成した場合のターミナル・サーバ群の動作を示す。この図では、DNSラウンドロビンとTSセッション・ブローカを組み合わせてターミナル・サーバのロードバランスを構成している(DNSラウンドロビンについては関連記事を参照していただきたい)。クライアントが最初にターミナル・サーバに接続しようとしたとき、そのホスト名はDNSのラウンドロビン機能によって解決される。

TSセッション・ブローカによるロードバランス TSセッション・ブローカによるロードバランス
これはTSセッション・ブローカによるロードバランス構成のターミナル・サービスに対してクライアントが接続したとき、それぞれの役割や機能がどのように働くかを表した一例である。
  (1)DNSにTermSrvの名前解決を要求する。
  (2)DNSから192.168.1.3というIPアドレスが返される。
  (3)192.168.1.3すなわちTermSrv3のターミナル・サーバに接続する。
  (4)TSセッション・ブローカに既存のセッションの有無を確認する。
  (5)既存のセッションがなければセッション数が一番少ないターミナル・サーバ(TermSrv2)にリダイレクトする。逆に既存のセッションがある場合には、そのセッションを保持しているターミナル・サーバ(TermSrv1)にリダイレクトする。

 クライアントがDNSから提供されたアドレスに接続しようとすると、ターミナル・サーバは、はじめにTSセッション・ブローカに対して既存セッションが存在するかどうかを確認する。もし既存のセッションが存在する場合には、そのセッションを持つターミナル・サーバにリダイレクトし、もし初回接続であることが分かれば、最もセッション数が少ないターミナル・サーバにリダイレクトする。

 ここまでの内容から、ターミナル・サービスのロードバランス構成にはDNSラウンドロビンとTSセッション・ブローカで十分であるかのような錯覚を与えてしまったとしたら誤解である。この構成には、ほかにも考慮しなければならない事項が含まれていない。例えば、ターミナル・サーバがダウンしていることを即座に発見し、運用に支障のないようにリダイレクトするには、DNSラウンドロビンとTSセッション・ブローカでは不十分である。そのような考慮が必要なクリティカルな業務に対応しなければならない場合は、NLBやロードバランサによる負荷分散を考慮した方がよいだろう。なお、TSセッション・ブローカは、NLBやロードバランサとの共存も可能である。

■メンテナンスを容易にするユーザー・ログオン・モード
  Windows Server 2008は、利用者のセッション管理に関するものとして、「ユーザー・ログオン・モード」と呼ばれる機能もサポートしている。この機能はターミナル・サービスのメンテナンス性を向上させるとともに、ユーザー・データの損失を最小限に抑えることを目的としている。

 例えば、ターミナル・サービスが動作中のサーバに緊急の修正プログラムを適用することを考えてみる。修正プログラムの中にはサーバOSの再起動を要求するものがあるが、ターミナル・サービスを基幹業務で使用している場合には、即座に再起動をすることは難しい。Windows Server 2003ではchange logonコマンドによって新しい接続要求を拒否することで、管理者によるメンテナンスを極力容易にできる。しかしこれでも、接続拒否前からある既存のコネクションは、修正プログラム適用による強制的な再起動によってリセットされてしまい、最悪の場合には、作業途中のデータが消失するという可能性があった。

 Windows Server 2008に新しく実装されたユーザー・ログオン・モード機能を使用して「ドレイン・モード」と呼ばれる状態に移行すると、以降の新規接続を拒否することはもちろんのこと(次の画面参照)、既存セッションを単にリセットするのではなく、ログオフ・プロセスを正しく動作させてデータの保存を促したり、ログオフ・スクリプトによる後処理を実行したりできる。残念ながら、現時点ではシステムの再起動後までセッションを維持する機能までは提供されていない。しかし、それでも単純にリセットされてしまうよりは、ターミナル・サービスに接続中の利用者へ注意を促すメッセージを送信するなど、利用者がデータを保存するチャンスを増やすことは可能である。またドレイン・モードに移行した状態であっても再接続が許されていることも重要だ。これによって、すでにターミナル・サーバ上にセッションを持っている利用者が、管理者からの再起動の事前連絡を聞き、再接続をしてデータを保存できる。

ドレイン・モード時に新規接続しようとするとアクセスが拒否される ドレイン・モード時に新規接続しようとするとアクセスが拒否される

 複数のターミナル・サーバのうち、一部がドレイン・モードに移行している場合、TSセッション・ブローカは新たな接続要求をドレイン・モードではない別のターミナル・サーバにリダイレクトできる。これもターミナル・サービスの使い勝手を向上させる重要な機能といえるだろう。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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