SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

【Pure Storage】FlashArrayのスナップショット概要と設定/操作手順

ストレージ / HCI
2019.12.24
みなさまこんにちは、SB C&Sの中田です。
 
今回ご紹介する機能は「スナップショット」です。
 
昨今のエンタープライズストレージでは標準的な機能ではあるものの、アーキテクチャや操作は製品によってばらつきがあります。FlashArrayのスナップショットをアーキテクチャ部分からしっかりと把握しておくと適切かつ効率的な運用ができますので、重要な機能としてご紹介します。 
 
はじめに、スナップショットの概要についてご紹介します。
その後、操作画面のスクリーンショットに解説を交えながら、スナップショットに関する操作をご紹介します。
 

FlashArrayのスナップショットについて

スナップショットとは

スナップショットは、写真のように「ストレージシステムに保存されたデータのある特定日時の状態を保存する機能」です。そしてスナップショット作成時の状態をリストアすることが可能です。
しかしスナップショットは取得元と同一のArray上に保存されます。そのため、もしもArrayごと障害発生し運用停止した場合の対策として利用することはできません。
 

FlashArrayのスナップショットアーキテクチャ

スナップショットの定義を押さえたところで、そのアーキテクチャをご紹介します。
FlashArrayはSANストレージであり、Volume単位でブロックベースのスナップショットを取得します。
FlashArrayにおけるスナップショットは、一般にRedirect-on-Write(以下RoW)」と呼ばれるアーキテクチャです
このアーキテクチャを、「スナップショットの取得時」および「スナップショット取得済みのVolumeに変更が加わった時」の2つのタイミングでの動作とともにご説明します。
 
  1. スナップショット取得時
スナップショット取得時には、「実際のデータがどのブロックに書き込まれているか」が記録されているメタデータのみを保存します。そのためボリューム容量の消費はほとんどなく、一瞬で取得処理が実行されます。
下記の図は、スナップショット取得直後の実データブロックとメタデータのひも付きのイメージです。
メタデータ部分の(n,m)は、実データ保存領域上での実データの位置を示しています。
取得直後の状態ではもちろんスナップショット取得時のメタデータと本番Volumeのメタデータとの間に差異はありません。
 
  1. スナップショット取得済みのVolumeに変更が加わった時
