次の方法で共有


Azure CLI を使用して Azure Files のバックアップを管理する

この記事では、Azure CLI を使用してバックアップされた Azure Files (スナップショットコンテナー化された バックアップ) を管理および監視する方法について説明します。 Azure CLI では、Azure リソースを管理するためのコマンド ライン エクスペリエンスが提供されます。 これは、Azure リソースを使用するためのカスタム オートメーションを構築するための優れたツールです。 Azure Portal、Azure PowerShellREST API を使用して Azure Files バックアップを管理することもできます。

前提条件

この記事では、Azure Backup によってバックアップされた Azure Files が既に存在することを前提としています。 お持ちでない場合は、「CLI を 使用して Azure Files をバックアップ する」を参照して、ファイル共有のバックアップを構成します。 この記事では、次のリソースを使用します。

  • リソース グループ: azurefiles
  • Recovery Services コンテナー: azurefilesvault
  • ストレージ アカウント: afsaccount
  • ファイル共有: azurefiles
  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の概要」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「 Azure CLI を使用した Azure への認証」を参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • このチュートリアルには、Azure CLI のバージョン 2.0.18 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。

ジョブの監視

バックアップ操作または復元操作をトリガーすると、追跡用のジョブがバックアップ サービスによって作成されます。 完了したジョブまたは現在実行中のジョブを監視するには、az backup job list コマンドレットを使用します。 CLI を使って、現在実行中のジョブを中断することや、ジョブが終了するまで待機することもできます。

次の例では、azurefilesvault Recovery Services コンテナーに対するバックアップ ジョブの状態を表示します。

az backup job list --resource-group azurefiles --vault-name azurefilesvault
[
  {
    "eTag": null,
    "id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/d477dfb6-b292-4f24-bb43-6b14e9d06ab5",
    "___location": null,
    "name": "d477dfb6-b292-4f24-bb43-6b14e9d06ab5",
    "properties": {
      "actionsInfo": null,
      "activityId": "3cef43ed-0af4-43e2-b9cb-1322c496ccb4",
      "backupManagementType": "AzureStorage",
      "duration": "0:00:29.718011",
      "endTime": "2020-01-13T08:05:29.180606+00:00",
      "entityFriendlyName": "azurefiles",
      "errorDetails": null,
      "extendedInfo": null,
      "jobType": "AzureStorageJob",
      "operation": "Backup",
      "startTime": "2020-01-13T08:04:59.462595+00:00",
      "status": "Completed",
      "storageAccountName": "afsaccount",
      "storageAccountVersion": "MicrosoftStorage"
    },
    "resourceGroup": "azurefiles",
    "tags": null,
    "type": "Microsoft.RecoveryServices/vaults/backupJobs"
  },
  {
    "eTag": null,
    "id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/1b9399bf-c23c-4caa-933a-5fc2bf884519",
    "___location": null,
    "name": "1b9399bf-c23c-4caa-933a-5fc2bf884519",
    "properties": {
      "actionsInfo": null,
      "activityId": "2663449c-94f1-4735-aaf9-5bb991e7e00c",
      "backupManagementType": "AzureStorage",
      "duration": "0:00:28.145216",
      "endTime": "2020-01-13T08:05:27.519826+00:00",
      "entityFriendlyName": "azurefilesresource",
      "errorDetails": null,
      "extendedInfo": null,
      "jobType": "AzureStorageJob",
      "operation": "Backup",
      "startTime": "2020-01-13T08:04:59.374610+00:00",
      "status": "Completed",
      "storageAccountName": "afsaccount",
      "storageAccountVersion": "MicrosoftStorage"
    },
    "resourceGroup": "azurefiles",
    "tags": null,
    "type": "Microsoft.RecoveryServices/vaults/backupJobs"
  }
]

バックアップ ポリシーの作成

