本文說明如何使用 Azure PowerShell 透過 Azure 備份 復原服務保存庫來備份 Azure 檔案服務。
先決條件
在備份 Azure Files 之前,請確定符合下列必要條件:
設定 PowerShell
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
注意
Azure PowerShell 目前不支援以每小時排程的備份原則。 使用 Azure 入口網站來套用這項功能。 深入了解
設定 PowerShell,如下所示:
-
注意
備份 Azure 檔案記憶體所需的最低 PowerShell 版本是 Az.RecoveryServices 2.6.0。 最新版本或至少最低版本可協助您避免現有腳本的問題。 使用下列 PowerShell 命令來安裝最低支援版本:
Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
使用此命令,尋找 Azure 備份的 PowerShell Cmdlet:
Get-Command *azrecoveryservices*
檢閱 Azure備份、Azure Site Recovery 與復原服務保存庫的別名與 Cmdlet。 以下是您可能會看到的範例。 其不是 Cmdlet 的完整清單。
使用 Connect-AzAccount 登入您的 Azure 帳戶。
在顯示的網頁中,系統會提示您輸入帳戶認證。
或者,您可以使用 -Credential,以參數形式將您的帳戶認證加入 Connect-AzAccount Cmdlet。
如果您是代表租使用者工作的雲端服務提供者 (CSP) 合作夥伴,請將客戶指定為租使用者。 請使用其租用戶識別碼或租用戶主網域名稱。 例如 Connect-AzAccount -Tenant "fabrikam.com"。
由於一個帳戶可以有多項訂閱,因此請將要使用的訂閱與帳戶建立關聯:
Select-AzSubscription -SubscriptionName $SubscriptionName
如果您是第一次使用 Azure 備份,請使用 Register-AzResourceProvider Cmdlet,透過訂閱項目來註冊 Azure 復原服務提供者:
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
確認提供者已成功註冊:
Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
在命令輸出中,確認 RegistrationState 會變更為 Registered。 如果沒有,請再次執行 Register-AzResourceProvider Cmdlet。
建立復原服務保存庫
復原服務保存庫是一項 Resource Manager 資源,因此您必須將其放在資源群組內。 您可以使用現有的資源群組,或使用 New-AzResourceGroup Cmdlet 建立資源群組。 建立資源群組時,請指定資源群組的名稱與位置。
依照下列步驟建立復原服務保存庫:
如果您沒有現有的資源群組,請使用 New-AzResourceGroup Cmdlet 建立新的資源群組。 在此範例中,我們會在美國西部區域建立資源群組:
New-AzResourceGroup -Name "test-rg" -Location "West US"
使用 New-AzRecoveryServicesVault Cmdlet 來建立保存庫。 為保存庫指定位置,其應與資源群組使用的位置相同。
New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
在訂用帳戶中檢視保存庫
若要檢視訂用帳戶中的所有保存庫,請使用 Get-AzRecoveryServicesVault:
Get-AzRecoveryServicesVault
輸出大致如下。 輸出會提供相關聯的資源群組和位置。
Name : Contoso-vault
ID : /subscriptions/1234
Type : Microsoft.RecoveryServices/vaults
Location : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId : 1234-567f-8910-abc
Properties : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
設定保存庫內容
將保存庫物件儲存在變數中,並設定保存庫內容。
許多 Azure 備份 Cmdlet 都需要復原服務保存庫物件作為輸入,因此,將保存庫物件儲存在變數中很方便。
保存庫內容是保存庫中受保護的資料類型。 使用 Set-AzRecoveryServicesVaultContext 來加以設定。 設定內容之後,即可將其套用至所有後續的 Cmdlet。
下列範例會設定testvault
的儲存庫內容:
Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext
擷取保存庫識別碼
我們計畫根據 Azure PowerShell 指導方針來取代保存庫內容設定。 您可以改為儲存或擷取保存庫識別碼,並將其傳遞至相關命令。 如果您尚未設定保存庫內容,或您想要指定要針對特定保存庫執行的命令,請將保存庫識別碼 -vaultID
傳遞給所有相關的命令,如下所示:
$vaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultID $vaultID
設定備份原則
備份原則會指定備份的排程,以及備份復原點應保留多久時間。
備份原則至少與一個保留原則相關聯。 保留原則會定義保留恢復點的時間長度。 您可以設定每日、每週、每月或每年保留的備份。 透過多個備份原則,您也可以設定每小時備份的保留期。
重要
下列 Cmdlet 用於備份原則:
- 使用
Get-AzRecoveryServicesBackupRetentionPolicyObject
檢視默認備份保留原則。 - 使用
Get-AzRecoveryServicesBackupSchedulePolicyObject
檢視默認備份排程原則。 - 使用
New-AzRecoveryServicesBackupProtectionPolicy
建立新的備份原則。 提供排程和保留原則物件做為輸入。
選擇備份階層:
若要建立備份原則,設定 Azure 檔案快照集備份的一天內多次備份,請執行下列 cmdlet:
擷取排程原則物件。
$schPol=Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly $schPol
範例輸出:
ScheduleRunFrequency : Hourly ScheduleRunDays : ScheduleRunTimes : ScheduleInterval : 8 ScheduleWindowStartTime : 12/22/2021 8:00:00 AM ScheduleWindowDuration : 16 ScheduleRunTimeZone : India Standard Time
視需要設定排程的不同參數。
$schpol.ScheduleInterval=4 $schpol.ScheduleWindowDuration=12
先前的設定協助您在上午 8 點至晚上 8 點 (上午 8 點 + 12 小時) 的時間範圍內排程 4 次備份。 您也可以透過下列 Cmdlet 設定上述的時區:
$timeZone= $timeZone=Get-TimeZone -ListAvailable |Where-Object{$_.Id-match "Russia Time Zone 11"} $schPol.ScheduleRunTimeZone=$timeZone.Id
若要使用每日排程建立原則,請執行下列 Cmdlet:
$UtcTime = Get-Date -Date "2019-03-20 01:30:00Z" $UtcTime = $UtcTime.ToUniversalTime() $schpol.ScheduleRunTimes[0] = $UtcTime
使用下列 Cmdlet 擷取保留原則物件:
$retPol=Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly
視需要設定保留期間值。
$retPol.DailySchedule.DurationCountInDays=15
使用 New-AzRecoveryServicesBackupProtectionPolicy 建立新的備份原則。
您可以傳遞先前設定為輸入的排程和保留原則物件。
New-AzRecoveryServicesBackupProtectionPolicy -Name "FilesPolicytesting" -WorkloadType AzureFiles -RetentionPolicy $retpol -SchedulePolicy $schpol
輸出會顯示原則設定:
Name WorkloadType BackupManagementType ScheduleFrequency BackupTime WindowStartTime Interval WindowDuration TimeZone (UTC) (Hours) ---- ------------ -------------------- ----------------- ------------ --------------- -------- -------------- -------- FilesPolicy testing AzureFiles AzureStorage Hourly 12/22/2021 8:00:00 AM 4 12 Russia Time Zone 11
啟用備份
定義備份原則之後,您可以使用原則來啟用 Azure 檔案服務的保護。
擷取備份原則
首先,使用 Get-AzRecoveryServicesBackupProtectionPolicy 擷取相關的原則物件。 使用此 Cmdlet 來檢視與工作負載類型相關聯的原則,或取得特定原則。
擷取工作負載類型的原則
下列範例會擷取工作負載類型 AzureFiles 的原則:
Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"
範例輸出:
Name WorkloadType BackupManagementType BackupTime DaysOfWeek
---- ------------ -------------------- ---------- ----------
dailyafs AzureFiles AzureStorage 1/10/2018 12:30:00 AM
注意
PowerShell 中 BackupTime 欄位的時區是 UTC。 當備份時間顯示在 Azure 入口網站中時,系統會根據您的當地時區調整時間。
擷取特定原則
下列原則會擷取名為 dailyafs 的備份原則:
$afsPol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "dailyafs"
啟用保護並套用原則
使用 Enable-AzRecoveryServicesBackupProtection 啟用保護。 當原則與保存庫建立關聯之後,就會根據原則排程來觸發備份。
下列範例會在儲存體帳戶testStorageAcct中使用原則dailyafs,為 Azure 檔案testAzureFS 啟用保護:
Enable-AzRecoveryServicesBackupProtection -StorageAccountName "testStorageAcct" -Name "testAzureFS" -Policy $afsPol
此命令會等到設定保護作業完成,並提供類似下列範例的輸出:
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
testAzureFS ConfigureBackup Completed 11/12/2018 2:15:26 PM 11/12/2018 2:16:11 PM ec7d4f1d-40bd-46a4-9edb-3193c41f6bf6
如需如何取得記憶體帳戶檔案共享清單的詳細資訊,請參閱 這篇文章。
重要通知:備份項目識別
本節概述 Azure 檔案記憶體備份的重要變更,以準備正式運作。
當您啟用 Azure 檔案的備份時,使用者會獲得檔案共用名稱作為實體名稱,並建立備份項目。 備份項目的名稱是 Azure 備份服務建立的唯一識別碼。 識別碼通常是使用者容易記住的自訂名稱。 若要處理軟刪除案例,其中檔案共用被刪除,並建立具有相同名稱的新檔案共用時,Azure Files 現在會使用唯一識別碼。
若要了解每個項目的唯一識別碼,請使用 backupManagementType 和 WorkloadType 的相關篩選執行 Get-AzRecoveryServicesBackupItem 命令,以取得所有相關項目。 然後觀察傳回的 PowerShell 物件/回應中的名稱欄位。
建議您列出項目,然後在回應中的 [名稱] 欄位擷取其唯一名稱。 使用此值,以 Name 參數篩選項目。 否則,請使用 FriendlyName 參數以其識別碼擷取該項目。
重要
請確定 PowerShell 已升級至 Azure 檔案記憶體備份的最低版本 (Az.RecoveryServices 2.6.0)。 使用此版本時,FriendlyName 篩選條件可供 Get-AzRecoveryServicesBackupItem 命令使用。
將 Azure 檔案服務的名稱傳遞至 FriendlyName 參數。 如果您將檔案共享的名稱傳遞至 Name 參數,這個版本會擲回警告,以將名稱傳遞至 FriendlyName 參數。
若未安裝最低支援版本,可能會導致現有指令碼失敗。 使用下列命令來安裝 PowerShell 最低支援版本:
Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
觸發隨選備份
若要執行受保護 Azure 檔案服務的隨選備份,請使用 Backup-AzRecoveryServicesBackupItem Cmdlet:
- 使用 Get-AzRecoveryServicesBackupContainer,從保存備份資料之保存庫中的容器擷取儲存體帳戶。
- 啟動備份作業,使用 Get-AzRecoveryServicesBackupItem 取得 Azure 檔案記憶體的相關信息。
- 使用 Backup-AzRecoveryServicesBackupItem 來執行隨選備份。
如下所示執行隨選備份:
$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType "AzureFiles" -FriendlyName "testAzureFS"
$job = Backup-AzRecoveryServicesBackupItem -Item $afsBkpItem
此命令會傳回具識別碼可供追蹤的作業,如下列範例所示:
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
testAzureFS Backup Completed 11/12/2018 2:42:07 PM 11/12/2018 2:42:11 PM 8bdfe3ab-9bf7-4be6-83d6-37ff1ca13ab6
備份時會使用 Azure Files 快照。 通常工作會在命令傳回此輸出時完成。
下一步
- 使用 Azure PowerShell 還原 Azure 檔案。
- 使用 Azure 入口網站、 Azure CLI、 REST API 還原 Azure 檔案記憶體。
- 使用 Azure 入口網站、 Azure PowerShell、 Azure CLI、 REST API 來管理 Azure 檔案記憶體備份。
- GitHub 上的範例腳本 ,用於使用 Azure 自動化 Runbook 來排程備份。