Azure CLI では、Azure リソースを管理するためのコマンド ライン エクスペリエンスが提供されます。 これは、Azure リソースを使用するためのカスタム オートメーションを構築するための優れたツールです。 この記事では、Azure CLI を使用して 、Azure Backup によって作成された復元ポイントからファイル共有全体または特定のファイルを復元する方法について説明します。 Azure Portal、Azure PowerShell、 REST API を使用して Azure Files を復元することもできます。
この記事の終わりまでに、Azure CLI で次の操作を実行する方法について説明します。
- バックアップされた Azure Files の復元ポイントを表示します。
- 完全な Azure Files を復元します。
- 個々のファイルまたはフォルダーを復元する。
注
- Azure Files の復元は、PowerShell または CLI を使用する場合に、同じサブスクリプション内でのみサポートされます。
- Azure Backup では、Azure CLI を使用した元の場所または別の場所への複数のファイルまたはフォルダーの復元がサポートされるようになりました。 詳細については、このドキュメントの「 複数のファイルまたはフォルダーを元の場所または別の場所に復元 する」セクションを参照してください。
[前提条件]
この記事では、Azure Backup によってバックアップされている Azure Files が既にあることを前提としています。 お持ちでない場合は、「CLI を 使用して Azure Files をバックアップ する」を参照して、ファイル共有のバックアップを構成します。 この記事では、次のリソースを使用します。
ファイル共有 | ストレージ アカウント | リージョン | 詳細 |
---|---|---|---|
azurefiles |
afsaccount | イーストUS | Azure Backup を使用してバックアップされた元のソース |
azurefiles1 | afaccount1 | イーストUS | 別の場所の回復に使用される宛先ソース |
ファイル共有にも同様の構造を使用して、この記事で説明するさまざまな種類の復元を試すことができます。
Azure CLI の環境を準備する
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 を使用している場合は、最新バージョンが既にインストールされています。
Azure Files の復旧ポイントを取得する
az backup recoverypoint list
コマンドレットを使用して、バックアップされたファイル共有のすべての回復ポイントを一覧表示します。
次の例では、azurefiles
ストレージ アカウントの ファイル共有の回復ポイントの一覧をフェッチします。
az backup recoverypoint list --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --backup-management-type azurestorage --item-name "AzureFileShare;azurefiles" --workload-type azurefileshare --out table
次の 2 つの追加パラメーターを指定して、コンテナーと項目のフレンドリ名を使用して、前のコマンドレットを実行することもできます。
-
--backup-management-type:
azurestorage
-
--workload-type:
azurefileshare
az backup recoverypoint list --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --backup-management-type azurestorage --item-name azurefiles --workload-type azurefileshare --out table
結果セットは、各復元ポイントの時間と整合性の詳細を含む復旧ポイントの一覧です。
Name Time Consistency
------------------ ------------------------- --------------------
932887541532871865 2020-01-05T07:08:23+00:00 FileSystemConsistent
932885927361238054 2020-01-05T07:08:10+00:00 FileSystemConsistent
932879614553967772 2020-01-04T21:33:04+00:00 FileSystemConsistent
出力の Name 属性は、復旧操作で --rp-name パラメーターの値として使用できる復旧ポイント名に対応します。
Azure CLI を使用して共有を完全に復元する
この復元オプションを使用すると、元の場所または別の場所にある完全なファイル共有を復元できます。
復元操作を実行するには、次のパラメーターを定義します。
- --container-name: バックアップされた元のファイル共有をホストするストレージ アカウントの名前。 コンテナーの名前またはフレンドリ名を取得するには、 az backup container list コマンドを使用します。
- --item-name: 復元操作に使用するバックアップ元のファイル共有の名前。 バックアップされた項目の名前またはフレンドリ名を取得するには、 az backup item list コマンドを使用します。
完全な共有を元の場所に復元する
元の場所に復元する場合、ターゲット関連のパラメーターを指定する必要はありません。 [競合の解決] のみを指定する必要があります。
次の例では、復元モードが az backup restore restore-azurefileshare
に設定された originallocation
コマンドレットを使用して、azurefiles
ファイル共有を元の場所に復元します。 Azure Files の復旧ポイントのフェッチで取得した 復旧ポイント 932883129628959823を使用します。
az backup restore restore-azurefileshare --vault-name azurefilesvault --resource-group azurefiles --rp-name 932887541532871865 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode originallocation --resolve-conflict overwrite --out table
Name ResourceGroup
------------------------------------ ---------------
6a27cc23-9283-4310-9c27-dcfb81b7b4bb azurefiles
出力の Name 属性は、復元操作のバックアップ サービスによって作成されたジョブの名前に対応します。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。
完全な共有を別の場所に復元する
このオプションを使用すると、ファイル共有を別の場所に復元し、元のファイル共有をそのまま保持できます。 別の場所への復旧には、次のパラメーターを指定します。
- --target-storage-account: バックアップされたコンテンツが復元されるストレージ アカウント。 このストレージ アカウントは、コンテナーと同じ場所にある必要があります。
- --target-file-share: バックアップされたコンテンツが復元されるターゲット ストレージ アカウント内のファイル共有。
- --target-folder: データを復元するファイル共有の下のフォルダー。 バックアップされたコンテンツをルート フォルダーに復元する必要がある場合は、ターゲット フォルダーの値として空の文字列を指定します。
- --resolve-conflict: 復元されたデータと競合がある場合の命令。 Overwrite または Skip を指定できます。
次の例では、az backup restore restore-azurefileshare
ストレージ アカウントの alternatelocation
ファイル共有を azurefiles
ストレージ アカウントの azurefiles1" ファイル共有に復元するために、として復元モードのを使用します。
az backup restore restore-azurefileshare --vault-name azurefilesvault --resource-group azurefiles --rp-name 932883129628959823 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode alternatelocation --target-storage-account afaccount1 --target-file-share azurefiles1 --target-folder restoredata --resolve-conflict overwrite --out table
Name ResourceGroup
------------------------------------ ---------------
babeb61c-d73d-4b91-9830-b8bfa83c349a azurefiles
出力の Name 属性は、復元操作のバックアップ サービスによって作成されたジョブの名前に対応します。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。
項目レベルの復旧
この復元オプションを使用すると、個々のファイルまたはフォルダーを元または別の場所に復元できます。
復元操作を実行するには、次のパラメーターを定義します。
- --container-name: バックアップされた元のファイル共有をホストするストレージ アカウントの名前。 コンテナーの名前またはフレンドリ名を取得するには、 az backup container list コマンドを使用します。
- --item-name: 復元操作に使用するバックアップ元のファイル共有の名前。 バックアップされた項目の名前またはフレンドリ名を取得するには、 az backup item list コマンドを使用します。
回復する項目の次のパラメーターを指定します。
- SourceFilePath: ファイル共有内で復元されるファイルの絶対パスを文字列として指定します。 このパスは、 az storage file download または az storage fileshow CLI コマンドで使用されるパスと同じです。
- SourceFileType: ディレクトリまたはファイルを選択するかどうかを選択します。 Directory または File を指定できます。
- ResolveConflict:復元されたデータとの競合が発生した場合の指示。 Overwrite または Skip を指定できます。
個々のファイルまたはフォルダーを元の場所に復元する
復元モードを az backup restore restore-azurefiles
に設定した originallocation
コマンドレットを使用して、特定のファイルまたはフォルダーを元の場所に復元します。
次の例では、 RestoreTest.txt ファイルを元の場所 ( azurefiles
ファイル共有) に復元します。
az backup restore restore-azurefiles --vault-name azurefilesvault --resource-group azurefiles --rp-name 932881556234035474 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode originallocation --source-file-type file --source-file-path "Restore/RestoreTest.txt" --resolve-conflict overwrite --out table
Name ResourceGroup
------------------------------------ ---------------
df4d9024-0dcb-4edc-bf8c-0a3d18a25319 azurefiles
出力の Name 属性は、復元操作のバックアップ サービスによって作成されたジョブの名前に対応します。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。
個々のファイルまたはフォルダーを別の場所に復元する
特定のファイルまたはフォルダーを別の場所に復元するには、復元モードを az backup restore restore-azurefiles
に設定して alternatelocation
コマンドレットを使用し、次のターゲット関連パラメーターを指定します。
- --target-storage-account: バックアップされたコンテンツが復元されるストレージ アカウント。 このストレージ アカウントは、コンテナーと同じ場所にある必要があります。
- --target-file-share: バックアップされたコンテンツが復元されるターゲット ストレージ アカウント内のファイル共有。
- --target-folder: データを復元するファイル共有の下のフォルダー。 バックアップされたコンテンツをルート フォルダーに復元する場合は、ターゲット フォルダーの値を空の文字列として指定します。
次の例では、元々 ファイル共有に存在していた azurefiles
ファイルを別の場所 (restoredata
ストレージ アカウントでホストされている azurefiles1 ファイル共有の フォルダー) に復元します。
az backup restore restore-azurefiles --vault-name azurefilesvault --resource-group azurefiles --rp-name 932881556234035474 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode alternatelocation --target-storage-account afaccount1 --target-file-share azurefiles1 --target-folder restoredata --resolve-conflict overwrite --source-file-type file --source-file-path "Restore/RestoreTest.txt" --out table
Name ResourceGroup
------------------------------------ ---------------
df4d9024-0dcb-4edc-bf8c-0a3d18a25319 azurefiles
出力の Name 属性は、復元操作のバックアップ サービスによって作成されたジョブの名前に対応します。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。
複数のファイルまたはフォルダーを元の場所または別の場所に復元する
複数の項目に対して復元を実行するには、復元するすべてのファイルまたはフォルダーのスペース区切りパスとして source-file-path パラメーターの値を渡します。
次の例では、 Restore.txt と AFS テスト Report.docx ファイルを元の場所に復元します。
az backup restore restore-azurefiles --vault-name azurefilesvault --resource-group azurefiles --rp-name 932889937058317910 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode originallocation --source-file-type file --source-file-path "Restore Test.txt" "AFS Testing Report.docx" --resolve-conflict overwrite --out table
出力は次のようになります。
Name ResourceGroup
------------------------------------ ---------------
649b0c14-4a94-4945-995a-19e2aace0305 azurefiles
出力の Name 属性は、復元操作のバックアップ サービスによって作成されたジョブの名前に対応します。 ジョブの状態を追跡するには、az backup job show コマンドレットを使用します。
複数の項目を別の場所に復元する場合は、「 個々のファイルまたはフォルダーを別の場所に復元 する」セクションで説明されているように、ターゲット関連のパラメーターを指定して、上記のコマンドを使用します。
次のステップ
Azure portal、Azure PowerShell、Azure CLI、REST API を使用して Azure Files のバックアップを管理します。