共用方式為


如何在 Windows Server 故障轉移叢集中設定 IIS 的 FTP

本文說明如何在 Windows Server 故障轉移叢集中設定 ftp for 網際網路資訊服務 (IIS) 8.0 或更新版本。 本文中的程式僅適用於 FTP 服務。

注意

如需如何在故障轉移叢集中設定 Web 服務的詳細資訊,請按下列文章編號,以檢視Microsoft知識庫中的文章:

970759在 Windows Server 故障轉移叢集中設定 IIS 萬維網發佈服務

原始 KB 編號: 974603

使用故障轉移叢集設定 IIS FTP 伺服器的高可用性

  1. 在所有叢集節點上安裝網頁伺服器角色。 如果您要在 Windows Server 2012 上安裝,請勿包含 “FTP Server” 角色。 如果您要在 Windows Server 2012 R2 或更新版本上安裝,請包含內建的 “FTP Server” 角色。 如需 IIS 8 部署指南的詳細資訊,請流覽下列網站: 開啟 IIS 管理員 (IIS 8)

  2. 在所有叢集節點上安裝故障轉移叢集功能,並建立叢集。 如需詳細資訊,請流覽下列網站: 故障轉移叢集部署指南

  3. 設定將用於 IIS 共用組態的檔案共用。

  4. 在所有叢集節點上設定 IIS 共用設定。

  5. 在所有叢集節點上設定 IIS 共用設定的離線檔案。

  6. 設定 FTP 月臺,並指定其內容在一個叢集節點上的位置。

  7. 在故障轉移叢集中建立一般腳本,為您的 FTP 月臺設定高可用性。

設定將用於 IIS 共用設定的檔案共用

  1. 建立將存取將用於 IIS 共用設定之共用的使用者。

  2. 建立檔案共用。 此共用將用來儲存所有叢集節點上 IIS 之間共用的 IIS 共用組態。 有多個選項:

    • 在不屬於任何故障轉移叢集的獨立伺服器上,建立檔案共用。

    • 在另一個 Windows Server 故障轉移叢集上,建立高可用性檔案共用。 如需詳細資訊,請流覽下列Microsoft網站:故障轉移叢集逐步指南: 設定雙節點檔伺服器故障轉移叢集

    • 在將裝載高可用性 FTP 網站的相同故障轉移叢集上,建立高可用性檔案共用。 如需詳細資訊,請流覽下列Microsoft網站:故障轉移叢集逐步指南: 設定雙節點檔伺服器故障轉移叢集

  3. 設定您在步驟 2 中建立之共享的許可權。 提供您在步驟 1 完整控制權限中建立的使用者檔案共用和 NTFS 許可權。

  4. 確認所有叢集節點都可以流覽至檔案共用。 檔案共享的路徑為 \\<fileservername>\<sharename>

在所有叢集節點上設定 IIS 共用設定

