Azure Files で共有スナップショットを使用する
Azure Files には、SMB と NFS のファイル共有のスナップショットを作成する機能があります。 共有スナップショットは、その時点の共有状態をキャプチャします。 この記事では、ファイル共有スナップショットで提供される機能と、それらを使って以前のバージョンのファイルを回復する方法について説明します。
重要
共有スナップショットは、ファイル レベルの保護のみを提供します。 それらは、タイプミスによるファイル共有またはストレージ アカウントの削除を防ぐことはできません。 ストレージ アカウントを誤って削除されないように保護するには、論理的な削除を有効にするか、ストレージ アカウントとリソース グループの一方または両方をロックします。
適用対象
ファイル共有の種類 | SMB | NFS |
---|---|---|
Standard ファイル共有 (GPv2)、LRS/ZRS | ||
Standard ファイル共有 (GPv2)、GRS/GZRS | ||
Premium ファイル共有 (FileStorage)、LRS/ZRS |
共有スナップショットを使用する目的
アプリケーション エラーとデータの破損からの保護
ファイル共有を使用するアプリケーションでは、書き込み、読み取り、格納、送信、処理などの操作を実行します。 アプリケーションが正しく構成されていない場合や、意図的ではないバグが組み込まれる場合は、いくつかのブロックが誤って上書きされたり破損したりすることがあります。 このようなシナリオから保護するために、新しいアプリケーション コードをデプロイする前に共有スナップショットを作成できます。 新しいデプロイにバグまたはアプリケーション エラーが組み込まれている場合に、そのファイル共有の以前のバージョンのデータに戻ることができます。
誤った削除や意図しない変更からの保護
ファイル共有内のテキスト ファイルを操作しているとしましょう。 テキスト ファイルが閉じられると、変更を元に戻すことができなくなります。 このような場合は、以前のバージョンのファイルを復旧する必要があります。 共有スナップショットを使用すると、ファイルを誤って名前変更したり削除したりした場合に以前のバージョンを復旧することができます。
一般的なバックアップ目的
ファイル共有を作成した後で、ファイル共有の共有スナップショットを定期的に作成してデータ バックアップに使用することができます。 共有スナップショットを定期的に作成すると、以前のバージョンのデータの維持して、将来の監査要件やディザスター リカバリーに使用できます。 スナップショットの取得や管理を行う手段として、Azure ファイル共有のバックアップを使用することをお勧めします。 また、Azure portal、Azure PowerShell、または Azure CLI を使って、自分でスナップショットを作成して管理することもできます。
機能
共有スナップショットは、特定の時点のデータの読み取り専用コピーです。 共有スナップショット機能は、ファイル共有レベルで提供されます。 取得は、個々のファイルを復元できるように、個々のファイル レベルで提供されます。 共有スナップショットには、そのスナップショットが取得された Azure ファイル共有と同じ冗長性があります。 お使いのアカウントに geo 冗長ストレージを選択した場合、共有スナップショットもペアになっているリージョンに冗長的に保存されます。
SMB、NFS、REST API、Azure portal、クライアント ライブラリ、または PowerShell/CLI を使用して完全なファイル共有を復元できます。 REST API、SMB、または NFS を使用して、共有のスナップショットを表示することができます。 ディレクトリまたはファイルのバージョンの一覧を取得することができ、特定のバージョンをドライブとして直接マウントすることができます (Windows 上でのみ使用できます - 「制限」を参照してください)。
作成された共有スナップショットは、読み取り、コピー、削除はできますが、変更はできません。 別のストレージ アカウントに共有スナップショット全体をコピーすることはできません。 AzCopy またはその他のコピー メカニズムを使用して、ファイルごとにコピーする必要があります。
ファイル共有の共有スナップショットは、そのベース ファイル共有と同じです。 唯一の違いは、共有スナップショットの作成時刻を示すために DateTime 値が共有 URI に追加されることです。 たとえば、ファイル共有の URI が http://storagesample.core.file.windows.net/myshare の場合、共有スナップショットの URI は次のようになります。
http://storagesample.core.file.windows.net/myshare?snapshot=2011-03-09T01:42:34.9360000Z
共有スナップショットは、明示的に削除されるまで、またはファイル共有が削除されるまで保持されます。 ファイル共有を削除して共有スナップショットを保持することはできません。 共有を削除すると、削除ワークフローによってスナップショットが自動的に削除されます。 ベース ファイル共有に関連付けられたスナップショットを列挙して、現在のスナップショットを追跡できます。
ファイル共有の共有スナップショットを作成するときに、共有のシステム プロパティ内のファイルが共有スナップショットに同じ値でコピーされます。 また、共有スナップショットの作成時に別のメタデータを指定しない限り、ベース ファイルとファイル共有のメタデータも共有スナップショットにコピーされます。
領域の使用量
共有スナップショットは、本質的に増分です。 最新の共有のスナップショットの後に変更されたデータだけが保存されます。 これにより、共有スナップショットの作成に必要な時間が最小限に抑えられ、変更されたコンテンツに対してのみ課金されるためストレージ コストを節約できます。 オブジェクトへの書き込み操作またはプロパティやメタデータの更新操作は「変更されたコンテンツ」としてカウントされ、共有スナップショットに格納されます。
領域を節約するために、チャーンが最も高かった期間の共有スナップショットを削除できます。
共有スナップショットは増分的に保存されますが、共有を復元するために保持する必要があるのは最新の共有スナップショットだけです。 共有スナップショットを削除すると、その共有スナップショットに固有のデータのみが削除されます。 アクティブなスナップショットには、(共有スナップショットが作成された時点の) データを参照して元の場所または別の場所に復元するために必要な情報がすべて含まれます。 項目レベルで復元することができます。
スナップショットは、上限が 100 TiB である共有サイズには含まれません。 共有スナップショット全体が占める領域の量や、特定のファイル共有の共有スナップショットが使用できる容量に、制限はありません。 ストレージ アカウントの制限は、引き続き適用されます。
制限
Azure Files で許可されている共有スナップショットの最大数は共有ごとに 200 です。 共有スナップショットの数が 200 を超えると、新しい共有スナップショットを作成するために、古い共有スナップショットを削除する必要があります。 スナップショットは最大 10 年間保持できます。
共有スナップショットを作成するための同時呼び出しに制限はありません。
NFS Azure ファイル共有スナップショットでサポートされているのは、ファイル管理 API (AzRmStorageShare
) だけです。 ファイル データ プレーン API (AzStorageShare
) はサポートされていません。
共有スナップショットから共有へのデータのコピー
ファイルや共有スナップショットに関連するコピー操作は次のルールに従います。
ファイル共有スナップショットの個々のファイルは、ベース共有またはその他の任意の場所にコピーできます。 ファイルの以前のバージョンを復元したり、共有スナップショットからファイルごとにコピーして完全なファイル共有を復元したりすることができます。 共有スナップショットはベース共有にレベル上げされません。
共有スナップショットはコピー後もそのまま残りますが、ベース ファイル共有は、共有スナップショットで使用可能だったデータのコピーで上書きされます。 復元されたファイルはすべて「変更されたコンテンツ」としてカウントされます。
共有スナップショット内のファイルを別の名前で別のコピー先にコピーできます。 結果として得られるコピー先ファイルは書き込み可能なファイルであり、共有スナップショットではありません。 この場合、ベース ファイル共有はそのまま残ります。
コピー先ファイルをコピーで上書きしても、元のコピー先ファイルに関連付けられた共有スナップショットは元の状態のままになります。
一般的なベスト プラクティス
可能な限り、データ復旧のためのバックアップを自動化します。 自動化されたアクションは手動のプロセスより信頼性が高く、データ保護と回復性の向上に役立ちます。 自動化には Azure ファイル共有のバックアップ (SMB ファイル共有のみ)、REST API、クライアント SDK、またはスクリプトを使用できます。
共有スナップショット スケジューラをデプロイする前に、共有スナップショットの頻度とリテンション期間の設定を慎重に検討して、不要な課金を避けてください。
SMB ファイル共有のスナップショット
SMB Azure ファイル共有をお使いのお客様は、共有スナップショットから作成、一覧表示、削除、復元を行うことができます。
SMB ファイル共有スナップショットを作成する
SMB Azure ファイル共有のスナップショットは、Azure portal、Azure PowerShell、または Azure CLI を使って作成できます。
既存のファイル共有のスナップショットを作成するには、Azure portal にサインインし、以下の手順に従います。
ポータルで、ファイル共有に移動します。
[スナップショット] を選び、[+ スナップショットの追加] を選んでから、[OK] を選びます。
SMB ファイル共有スナップショットを一覧表示する
ファイル共有のすべてのスナップショットは、Azure portal、Azure PowerShell または Azure CLI を使用して一覧表示することができます。
既存のファイル共有のすべてのスナップショットを一覧表示するには、Azure portal にサインインし、以下の手順に従います。
ポータルで、ファイル共有に移動します。
対象のファイル共有で [スナップショット] を選択します。
[スナップショット] タブで、一覧からスナップショットを選びます。
そのスナップショットを開き、それに含まれるファイルを参照します。
SMB ファイル共有スナップショットから復元する
スナップショットからファイルを復元するには、Azure portal にサインインし、次の手順に従って行います。
ポータルで、ファイル共有に移動します。
対象のファイル共有で [スナップショット] を選択します。
ファイル共有スナップショットのタブで、復元するファイルを右クリックして、[復元] ボタンを選びます。
[元のファイルを上書きする]、次に [OK] を選択します。
変更されていないバージョンのファイルが復元されているはずです。
SMB ファイル共有スナップショットを削除する
既存の共有スナップショットは上書きされません。 明示的に削除する必要があります。 共有スナップショットは、Azure portal、Azure PowerShell または Azure CLI を使用して削除できます。
共有スナップショットを削除する前に、ストレージ アカウントのロックを解除する必要があります。 ストレージ アカウントに移動し、[設定]>[ロック] を選びます。 一覧にロックが表示されている場合は削除します。
既存のファイル共有のスナップショットを削除するには、Azure portal にサインインし、以下の手順に従います。
Azure portal 上部の検索ボックスで、"ストレージ アカウント" と入力して選択します。
スナップショットを削除するファイル共有が含まれるストレージ アカウントを選びます。
[データ ストレージ] > [ファイル共有] の順に選択します。
1 つ以上のスナップショットを削除したいファイル共有を選択した後、[操作]>[スナップショット] を選択します。 ファイル共有のすべての既存のスナップショットが一覧表示されます。
削除したい (複数の) スナップショットを選択した後、[削除] を選択します。
Windows で SMB ファイル共有スナップショットを使用する
オンプレミスのボリューム シャドウ コピー (VSS) スナップショットと同じように、マウントした Azure ファイル共有に含まれるスナップショットも、Windows の [以前のバージョン] タブを使って表示できます。
マウントされた共有をエクスプローラーで探します。
復元が必要な項目または親項目を参照します。 右クリックして、メニューから [プロパティ] を選択します。
[以前のバージョン] を選択して、このディレクトリの共有スナップショットの一覧を表示します。
[開く] を選択して、スナップショットを開きます。
[復元] を選択します。 これにより、ディレクトリ全体の内容が、共有スナップショットを作成したときの元の場所に再帰的にコピーされます。
Note
ファイルが変更されていない場合、そのファイルはスナップショットと同じバージョンであるため、そのファイルの以前のバージョンは表示されません。 これは、Windows ファイル サーバーでの動作と一致しています。
Linux で SMB ファイル共有スナップショットをマウントする
Linux で SMB Azure ファイル共有の特定のスナップショットをマウントする場合は、mount
コマンドの一部として snapshot
オプションを指定する必要があります。snapshot
は、特定のスナップショットが作成された日時 (@GMT-2023.01.05-00.08.20 のような形式) です。 snapshot
オプションは、バージョン 4.19 以降の Linux カーネルでサポートされています。
ファイル共有スナップショットを作成したら、次の手順に従ってマウントします。
Azure portal で、スナップショットをマウントするファイル共有が含まれているストレージ アカウントに移動します。
[データ ストレージ] > [ファイル共有] を選んで、ファイル共有を選びます。
[操作] > [スナップショット] を選び、マウントするスナップショットの名前を記録しておきます。 スナップショットの名前は、次のスクリーンショットのように GMT タイムスタンプになります。
タイムスタンプを、
mount
コマンドで想定される形式に変換します (@GMT-year.month.day-hour.minutes.seconds)。 この例では、2023-01-05T00:08:20.0000000Z を @GMT-2023.01.05-00.08.20 に変換します。GMT 時刻を使って
mount
コマンドを実行し、snapshot
の値を指定します。<storage-account-name>
、<file-share-name>
、GMT タイムスタンプは、実際の値に置き換えてください。 .cred ファイルには、共有をマウントするために使われる資格情報が含まれています。sudo mount -t cifs //<storage-account-name>.file.core.windows.net/<file-share-name> /media/<file-share-name>/snapshot1 -o credentials=/etc/smbcredentials/snapshottestlinux.cred,snapshot=@GMT-2023.01.05-00.08.20
パス
/media/<file-share-name>/snapshot1
でスナップショットを参照できる場合、マウントは成功しました。
マウントに失敗する場合は、「Azure Files 接続とアクセスの問題 (SMB) のトラブルシューティング」を参照してください。
NFS ファイル共有のスナップショット
NFS Azure ファイル共有をお使いのお客様は、共有スナップショットから作成、一覧表示、削除、復元を行うことができます。
重要
スナップショットを作成する前に、ファイル共有をマウントする必要があります。 新しい NFS ファイル共有を作成し、その共有をマウントする前にスナップショットを作成した場合、共有のスナップショットを一覧表示しようとすると、空のリストが返されます。 最初のマウントの前に取得したスナップショットは削除して、共有をマウントした後に再作成することをお勧めします。
NFS スナップショットの制限事項
NFS Azure ファイル共有スナップショットでサポートされているのは、ファイル管理 API (AzRmStorageShare
) だけです。 ファイル データ プレーン API (AzStorageShare
) はサポートされていません。
現在、NFS ファイル共有では Azure Backup はサポートされていません。
現在、NFS ファイル共有では AzCopy はサポートされていません。 NFS Azure ファイル共有または共有スナップショットからデータをコピーするには、rsync や fpsync などのファイル システム コピー ツールを使用してください。
NFS Azure ファイル共有スナップショットは、すべての Azure パブリック クラウド リージョンで使用できます。
NFS ファイル共有スナップショットを作成する
NFS Azure ファイル共有のスナップショットは、Azure portal、Azure PowerShell または Azure CLI を使用して作成できます。
既存のファイル共有のスナップショットを作成するには、Azure portal にサインインし、以下の手順に従います。
Azure portal 上部の検索ボックスで、"ストレージ アカウント" と入力して選択します。
スナップショットを取得したい NFS Azure ファイル共有が含まれている FileStorage ストレージ アカウントを選択します。
[データ ストレージ] > [ファイル共有] の順に選択します。
スナップショットを取得したいファイル共有を選択した後、[操作]>[スナップショット] を選択します。
[+ スナップショットの追加] を選択します。 オプションのコメントを追加し、[OK] を選択します。
NFS ファイル共有スナップショットを一覧表示する
ファイル共有のすべてのスナップショットは、Azure portal、Azure PowerShell または Azure CLI を使用して一覧表示することができます。
既存のファイル共有のすべてのスナップショットを一覧表示するには、Azure portal にサインインし、以下の手順に従います。
Azure portal 上部の検索ボックスで、"ストレージ アカウント" と入力して選択します。
スナップショットの一覧を表示する NFS Azure ファイル共有が含まれるストレージ アカウントを選びます。
[データ ストレージ] > [ファイル共有] の順に選択します。
スナップショットを一覧表示したいファイル共有を選択します。
[操作]>[スナップショット] を選択すると、そのファイル共有のすべての既存のスナップショットが一覧表示されます。
NFS Azure ファイル共有スナップショットから復元する
NFS Azure ファイル共有スナップショットを Linux VM (NFS クライアント) にマウントし、ファイルを復元するには、次の手順に従います。
コンソールで、次のコマンドを実行します。 その他の推奨されるマウント オプションについては、「マウント オプション」を参照してください。 コピーのパフォーマンスを向上させるには、nconnect でスナップショットをマウントし、複数の TCP チャネルを使用します。
sudo mount -o vers=4,minorversion=1,proto=tcp,sec=sys $server:/nfs4account/share /media/nfs
使用可能なスナップショットを表示できるように、ディレクトリを
/media/nfs/.snapshots
に変更します。.snapshots
ディレクトリは既定では非表示になっていますが、任意のディレクトリと同様にアクセスして読み取ることができます。cd /media/nfs/.snapshots
.snapshots
フォルダーの内容を一覧表示します。ls
各スナップショットには、復旧ポイントとして機能する独自のディレクトリがあります。 ファイルを復元するスナップショット ディレクトリに移動します。
cd <snapshot-name>
ディレクトリの内容を一覧表示して、復旧可能なファイルとディレクトリの一覧を表示します。
ls
すべてのファイルとディレクトリをスナップショットから復元ディレクトリにコピーして、復元を完了させます。
cp -r <snapshot-name> ../restore
これで、スナップショットのファイルとディレクトリが /media/nfs/restore
ディレクトリで使用できるようになります。
NFS ファイル共有スナップショットを削除する
既存の共有スナップショットは上書きされません。 明示的に削除する必要があります。 共有スナップショットは、Azure portal、Azure PowerShell または Azure CLI を使用して削除できます。
共有スナップショットを削除する前に、ストレージ アカウントのロックを解除する必要があります。 ストレージ アカウントに移動し、[設定]>[ロック] を選びます。 一覧にロックが表示されている場合は削除します。
既存のファイル共有のスナップショットを削除するには、Azure portal にサインインし、以下の手順に従います。
Azure portal 上部の検索ボックスで、"ストレージ アカウント" と入力して選択します。
スナップショットを削除したい NFS Azure ファイル共有を含む FileStorage ストレージ アカウントを選択します。
[データ ストレージ] > [ファイル共有] の順に選択します。
1 つ以上のスナップショットを削除したいファイル共有を選択した後、[操作]>[スナップショット] を選択します。 ファイル共有のすべての既存のスナップショットが一覧表示されます。
削除したい (複数の) スナップショットを選択した後、[削除] を選択します。
関連項目
- 次のツールで共有スナップショットを操作する方法: