Hitachi

Hitachi Command Suite Configuration Manager REST API リファレンスガイド


2.18 リソースのロック

複数のREST APIクライアントが同じリソースに対して同時に操作しようとした場合、予期しない構成変更が実行され、期待した結果を得られないことがあります。REST APIでは、ユーザが自分に割り当てられたリソースグループをロックすることで、ほかのユーザがそのリソースグループ中のリソースを構成変更できないようにします。

REST APIでは、セッション単位にロックを制御します。ロックは、セッションを生成したユーザに割り当てられているリソースグループのリソース全体が対象です。自分に割り当てられているリソースグループが、ほかのユーザによってロック中の場合は、ロックを取得できません。

リソースをロックするリクエストで使用したセッションだけが、ロック中のリソースに対する構成変更のリクエストを実行できます。1つのユーザアカウントが複数のセッションを生成した場合、同じユーザアカウントによって生成されたセッションでも、ロック時に使用したのとは異なるセッションを指定したときは、構成変更のリクエストを実行できません。

ただし、ペアの状態変更やREST APIサーバに対する操作など、ストレージシステム上のリソースの構成変更に影響のない操作は、ロックによる排他制御の影響を受けないで実行できます。ロックの影響を受けない操作は次のとおりです。
  • REST APIサーバへのストレージシステムの情報登録、変更、削除
  • セッションの生成、削除
  • 情報取得

    ただし、クエリパラメータを指定して情報を取得する場合は、ほかのREST APIクライアントやストレージ管理ソフトウェアからの構成変更の操作の影響により、正確な情報を取得できないおそれがあります。正確な情報を取得するには、ロックを取得してから操作してください。

  • 指定したホストへのpingコマンドの送信
  • ALUAのパスの優先度の設定
  • ShadowImageペアの分割、再同期、リストア(コピーペア単位、またはコピーグループ単位)
  • Thin Imageペアの分割、再同期、リストア(スナップショット単位、またはスナップショットグループ単位)

    作成、削除、セカンダリボリュームの割り当て、割り当ての解除(スナップショットツリー単位での操作も含む)

  • REST APIサーバへのリモートストレージシステムの情報登録および削除
  • TrueCopyペア/Universal Replicatorペアの分割、再同期、テイクオーバー(コピーペア単位、またはコピーグループ単位)
  • 外部ストレージシステム側ポートのiSCSIターゲットの情報関連(取得、ログインテスト)
  • 初期設定に必要なファイルのアップロード
  • REST APIサーバの通信モードの変更
  • ストレージシステムの構成情報のキャッシュの更新
  • ストレージシステムの構成情報の更新
  • ストレージシステムの構成変更の通知先の登録、削除

1つのユーザアカウントで複数のセッションを使用している場合は、そのうち1つのセッションだけがリソースをロックできます。

操作が終了してロックが不要になったら、リソースグループをアンロックするAPIを実行します。ロック時に使用したセッションが破棄されると、同時にリソースグループがアンロックされます。セッションタイムアウトでセッションが破棄される場合も、同時にアンロックされます。

ヒント
  • 非同期処理のAPIが実行中でも、セッションタイムアウトは発生します。非同期処理のAPIの実行中、ロックを継続したい場合は、定期的にジョブの状態をチェックするリクエストを発行するなどして、セッションがタイムアウトしないようにしてください。
  • REST APIクライアントから意図せずにロックが継続されている場合や、トークンを紛失した場合など、強制的にロックを解除したいときは、セッションタイムアウトになるまで待つか、Administrator ユーザグループ(ビルトイングループ)に属するユーザVSP 5000 シリーズVSP E シリーズVSP Gx00 モデルVSP G1000VSP G1500VSP Fx00 モデルまたはVSP F1500の場合)、またはmaintenanceユーザ(Virtual Storage PlatformまたはUnified Storage VMの場合)でセッションを強制的に破棄してください。
  • ロック中に、ロックしているユーザの情報(ロールやリソースグループなど)が変更された場合は、ロックが解除されてから操作に反映されます。

ロック機能を使用してAPIを実行する操作の流れ

リソースグループをロックしてAPIを実行する場合の操作の流れを次に示します。

ステップ

操作内容

Authorization ヘッダに指定する内容

1

セッションを生成します。

ユーザIDとパスワード

2

リソースグループをロックします。

ステップ1で生成したセッションのトークン

3

ロックしたリソースに対する操作を実行します。

ステップ1で生成したセッションのトークン

4

リソースグループをアンロックします。

ステップ1で生成したセッションのトークン

5

セッションを破棄します。

ステップ1で生成したセッションのトークン

ロック機能を使用してAPIを実行する操作の流れ(リモートコピーの場合)

ストレージシステム間でのコピー操作(リモートコピー)で、コピーグループやコピーグループ内のリソースに対する構成変更操作を実行する場合に、対象のリソースをロックして操作したいときは、ローカルストレージシステムとリモートストレージシステムの両方のリソースをロックします。両方のリソースをロックするとき、およびロックされたリソースに対して操作を実行するときは、AuthorizationヘッダとRemote-Authorizationヘッダにそれぞれのセッションのトークンを指定します。Remote-Authorizationヘッダは、次のオブジェクトタイプを対象としたAPIでだけ使用します。
  • remote-mirror-copygroups
  • remote-mirror-copypairs
  • remote-storages

ローカルストレージシステムとリモートストレージシステムの両方のリソースをロックする場合の操作の流れについて次に示します。

ステップ

操作対象のストレージシステム

操作内容

Authorization ヘッダに指定する内容

1

ローカルストレージシステム

セッションを生成します。

ローカルストレージシステムのユーザIDとパスワード

2

リモートストレージシステム

セッションを生成します。

リモートストレージシステム側で生成するセッションのタイムアウト時間は、60秒以上を設定します。

リモートストレージシステムのユーザIDとパスワード

3

ローカルストレージシステム

リソースグループをロックします。

ステップ1で生成したセッションのトークン

4

リモートストレージシステム

リソースグループをロックします。

ステップ2で生成したセッションのトークン

5

ローカルストレージシステム

コピーグループやコピーグループ内のリソースに対する操作を実行します。

ステップ1で生成したセッションのトークン

合わせて、ステップ2で生成したセッションのトークンをRemote-Authorizationヘッダに指定します。

6

ローカルストレージシステム

リソースグループをアンロックします。

ステップ1で生成したセッションのトークン

7

リモートストレージシステム

リソースグループをアンロックします。

ステップ2で生成したセッションのトークン

8

ローカルストレージシステム

セッションを破棄します。

ステップ1で生成したセッションのトークン

9

リモートストレージシステム

セッションを破棄します。

ステップ2で生成したセッションのトークン

ヒント

リモートコピーペア作成を実行すると、ストレージシステムでのペア作成の初期コピー処理に長時間掛かることがあります。その場合、ペア生成が完了するまでリソースをロックしたままでいると、長時間ほかのクライアントがそのリソースグループのリソースを使用できなくなります。ストレージシステムでペア作成の要求が受け付けられたあとは、REST APIでロックをかける必要はないため、リモートペア作成時には、ジョブの状態がStorageAcceptedに遷移した時点でロックを解除することをお勧めします。