在其中一個叢集節點上,將共用組態導出至檔案共用:

  1. 流覽至 [系統管理工具],然後選取 [網際網路資訊服務 [IIS] 管理員
  2. 在左窗格中,選取伺服器名稱節點。
  3. 按兩下 [共享組態 ] 圖示。
  4. 在 [共用組態] 頁面上,選取 [動作] 窗格中的 [匯出組態] 窗格(右窗格),將組態檔從本機計算機匯出到另一個位置。
  5. 在 [匯出組態] 對話框中,於 [實體路徑] 方塊中輸入檔案共享的路徑 。\\<fileservername>\<sharename>
  6. 選取 [ 聯機身分],然後輸入具有共用組態儲存共用存取權之用戶帳戶的使用者名稱和密碼,然後選取 [ 確定]。 此帳戶將用來存取共用。 您應該使用非網域系統管理員的受限制 Active Directory 帳戶。
  7. 在 [ 匯出組態 ] 對話框中,輸入將用來保護加密密鑰的密碼,然後選取 [ 確定]。
  8. 在 [ 共享組態 ] 頁面上,選取 [ 啟用共用組態 ] 複選框。
  9. 輸入實體路徑、用戶帳戶和您先前輸入的密碼,然後在 [動作] 窗格中選取 [套用]。
  10. 在 [ 加密密鑰密碼 ] 對話框中,輸入您稍早設定的加密金鑰密碼,然後選取 [ 確定]。
  11. 在 [共享組態] 對話框中,選取 [ 確定]。
  12. 選取 [確定]。

在所有其他叢集節點上,使用您剛匯出至檔案共享的共享組態:

  1. 流覽至 [系統管理工具],然後選取 [網際網路資訊服務 [IIS] 管理員
  2. 選取伺服器名稱節點。
  3. 按兩下 [共享組態 ] 圖示。
  4. 在 [ 共享組態 ] 頁面上,選取 [ 啟用共用組態 ] 複選框。
  5. 輸入檔案共享的實體路徑 (\\<fileservername>\<sharename>)、用戶帳戶,以及您先前輸入的密碼,然後在 [動作] 窗格中選取 [套用]。
  6. 在 [ 加密密鑰密碼 ] 對話框中,輸入您稍早設定的加密金鑰密碼,然後選取 [ 確定]。
  7. 在 [共享組態] 對話框中,選取 [ 確定]。
  8. 選取 [確定]。

注意

如需如何在 IIS 中設定共用組態的詳細資訊,請參閱 共用組態

在所有叢集節點上設定 IIS 共用設定的離線檔案

在每個叢集節點上,啟用離線檔案:

  1. 安裝桌面體驗功能。 若要這樣做,請遵循下列步驟:

    1. 流覽至 [系統管理工具],然後選取 [伺服器管理員]。
    2. 在左窗格中,選取 [ 功能]。
    3. 選取 右窗格中的 [新增功能 ]。
    4. 請視您的 Windows 版本執行下列其中一項動作:
      • 針對 Windows Server 2016,請檢閱 安裝具有桌面體驗的伺服器。
      • 針對 Windows Server 2102 和 2012 R2,選擇功能清單中的 [使用者介面和基礎結構] 下的 [桌面體驗]
  2. 執行下列操作:
    針對 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 節點的相同故障轉移叢集上將檔案共享設定為高可用性,當您以滑鼠右鍵按兩下共用時, 如果裝載高可用性文件伺服器的叢集節點,[永遠可用離線 ] 選項將不會顯示。 您必須將高可用性檔案伺服器應用程式移至另一個節點。

  7. 在 控制台 中,開啟 [脫機檔案]。 選取 [ 開啟同步中心],然後選取 [ 排程]。

  8. 排程每天或根據您的需求進行離線檔案同步處理。 您也可以將離線同步處理設定為每隔幾分鐘執行一次。 即使您未設定排程器,當您變更 Applicationhost.config 檔案中的某個專案時,變更也會反映在網頁伺服器上。

注意

如需如何在 IIS 中為共用組態設定離線檔案的詳細資訊,請參閱 共用組態的離線檔案。

設定 FTP 月臺,並在一個叢集節點上指定其內容的位置

尋找擁有 FTP 月臺內容檔案所在叢集磁碟資源的叢集節點:

  1. 流覽至 [系統管理工具],然後選取 [故障轉移叢集管理員]。
  2. 連線至叢集。 如果您位於其中一個叢集節點上,叢集會自動出現在清單中。
  3. 在 [記憶體] 底下,尋找 FTP 月臺內容所在的磁碟資源。 若要這樣做,請展開磁碟資源的記憶體樹狀結構。 請確定叢集上任何其他高可用性應用程式不會使用記憶體。 您會在 [可用的記憶體] 下找到記憶體。
  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. 連線至叢集。 如果您位於其中一個叢集節點上,叢集會自動出現在清單中。
  4. 執行下列操作:
    針對 Windows Server 2012、2012 R2 和 2016,以滑鼠右鍵按兩下 [角色 ],然後選取 [ 設定角色 ] 來建立它。
  5. 按兩下 [ 一般腳稿]。
  6. 從下列路徑選取文稿檔案:
    %systemroot%\System32\Inetsrv\Clusftp7.vbs
  7. 將用戶端存取點 (CAP) 名稱設定為用戶端將用來連線到高可用性 FTP 月臺的 FTP 月臺名稱。 指定要用於 FTP 月臺 CAP 的靜態 IP。 如果您使用動態主機設定通訊協定 (DHCP),將不會顯示此選項。
  8. 在 [ 選取記憶體] 步驟中,選取 FTP 月臺內容檔案所在的叢集共用磁碟。 叢集上任何其他高可用性應用程式都應該使用記憶體。 如果用於 IIS 共用設定的檔案共享裝載在相同的叢集上,則應該在這裡使用不同的磁碟資源。
  9. 確認設定之後,精靈會建立叢集群組、叢集資源,以及資源之間的相依性,然後讓資源上線。

注意

若要在相同的故障轉移叢集上裝載多個高可用性 FTP 月臺,請遵循先前所述的相同步驟。 如果您未自定義腳本,則可以指向叢集上所有 FTP 網站的相同腳本檔案。 不過,如果您對個別 FTP 月臺進行特定的變更,請針對每個 FTP 月臺和不同的叢集共用記憶體使用不同的腳本檔案。 例如,在第一個 FTP 月臺的 中 %systemroot%\System32\Inetsrv, useClusftp7.vbs ,Clftp7-2.vbs 代表第二個,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