Skip to content

MS_ServerReplacement

nishi_74322014 edited this page Aug 31, 2026 · 1 revision

サーバ更改(バージョン・アップ移行)

概要

サーバ更改(バージョン・アップ移行)のケース。

共通的な変更点

2003 → 2008

  • UAC
  • Session0 分離
  • パス(e.g. %USERPROFILE%

2008 → 2019

ウォッチできてません。

補足(2008 以降で押さえておきたい変更点): 元ページが未追記のため、
移行時に影響が出やすい変更を補っておく。

  • 2012: SMB 3.0、PowerShell 3.0、
    既定のインストールが Server Core 側に寄り、GUI が「機能」として着脱可能になった。
  • 2016: **Nano Server**と Windows コンテナーの追加。
    SHA-1 証明書の非推奨化がクライアント/サーバ間の疎通に影響することがある。
  • 2019 / 2022: TLS 1.0 / 1.1 の既定無効化が進み、
    古い .NET Framework アプリや古い DB クライアントの接続が落ちるケースが典型的な移行時障害。
    SystemDefaultTlsVersions などのレジストリ設定と、アプリ側の
    ServicePointManager.SecurityProtocol の指定を併せて確認すること。
  • 2025: SMB 署名の既定有効化など、既定値の引き締めが継続している。

いずれも「機能が消えた」のではなく既定値が変わったことによる障害が中心で、
OSパラメタの移行の「2003 と同じに… ではなく、
移行先の既定に加えて何が必要か?を検討すべき」という本ページの主張と整合する。

移行パス

インプレースアップグレードがサポートされている。

こちらがサポートされているとだいぶ楽だが、
周辺のソフトウェアもアップグレードされた OS でサポートされている必要がある。

  • 今から始めるWindows Server 2003移行のススメ(4):
    Windows Server移行ツール/FSMTでファイルサーバーを移行する - @IT
    http://www.atmarkit.co.jp/ait/articles/1406/30/news017.html

    Windows Server 2003 は、Windows Server 2008 R2 までのインプレースアップグレードがサポートされている。ただし、次のような要件がある。

    • 「Service Pack(SP)2」が適用されていない Windows Server 2003 はサポートしない
    • 異なるアーキテクチャ間のインプレースアップグレード(x86 から x64 など)はサポートしない
    • 異なる言語間のインプレースアップグレード(英語からドイツ語など)はサポートしない
    • 異なるエディション間のアップグレードはサポートしない
      (例えば、Windows Server 2008 Foundation SKU から Windows Server 2008 Datacenter SKU)
    • 種類が異なるビルド間のインプレースアップグレードはサポートしない

インプレースアップグレードがサポートされていない。

再構築が必要になる。

  • 今から始めるWindows Server 2003移行のススメ(4):
    Windows Server移行ツール/FSMTでファイルサーバーを移行する - @IT
    http://www.atmarkit.co.jp/ait/articles/1406/30/news017.html

    ・・・その理由は、Windows Server 2003 から Windows Server 2012 R2 へのインプレースアップグレードがサポートされていないからだ。

2003 ---> 2008 ---> 2012

2003 ---> 2008 ---> 2012 というインプレースアップグレードも考えられるが、
2003、2008 が 32bit の時は、このアップグレードパスは成立しない。

  • マイクロソフト認定トレーナーが教える、Windows Server 2012 マイグレーションの手引き - (page 3) - ZDNet Japan
    http://japan.zdnet.com/extra/windows_server_2012/35029010/3/

    Windows Server 2012 へインプレースアップグレードができるのは、既存の OS が Windows Server 2008 R2、または 64 ビット版の Windows Server 2008 だけである。既存の OS が Windows Server 2003 以前、または 32 ビット版の場合は、インプレースアップグレードができないため、新しいハードウェアに移行する方法をとる必要がある。

2012 ---> 2016 ---> 2019

ウォッチできてません。

補足(インプレースは原則「1 世代ずつ」): Windows Server のインプレース アップグレードは
2 世代先まで(例:2012 R2 → 2016 / 2019)がサポート範囲とされることが多く、
それを超える場合は本ページの言うとおり多段のアップグレード
再構築になる。
多段にすると各段でのライセンス・メディア・SP 適用条件が積み上がるため、
実務では新規構築してデータとロールを移す方が結局は短くなるケースが多い。

サーバ・アプリケーション

種々の要件から、サーバ・アプリケーションの移行が可能か調査が必要になる。

シェル(スクリプト)のバージョン・アップ移行

CMDWSHの構文は、2003 → 2008 でもほぼ変わりません(違いが探せないくらい)。
従って、移行性は、その中でどのようなコマンド、API 類を使用しているかに 100% 依存する。

補足: より広い移行先の選択(PowerShell / Bash)については、
シェル(スクリプト)の移行を参照。

業務系スクリプトの移行性

WSHで ADODB や oo4o などの COM 系データプロバイダを使用した
業務処理のスクリプトの場合、ほぼストコンで問題も少ない。

移行メモ(用語): 「ストコン」は
ストレート・コンバージョン(手修正がほぼ不要なコンバージョン)の略。

基盤系・運用系スクリプト

OS やミドルウェアの提供するコマンド、API 類を使用した基盤系・運用系スクリプトの場合、
# WSH から利用できる API は COM インターフェイスに限定される。
バージョン・アップによるインターフェイス・ミドルウェア変更により
スクリプト修正の負荷が増加する可能性がある。

また、これらの基盤系・運用系スクリプトのテストでは、特に WMI のスタブ開発は困難であるため、
# WMI を使用している場合、WMI クエリに対応したスタブを作成する必要があるが実質的に不可能。
これらのスクリプトのテストには、OS やミドルウェアを含め構築済みの環境を準備しておく必要がある。

移行性の確認

  • WSH であれば、OS やミドルウェアの提供する COM インターフェイスの API を使用している
    箇所のインターフェイス変更により WSH のポーティングが必要になる可能性がある。
    従って、この部分をグレップで検索して引っ掛けて、個々に確認すると良い。

  • 検索キーワード

補足(WMI は PowerShell 側では CIM に置き換わっている): 移行先を PowerShell とする場合、
Get-WmiObject(WMI / DCOM)ではなく Get-CimInstance(CIM / WS-Man) を使う。
前者は PowerShell 6 以降で削除されているため、
PowerShell 5.1 のまま書いたスクリプトが PowerShell 7 で動かないという形で
移行時に顕在化することが多い。

再構築の場合

OSパラメタの移行

基本方針

  • パラメタをそのまま 2003 → 2008R2 に変換するのは困難な所もある(既定値が違う、マップが違う)。

    • GUI の表記では、OS バージョンで揺らぎがあるので、一致する項目を、画面上から探すのは難しい。
    • なので、要件一覧や機能一覧などから、「必要な機能」と言う要件の観点から見ることも必要。
  • 2003 と同じに… ではなく、2008R2 の既定、に加えて、何が必要か?を検討すべき。

  • ただし、お客様としては、現行パラメタ踏襲により、リスク回避したいという意向もある。

  • ただし、過去事例から OS の TCP/IP スタックの実装が変わっている等の変更もあるようなので、
    現行パラメタ踏襲で問題が全く起きないとは言い切れない。

変更点

変更もあるので、ガイドラインに従うか、個別に変更を確認した方が良い。

e.g.

  • Windows Server 2008 R2 のパフォーマンス チューニングに関するガイドライン
    http://technet.microsoft.com/ja-jp/windowsserver/ff657837.aspx

    メモ: Windows Server 2003 / Windows Server 2008 と Windows Server 2008 R2 では、
    レジストリ設定とチューニング パラメーターが大幅に異なっています。
    予期しない結果にならないように、最新のチューニング ガイドラインを使用してください。

  • Windowsページファイル設定の正しい方法とその理由 ライフハッカー[日本版]
    http://www.lifehacker.jp/2009/12/091216windowspagefile.html

    Vista 以降では pagefile チューニングは自動化されている → 自動パラメータ

  • セキュリティポリシー

  • IE の設定

    • インターネットオプションの設定をエクスポートする方法等 - ゆず日記
      http://yuzuemon.hatenablog.com/entry/20110510/1305043925

      レジストリのエクスポート& Diff で設定値を調査できるようですが、
      OS、IE バージョン違いでどこまでパラメタが一致しているか?の確認も必要。
      差異が大きい場合は、元パラメタを参考に設定し直しという事になる。

移行メモ(正誤): 元ページの「エスクポート」は「エクスポート」の誤記と判断し、修正した。

マップが違う

e.g.

  • 2003 の Windows コンポーネントと、
  • 2008 のサーバーの役割と機能

では、対応付けが困難なほど変更されており、
この部分のパラメタ・シートの流用は困難。
機能・役割(2003→2008R2).xlsx 参照)