Azure Files の Azure Backup ポリシーでは、バックアップを作成する方法とタイミング、復旧ポイントの保有期間、およびデータ保護と復旧の規則を定義します。

バックアップ レベルの選択:

バックアップ ポリシーを作成するには、次のパラメーターを指定して、az backup policy create コマンドを実行します。

  • --backup-management-type – Azure Storage
  • --workload-type - AzureFileShare
  • --name - ポリシーの名前
  • --policy - スケジュールと保有期間に関する適切な詳細を含む JSON ファイル
  • --resource-group - コンテナーのリソース グループ
  • --vault-name - コンテナーの名前

az backup policy create --resource-group azurefiles --vault-name azurefilesvault --name schedule20 --backup-management-type AzureStorage --policy samplepolicy.json --workload-type AzureFileShare

サンプル JSON (samplepolicy.json)

{
  "eTag": null,
  "id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupPolicies/schedule20",
  "___location": null,
  "name": "schedule20",
  "properties": {
    "backupManagementType": "AzureStorage",
    "protectedItemsCount": 0,
    "retentionPolicy": {
      "dailySchedule": {
        "retentionDuration": {
          "count": 30,
          "durationType": "Days"
        },
        "retentionTimes": [
          "2020-01-05T08:00:00+00:00"
        ]
      },
      "monthlySchedule": null,
      "retentionPolicyType": "LongTermRetentionPolicy",
      "weeklySchedule": null,
      "yearlySchedule": null
    },
    "schedulePolicy": {
      "schedulePolicyType": "SimpleSchedulePolicy",
      "scheduleRunDays": null,
      "scheduleRunFrequency": "Daily",
      "scheduleRunTimes": [
        "2020-01-05T08:00:00+00:00"
      ],
      "scheduleWeeklyFrequency": 0
    },
    "timeZone": "UTC",
    "workLoadType": “AzureFileShare”
  },
  "resourceGroup": "azurefiles",
  "tags": null,
  "type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}

1 日に複数のバックアップを構成するバックアップ ポリシーを作成する例

このサンプル JSON は、次の要件のためのものです。

  • スケジュール: "次の 12 時間" について "午前 8 時 (UTC)" から始めて "4 時間ごと" にバックアップを行います。
  • 保持期間: 毎日 - 5日間、毎週 - 12週間毎の日曜日、毎月 - 60ヶ月間の各月の第1日曜日、および毎年 - 1月の第1日曜日(10年間)
{
    "properties":{
        "backupManagementType": "AzureStorage",
        "workloadType": "AzureFileShare",
        "schedulePolicy": {
            "schedulePolicyType": "SimpleSchedulePolicy",
            "scheduleRunFrequency": "Hourly",
            "hourlySchedule": {
                "interval": 4,
                "scheduleWindowStartTime": "2021-09-29T08:00:00.000Z",
                "scheduleWindowDuration": 12
            }
        },
        "timeZone": "UTC",
        "retentionPolicy": {
            "retentionPolicyType": "LongTermRetentionPolicy",
            "dailySchedule": {
                "retentionTimes": null,
                "retentionDuration": {
                    "count": 5,
                    "durationType": "Days"
                }
            },
            "weeklySchedule": {
                "daysOfTheWeek": [
                    "Sunday"
                ],
                "retentionTimes": null,
                "retentionDuration": {
                    "count": 12,
                    "durationType": "Weeks"
                }
            },
            "monthlySchedule": {
                "retentionScheduleFormatType": "Weekly",
                "retentionScheduleDaily": null,
                "retentionScheduleWeekly": {
                    "daysOfTheWeek": [
                        "Sunday"
                    ],
                    "weeksOfTheMonth": [
                        "First"
                    ]
                },
                "retentionTimes": null,
                "retentionDuration": {
                    "count": 60,
                    "durationType": "Months"
                }
            },
            "yearlySchedule": {
                "retentionScheduleFormatType": "Weekly",
                "monthsOfYear": [
                    "January"
                ],
                "retentionScheduleDaily": null,
                "retentionScheduleWeekly": {
                    "daysOfTheWeek": [
                        "Sunday"
                    ],
                    "weeksOfTheMonth": [
                        "First"
                    ]
                },
                "retentionTimes": null,
                "retentionDuration": {
                    "count": 10,
                    "durationType": "Years"
                }
            }
        }
    }
}

ポリシーが正常に作成されると、コマンドの出力には、コマンドの実行中にパラメーターとして渡したポリシー JSON が表示されます。

必要に応じて、ポリシーのスケジュールとリテンション期間を変更できます。

毎月第 1 日曜日のバックアップを 2 か月間保持する場合は、次の例に従って毎月のスケジュールを更新します。

"monthlySchedule": {
        "retentionDuration": {
          "count": 2,
          "durationType": "Months"
        },
        "retentionScheduleDaily": null,
        "retentionScheduleFormatType": "Weekly",
        "retentionScheduleWeekly": {
          "daysOfTheWeek": [
            "Sunday"
          ],
          "weeksOfTheMonth": [
            "First"
          ]
        },
        "retentionTimes": [
          "2020-01-05T08:00:00+00:00"
        ]
      }

ポリシーを変更する

az backup item set-policy を使用してバックアップ ポリシーを変更し、バックアップの頻度または保持期間を変更することができます。

ポリシーを変更するには、次のパラメーターを定義します。

  • --container-name: ファイル共有をホストするストレージ アカウントの名前。 コンテナーの名前またはフレンドリ名を取得するには、az backup container list コマンドを使用します。
  • --name: ポリシーを変更するファイル共有の名前。 バックアップ項目の名前またはフレンドリ名を取得するには、az backup item list コマンドを使用します。
  • --policy-name: ファイル共有に設定するバックアップ ポリシーの名前。 az backup policy list を使用して、コンテナーのすべてのポリシーを表示できます。

次の例では、afsaccount ストレージ アカウントに存在する azurefiles ファイル共有の schedule2 バックアップ ポリシーを設定します。

az backup item set-policy --policy-name schedule2 --name azurefiles --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --name "AzureFileShare;azurefiles" --backup-management-type azurestorage --out table

次の 2 つのパラメーターを指定して、コンテナーと項目のフレンドリ名を使用して、前のコマンドを実行することもできます。

  • --backup-management-type: azurestorage
  • --workload-type: azurefileshare
az backup item set-policy --policy-name schedule2 --name azurefiles --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --name azurefiles --backup-management-type azurestorage --out table
Name                                  ResourceGroup
------------------------------------  ---------------
fec6f004-0e35-407f-9928-10a163f123e5  azurefiles

出力内の Name 属性は、ポリシー変更操作のためにバックアップ サービスによって作成されたジョブの名前に対応しています。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。

ファイル共有の保護の停止

Azure Files の保護を停止するには、次の 2 つの方法があります。

  • 今後のすべてのバックアップ ジョブを停止し、すべての復旧ポイントを "削除" します
  • 今後のすべてのバックアップ ジョブを停止しますが、復旧ポイントは "そのまま" にします

Azure Backup によって作成された基になるスナップショットが保持されるため、復旧ポイントをストレージに残すことに関連するコストが発生する可能性があります。 回復ポイントを残す利点は、必要に応じて後でファイル共有を復元するオプションです。 復旧ポイントを保持するためのコストについては、「 価格の詳細」を参照してください。 すべての回復ポイントを削除する場合、ファイル共有を復元することはできません。

ファイル共有の保護を停止するには、次のパラメーターを定義します。

  • --container-name: ファイル共有をホストするストレージ アカウントの名前。 コンテナーの名前またはフレンドリ名を取得するには、az backup container list コマンドを使用します。
  • --item-name: 保護を停止するファイル共有の名前。 バックアップ項目の名前またはフレンドリ名を取得するには、az backup item list コマンドを使用します。

保護を停止して復旧ポイントを保持する

データを保持したまま保護を停止するには、az backup protection disable コマンドレットを使用します。

次の例では、 azurefiles ファイル共有の保護を停止しますが、すべての回復ポイントを保持します。

az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name “AzureFileShare;azurefiles” --out table

次の 2 つのパラメーターを指定して、コンテナーと項目のフレンドリ名を使用して、前のコマンドを実行することもできます。

  • --backup-management-type: azurestorage
  • --workload-type: azurefileshare
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --out table
Name                                  ResourceGroup
------------------------------------  ---------------
fec6f004-0e35-407f-9928-10a163f123e5  azurefiles

出力内の Name 属性は、保護停止操作のためにバックアップ サービスによって作成されたジョブの名前に対応しています。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。

復旧ポイントを保持しないで保護を停止する

復旧ポイントを保持しないで保護を停止するには、az backup protection disable コマンドレットを使用し、delete-backup-data オプションtrue に設定します。

次の例では、回復ポイントを保持せずに、 azurefiles ファイル共有の保護を停止します。

az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name “AzureFileShare;azurefiles” --delete-backup-data true --out table

次の 2 つのパラメーターを指定して、コンテナーと項目のフレンドリ名を使用して、前のコマンドを実行することもできます。

  • --backup-management-type: azurestorage
  • --workload-type: azurefileshare
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --delete-backup-data true --out table

ファイル共有の保護の再開

Azure Files の保護を停止しても復旧ポイントが保持されている場合は、後で保護を再開できます。 復旧ポイントを保持していない場合は、保護を再開できません。

ファイル共有の保護を再開するには、次のパラメーターを定義します。

  • --container-name: ファイル共有をホストするストレージ アカウントの名前。 コンテナーの名前またはフレンドリ名を取得するには、az backup container list コマンドを使用します。
  • --item-name: 保護を再開するファイル共有の名前。 バックアップ項目の名前またはフレンドリ名を取得するには、az backup item list コマンドを使用します。
  • --policy-name: ファイル共有の保護を再開するバックアップ ポリシーの名前。

次の例では、az backup protection resume コマンドレットを使用してazurefiles バックアップ ポリシーを使用して ファイル共有の保護を再開します。

az backup protection resume --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount” --item-name “AzureFileShare;azurefiles” --policy-name schedule2 --out table

次の 2 つのパラメーターを指定して、コンテナーと項目のフレンドリ名を使用して、前のコマンドを実行することもできます。

  • --backup-management-type: azurestorage
  • --workload-type: azurefileshare
az backup protection resume --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --policy-name schedule2 --out table
Name                                  ResourceGroup
------------------------------------  ---------------
75115ab0-43b0-4065-8698-55022a234b7f  azurefiles

出力内の Name 属性は、保護再開操作のためにバックアップ サービスによって作成されたジョブの名前に対応しています。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。

ストレージ アカウントの登録を解除する

別の Recovery Services コンテナーを使用して特定のストレージ アカウントのファイル共有を保護する場合は、まず、そのストレージ アカウント 内のすべてのファイル共有の保護を停止 します。 次に、現在、保護に使用されている Recovery Services コンテナーからアカウントの登録を解除します。

ストレージ アカウントの登録を解除するには、コンテナー名を指定する必要があります。 コンテナーの名前またはフレンドリ名を取得するには、az backup container list コマンドを使用します。

次の例では、az backup container unregister コマンドレットを使用して、azurefilesvault から afsaccount ストレージ アカウントの登録を解除します。

az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --out table

次のパラメーターを指定して、コンテナーのフレンドリ名を使用して、前のコマンドレットを実行することもできます。

  • --backup-management-type: azurestorage
az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --backup-management-type azurestorage --out table

次のステップ

Azure Files バックアップのトラブルシューティングを行います。