サーバー フェールオーバー クラスターで IIS 用の FTP をWindowsする方法

この記事では、インターネット インフォメーション サービス (IIS) 8.0 以降のバージョン用に FTP を構成するWindows説明します。 この記事の手順は、FTP サービスにのみ適用されます。

注意

フェールオーバー クラスターで Web サービスを構成する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示します。

970759サーバー フェールオーバー クラスターでの IIS World Wide Web 発行サービスWindows構成する

適用対象:  WindowsServer 2019、Windows Server 2016、Windows Server 2012 R2
元の KB 番号:   974603

フェールオーバー クラスタリングを使用して IIS FTP サーバーの高可用性を構成する

  1. すべてのクラスター ノードに Web Server の役割をインストールします。 サーバーにインストールする場合Windows Server 2012"FTP サーバー" の役割を含めない。 R2 以降のバージョンWindows Server 2012する場合は、インボックスの "FTP サーバー" の役割を含める必要があります。 IIS 8 展開ガイドの詳細については 、「Open IIS Manager (IIS 8) 」を参照してください。

  2. フェールオーバー クラスタリング機能をすべてのクラスター ノードにインストールし、クラスターを作成します。 詳細については、次の Web サイト「フェールオーバー クラスター 展開ガイド」を参照してください。

  3. IIS 共有構成に使用するファイル共有を設定します。

  4. すべてのクラスター ノードで IIS 共有構成を構成します。

  5. すべてのクラスター ノードで IIS 共有構成のオフライン ファイルを構成します。

  6. FTP サイトを構成し、1 つのクラスター ノード上のコンテンツの場所を指定します。

  7. フェールオーバー クラスタリングで汎用スクリプトを作成して、FTP サイトの高可用性を構成します。

IIS 共有構成に使用するファイル共有をセットアップする

  1. IIS 共有構成に使用する共有にアクセスするユーザーを作成します。

  2. ファイル共有を作成します。 この共有は、すべてのクラスター ノードで IIS 間で共有される IIS 共有構成を格納するために使用されます。 複数のオプションがあります。

    • フェールオーバー クラスターの一部ではないスタンドアロン サーバーで、ファイル共有を作成します。

    • 別のサーバー Windowsフェールオーバー クラスターで、高可用性ファイル共有を作成します。 詳細については、次の Microsoft Web サイト「フェールオーバー クラスターのステップ バイ ステップ ガイド: Two-Node サーバー フェールオーバー クラスターの構成」を参照してください。

    • 高可用性 FTP サイトをホストする同じフェールオーバー クラスターで、高可用性ファイル共有を作成します。 詳細については、次の Microsoft Web サイト「フェールオーバー クラスターのステップ バイ ステップ ガイド: Two-Node サーバー フェールオーバー クラスターの構成」を参照してください。

  3. 手順 2 で作成した共有のアクセス許可を設定します。 手順 1 で作成したユーザーに、ファイル共有と NTFS アクセス許可に対するフル コントロールのアクセス許可を付与します。

  4. すべてのクラスター ノードがファイル共有を参照できる点を確認します。 ファイル共有のパスはです \\<fileservername>\<sharename>

すべてのクラスター ノードで IIS 共有構成を構成する