本番Volumeのデータに変更が加わった場合(図ではEがE'に変更された場合)、書き換えたデータE'を空き領域に保存し、「スナップショット取得時のメタデータ」に変更はなく、「本番Volumeのメタデータ」のみ変更(図では(1,5)が(1,6)に変更)を行います。
RoWでは上記のアーキテクチャにより、一瞬でスナップショット取得処理を行い、かつスナップショットの取得による性能劣化なく運用することを可能としています。
 
またFlashArrayでは、スナップショット容量も実行容量の中から消費されます。
スナップショット専用領域をあらかじめ確保する必要がないため、シンプルに構成が可能かつ効率的なVolume容量の利用が可能です。
 

設定/操作手順

ここからは、弊社検証環境で確認したスナップショットの基本操作をご紹介します。

検証手順

作業は下記の4つの手順にて実施しました。
  1. Volumeのスナップショットの取得
  2. Volume上のデータの削除
  3. スナップショットからのリストアと確認
  4. スナップショットの削除
 
また基本操作の解説ののち、Tipsとして「スナップショットからのVolumeコピーについて」をご紹介します
 

検証環境について

VolumeはvSphere ESXiにマウントされており、VMFSデータストアとして利用されています。データストア上にはWindows Server 2016 がゲストOSとして動作する仮想マシンが、電源ON状態で配置されています。
※本検証環境は Purity OS 5.3.0、vSphere 6.7U3 で構成されています。バージョンの違いによりUIに若干の差異がありますので予めご了承ください。
※本項目では検証のためデータの削除を行いますが、本番環境では行わないでください。
本内容を検証する際には、全て自己責任にて行なってください。
 

基本操作

  1. スナップショットの取得
左のインベントリから[Storage]を選択し、上部のタブから[Volumes]を選択します。
(以降、同様の画面遷移操作を"[Storage]>[Volumes]"の形で記載します。)
その後、スナップショットを取得する対象VolumeのVolume名をクリックします。
 
[Volume Snapshots]の項目から[+]マークを選択し、スナップショット定義し[Create]をクリックします。
[Volume名].[スナップショット名] の形でスナップショットが即座に取得されます。
取得されたスナップショットは各Volume画面内の[Volume Snapshots]の項目から確認することができます。
 
また下記の画像の通り、スナップショット取得時の容量消費はゼロとなっています。Volume上のデータの更新が行われると、スナップショットの容量が増えていきます。このような動作は、先述のアーキテクチャによるものです。
これで、スナップショットの取得は完了です。
 
  1. Volume上のデータの削除
スナップショットを取得しリストアポイントが作成されたところで、検証のためVolume上のデータの削除を行います。
今回はVolumeレベルでのリストアを確認するため、仮想マシンの削除およびVMFSデータストアの削除を行います。
 
  1. スナップショットからのリストア
FlashArrayのGUIを操作し、スナップショットからArrayのリストアを行います。
下記の画像にて丸で囲われたボタンをクリックし、[Restore]を選択します。
確認の画面が出てくるので、[Restore]をもう一度クリックします。
これにより、スナップショットデータのVolumeへのリストアが行われました。
 
しかし、まだVolume上のデータのリストアが行われたのみであり、リストアしたVolumeをvSphere ESXiにデータストアとしてマウントする操作が必要です。
 
Volumeの再スキャンを行うと、リストアされたデータストアをvSphere ESXiが認識します。
再スキャン前の状態
 
再スキャン後の状態
 
その後、認識されたデータストアをvSphere ESXiにマウントします。
データストアビューより、データストアの中身がリストアされていることを確認することができます。
 
そのまま、仮想マシンの再登録を行います。
 
再登録された仮想マシンの電源をオンにし、状態を確認します。
仮想マシンの正常なリストアを確認することができました。(スナップショット取得時に仮想マシンが電源オンの状態であったため、突然電源断された旨のメッセージが表示されています。)
 
  1. スナップショットの削除
取得したスナップショットの削除操作を行います。
削除するスナップショット右のメニューから[Destroy]を選択します。
 
確認が入るので[Destroy]をもう一度クリックします。
上記の操作は完全な削除ではなく、削除フラグを立てる操作です。
 
削除フラグの立ったスナップショットは、[Destroyed Volume Snapshots]に移動します。
[Destroyed Volume Snapshots]内のスナップショットは、削除フラグが立った時点から24時間経過後に削除されます。(削除までの残り時間は[Time Remaining]の列に表示されます。)
上記画像内の時計のマークを選択すると[Recover Snapshot] 画面が表示され、[Recover]をクリックすると削除フラグが取り消されます。
また、上記画像内のゴミ箱マークをクリックすると[Eradicate Snapshot] 画面が表示され、[Eradicate]をクリックすると24時間を待たずにスナップショットを削除することができます。
 
削除に関する上記のような操作は、スナップショットに限らずVolume他いくつかのオブジェクトに対して共通の操作となります。
 
これで、スナップショットの基本操作確認は終了となります。
 
 

スナップショットからのVolumeのコピーについて

上記の基本操作確認では[Restore]を選択し、スナップショットを取得したVolumeに対して書き戻しを行いました。
しかし、いきなり本番Volumeに対して書き戻しを行うことに不安が伴う場面もあるかと思います。
そんな際に利用できる便利な機能が「スナップショットからのVolumeのコピー」です。これにより、本番Volumeを現在の状態で残したまま、スナップショット取得時のVolumeを作成することが出来ます。こちらをリストア時のTipsとしてご紹介します。
 
まずはRoWのアーキテクチャ説明時の図を例に、アーキテクチャを説明します。
スナップショットからのVolumeのコピーが行われると、下記のようにメタデータのコピーのみを行い、実データのコピーは行いません。これによって容量消費、ストレージへの負荷なくVolumeのコピーを行います。
 
実際の操作手順は基本操作同様に[Storage]>[Volume]内の[Snapshot]の項目を開き、下記のようにVolumeコピーを行うスナップショットの右メニュー項目を選択し、[Copy]をクリックします。
 
下記のような画面が表示されますので、コピーで作成するVolume名を定義します。
この際選択できる[Container]の項目では「/(ルート)」「[Pod名]」「[Volume Group名]」を選択可能です。これにより作成するVolumeの配置先を選択します。Containerごとに別のネームスペースとして機能するため、スナップショット取得元のVolumeと配置先を別にすることで、同一Volume名でVolumeのコピーを展開することが出来ます。
ここでは、デフォルトで選択されている「/(ルート)」を選択しています。
また[Overwrite]のトグルを有効にすると、ネームスペース内で現在すでに存在しているVolume名を定義した場合に上書きを行います。(トグルを有効にせずに同一ネームスペース内でVolume名の重複が発生した場合にはエラーとなり、上書きは発生しません。)
[Copy]をクリックします。
 
すると即座にコピーしたVolumeが作成されます。
またコピーにより作成されたVolumeは、作成時点の容量消費が0.00Bとなっていることを確認することができます。
これらは上記の通り、Volumeのコピー時にメタデータのみのコピーを行うことによる仕様となります。
 
 

まとめ

FlashArrayのスナップショットについて、ご理解いただけましたでしょうか?
効率的なスナップショットアーキテクチャと、数クリックで完了するシンプルな操作を実感いただけたかと思います。
 
次回は"Protection Group"という機能を用いた、スナップショットのスケジューリングについてご紹介します。ご期待ください!

Pure Storageに関する全ての記事はこちらから!

著者紹介

SB C&S株式会社
技術統括部 第1技術部 2課
中田 浩嗣