ストレージ

Pure Storage FlashArray Async Replication(非同期レプリケーション)の仕様と設定方法

Pure Storage FlashArray(FA)製品のAsync Replication(非同期レプリケーション)について、仕様と設定方法をご紹介します。

データのバックアップ

FA製品のバックアップは、単純で簡単に操作でき、サービスや運用への負荷なく、安全にデータを保護することが可能です。FAのバックアップの手段としては、下記の種類があります。

Snapshot、およびそのSnapshotを管理・運用できるProtection Groupについてご説明したブログはこちらとなります。

参考:FlashArrayのSnapshotについて:https://cn.teldevice.co.jp/blog/p60502/

参考:FlashArrayのProtection Groupについて:https://cn.teldevice.co.jp/blog/p62832/

今回はこのうちAsync Replicationに焦点を当てて記載します。今後のブログで、そのほかのバックアップ手段やRAID構成などについても記載予定です。

Async Replication

Async Replication(非同期レプリケーション)は、FAの2アレイ間でSnapshotを転送する機能です。最小5分間隔で実行でき、前回の転送済みのSnapshotとの差分データのみを転送します。FAの特徴でもある重複排除・圧縮効果を維持した状態で、他のFAにSnapshotを転送できるため、通信量を抑え、短時間でデータのバックアップを実行できます。また、Protection Groupを利用することで、管理者の方が手動で転送を実行させる必要もありません。Async Replicationは、ライセンスフリーで利用可能な機能となります。

Async Replicationは、あるFAから異なるFAへのSnapshotの転送ですが、これを双方向に実行させることも可能です。さらに、1:N、N:1、N:Nなど、マルチ構成、マルチサイトでのレプリケーションが可能です。

Async Replicationの動作仕様

Async Replicationの動作仕様を図に示します。

転送元のFAをSource Array、転送先のFAをTarget Arrayと表現します。あるProtection Groupのレプリケーションが、Source Array側で実行されると、下記の動作が順に行われます。

・ Source Array側にて、前回取得したSnapshotと比較した差分データを、Snapshotとして作成(前回取得したSnapshotは削除される)

・ 差分データのRead処理後、転送処理が実施される(初回転送時にはすべてのデータが転送される)

・ Target Array側でインライン重複排除を行ったうえでデータが書き込まれる

・ Protection Groupにて設定されたポリシーに基づいてSnapshotが保持される

レプリケーションネットワーク

Pure Storageのレプリケーションには、専用のポートを使用します。X、Cモデルでは、標準で搭載されている、各CTのETH2と3ポートが利用可能です。ポート構成については、下記のブログをご確認ください。

参考:Pure Storage FlashArray Xシリーズの詳細:https://cn.teldevice.co.jp/blog/p57997/

それぞれのポートにIP アドレスを設定します。そのため、レプリケーションを使用する場合には、1アレイ当たり4つのIPアドレスが必要です。ポートのMTU(Maximum Transmission Unit)はデフォルトの1500が推奨です。また、ETHスイッチを介して接続することが必要となります(アレイ間を直接接続する構成は非サポートとなります)。通信要件として必要となるポート番号は、管理ポートは443、レプリケーションポートは8117です。なお、仕様上、レプリケーション通信そのものはFAのPrimary CT(コントローラ:Controller)のみで行われます。これは、他のレプリケーション機能であるActiveClusterやActiveDRでも同様です。

Async Replicationの設定

ここからは、実際に2台のFAでAsync Replicationを設定する方法を記載します。前提として、2台のFAが存在し、上記の章に記載した、レプリケーションのネットワーク設定が完了している状態から開始します。

今回、Purityバージョンについては、Source Arrayをv6.3.17、Target Arrayをv6.5.9の機器にて実施しますので、一部Purityバージョンでは表記が異なる場合があります。まずは、手順を表にまとめました。手順は大きく5つです。

1. 基本構築

Source Array側で、Protection Groupを作成します。そして、作成したProtection Groupにレプリケーションの対象とする、Volume等を追加します。Protection Groupの作成方法については、下記のブログをご確認ください。

参考:FlashArrayのProtection Groupについて:https://cn.teldevice.co.jp/blog/p62832/

2. Connection Keyの取得

Target Array側でConnection Keyを取得します。なお、この図ではKeyをマスクしていますが、Keyは英数字の羅列です。

GUI:Protection > Array > Array Connectionsの縦三点リーダ > Get Connection Keyを選択。表示されるKeyをCopy

CLI:purearray list --connection-keyコマンドを入力

3. Async Replication接続の実施

Source Array側で、Async Replication接続を実施します。一部設定内容については、当社環境情報のため、マスクしています。

GUI:Protection > Array > Array Connectionsの+ボタン

Management Address:Target Arrayの仮想管理IPアドレス(XCR3モデル以下、XL:vir0 / XCR4、E:vir4)

Type:Async Replication

Connection Key:先ほど取得したConnection Keyを入力

Replication Transport:Ethernet (IP)

Replication Address:NAT構成でない限り空欄で良い

