將容錯移轉叢集執行個體移轉至 Azure VM 上的 SQL Server

本文將指導您使用 Azure Migrate:伺服器移轉工具,將 Always On 容錯移轉叢集執行個體 (FCI) 移轉至 Azure VM 上的 SQL Server。 您可使用移轉工具,將容錯移轉叢集執行個體中的各節點、叢集和 FCI 中繼資料移轉至 SQL Server 所裝載的 Azure VM。

在本文中,您將學會如何:

  • 準備 Azure 和來源環境以進行移轉。
  • 開始複寫 VM。
  • 監視複寫。
  • 執行完整的 VM 移轉。
  • 使用 Azure 共用磁碟重新設定 SQL 容錯移轉叢集。

本指南使用代理程式型的 Azure Migrate 移轉方式,可將任何伺服器或虛擬機器視為實體伺服器。 移轉實體機器時,「Azure Migrate:伺服器移轉」使用的複寫架構與 Azure Site Recovery 服務中的代理程式型災害復原功能相同,且部分元件會共用相同的程式碼基底。 有些內容可能會連結至 Site Recovery 文件。

必要條件

開始進行本教學課程之前,您必須:

  1. Azure 訂用帳戶。 視需要建立免費帳戶
  2. 安裝 Azure PowerShellAz 模組
  3. 自 GitHub 存放庫下載 PowerShell 範例指令碼

準備 Azure

準備 Azure 以使用伺服器移轉進行移轉。

Task 詳細資料
建立 Azure Migrate 專案 您的 Azure 帳戶需要參與者或擁有者權限,才能建立新專案
驗證您 Azure 帳戶的權限 您的 Azure 帳戶需要 Azure 訂用帳戶的「參與者」或「擁有者」權限、在Microsoft Entra ID (之前稱為 Azure Active Directory) 註冊應用程式的權限,以及 Azure 訂用帳戶的使用者存取系統管理員權限,以便建立 Key Vault、建立 VM,以及寫入 Azure 受控磁碟。
設定 Azure 虛擬網路 設定 Azure 虛擬網路 (VNet)。 當您複寫至 Azure 時,系統會建立 Azure VM 並將其加入至您設定移轉時所指定的 Azure VNet。

若要檢查是否具備適當權限,請遵循下列步驟:

  1. 在 Azure 入口網站中開啟訂用帳戶,然後選取 [存取控制 (IAM)]
  2. [檢查存取權] 中尋找相關帳戶,並選取帳戶以檢視權限。
  3. 您應該會具有「參與者」或「擁有者」權限。
    • 如果您剛建立免費的 Azure 帳戶,您就是訂用帳戶的擁有者。
    • 如果您不是訂用帳戶擁有者,請與擁有者合作以指派角色。

若需要指派權限,請遵循準備 Azure 使用者帳戶中的步驟進行。

為移轉做準備

若要準備進行伺服器移轉,則須確認伺服器設定,並準備部署複寫設備。

檢查機器需求

確定機器符合移轉至 Azure 的需求。

  1. 確認伺服器需求。
  2. 確認複寫至 Azure 的來源機器符合 Azure VM 需求
  3. 某些 Windows 來源需要額外進行幾項變更。 若先移轉來源才進行這些變更,則可能導致 VM 無法在 Azure 中啟動。 在某些作業系統上,Azure Migrate 會自動進行這些變更。

準備進行複寫

Azure Migrate:伺服器移轉會使用複寫設備將機器複寫至 Azure。 複寫設備會執行下列元件:

  • 設定伺服器:組態伺服器會協調內部部署與 Azure 之間的通訊,以及管理資料複寫。
  • 處理序伺服器:處理序伺服器可作為複寫閘道。 負責接收複寫資料,以快取、壓縮和加密進行最佳化,然後將其傳送至 Azure 中的快取儲存體帳戶。

準備設備部署,如下所示:

  • 建立用於裝載複寫設備的 Windows Server 2016 機器。 檢閱機器需求
  • 複寫設備會使用 MySQL。 檢閱在設備上安裝 MySQL 的選項
  • 檢閱複寫設備存取公用政府雲端所需的 Azure URL。
  • 檢閱複寫設備的連接埠存取需求。

注意

複寫設備應安裝於待複寫或移轉來源機器以外的機器上,而不是安裝於先前曾安裝 Azure Migrate 探索和評定設備的機器上。

