メインコンテンツまでスキップ

NetApp_Insight_2020.png 

SCSI 予約と SCSI 固定予約とは何ですか。

Views:
185
Visibility:
Public
Votes:
0
Category:
data-ontap-8
Specialty:
san
Last Updated:

に適用されます

  • clustered Data ONTAP 8 
  • Data ONTAP 7 以前 
  • FlexPod

質問と回答

  • SCSI 予約と SCSI 固定予約とは何ですか。
  • SCSI 固定予約とは何ですか?
  • ネットアップのストレージシステムは SCSI 予約をサポートしていますか?
  • ホストからの SCSI 予約の競合を解決しています。
  • SCSI リザベーションの競合に関連する SnapDrive エラー。
NetApp ストレージシステムからの SCSI 予約の競合を解決する。

SCSI リザベーションと SCSI-3 パーシステントリザベーションとは何ですか。

SCSI 予約は、ディスクやテープドライブなどの共有 SCSI デバイスへのアクセスを制御するために使用されます。イニシエータは、別のイニシエータが LUN を変更できないように、 LUN の予約を設定します。これは、ファイルロックの概念に似ています。SCSI 予約は、常にホストイニシエータによって設定されます。理想的には、同じイニシエータが影響を受ける LUN で SCSI リリースを実行します。 

SCSI 予約の仕組みは、 SCSI プロトコルで指定します。これらのプロトコルで指定されているように、予約はデバイスへのアクセスを制御するために使用されます。元の SCSI 予約メカニズムは、 SCSI リザーブおよびリリースと呼ばれ、 SCSI-2 予約とも呼ばれていました。このメカニズムでは、イニシエータは SCSI reserve コマンドを使用して予約を設定します。この予約は、所有しているホストが SCSI release コマンドを発行するか、 SCSI バスリセットによって解放できます。したがって、エラーリカバリのために SCSI バスのリセットを実行すると、予約が解放されます。

SCSI-3 プライマリコマンド仕様は、永続的予約と呼ばれる予約への最新のアプローチを提供します。永続的予約では、エラー回復のためにバスがリセットされても予約を保持する機能が追加されています。これらは、 SCSI の persistent reserve out コマンドと persistent reserver in コマンドを使用して設定します。SPC-2 では予約とリリースの両方と固定予約がサポートされていますが、 2 つのメカニズムは相互に排他的です。デバイスに Classic リザベーションが設定されている場合は、 Classic リリースが実行されるまで、以降のすべての永続的予約要求は失敗します。新しい SPC-3 仕様では、従来のリザーブメカニズムとリリースメカニズムが廃止され、永続的な予約が優先されています。

[1]予約の詳細については、 SCSI プロトコル仕様を参照してください。

SCSI-3 の永続的予約はどのように機能しますか。

SCSI-3 永続的予約では、デバイスにアクセスする複数のノードがサポートされると同時に、他のノードへのアクセスがブロックされます。SCSI-3 永続的予約は、ホストからディスクへの複数のパスもサポートしますが、 SCSI-2 予約は LUN への単一のパスでしか機能しません。

SCSI-3 永続的予約では、登録と予約の概念が使用されます。参加するシステムでは、 LUN にキーを登録します。各システムは独自のキーを登録します。その後、登録済みシステムは予約を確立できます。この方法では、デバイスから登録を削除するだけで書き込みアクセスをブロックできます。別のシステムをイジェクトしようとするシステムは、他の登録済みイニシエータを登録、クリア、またはプリエンプション処理することができます。この方法は、スプリットブレイン状態を効果的に回避します。

永続的予約を使用すると、複数のクライアント(イニシエータ)が、複数のイニシエータとターゲットの関係を追跡することで、 i_t Nexuses と呼ばれるターゲットと通信できます。I _ T Nexus は、 SCSI ターゲット内の特定の LUN の特定の SCSI イニシエータポートと SCSI ターゲットポートの関係です。 

永続的予約を設定する最初の手順は、予約キーの登録です。予約キーは、各 i_T Nexus に固有のもので、予約を制御するために i_T Nexus デバイスの認証を可能にするために必要な情報が含まれています。

永続的予約には、次の 2 つのコマンドが

  • persistent reserve in:イニシエータが、既存の予約と登録に関するターゲットに関する情報を読み取るために使用します。
  • persistent reserve out:イニシエータが、エラーリカバリのための予約の登録、設定、変更、および予約の解除に使用します。

SCSI 固定予約コマンドでは、予約の予約や解放などの特定の機能を実行するために、 service アクションと呼ばれるサブコマンドも使用します。persistent reserve out次に、サービスアクションを使用して永続的予約を設定する例を示します。

 

KB 1001463_1.png

 

reservation conflictターゲットからイニシエータに応答が送信reserveされると、競合するイニシエータは要求を再試行する必要があります。ホストイニシエータの OSreserve は、要求を再試行する間隔を制御します。競合するホストreservation conflictは、次のいずれかのイベントが発生するまで、ターゲットからステータスを取得し続けます。

  • 制御ホストからreleaseコマンドが送信されます。
  • すべてのイニシエータから SCSI バスデバイスのリセットが発行されます。

メモ: SCSI-3 永続的予約は、ターゲットデバイスの電源を切っても保持されることがあります。この動作は、reserve予約要求がターゲットに送信された時点で、イニシエータによって APTPL フラグを使用して決定されます。