CLI:purearray connect --management-address [Target Arrayの仮想管理IPアドレス] --type async-replication --connection-keyコマンドを入力

入力後、Connection Keyを聞かれるため、先ほど取得したConnection Keyを入力

4. Protection Groupのレプリケーション設定

Source Array側で、作成済みのProtection Groupにてレプリケーション設定を実施します。

GUI:Protection > Protection Groups > Source Protection Group > 作成したProtection Group > Replication ScheduleのEditボタンを選択。任意の設定を入力し、DisabledのトグルをEnabledに変更し、Save

※設定の内容は下記の表を参照ください。A~Fの代数でそれぞれを表現して説明します。

CLI:purepgroup schedule --replicate-frequency [A] {--replicate-at [B] --replicate-blackout [C]} [Protection Group名]

purepgroup retain --target-all-for [D] --target-per-day [E] --target-days [F] [Protection Group名]

purepgroup enable --replicate [Protection Group名]

5. Target Arrayの登録

Source Array側で、Protection GroupにてTarget Arrayを登録します。これで、自動的にTarget Array側にレプリケーションが実行されます。

GUI:Protection > Protection Groups > Source Protection Group > 作成したProtection Group > Targetsの縦三点リーダ > Add…を選択。Target Arrayを選択し、Add

CLI:purepgroup setattr --addtargetlist [Target Array名] [Protection Group名]

Target Arrayでのリストア方法

Target Array側でデータ復旧を試みる場合には、転送されてきたSnapshotをVolume化することで実施可能です。手順は、Target Array側で自動的に作成されたProtection Groupをベースに実施します。なお、Target Array側に作成されるProtection Groupの名前は、「Source Array名:Protection Group名」となります。

GUI:Protection > Protection Groups > Target Protection Groups > 転送されてきたProtection Group > Target Protection Group Snapshotの中にある転送されてきたSnapshotをクリック > 表示されるポップアップから、Copy Snapshotボタンをクリック > Nameに任意のVolume名を入力し、Copy

CLI:purevol copy [対象のSnapshot名] [Volume名]コマンドを入力

なお、下記ブログのSnapshotの取得方法およびリストア方法の章も参考になるかと思いますので、併せてご確認ください。

参考:FlashArrayのSnapshotについて:https://cn.teldevice.co.jp/blog/p60502/

その他の仕様や注意点

・ アレイ間でのPurityの互換性がある必要性があります。例として、Source ArrayのPurityバージョンが、6.2.x以上であれば、Target Arrayは5.3.x以上が要件です。詳細は下記Pure Storage社のKB(Knowledge Base)をご確認ください。KBの閲覧にはPure1アカウントが必要です。お持ちでない場合は、Pure1アカウントを作成いたしますので、保守窓口までご連絡ください。

https://support.purestorage.com/bundle/m_asynchronous/page/FlashArray/PurityFA/Replication/ActiveDR/Implementation/library/common_content/r_purity_version_asynchronous_replication_interoperability.html

・ レプリケーション用のIPアドレスとして、仮想インターフェースとなるreplbondという、4つのインターフェースを仮想的に1つのIPアドレスとしてまとめて管理できる設定もありますが、推奨は、物理ポートそれぞれにIPアドレスを設定することになります。

・ Replication ScheduleをEnableにすると、指定した時間に依存せず、初回転送が即時的に実行され、Target Array側にProtection Groupが自動で作成されます。

・ 転送間隔を4時間で設定したと仮定し、ある転送が4時間以内に完了しなければ、その転送が完了するまで、上記の設定した間隔はスキップされます。これが5時間後に完了すれば、スキップしていた転送が開始され、もともと設定していた間隔に則って後続のレプリケーションが実施されます。

・ Source Arrayには、最新のSnapshotのみが保存され、Target Arrayにはスケジュールで指定した世代数のSnapshotが保持されます。

・ Source Array側でTarget Array情報やProtection Groupを削除すると、自動的に作成されていたTarget Array側のProtection GroupやそのSnapshotも削除されます。

・ アレイ間の通信量(Bandwidth)の上限値を設定することが可能です。これをThrottle設定と呼びます。また、1日のうちの時間帯を指定し、その間のBandwidthを設定することもできます。例えば日中と夜間でのNW制限値をそれぞれ設定することが可能です。なお、これはSource Array側で実施する必要があります。

GUI:Protection > Array > Array Connections > 設定したいArrayのEdit Bandwidth Throttleボタンを選択。任意の設定を入力し、Save

CLI:purearray throttle --connect --default-limit [通信上限] --window-limit [通信上限] --window [window-limitを適用する時間帯] [Target Array名]

この図のGUIやCLIの設定例の場合、Async Replication接続の通信上限を通常3GB/sに設定し、午前11時~午後3時は1GB/sに設定する、という内容です。

最後に

今回はFA製品のAsync Replicationについて概要と設定方法を記載しました。今後のブログでも、ActiveClusterやActiveDRなど、他の筐体にバックアップする機能について記載予定となります。

この記事に関連する製品・サービス

この記事に関連する記事