下載複寫設備安裝程式

若要下載複寫設備安裝程式,請遵循下列步驟:

  1. 在 Azure Migrate 專案 >[伺服器]中,選取 [Azure Migrate:伺服器移轉] 中的 [探索]

    Screenshot of the Discover VMs option.

  2. 探索電腦>電腦是否已虛擬化? 中,選取 [實體或其他 (AWS、GCP、Xen 等。)]。

  3. 在 [目標區域] 中,選取您要將機器遷移到的 Azure 區域。

  4. 選取 [確認移轉的目標區域為 region-name]

  5. 選取 [建立資源]。 這會在背景中建立 Azure Site Recovery 保存庫。

    • 如果您已使用「Azure Migrate 伺服器移轉」來設定移轉,則無法設定目標選項,因為先前已設定資源。
    • 選取此按鈕後,則無法變更此專案的目標區域。
    • 所有後續的移轉都會以此區域為目標。
  6. 在 [是否要安裝新的複寫設備?] 中,選取 [安裝複寫設備]

  7. 在 [下載並安裝複寫設備軟體] 中,下載設備安裝程式和註冊金鑰。 您必須要有金鑰,才能註冊設備。 此金鑰在下載後有五天的有效期。

    Screenshot of the download provider option.

  8. 將設備安裝程式檔案和金鑰檔案複製到您為設備建立的 Windows Server 2016 機器。

  9. 安裝完成後便會自動啟動設備組態精靈 (您也可使用設備電腦桌面上所建立的 cspsconfigtool 捷徑手動啟動精靈)。 使用精靈的 [管理帳戶] 索引標籤,使用下列詳細資料建立虛擬帳戶:

    • 自訂名稱:"guest"
    • 使用者名稱:"username"
    • 帳戶密碼:"password"。

    在「啟用複寫」階段中,您將會使用此虛擬帳戶。

  10. 當安裝完成、設備重新啟動後,請在 [探索機器][選取組態伺服器] 中選取新設備,並按一下 [完成註冊]。 完成註冊作業會執行數項最終工作,以備妥複寫設備。

    Screenshot of the Finalize registration option.

安裝行動服務

在要移轉的伺服器上安裝行動服務代理程式。 代理程式安裝程式可在複寫設備上取得。 尋找正確的安裝程式,在要移轉的各機器上安裝代理程式。

若要安裝行動服務,請遵循下列步驟:

  1. 登入複寫設備。

  2. 瀏覽至 %ProgramData%\ASR\home\svsystems\pushinstallsvc\repository

  3. 尋找機器作業系統和版本適用的安裝程式。 檢閱支援的作業系統

  4. 將安裝程式檔案複製到要遷移的機器。

  5. 確定您具有先前部署設備時所產生的複雜密碼。

    • 將檔案儲存在機器上的暫存文字檔中。
    • 您可以在複寫設備上取得此複雜密碼。 從命令列執行 C:\ProgramData\ASR\home\svsystems\bin\genpassphrase.exe -v,可檢視目前的複雜密碼。
    • 請勿重新產生複雜密碼。 這會使連線中斷,而您將必須重新註冊複寫設備。
    • /Platform 參數中,將 VMware 機器和實體機器兩者皆指定為 VMware
  6. 連線至該機器,並將安裝程式檔案的內容擷取至本機資料夾 (如 c:\temp)。 在系統管理員命令提示字元中執行此動作:

    ren Microsoft-ASR_UA*Windows*release.exe MobilityServiceInstaller.exe
    MobilityServiceInstaller.exe /q /x:C:\Temp\Extracted
    cd C:\Temp\Extracted
    
  7. 執行行動服務安裝程式:

    UnifiedAgent.exe /Role "MS" /Platform "VmWare" /Silent
    
  8. 將代理程式註冊至複寫設備:

    cd C:\Program Files (x86)\Microsoft Azure Site Recovery\agent
    UnifiedAgentConfigurator.exe  /CSEndPoint <replication appliance IP address> /PassphraseFilePath <Passphrase File Path>
    

安裝後可能需要一段時間,探索到的機器才會顯示於「Azure Migrate:伺服器移轉」。 探索到 VM 時,[探索到的伺服器] 計數即會上升。

Screenshot of the Discovered servers option.

準備來源機器

若要準備來源機器,您需要叢集的資訊。

警告

  • 在整個複寫程序維持磁碟擁有權,直到最終完成移轉。 若磁碟擁有權有所變更,則可能是磁碟區損毀,且須重新觸發複寫。 設定每個磁碟的慣用擁有者,以免在複寫程序期間移轉擁有權。

  • 避免在複寫程序期間修補活動及系統重新開機,以免移轉磁碟擁有權。

若要準備來源機器,請執行下列動作:

  1. 識別磁碟擁有權:登入其中一個叢集節點,並開啟容錯移轉叢集管理員。 識別磁碟的擁有者節點,以判斷各伺服器須移轉的磁碟。

  2. 擷取叢集資訊:在叢集節點上執行 Get-ClusterInfo.ps1 指令碼。 該指令碼會輸出 Cluster-Config.csv 檔案中的角色名稱、資源名稱、IP 和探查連接埠。 使用此 CSV 檔案來建立及指派後述的 Azure 資源。

    ./Get-ClusterInfo.ps1
    

建立負載平衡器

為使叢集和叢集角色能適當回應要求,便需要 Azure 負載平衡器。 若沒有負載平衡器,則無法辨識叢集 IP 位址屬於網路或叢集,因此其他 VM 將無法連線至該位址。

  1. 填寫檔案 Cluster-Config.csv 中的資料行:

    資料行標頭 描述
    NewIP 針對 CSV 檔案中的各資源,指定 Azure 虛擬網路 (或子網路) 中的 IP 位址。
    ServicePort 指定 CSV 檔案中各資源要使用的服務連接埠。 SQL 叢集資源的服務連接埠請使用相同值,作為 CSV 中的探查連接埠。 其他叢集角色使用的預設值為 1433,但您可繼續使用目前設定中所設定的連接埠號碼。
  2. 使用下列必要參數來執行 Create-ClusterLoadBalancer.ps1 指令碼,以建立負載平衡器:

    參數 型別 說明
    ConfigFilePath 強制性 指定上一步所填寫的 Cluster-Config.csv 檔案路徑。
    resourceGroupName 強制性 指定要建立負載平衡器的資源群組名稱。
    VNetName 強制性 指定將與負載平衡器相關聯的 Azure 虛擬網路名稱。
    SubnetName 強制性 指定將與負載平衡器相關聯的 Azure 虛擬網路子網路名稱。
    VNetResourceGroupName 強制性 針對將與負載平衡器相關聯的 Azure 虛擬網路,指定資源群組名稱。
    位置 強制性 指定應建立負載平衡器的位置。
    LoadBalancerName 強制性 指定要建立的負載平衡器名稱。
    ./Create-ClusterLoadBalancer.ps1 -ConfigFilePath ./cluster-config.csv -ResourceGroupName $resoucegroupname -VNetName $vnetname -subnetName $subnetname -VnetResourceGroupName $vnetresourcegroupname -Location "eastus" -LoadBalancerName $loadbalancername
    

複寫機器

現在,選取要進行移轉的機器。 您最多可以一起複寫 10 部機器。 如果您需要複寫更多機器,請以 10 個一批的方式同時進行複寫。

  1. 在 Azure Migrate 專案 >[伺服器][Azure Migrate:伺服器移轉] 中,選取 [複寫]

    Screenshot of the Azure Migrate - Servers screen showing the Replicate button selected in Azure Migrate: Server Migration under Migration tools.

  2. [複寫]、>[來源設定]>[機器是否已虛擬化?] 中,選取 [實體或其他 (AWS、GCP、Xen 等)]

  3. 在 [內部部署設備] 中,選取您設定的 Azure Migrate 設備的名稱。

  4. 在 [處理序伺服器] 中,選取複寫設備的名稱。

  5. [來賓認證] 中,選取複寫安裝程式設定期間先前所建立的虛擬帳戶。 接著選取 [下一步:虛擬機器]

    Screenshot of the Source settings tab in the Replicate screen with the Guest credentials field highlighted.

  6. 在 [虛擬機器] 的 [從評量匯入移轉設定?] 中,保留預設設定 [否,我將手動指定移轉設定]。

  7. 檢查您要遷移的每個 VM。 然後選取 [下一步:目標設定]。

    Screenshot of the Select VMs option.

  8. 在 [目標設定] 中,選取訂用帳戶、您的遷移目標區域,並指定 Azure VM 在移轉後所在的資源群組。

  9. 在 [虛擬網路] 中,選取 Azure VM 在移轉後所將加入的 Azure VNet/子網路。

  10. 可用性選項中,選取:

    • 可用性區域,將已遷移的機器釘選到該區域中特定的可用性區域。 使用此選項可將形成多節點應用程式層的伺服器散發到可用性區域。 如果選取此選項,則必須在計算索引標籤中指定要用於每部所選電腦的可用性區域。只有選取要移轉的目的地區域支援可用性區域時,才可以使用此選項
    • 可用性設定組,可將遷移的電腦放在可用性設定組中。 選取的目標資源群組必須有一或多個可用性設定組,才能使用此選項。
    • 如果您不需要為已遷移的電腦提供任何一種可用性設定,則不需要任何基礎結構備援選項。
  11. 磁碟加密類型中,選取:

    • 使用平台代控金鑰加密待用資料
    • 使用客戶自控金鑰加密待用資料
    • 使用平台管理和客戶管理的金鑰進行雙重加密

    注意

    若要使用 CMK 複寫 VM,您必須在目標資源群組下建立磁碟加密集。 磁碟加密設定物件會將受控磁碟對應至包含要用於 SSE 之 CMK 的 Key Vault。

  12. 在 [Azure Hybrid Benefit] 中:

    • 如果您不想套用 Azure Hybrid Benefit,請選取 [否]。 然後選取 [下一步]。
    • 如果您有 Windows Server 機器涵蓋於有效的軟體保證或 Windows Server 訂用帳戶下,且您想要將權益套用至要移轉的機器,請選取 [是]。 然後選取 [下一步]。

    Screenshot of the Target settings option.

  13. 請檢閱計算中的 VM 名稱、大小、OS 磁碟類型和可用性設定 (如果有在上一個步驟中選取)。 VM 必須符合 Azure 需求

    • VM 大小:如果您使用評估建議,[VM 大小] 下拉式清單會顯示建議的大小。 否則,Azure Migrate 會根據 Azure 訂用帳戶中最接近的相符項來選擇大小。 或者,您可以在 [Azure VM 大小] 中手動選擇大小。
    • OS 磁碟:指定 VM 的 OS (開機) 磁碟。 OS 磁碟是具有作業系統開機載入器和安裝程式的磁碟。
    • 可用性區域:指定要使用的可用性區域。
    • 可用性設定組:指定要使用的可用性設定組。

    Screenshot of the Compute settings option.

  14. 在 [磁碟] 中,指定是否應將 VM 磁碟複寫至 Azure,並選取 Azure 中的磁碟類型 (標準 SSD/HDD 或進階受控磁碟)。 然後選取 [下一步]。

    • 使用您先前所列的清單,以選取各伺服器要複寫的磁碟。 從複寫排除其他磁碟。

    Screenshot of the Disk settings option.

  15. [檢閱並啟動複寫] 中檢閱設定,然後按一下 [複寫] 開始進行伺服器的初始複寫。

注意

您可以在複寫開始之前隨時更新複寫設定 (經由 [管理]>[複寫機器])。 在複寫啟動後,就無法變更設定。

追蹤和監視

複寫會依下列順序進行:

  • 選取 [複寫] 時,隨即開始進行 [啟動複寫] 作業。
  • 啟動複寫作業順利完成後,機器便會開始初始複寫至 Azure。
  • 初始複寫完成後,就會開始進行差異複寫。 對內部部署磁碟的累加變更會定期複寫至 Azure 中的複本磁碟。
  • 初始複寫完成後,請設定各 VM 的計算和網路項目。 叢集通常有多個 NIC,但移轉 僅需要一個 NIC (將其他設為不建立)。

您可以在入口網站通知中追蹤作業狀態。

您可在 [Azure Migrate:伺服器移轉] 中選取 [複寫伺服器],以監視複寫狀態。

Screenshot of the Monitor replication option.

移轉 VM

機器複寫後即可開始進行移轉。 若要移轉您的伺服器,請遵循下列步驟:

  1. 在 Azure Migrate 專案 >[伺服器]>[Azure Migrate:伺服器移轉] 中,選取 [複寫伺服器]

    Screenshot of the Replicating servers option.

  2. 若要確保移轉的伺服器與來源伺服器同步,請在容錯移轉叢集管理員>角色>其他資源中停止 SQL Server 資源,並確保叢集磁碟為線上狀態。

  3. [複寫機器]> 選取伺服器名稱 >[概觀],以確保最後同步的時間戳記晚於待移轉伺服器上的 SQL Server 資源停止時間、早於移至下一步的時間。 這應僅需要幾分鐘的時間。

  4. [複寫機器] 中,以滑鼠右鍵按一下 VM >[移轉]

  5. [移轉]>[將虛擬機器關機,在沒有資料遺失的情況下執行計劃性移轉] 中,選取 [否]>[確定]

    注意

    針對實體伺服器移轉,系統不會自動支援關閉來源機器。 完成移轉前,建議先關閉應用程式作為移轉視窗的一部份 (不要讓應用程式接受任何連線),再起始移轉 (伺服器必須保持執行狀態,以便同步處理其餘的變更)。

  6. VM 會啟動移轉作業。 請在 Azure 通知中追蹤該作業。

  7. 作業完成後,您可以從 [虛擬機器] 頁面檢視及管理 VM。

重新設定叢集

在您的 VM 已移轉後,請重新設定叢集。 依照下列步驟執行:

  1. 將 Azure 中已移轉的伺服器關機。

  2. 將已移轉的機器新增至負載平衡器的後端集區。 瀏覽至 Load BalancerBackend 集區

  3. 選取後端集區,然後新增已移轉的機器。

  4. 執行指令碼 Create-SharedDisks.ps1,將伺服器的已移轉磁碟重新設定為共用磁碟。 該指令碼為互動式,將提示您輸入機器清單,並顯示可擷取的磁碟 (僅資料磁碟)。 系統將提示您一次,以選取要轉換為共用磁碟的磁碟機所屬機器。 選取後,系統將再次提示您 (每部機器一次) 挑選特定的磁碟。

    參數 型別 說明
    resourceGroupName 強制性 指定包含已移轉伺服器的資源群組名稱。
    NumberofNodes 選擇性 指定容錯移轉叢集執行個體中的節點數目。 此參數用於識別待建立共用磁碟的正確 SKU。 依預設,指令碼假設叢集中的節點數目為 2。
    DiskNamePrefix 選擇性 指定共用磁碟名稱要新增的前置詞。
    ./Create-SharedDisks.ps1 -ResourceGroupName $resoucegroupname -NumberofNodes $nodesincluster -DiskNamePrefix $disknameprefix
    
  5. 執行 Attach-SharedDisks.ps1 指令碼,將共用磁碟連結至已移轉的伺服器。

    參數 型別 說明
    resourceGroupName 強制性 指定包含已移轉伺服器的資源群組名稱。
    StartingLunNumber 選擇性 指定共用磁碟可連結的 LUN 起始編號。 依預設,指令碼會嘗試將共用磁碟連結至從 0 開始的 LUN。
    ./Attach-ShareDisks.ps1 -ResourceGroupName $resoucegroupname
    
  6. 在 Azure 中啟動已移轉的伺服器,接著登入任何節點。

  7. 複製 Cluster-Config.csv 檔案,並執行可傳送 CSV 作為參數的 Update-ClusterConfig.ps1 指令碼。 如此將可確保以新設定來更新叢集資源,以便在 Azure 中使用叢集。

    ./Update-ClusterConfig.ps1 -ConfigFilePath $filepath
    

您的 SQL Server 容錯移轉叢集執行個體已準備就緒。

完成移轉

  1. 完成移轉後,以滑鼠右鍵按一下 VM > >[停止移轉]。 這會執行以下動作:
    • 停止內部部署機器的複寫。
    • 從 Azure Migrate 中的複寫伺服器計數移除機器:伺服器移轉。
    • 清除機器的複寫狀態資訊。
  2. 在已移轉的機器上安裝 Azure VM Windows 代理程式。
  3. 執行任何移轉後應用程式調整,例如更新資料庫連接字串和 Web 伺服器設定。
  4. 在現在於 Azure 中執行的已移轉應用程式上,執行最終的應用程式和移轉接受度測試。
  5. 將流量完全移轉至已遷移的 Azure VM 執行個體。
  6. 從您的本機 VM 清查中移除內部部署 VM。
  7. 從本機備份中移除內部部署 VM。
  8. 更新任何內部文件,以顯示 Azure VM 的新位置和 IP 位址。

移轉後的最佳做法

後續步驟