PowerShell を使用して Azure Files をバックアップするBack up Azure Files with PowerShell

この記事では、Azure Backup Recovery Services コンテナーを使用して Azure Files のファイル共有をバックアップするために Azure PowerShell を使用する方法を説明します。This article describes how to use Azure PowerShell to back up an Azure Files file share using an Azure Backup Recovery Services vault.

この記事では、以下の方法について説明します。This article explains how to:

  • PowerShell を設定し、Azure Recovery Services プロバイダーを登録します。Set up PowerShell and register the Azure Recovery Services Provider.
  • Recovery Services コンテナーを作成する。Create a Recovery Services vault.
  • Azure ファイル共有のバックアップを構成する。Configure backup for an Azure file share.
  • バックアップ ジョブを実行します。Run a backup job.

開始する前にBefore you start

Recovery Services オブジェクトの階層Recovery Services object hierarchy

オブジェクト階層の概要を次の図に示します。The object hierarchy is summarized in the following diagram.

Recovery Services オブジェクトの階層

Azure ライブラリの Az.RecoveryServices コマンドレット リファレンスのリファレンスを確認します。Review the Az.RecoveryServices cmdlet reference reference in the Azure library.

設定とインストールSet up and install

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

PowerShell を次のように設定します。Set up PowerShell as follows:

  1. 最新バージョンの Az PowerShell をダウンロードしますDownload the latest version of Az PowerShell. 必要な最小バージョンは 1.0.0 です。The minimum version required is 1.0.0.

警告

プレビューに必要な PS の最小バージョンは "Az 1.0.0" でした。The minimum version of PS required for preview was 'Az 1.0.0'. GA に向けた今後の変更により、必要とされる PS の最小バージョンは "Az.RecoveryServices 2.6.0" になります。Due to upcoming changes for GA, the minimum PS version required will be 'Az.RecoveryServices 2.6.0'. すべての既存の PS バージョンをこのバージョンにアップグレードすることが非常に重要です。It is very important to upgrade all existing PS versions to this version. そうしないと、既存のスクリプトは GA 後に中断されます。Otherwise, the existing scripts will break after GA. 次の PS コマンドを使用して最小バージョンをインストールします。Install the minimum version with the following PS commands

Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
  1. 次のコマンドを使用して、Azure Backup PowerShell コマンドレットを検索します。Find the Azure Backup PowerShell cmdlets with this command:

    Get-Command *azrecoveryservices*
    
  2. Azure Backup、Azure Site Recovery、Recovery Services コンテナーの別名とコマンドレットを確認します。Review the aliases and cmdlets for Azure Backup, Azure Site Recovery, and the Recovery Services vault appear. 表示例を次に示します。Here's an example of what you might see. これはコマンドレットの完全な一覧ではありません。It's not a complete list of cmdlets.

    Recovery Services コマンドレットの一覧

  3. Connect-AzAccount を使用して Azure アカウントにサインインします。Sign in to your Azure account with Connect-AzAccount.

  4. 表示される Web ページで、アカウントの資格情報を入力するように求められます。On the web page that appears, you're prompted to input your account credentials.

    • または、 -Credential を使用して、Connect-AzAccount コマンドレットのパラメーターとしてアカウントの資格情報を含めることもできます。Alternately, you can include your account credentials as a parameter in the Connect-AzAccount cmdlet with -Credential.
    • CSP パートナーがテナントの代理としてサインインする場合は、その顧客をテナントとして指定します。該当する tenantID またはテナントのプライマリ ドメイン名で指定してください。If you're a CSP partner working on behalf of a tenant, specify the customer as a tenant, using their tenantID or tenant primary domain name. たとえば、「Connect-AzAccount -Tenant fabrikam.com」を指定します。An example is Connect-AzAccount -Tenant fabrikam.com.
  5. 1 つのアカウントが複数のサブスクリプションを持つことができるため、使用するサブスクリプションをアカウントに関連付けます。Associate the subscription you want to use with the account, because an account can have several subscriptions.

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  6. Azure Backup を初めて使用する場合、Register-AzResourceProvider コマンドレットを使って Azure Recovery Services プロバイダーをサブスクリプションに登録します。If you're using Azure Backup for the first time, use the Register-AzResourceProvider cmdlet to register the Azure Recovery Services provider with your subscription.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  7. プロバイダーが正常に登録されたことを確認します。Verify that the providers registered successfully:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  8. コマンド出力で、RegistrationStateRegistered に変わっていることを確認します。In the command output, verify that RegistrationState changes to Registered. 変わっていない場合は、Register-AzResourceProvider コマンドレットをもう一度実行します。If it doesn't, run the Register-AzResourceProvider cmdlet again.

Recovery Services コンテナーを作成するCreate a Recovery Services vault

Recovery Services コンテナーは Resource Manager のリソースであるため、リソース グループ内に配置する必要があります。The Recovery Services vault is a Resource Manager resource, so you must place it within a resource group. 既存のリソース グループを使用することも、New-AzResourceGroup コマンドレットを使ってリソース グループを作成することもできます。You can use an existing resource group, or you can create a resource group with the New-AzResourceGroup cmdlet. リソース グループを作成するときは、リソース グループの名前と場所を指定します。When you create a resource group, specify the name and location for the resource group.

Recovery Services コンテナーを作成するには、次の手順に従います。Follow these steps to create a Recovery Services vault.

  1. コンテナーはリソース グループに配置されます。A vault is placed in a resource group. 既存のリソース グループがない場合は、New-AzResourceGroup を使用して新しいリソース グループを作成します。If you don't have an existing resource group, create a new one with the New-AzResourceGroup. この例では、新しいリソース グループを米国西部リージョンに作成します。In this example, we create a new resource group in the West US region.

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. New-AzRecoveryServicesVault コマンドレットを使用して、コンテナーを作成します。Use the New-AzRecoveryServicesVault cmdlet to create the vault. リソース グループに使用したのと同じコンテナーの場所を指定します。Specify the same location for the vault as was used for the resource group.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    
  3. コンテナー ストレージに使用する冗長性の種類を指定します。Specify the type of redundancy to use for the vault storage.

サブスクリプション内のコンテナーの表示View the vaults in a subscription

サブスクリプション内のコンテナーをすべて表示するには、Get-AzRecoveryServicesVault を使用します。To view all vaults in the subscription, use Get-AzRecoveryServicesVault.

Get-AzRecoveryServicesVault

次のように出力されます。The output is similar to the following. 関連するリソース グループと場所が指定されていることに注目してください。Note that the associated resource group and location are provided.

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

コンテナーのコンテキストを設定するSet the vault context

このコンテナー オブジェクトを変数に格納し、そのコンテナーのコンテキストを設定します。Store the vault object in a variable, and set the vault context.

  • Azure Backup コマンドレットの多くは、入力として Recovery Services コンテナー オブジェクトを必要とするので、コンテナー オブジェクトを変数に格納すると便利です。Many Azure Backup cmdlets require the Recovery Services vault object as an input, so it's convenient to store the vault object in a variable.
  • コンテナーのコンテキストとは、コンテナーで保護されるデータの種類です。The vault context is the type of data protected in the vault. これを、Set-AzRecoveryServicesVaultContext を使用して設定します。Set it with Set-AzRecoveryServicesVaultContext. コンテキストが設定されると、それが後続のすべてのコマンドレットに適用されます。After the context is set, it applies to all subsequent cmdlets.

次の例では、testvault のコンテナーのコンテキストを設定します。The following example sets the vault context for testvault.

Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext

コンテナー ID をフェッチするFetch the vault ID

コンテナーのコンテキストの設定は、Azure PowerShell のガイドラインに従って廃止される予定です。We plan on deprecating the vault context setting in accordance with Azure PowerShell guidelines. 代わりに、次のようにコンテナー ID を格納またはフェッチし、関連するコマンドに渡すことができます。Instead, you can store or fetch the vault ID, and pass it to relevant commands. そのため、コンテナーのコンテキストを設定していない場合や、特定のコンテナーに対して実行するコマンドを指定する場合は、次のように関連するすべてのコマンドにコンテナー ID を "-vaultID" として渡します。So, if you haven't set the vault context or want to specify the command to run for a certain vault, pass the vault ID as "-vaultID" to all relevant command as follows:

$vaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultID $vaultID

バックアップ ポリシーを構成するConfigure a backup policy

バックアップ ポリシーは、バックアップのスケジュール、およびバックアップの復旧ポイントを保持する期間を指定します。A backup policy specifies the schedule for backups, and how long backup recovery points should be kept:

既定では、開始時刻はスケジュール ポリシー オブジェクトで定義されます。By default, a start time is defined in the Schedule Policy Object. 開始時刻を希望の時刻に変更するには、次の例を使用します。Use the following example to change the start time to the desired start time. 希望の開始時刻も、UTC で指定する必要があります。The desired start time should be in UTC as well. 次の例では、毎日のバックアップの希望の開始時刻が午前 01:00 UTC であるものとします。The below example assumes the desired start time is 01:00 AM UTC for daily backups.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$UtcTime = Get-Date -Date "2019-03-20 01:30:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime

重要

開始時刻は 30 分単位のみで指定する必要があります。You need to provide the start time in 30 minute multiples only. 上の例では、"01:00:00" または "02:30:00" のみを指定できます。In the above example, it can be only "01:00:00" or "02:30:00". 開始時刻を "01:15:00" にすることはできません。The start time cannot be "01:15:00"

次の例では、スケジュール ポリシーとアイテム保持ポリシーを変数に格納します。The following example stores the schedule policy and the retention policy in variables. その後に、それらの変数を新しいポリシー (NewAFSPolicy) のパラメーターとして使用しています。It then uses those variables as parameters for a new policy (NewAFSPolicy). NewAFSPolicy は毎日のバックアップを受け取り、30 日間保持します。NewAFSPolicy takes a daily backup and retains it for 30 days.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureFiles"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol

次のように出力されます。The output is similar to the following.

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewAFSPolicy           AzureFiles            AzureStorage              10/24/2019 1:30:00 AM

バックアップの有効化Enable backup

バックアップ ポリシーを定義したら、このポリシーを使用して、Azure ファイル共有の保護を有効にできます。After you define the backup policy, you can enable the protection for the Azure file share using the policy.

バックアップ ポリシーを取得するRetrieve a backup policy

Get-AzRecoveryServicesBackupProtectionPolicy を使用して、関連するポリシー オブジェクトをフェッチします。You fetch the relevant policy object with Get-AzRecoveryServicesBackupProtectionPolicy. このコマンドレットを使用して、特定のポリシーを取得したり、ワークロードの種類に関連付けられているポリシーを表示したりできます。Use this cmdlet to get a specific policy, or to view the policies associated with a workload type.

ワークロードの種類のポリシーを取得するRetrieve a policy for a workload type

次の例では、ワークロードの種類が AzureFiles であるポリシーを取得します。The following example retrieves policies for the workload type AzureFiles.

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"

次のように出力されます。The output is similar to the following.

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
dailyafs             AzureFiles         AzureStorage         1/10/2018 12:30:00 AM

注意

PowerShell の BackupTime フィールドのタイム ゾーンは協定世界時 (UTC) です。The time zone of the BackupTime field in PowerShell is Universal Coordinated Time (UTC). Azure portal 上でバックアップ時刻が表示されるときに、時刻はローカル タイム ゾーンに調整されます。When the backup time is shown in the Azure portal, the time is adjusted to your local time zone.

特定のポリシーを取得するRetrieve a specific policy

次のポリシーでは、dailyafs という名前のバックアップ ポリシーを取得します。The following policy retrieves the backup policy named dailyafs.

$afsPol =  Get-AzRecoveryServicesBackupProtectionPolicy -Name "dailyafs"

バックアップを有効にしてポリシーを適用するEnable backup and apply policy

Enable-AzRecoveryServicesBackupProtection を使用して、保護を有効にします。Enable protection with Enable-AzRecoveryServicesBackupProtection. ポリシーがコンテナーに関連付けられると、ポリシーのスケジュールに従ってバックアップがトリガーされます。After the policy is associated with the vault, backups are triggered in accordance with the policy schedule.