firewall

firewall 関係は、大きく変わっている。

2008 から、

  • ドメイン(社内)
  • プライベート
  • パブリック

などのプロファイルができた。

netsh firewall xxx コマンドは、ほぼ役に立たなくなっていて、
netsh advfirewall firewall xxx に変わっている。

補足(現在は PowerShell が推奨): netsh advfirewall 自体も非推奨扱いとなっており、
現在は New-NetFirewallRule / Get-NetFirewallRule などの
NetSecurity モジュールを使うのが推奨。
既存の netsh を含む運用スクリプトは、移行のタイミングで併せて見直すとよい。

MSCS/WSFC

こちらを参照。

ハードウェア

NIC

NIC 設定は NIC のドライバに依存する。
従って、物理移行や、仮想化でパラメタが変更される可能性あり。

ベンチマークツール

ベンチマークツール。

構成変更

ライセンス変更

ライセンスが変更になるケースがある。

e.g.

IIS の リモートデスクトップ Web 接続(ActiveX とサンプルページ)が有効のサーバがあるが、
2008R2 では、リモートデスクトップ Web アクセス に含まれる、と思われる。
この役割・機能に変更する場合、リモートデスクトップ は、RDS CAL が必要なので、
要件とライセンスについて、検討が必要になる可能性がある。

仮想化

物理の 2003 の構成パラメタを、そのまま仮想(ゲスト OS)の 2008R2 の構成パラメタへ変換しよう、
など考えないで、移行の全体像をよく検討してから、細部のパラメタをどうするか、検討する。

  • 物理、仮想、どちらで、なにを行うか、行えるか(特に、ネットワークとストレージ)。
    • ゲスト OS 上での NIC のチーミング方法の変更(ホスト側のチーミング機能を利用)。
    • ゲスト OS 上でテープ・ドライブを使用できない(バックアップ方法の変更)。

補足: 物理環境をそのまま仮想化して移す手法については、P2Vを参照。

移行ツール

移行ツールは探せばあるものも多い。

  • XXXX Migration Tool(XXXXMT)
    • IISMT
    • ADMT
    • .etc

ただし、Microsoft は、移行を支援するツールは出しても、
差異を明確にした資料、設定値を移行する資料は、出さない
(単純にマップできず、説明も難しいためと思われる)。

参考


Tags: Windows, 移行

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally