備份 Azure Stack Hub 上的儲存體帳戶

本文探討如何保護和復原 Azure Stack Hub 上的 Azure 儲存體帳戶內的儲存體帳戶。

解決方案的元素

本節探討解決方案的整體結構和主要部分。

顯示 Azure Stack Hub 儲存備份的整體結構圖表

應用程式層

您可以發出多個 PUT Blob放置區塊作業將物件寫入至多個位置,以在不同 Azure Stack Hub 縮放單位上的儲存體帳戶之間複寫資料。 或者,應用程式也可以發出複製 Blob 作業,以便在主要帳戶的放置作業完成後,將 Blob 複製到裝載於不同縮放單位上的儲存體帳戶。

排定的複製工作

AzCopy 是絕佳的工具,可用來複製本機檔案系統、Azure 雲端儲存體、Azure Stack Hub 儲存體和 s3 中的資料。 目前,AzCopy 無法在兩個 Azure Stack Hub 儲存體帳戶之間複製資料。 要將物件從來源 Azure Stack Hub 儲存體帳戶複製到目標 Azure Stack Hub 儲存體帳戶,必須要有中繼本機檔案系統。

如需詳細資訊,請參閱使用 Azure Stack Hub 儲存體中的資料傳輸工具一文中的 AzCopy。

Azure Stack Hub (來源)

這是您想要備份的儲存體帳戶資料來源。

您將需要來源儲存體帳戶 URL 和 SAS 權杖。 如需如何使用儲存體帳戶的指示,請參閱開始使用 Azure Stack Hub 儲存體開發工具

Azure Stack Hub (目標)

這是將用來儲存所要備份帳戶資料的目標。 目標 Azure Stack Hub 執行個體必須與目標 Azure Stack Hub 位於不同的位置。 而來源則必須能夠連線至目標。

您將需要來源儲存體帳戶 URL 和 SAS 權杖。 如需如何使用儲存體帳戶的指示,請參閱開始使用 Azure Stack Hub 儲存體開發工具

中繼本機檔案系統

您需要有地方可供執行 AzCopy,以及在從來源複製並寫入到目標 Azure Stack Hub 時用來儲存資料。 這是來源 Azure Stack Hub 中的中繼伺服器。

您可以建立 Linux 或 Windows 伺服器來作為中繼伺服器。 伺服器必須有足夠的空間,才能儲存來源儲存體帳戶容器中的所有物件。

設定好 Windows Server 之後,您必須安裝 Azure Stack Hub PowerShellAzure Stack Hub 工具

設定儲存體帳戶的備份

  1. 擷取來源和目標儲存體帳戶的 Blob 端點。

    顯示來源和目標儲存體帳戶的主要 blob 端點的螢幕擷取畫面。

  2. 建立並記錄來源和目標儲存體帳戶的 SAS 權杖。

    Azure Stack Hub 儲存體備份

  3. 在中繼伺服器上安裝 AzCopy,並將 [API 版本] 設定為 Azure Stack Hub 儲存體帳戶的帳戶。

    • 若為 Windows Server:
    set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09 PowerShell use: $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09"
    
    • 若為 Linux (Ubuntu) 伺服器:
    export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
    
  4. 在中繼伺服器上建立指令碼。 使用您的儲存體帳戶SAS 金鑰本機目錄路徑來更新此命令。 您將會執行指令碼,以累加方式從來源儲存體帳戶複製資料。

    azcopy sync "https:/<storagaccount>/<container>?<SAS Key>" "C:\\myFolder" --recursive=true --delete-destination=true
    
  5. 輸入儲存體帳戶SAS 金鑰本機目錄路徑。 您將會使用此資訊,以累加方式將資料複製到目標儲存體帳戶

    azcopy sync "C:\\myFolder" "https:// <storagaccount>/<container>?<SAS Key>" --recursive=true --delete-destination=true
    
  6. 使用 Cron 或 Windows 工作排程器,來排程從來源 Azure Stack Hub 儲存體帳戶複製到中繼伺服器上的本機儲存體的作業。 然後,從中繼伺服器中的本機儲存體複製到目標 Azure Stack Hub 儲存體帳戶。

    您可以使用此解決方案達到的 RPO,將取決於 /MO 參數值,以及來源帳戶與中繼伺服器和中繼伺服器與目標帳戶之間的網路頻寬。

    • 若為 Linux (Ubuntu) 伺服器:
    schtasks /CREATE /SC minute /MO 5 /TN "AzCopy Script" /TR C:\\&lt;script name>.bat
    
    參數 注意
    /SC 使用分鐘排程。
    /MO XX 分鐘的間隔。
    /TN 工作名稱。
    /TR script.bat 檔案的路徑。
    • 若為 Windows Server:

    如需如何使用 Windows 工作排程的相關資訊,請參閱適用於開發人員的工作排程器

在災害中使用您的儲存體帳戶

每個 Azure Stack Hub 儲存體帳戶都擁有唯一的 DNS 名稱,此名稱衍生自 Azure Stack Hub 區域本身的名稱,例如 https://krsource.blob.east.asicdc.com/。 當災害期間必須用到目標帳戶 (例如,https://krtarget.blob.west.asicdc.com/) 時,透過此 DNS 名稱寫入和讀取的應用程式將必須符合儲存體帳戶的 DNS 名稱變更。

在對帳戶宣告發生災害之後可以修改應用程式連接字串以便重新放置物件,或者,如果在對來源和目標儲存體帳戶進行前端處理的負載平衡器前面使用 CNAME 記錄,則可以為負載平衡器設定手動容錯移轉演算法,以便讓系統管理員宣告目標

如果應用程式使用 SAS,而不是Microsoft Entra識別碼或 AD FS,則上述方法將無法運作,而且必須使用目標儲存體帳戶 URL 和針對目標儲存體帳戶產生的 SAS 金鑰 () 來更新應用程式連接字串。

後續步驟

開始使用 Azure Stack Hub 儲存體開發工具