C# と .NET Framework 4 を主にWindows Formのアプリケーション開発について

2008年11月30日

Team Foundation Server 2005とドメイン移行 Team Foundation Server 2005とドメイン移行

Team Foundation Server 2005をサービスしているサーバーのWindowsドメイン移行に伴いある意味深刻な問題が発生してしまった。

移行先のドメインをDomainA、移行元をDomainBとします。

このTFSのサーバーが属しているDomainBの成り立ちは多少複雑です。
TFSの立ち上げ当時DomainAはNTドメインだったため、ActiveDirecotryのドメインが必要になりました。
残念(面倒?)な事にNTや98のクライアントPCがあるため、全ユーザーを新規DomainBに移行する事ができませんでした。
このため、DomainAは大多数のユーザとリソースがのこり、TFSを使用するユーザーのみDomainBに移行することになりました。

DomainBの構築

かなり前の事でかなり忘れていますが、大体次のような手順だったと思います。

  1. NT4 ServerをDomainBのドメインコントローラとして構築
  2. DomainAと信頼関係を設定
  3. Windows2000サーバーにアップグレード
  4. TFSを使用するユーザーをDomainBに作成
  5. Windows2003サーバーを構築しどドメインコントローラにする
  6. ADMT(だったかな?)を使用してActiveDirectoryに移行

このあと、TFSを立ち上げて大きな問題もなく運用していました。

DomainAがActiveDirectoryに移行

サーバー管理の見直しに伴いNTドメインだったDomainAをActiveDirectoryに移行する事になりました。

このときDomainBの子ドメインとして構築もしくは全員DomainBに移行されればTFS的には問題は少なかったと思いますが、実際はそうはならずDomainAが親になるような形態になり、最終的にはDomainBをなくす方向にまとまりました。

DomainBをなくすにはTFSのサーバーをDomainAに移行する必要があります。
これは実際に実施されました。

移行は仮想環境でテストされていましたが、実施後TFSで問題が起こりました。

TFSに問題発生

サーバーの所属ドメインをDomainAに移行後、いくつかの問題が発生しました。

  • 作業項目を保存できなくなる 時がある
  • 作業項目の”担当”に表示されないユーザーがある
  • TFSプロジェクトのグループセキュリティに追加できないユーザーがある
  • プロジェクトポータルを表示できないユーザーがある
  • DomainAのユーザーでTFSに接続できない
  • DomainAのユーザーで接続すると、DomainBでの作業項目等が担当項目として検索できない

特に大きい問題は”担当”に表示されない事です。
DomainB側のユーザーが表示されない場合は良いのですが、DomainA側のユーザーが表示されないのでは移行する事ができません。

ただ、TfsAdminUtil sid コマンドでは両ドメインのユーザーが表示されますし、TfsSecurity /imx コマンドで有効ユーザーを表示すると両ドメインのユーザーが表示されます。

これらの原因は不明でMSのサポートを受けても解決できませんでした。

TFSを使用しているDomainBユーザーの多くは元はDomainAのメンバで、DomainBのアカウントにもDomainAでのSIDをヒストリとして持っています。
DomainAへの移行でA側にもB側のSIDをヒストリとして持っています。

また、DomainAとDomainBではユーザーアカウントの表示名が微妙に異なる事があります。

TFSのドメイン間の移行はリスクが大きいかなと

結局まだ解決はしていませんが、現在の環境を保持したままDomainAのユーザーに切り替えるのは難しそうです。

たぶん次のような選択になるのでしょう。

  • DomainAに新規のユーザーアカウントを作成して、新しく生まれ変わる
    (TFSの不安定さは残る)
  • DomainAに新規にTFSを構築して、ソースと作業項目を移行する
    (履歴をあきらめることになりますが、サーバーは綺麗な体になります)
  • DomainBに戻る
    (これも現在ではリスクがあります)

TFS2008への移行も考慮して方針を決める必要があります。

トラックバックURL

このエントリーのトラックバックURL:
http://www.cs-dotnet.com/cgi-bin/mt-tb.cgi/221

Comments

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)