クラスター ノードの 1 つで、共有構成をファイル共有にエクスポートします。

  1. [管理ツール ] に移動 し、[管理者] (IIS) インターネット インフォメーション サービスを選択します
  2. 左側のウィンドウで、サーバー名ノードを選択します。
  3. [共有構成] アイコンをダブルクリック します。
  4. [共有構成] ページで、[操作]ウィンドウ (右側のウィンドウ) で [構成のエクスポート] を選択して、構成ファイルをローカル コンピューターから別の場所にエクスポートします。
  5. [構成 のエクスポート] ダイアログ ボックスで、[物理パス] ボックスにファイル共有のパス ( \\<fileservername>\<sharename> ) を入力 します。
  6. [Connect] を 選択し、共有構成が保存されている共有にアクセスできるユーザー アカウントのユーザー名とパスワードを入力し 、[OK] を選択します。 このアカウントは、共有へのアクセスに使用されます。 ドメイン管理者ではない制限付き Active Directory アカウントを使用する必要があります。
  7. [構成 のエクスポート] ダイアログ ボックスで、暗号化キーの保護に使用するパスワードを入力し 、[OK] を選択します
  8. [共有構成 ] ページで 、[共有構成を 有効にする] チェック ボックス をオンにします。
  9. 物理パス、ユーザー アカウント、および前に入力したパスワードを入力し、[操作] ウィンドウで [ 適用 ] を選択 します。
  10. [暗号化 キーのパスワード] ダイアログ ボックスで、前に設定した暗号化キーパスワードを入力し 、[OK] を選択します
  11. [共有構成] ダイアログ ボックスで 、[OK] を選択します
  12. [OK] を選択します。

他の各クラスター ノードで、ファイル共有にエクスポートした共有構成を使用します。

  1. [管理ツール ] に移動 し、[管理者] (IIS) インターネット インフォメーション サービスを選択します
  2. サーバー名ノードを選択します。
  3. [共有構成] アイコンをダブルクリック します。
  4. [共有構成 ] ページで 、[共有構成を 有効にする] チェック ボックス をオンにします。
  5. ファイル共有 ()、ユーザー アカウント、および前に入力したパスワードの物理パスを入力し、[操作] ウィンドウで [適用 \\<fileservername>\<sharename> ]を選択 します。
  6. [暗号化 キーのパスワード] ダイアログ ボックスで、前に設定した暗号化キーパスワードを入力し 、[OK] を選択します
  7. [共有構成] ダイアログ ボックスで 、[OK] を選択します
  8. [OK] を選択します。

注意

IIS で共有構成を設定する方法の詳細については、次の Microsoft Web サイト「共有構成」 を参照してください。

すべてのクラスター ノードで IIS 共有構成のオフライン ファイルを構成する

