Azure CLI を使用して Azure ファイル共有のバックアップを管理する

Azure CLI では、Azure リソースを管理するためのコマンド ライン エクスペリエンスが提供されます。 これは、Azure リソースを使用するためのカスタム オートメーションを構築するための優れたツールです。 この記事では、Azure Backup によってバックアップされた Azure ファイル共有を管理および監視するためのタスクを実行する方法について説明します。 これらの手順は、Azure portal を使用して実行することもできます。

前提条件

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

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

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

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

    • 初回使用時にインストールを求められたら、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"
  }
]

ポリシーを作成する

バックアップ ポリシーを作成するには、次のパラメーターを指定して、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 週間)"、月単位 - "毎月第 1 日曜日 (60 か月間)"、年単位 - "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 が、その出力に表示されます。

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

毎月の最初の日曜日のバックアップを 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 ファイル共有の保護を停止するには、次の 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 ファイル共有の保護を停止したが、復旧ポイントを保持していた場合は、後で保護を再開できます。 復旧ポイントを保持していない場合は、保護を再開できません。

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

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

次の例では、az backup protection resume コマンドレットを使用し、schedule1 バックアップ ポリシーを使用して 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 ファイル共有のトラブルシューティングに関する記事を参照してください。