次の例では、ポリシー dailyafs を使用して、ストレージ アカウント testStorageAcct の Azure ファイル共有 testAzureFileShare の保護を有効にしています。The following example enables protection for the Azure file share testAzureFileShare in storage account testStorageAcct, with the policy dailyafs.

Enable-AzRecoveryServicesBackupProtection -StorageAccountName "testStorageAcct" -Name "testAzureFS" -Policy $afsPol

このコマンドは、保護の構成ジョブが完了し、下に示すような出力が得られるまで待機します。The command waits until the configure protection job is finished and gives a similar output, as shown.

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

重要な注意 - AFS バックアップのバックアップ項目の識別Important notice - Backup item identification for AFS backups

このセクションでは、GA に向けての準備における、AFS バックアップの重要な変更点について説明します。This section outlines an important change in AFS backup in preparation for GA.

AFS のバックアップを有効にするときに、ユーザーにわかりやすいファイル共有名をエンティティ名としてユーザーが指定し、バックアップ項目が作成されます。While enabling the backup for AFS, user supplies the customer friendly File share name as the entity name and a backup item is created. バックアップ項目の "名前" は、Azure Backup サービスによって作成される一意の識別子です。The backup item's 'name' is a unique identifier created by Azure Backup service. 通常、識別子にはユーザー フレンドリ名が含まれます。Usually the identifier involves user friendly name. しかし、ファイル共有を削除して同じ名前で別のファイル共有を作成できるという論理的な削除の重要なシナリオを処理するために、Azure ファイル共有の一意の ID をユーザー フレンドリ名ではなく ID とすることになりました。But to handle the important scenario of soft-delete, where a file share can be deleted and another file-share can be created with the same name, the unique identity of Azure file share will now be an ID instead of customer friendly name. 各項目の一意の ID または名前を確認するには、backupManagementType および WorkloadType に適切なフィルターを指定して Get-AzRecoveryServicesBackupItem コマンドを実行し、関連するすべての項目を取得してから、返された PS オブジェクトまたは応答の name フィールドを確認します。In order to know the unique identity/name of each item, just run the Get-AzRecoveryServicesBackupItem command with the relevant filters for backupManagementType and WorkloadType to get all the relevant items and then observe the name field in the returned PS object/response. 常に、項目を一覧表示したうえで、応答の "name" フィールドから一意の名前を取得することをお勧めします。It is always recommended to list items and then retrieve their unique name from 'name' field in response. この値を "Name" パラメーターで使用して、項目をフィルター処理します。Use this value to filter the items with the 'Name' parameter. または、FriendlyName パラメーターを使用して、そのユーザー フレンドリ名または識別子を持つ項目を取得します。Otherwise use the FriendlyName parameter to retrieve the item with it's customer friendly name/identifier.

警告

PS バージョンが、AFS バックアップ用の "Az.RecoveryServices 2.6.0" のための最小バージョンにアップグレードされていることを確認してください。Make sure the PS version is upgraded to the minimum version for 'Az.RecoveryServices 2.6.0' for AFS backups. このバージョンでは、Get-AzRecoveryServicesBackupItem コマンドで "friendlyName" フィルターを使用できます。With this version, the 'friendlyName' filter is available for Get-AzRecoveryServicesBackupItem command. Azure ファイル共有名を friendlyName パラメーターに渡します。Pass the Azure File Share name to friendlyName parameter. Azure ファイル共有名を "Name" パラメーターに渡すと、このバージョンでは、このフレンドリ名をフレンドリ名パラメーターに渡すための警告がスローされます。If you pass the Azure File Share name to the 'Name' parameter, this version throws a warning to pass this friendly name to the friendly name parameter. この最小バージョンをインストールしないと、既存のスクリプトでエラーが発生する可能性があります。Not installing this minimum version might result in failure of existing scripts. 次のコマンドを使用して PS の最小バージョンをインストールします。Install the minimum version of PS with the following command.

Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0

