使用 PowerShell 備份 Azure 檔案共用
本文說明如何使用 Azure PowerShell 透過 Azure 備份復原服務保存庫,來備份 Azure 檔案儲存體檔案共用。
本篇文章說明如何︰
- 設定 PowerShell 並註冊復原服務提供者。
- 建立復原服務保存庫。
- 設定 Azure 檔案共用備份。
- 執行備份作業。
在您開始使用 Intune 之前
設定 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
建立新的備份原則。 提供排程和保留原則物件做為輸入。
若要建立一天設定多個備份的備份原則,請遵循下列步驟:
使用下列 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 啟用保護。 當原則與保存庫建立關聯之後,就會根據原則排程來觸發備份。
下列範例會使用原則 dailyafs,針對儲存體帳戶 testStorageAcct 中的 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 檔案共用的唯一身分識別則會成為識別碼。
若要了解每個項目的唯一識別碼,請使用 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
觸發隨選備份
使用 Backup-AzRecoveryServicesBackupItem 以執行受保護之 Azure 檔案共用的隨選備份:
- 使用 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 檔案共用快照集。 通常工作會在命令傳回此輸出時完成。
下一步
- 深入了解如何在 Azure 入口網站中備份 Azure 檔案儲存體。
- 請參閱 GitHub 上的樣本指令碼,以使用 Azure 自動化 Runbook 來排程備份。