2

ZFS ベースの iSCSI ターゲットに VSS ハードウェア プロバイダーを実装しています。AreLunSupported、precommitsnapshot、commitsnapshot などの機能を実装しましたが、この時点までは正常に動作しています。しかし、この後VSS_E_NO_SNAPSHOTS_IMPORTED、LocateLun メソッドで " " エラーが発生して失敗しています。ターゲット LUN 情報が適切に入力されていないと思います。

私の質問は次のとおりです。

  1. ターゲットLUNのシリアル番号を見つける方法は? 新しく作成したスナップショットをマウントしてから、シリアル番号を取得する必要がありますか?

  2. 相互接続、ストレージ識別子情報も入力する必要がありますか、それともこれらに NULL を渡すだけでよいでしょうか。

4

1 に答える 1

1

Q: ターゲット LUN のシリアル番号を確認する方法を教えてください。新しく作成したスナップショットをマウントしてから、シリアル番号を取得する必要がありますか?

いいえ、この時点でスナップショットをマウントしないでください。帯域外メカニズムを使用して、ストレージと直接通信する必要があります (「ZFS ベースの iSCSI ターゲット」は NAS ボックスからのものであると想定しています)。おそらく REST API 呼び出しを使用して、ストレージのシリアル番号を把握します。スナップショット。

スナップショットのシリアル番号についてもう少し詳しく説明しましょう。

  1. VSS は、「シャドウ コピー」がプライマリ ボリューム (この場合は iSCSI ターゲット) と同様の具体的な実ボリュームであると想定します。
  2. ZFS スナップショットを使用しているため、正確な実装について詳しく説明する必要はありません。具体的な LUNのシリアル番号を取得するには、次の 2 つのオプションがあります。

    を。ストレージで ZFS スナップショット ディレクトリを iSCSI ターゲットとして公開できる場合、その iSCSI ターゲットを作成し、その Page83 識別子を使用します。

    b. そうでない場合は、ZFS スナップショットを使用して ZFS クローンを作成し、それを iSCSI ターゲットとして公開し、その Page83 識別子を使用します。

Q: 相互接続、ストレージ ID 情報も入力する必要がありますか、それとも NULL を渡すだけでよいですか?

  1. VDS_LUN_INFORMATION実際には、通常、元のソース LUN の をコピーして、ターゲット LUN のフィールドを編集するだけで十分ですm_szSerialNumber(製品 ID、ベンダー ID などはすべて同じままであると仮定します)。

このリンクでは、VSS ハードウェア プロバイダーの実装で何が期待されるかについて詳しく説明しています: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384600(v=vs.85).aspx

固有のページ 83 情報

元の LUN と新しく作成されたシャドウ コピー LUN の両方が、ページ 83 データ内に少なくとも 1 つの一意のストレージ識別子を持っている必要があります。タイプが 1、2、3、または 8 で関連付けが 0 の少なくとも 1 つの STORAGE_IDENTIFIER が、元の LUN と新しく作成されたシャドウ コピー LUN で一意である必要があります。

おまけ雑談(この時点で回答は終了):

さて、上記の #2(b) は、事前にクローンを作成していて、まだ使用されていないため、眉をひそめるかもしれません。これは、上記の手順を で実行する必要がありIVssHardwareSnapshotProvider::FillInLunInfo同じVDS_LUN_INFORMATION内容が後で に渡されるためIVssHardwareSnapshotProvider::LocateLunsです (VSS は、以前にシャドウ コピー LUN であると伝えた LUN を見つけるように伝えようとしています)。したがって、将来クローンを使用するかどうかに関係なく、事前に具体的な LUN (iSCSI ターゲット) を作成する必要があります。

これに対する希望の光は次のとおりです。VSS リクエスターのワークフローが決してシャドウ コピーをマウントしないことが確実な場合は、. これを機能させるには、「転送可能な」シャドウ コピーを作成する必要があります (VSS リクエスターはフラグを使用します)。このようなシャドウ コピーの唯一の使用例は、ハードウェア再同期を実行することです。この場合、VSS ハードウェア プロバイダーはメソッドを実装し、ZFS スナップショット ロールバックを実行します。VDS_LUN_INFORMATIONIVssHardwareSnapshotProvider::FillInLunInfoVSS_CTX_FILE_SHARE_BACKUP | VSS_VOLSNAP_ATTR_TRANSPORTABLEIVssHardwareSnapshotProvider::ResyncLuns

于 2015-01-31T06:48:06.593 に答える