オンデマンド バックアップをトリガーするTrigger an on-demand backup

Backup-AzRecoveryServicesBackupItem を使用して、保護されている Azure ファイル共有のオンデマンド バックアップを実行します。Use Backup-AzRecoveryServicesBackupItem to run an on-demand backup for a protected Azure file share.

  1. Get-AzRecoveryServicesBackupContainer を使用して、バックアップ データを保持するコンテナー内のコンテナーからストレージ アカウントを取得します。Retrieve the storage account from the container in the vault that holds your backup data with Get-AzRecoveryServicesBackupContainer.
  2. バックアップ ジョブを開始するには、Get-AzRecoveryServicesBackupItem を使用して、Azure ファイル共有に関する情報を取得します。To start a backup job, you obtain information about the Azure file share with Get-AzRecoveryServicesBackupItem.
  3. Backup-AzRecoveryServicesBackupItem を使用して、オンデマンド バックアップを実行します。Run an on-demand backup withBackup-AzRecoveryServicesBackupItem.

次のようにしてオンデマンド バックアップを実行します。Run the on-demand backup as follows:

$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType "AzureFiles" -FriendlyName "testAzureFS"
$job =  Backup-AzRecoveryServicesBackupItem -Item $afsBkpItem

このコマンドでは、次の例に示すように、追跡する必要がある ID を持つジョブが返されます。The command returns a job with an ID to be tracked, as shown in the following example.

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 file share snapshots are used while the backups are taken, so usually the job completes by the time the command returns this output.

オンデマンド バックアップを使用して保持期間を延長するUsing on-demand backups to extend retention

オンデマンド バックアップを使用すると、スナップショットを 10 年間保持することができます。On-demand backups can be used to retain your snapshots for 10 years. スケジューラを使い、保持期間を選択して PowerShell スクリプトをオンデマンドで実行することで、スナップショットを定期的 (週次、月次、年次) に作成することも可能です。Schedulers can be used to run on-demand PowerShell scripts with chosen retention and thus take snapshots at regular intervals every week, month, or year. 定期的なスナップショットの取得については、Azure Backup を使用したオンデマンド バックアップの制限に関するページを参照してください。While taking regular snapshots, refer to the limitations of on-demand backups using Azure backup.

サンプル スクリプトをお探しの場合は、バックアップを定期的にスケジュールし、それを最大 10 年間保持することが可能な Azure Automation Runbook を使用した GitHub (https://github.com/Azure-Samples/Use-PowerShell-for-long-term-retention-of-Azure-Files-Backup) 上のサンプル スクリプトを参照できます。If you are looking for sample scripts, you can refer to the sample script on GitHub (https://github.com/Azure-Samples/Use-PowerShell-for-long-term-retention-of-Azure-Files-Backup) using Azure Automation runbook that enables you to schedule backups on a periodic basis and retain them even up to 10 years.

警告

お使いの Automation の Runbook で、PS バージョンが、AFS バックアップ用の "Az.RecoveryServices 2.6.0" のための最小バージョンにアップグレードされていることを確認してください。Make sure the PS version is upgraded to the minimum version for 'Az.RecoveryServices 2.6.0' for AFS backups in your automation runbooks. 以前の "AzureRM" モジュールを "Az" モジュールに置き換える必要があります。You will have to replace the old 'AzureRM' module with 'Az' module. このバージョンでは、Get-AzRecoveryServicesBackupItem コマンドで "friendlyName" フィルターを使用できます。With this version, the 'friendlyName' filter is available for Get-AzRecoveryServicesBackupItem command. Azure ファイル共有名を friendlyName パラメーターに渡します。Pass the azure file share name to friendlyName parameter. Azure ファイル共有名を "Name" パラメーターに渡すと、このバージョンでは、このフレンドリ名をフレンドリ名パラメーターに渡すための警告がスローされます。If you pass the azure file share name to the 'Name' parameter, this version throws a warning to pass this friendly name to the friendly name parameter.

次のステップNext steps

Azure portal での Azure Files のバックアップについて学習しますLearn about backing up Azure Files in the Azure portal.