SCSI リザベーションは、次のような理由で NetApp ストレージシステムで使用されます。

  1. SAN 環境では、 NetApp ファブリック接続ストレージシステムは、イニシエータから要求された LUN のクラシックリリース / リザーブおよび永続的予約を設定し、これを実行します。
  2. テープバックアップ環境では、 SCSI 予約を使用して、ダイナミックドライブ共有環境でテープドライブを予約するようにストレージシステムを設定できます。 
    • 7.7.1 より前options tape.persistent_reservations [on | off]の Data ONTAP リリースでは、 SCSI リザーブ / リリース予約はコマンドによって制御されていました。 
    • Data ONTAP 7.1.1 以降では、 SCSI リザーブ / リリースまたは SCSI パーシステントリザベーションを設定する機能が追加されました。options tape.persistent_reservations コマンドは廃止さoptions tape.reservations [scsi | persistent]れ、コマンドに置き換えられました。 
  3. NetApp HA ( High Availability )ストレージコントローラは、 SCSI 予約を使用してディスクアクセスを制御します。
    • ハードウェアディスク所有権を使用する HA ペアの場合、 SCSI 予約は CF テイクオーバー時にのみ使用されます。  
    • ソフトウェアディスク所有権を使用する HA ペアの場合、システムが CF テイクオーバーになっているかどうかに関係なく、 SCSI 予約が使用されます。
  • ディスク・シェルフの電源を切っても、電源は保持されません。このため、ディスクシェルフの電源が切断されたりドライブがリセットされたりした場合、テイクオーバーされたノードが定期的に予約を再挿入します。
  • 予約が存在することは確認できますが、予約を設定したノードを特定することはできません。

SANOWN (ソフトウェアディスク所有権)を使用するアクティブ - アクティブクラスタパートナーは、 SCSI-3 永続的予約を使用してディスク所有権を制御します。HA ペアが CF テイクオーバーになっているかどうかに関係なく、予約が使用されます。これらの予約は、リブート後も維持されます。予約を所有するノードは、読み取りおよび書き込み機能を含むディスクを完全に制御します。SCSI-3 永続的予約は、 30 秒ごとに再確認されます。 

ホストからの SCSI-2 予約の競合を解決しています

lun reset target resetコマンドとコマンドは SCSI-2 予約にどのように影響しますか。

ホストベースのソフトウェアを使用すると、 SCSI 予約をクリアするのに最適な方法です。通常、 LUN は 1 つのホストにマッピングされます。ただし、ホストクラスタの場合は、通常、同じ LUN がすべてのクラスタノードにマッピングされます。

場合によっては、ホストが開始しなかった予約をクリアする必要があります。  これlun resettarget resetは、および SCSI コマンドを使用して行います。

lun resetストレージ・システムがまたはtarget resetコマンドを受信した場合、どのように応答しますか。

リセットを受信すると、次のメッセージが記録されます。

Mon Jan 5 18:19:40 CST [storage1: scsitarget.ispfct.lunReset:notice]: FCP Target 5a: LUN 0 was Reset by the Initiator at Port Id: 0x74001f (WWPN 5001438002210a3e)
Mon Jan  5 18:18:01 CST [storage1: scsitarget.ispfct.targetReset:notice]: FCP Target 6a: Target was Reset by the Initiator at Port Id: 0x1d3600 (WWPN 500508b200b65d52)

target resetコマンドを実行するときに特定の LUN を使用する必要がありますか。   
target resetこのコマンドlun reset は、特定の LUN にアドレスを指定せずにイニシエータから送信できますが、特定の LUN にアドレスを指定する必要があります。

 

警告:ターゲットをリセットすると、このコマンドを発行したイニシエータにマッピングされているすべての LUN のすべてのコマンドが中止されます。  また、他のイニシエータから、中止が開始されたイニシエータからアクセスされた LUN へのコマンドも中止されます。

 

例:

KB 1001463_2.png

 

SCSItarget reset or lun reset コマンドは SCSI-2 予約をクリアしますか。
はい

lun reset またはtarget reset コマンドは SCSI-3 永続的予約に影響しますか。
いいえ

SCSIlun reset コマンドは、この LUN を認識できる任意のホスト上の任意のイニシエータから発行できますか。
lun reset ただし、コマンドは特定の LUN にアドレス指定する必要があります。

SCSIlun reset は、特定の LUN にログインしている他のイニシエータに影響しますか。
○特定の LUN にマッピングLUN RESETされているすべてのイニシエータに通知が送信されます。 

SCSI ターゲットリセットコマンドは、ターゲット LUN にログインしているすべてのイニシエータのすべての LUN に影響しますか。
NetApp SCSI ターゲットでターゲットをリセットすると、ターゲットリセットコマンドを送信しているイニシエータにマッピングされている LUN のみがリセットされます。

SCSI リザベーションの競合に関連する SnapDrive エラー

SnapDrive を使用して LUN に接続しようとすると、次のエラーが表示されることがあります。

Unable to locate a LUN to perform requested operation.
The LUN has SCSI reservation but has not been mapped.

Windows ホストでは、 Computer Management > Disk Management で、ディスクをと表示するUnknown/Unreadableこともできます。

これは、 SCSI 予約をクリアすることで解決できます。これらの予約をクリアするには、ホストベースのソフトウェアを使用することを推奨します。これが機能しない場合は、必要に応じてストレージシステムから NetApp グローバルサポートのエスカレーションエンジニアが対応します。

NetApp ストレージシステムからの SCSI-3 永続的予約の競合の解決—ネットアップストレージシステムから予約をクリアする前に、ネットアップサポートにお問い合わせください。