各クラスター ノードで、[オフライン ファイル] を有効にします。

  1. デスクトップ エクスペリエンス機能をインストールします。 これを行うには、次の手順を実行します。

    1. [管理ツール ] に移動し、[サーバー マネージャー] を選択します
    2. 左側のウィンドウで、[機能] を 選択します
    3. 右側の ウィンドウで [機能の 追加] を選択します。
    4. 使用しているバージョンに応じて、次のいずれかをWindowsします。
      • 詳細Windows Server 2016 Microsoft Docs Webサイトの「デスクトップ エクスペリエンスを使用してサーバーをインストールする」のトピックを参照してください。
      • [Windows Server 2102 および 2012 R2の場合は、[機能] リストの [ユーザー インターフェイスとインフラストラクチャ] の [デスクトップ エクスペリエンス] を選択します。
  2. 次の手順を実行してください。
    2012 Windows Server 2012 2012 R2 および 2016 の場合は、[コントロール パネル] で [同期センター] を選択し、[オフライン ファイルの管理]を選択します。

  3. [オフライン ファイルを有効にする] を選択します。 この時点でコンピューターを再起動しない。

  4. キャッシュが読み取り専用に設定されている必要があります。 これを行うには、管理者特権で cmd プロンプトで次のコマンドを実行します。

    REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v ReadOnlyCache /t REG_DWORD /d 1 /f
    
  5. コンピューターを再起動します。

  6. コンピューターからファイル サーバーを参照します。 IIS 共有構成を含む共有を右クリックし、[常に利用可能なオフライン] を選択します

    注意

    IIS ノードをホストする同じフェールオーバー クラスターでファイル共有を高可用性に設定した場合、使用しているクラスター ノードが高可用性ファイル サーバーをホストしている場合、共有を右クリックすると[Always Available Offline] オプションは表示されません。 使用可能な高いファイル サーバー アプリケーションを別のノードに移動する必要があります。

  7. コントロール パネルで、[オフライン ファイル] を開きます。 [ 同期センターを開く] を 選択し、[スケジュール] を 選択します

  8. 毎日または要件に応じてオフライン ファイル同期をスケジュールします。 数分ごとに実行するオフライン同期を構成することもできます。 スケジューラを設定しない場合でも、Applicationhost.config ファイルで何かを変更すると、その変更は Web サーバーに反映されます。

注意

IIS で共有構成用にオフライン ファイルを構成する方法の詳細については、次の Microsoft Web サイトの「共有構成用オフライン ファイル」を 参照してください。

FTP サイトを構成し、1 つのクラスター ノード上のコンテンツの場所を指定する

FTP サイト コンテンツ ファイルが存在するクラスター ディスク リソースを所有するクラスター ノードを検索します。

  1. [管理ツール ] に移動 し、[フェールオーバー クラスター マネージャー ] を選択します
  2. Connectにアクセスします。 クラスター ノードの 1 つを使用している場合、クラスターは自動的に一覧に表示されます。
  3. [サーバー Storage] で、FTP サイト コンテンツが存在するディスク リソースを見つける。 これを行うには、ディスク リソースの記憶域ツリーを展開します。 ストレージがクラスター上の他の高可用性アプリケーションで使用されていないか確認します。 [使用可能なストレージ] の下にストレージStorage。
  4. このリソースがオンラインのクラスター ノードに注意してください。 そのクラスター ノードで IIS を構成します。
  5. クラスター ディスク リソース名をメモします。 これをコンテンツ ファイルに使用します。

リソースがオンラインのクラスター ノードで、共有ディスクを FTP サイト コンテンツに使用する FTP サーバーを構成します。

  1. [管理ツール ] に移動 し、[管理者] (IIS) インターネット インフォメーション サービスを選択します
  2. 左側のウィンドウで、サーバー名ノードを展開します。
  3. [サイト ] を展開 し、[サイト] を 右クリック、[FTP サイトの追加] を選択します
  4. [FTP サイトの追加] ダイアログ ボックスにサイト名を入力します。 コンテンツ ディレクトリに、FTP サイト コンテンツ ファイルがある場所を入力します。 これは、前の手順の手順 5 で説明したクラスター ディスク リソースの場所です。
  5. 残りの FTP サイト設定を構成します。
  6. [完了] を選択します。

フェールオーバー クラスター マネージャーで汎用スクリプトを作成して、FTP サイトの高可用性を構成する

FTP サイトの高可用性を構成する最後の手順では、FTP サービスの監視に使用される汎用スクリプト リソースを設定します。

  1. 各クラスター ノードで、この記事の最後にあるスクリプトをにコピーします Windows\System32\inetsrv\Clusftp7.vbs
  2. [管理ツール ] に移動 し、[フェールオーバー クラスター マネージャー ] を選択します
  3. Connectにアクセスします。 クラスター ノードの 1 つを使用している場合、クラスターは自動的に一覧に表示されます。
  4. 次の手順を実行してください。
    2012 Windows Server 2012 2012 R2 と 2016 の場合は、[役割] を右クリックし、[役割の構成] を選択して作成します。
  5. [汎用 スクリプト] をクリックします
  6. 次のパスからスクリプト ファイルを選択します。
    %systemroot%\System32\Inetsrv\Clusftp7.vbs
  7. クライアント アクセス ポイント (CAP) 名を、クライアントが高可用性 FTP サイトへの接続に使用する FTP サイト名に設定します。 FTP サイト CAP に使用する静的 IP を指定します。 動的ホスト構成プロトコル (DHCP) を使用している場合、このオプションは表示されません。
  8. [ファイル の選択Storage] で、FTP サイト コンテンツ ファイルが存在するクラスター共有ディスクを選択します。 記憶域は、クラスター上の他の高可用性アプリケーションで使用しない必要があります。 IIS 共有構成に使用されるファイル共有が同じクラスターでホストされている場合は、ここで別のディスク リソースを使用する必要があります。
  9. 設定を確認した後、ウィザードはクラスター グループ、クラスター リソース、およびリソース間の依存関係を作成し、リソースをオンラインにします。

注意

同じフェールオーバー クラスター上で複数の高可用性 FTP サイトをホストするには、前述の手順と同じ手順に従います。 スクリプトをカスタマイズしなかった場合は、クラスター上のすべての FTP サイトで同じスクリプト ファイルをポイントできます。 ただし、個々の FTP サイトに固有の変更を行う場合は、FTP サイトごとに異なるスクリプト ファイルを使用し、異なるクラスター化された共有記憶域を使用します。 たとえば、最初の FTP サイトでは、2 番目の場合は %systemroot%\System32\Inetsrv, useClusftp7.vbs Clftp7-2.vbs、3 番目の場合は Clftp7-3.vbs などです。 各スクリプト ファイルは、異なる FTP サイトを監視します。

重要

次のスクリプトはサンプルのみを目的としますが、Microsoft では明示的にサポートされていません。 IIS 8.0 FTP クラスター環境でのこのスクリプトの使用は、自分のリスクで行われます。


'<begin script sample>

'This script provides high availability for IIS FTP websites
'The script is applicable to:
'   - Windows Server 2012: Microsoft FTP Service 7.5 for IIS 8.0 (available for download from microsoft.com)
'   - Windows Server 2012 R2 or a later version: FTP Service in the box

'More thorough and application-specific health monitoring logic can be added to the script if needed


Option Explicit



'Helper script functions


'Start the FTP service on this node
Function StartFTPSVC()

    Dim objWmiProvider
    Dim objService
    Dim strServiceState
    Dim response

    'Check to see if the service is running
    set objWmiProvider = GetObject("winmgmts:/root/cimv2")
    set objService = objWmiProvider.get("win32_service='ftpsvc'")
    strServiceState = objService.state

    If ucase(strServiceState) = "RUNNING" Then
        StartFTPSVC = True
    Else
        'If the service is not running, try to start it
        response = objService.StartService()

        'response = 0  or 10 indicates that the request to start was accepted
        If ( response <> 0 ) and ( response <> 10 ) Then
            StartFTPSVC = False
        Else
            StartFTPSVC = True
        End If
    End If

End Function

'Cluster resource entry points. More details here:
'http://msdn.microsoft.com/en-us/library/aa372846(VS.85).aspx

'Cluster resource Online entry point
'Make sure the FTP service is started
Function Online( )

    Dim bOnline
    'Make sure FTP service is started
    bOnline = StartFTPSVC()

    If bOnline <> True Then
        Resource.LogInformation "The resource failed to come online because ftpsvc could not be started."
        Online = False
        Exit Function
    End If

    Online = true

End Function

'Cluster resource offline entry point
'On offline, do nothing.
Function Offline( )

    Offline = true

End Function


'Cluster resource LooksAlive entry point
'Check for the state of the FTP service
Function LooksAlive( )

    Dim objWmiProvider
    Dim objService
    Dim strServiceState

    set objWmiProvider = GetObject("winmgmts:/root/cimv2")
    set objService = objWmiProvider.get("win32_service='ftpsvc'")
    strServiceState = objService.state

    if ucase(strServiceState) = "RUNNING" Then
LooksAlive = True
    Else
LooksAlive = False
    End If

End Function


'Cluster resource IsAlive entry point
'Do the same health checks as LooksAlive
'If a more thorough than what we do in LooksAlive is required, this should be performed here
Function IsAlive()

    IsAlive = LooksAlive

End Function


'Cluster resource Open entry point
Function Open()

    Open = true

End Function


'Cluster resource Close entry point
Function Close()

    Close = true

End Function


'Cluster resource Terminate entry point
Function Terminate()

    Terminate = true

End Function