SCSI 予約と SCSI 固定予約とは何ですか。
環境
- ONTAP 9
- clustered Data ONTAP 8
- Data ONTAP 7以前
- FlexPod
質問と回答
SCSI予約とSCSI-3永続的予約について教えてください
- SCSI予約は、ディスクやテープドライブなどの共有SCSIデバイスへのアクセスを制御するために使用されます。
- イニシエータ はLUNに予約を設定し 、別のイニシエータがLUNに変更を加えないようにします。これはファイルロックの概念に似ています。SCSI予約は常にホストイニシエータによって設定されます。同じイニシエータが該当するLUNでSCSIリリースを実行するのが理想的です。
- SCSI予約の仕組みは、SCSI プロトコルで指定されています。これらのプロトコルで指定されているように、予約はデバイスへのアクセスを制御するために使用されます。
- 元 々 のSCSI予約メカニズムはSCSI予約およびリリースと呼ばれ、SCSI-2予約とも呼ばれていました。このメカニズムでは、イニシエータはSCSI Reserveコマンドを使用して予約を設定します。この予約は、所有者ホストがSCSI Releaseコマンドを発行するか、SCSIバスのリセットによって解放されます。したがって、エラーリカバリのためにSCSIバスのリセットが実行されると、原因予約が解放されます。
- SCSI-3 Primary Commands仕様は、永続的予約と呼ばれる予約に対する最新のアプローチを提供します。永続的予約は、エラーリカバリのためにバスがリセットされた場合でも予約を維持する機能を追加します。これらは、SCSI Persistent Reserve OutコマンドとPersistent Reserver Inコマンドを使用して設定します。SPC-2ではリザーブ予約とリリース予約と永続的予約の両方がサポートされますが、この2つのメカニズムは相互に排他的です。
- デバイスにクラシック予約が設定されている場合、クラシックリリースが実行されるまで、後続の永続的予約要求はすべて失敗します。新しいSPC-3仕様では、従来のReserveとReleaseのメカニズムが廃止され、Persistent Reservationsが推奨されています。
- 予約の詳細については、SCSIプロトコル仕様を参照してください。
SCSI-3永続的予約の仕組み
- SCSI-3永続的予約機能では、複数のノードがデバイスにアクセスし、同時に他のノードへのアクセスをブロックすることができます。SCSI-3永続的予約では、ホストからディスクへの複数のパスもサポートされますが、SCSI-2予約ではLUNへのパスが1つしかないため、機能しません。
- SCSI-3永続的予約では、登録と予約の概念が使用されます。対象のシステムについては、LUNにキーを登録します。各システムは独自のキーを登録します。この後、登録されたシステムは予約を確立することができます。この方法では、書き込みアクセスをブロックすることは、デバイスから登録を削除するのと同じくらい簡単です。別のシステムをイジェクトするシステムは、登録されている他のイニシエータを登録、クリア、またはプリエンプトすることができます。この方法は、スプリットブレイン状態を効果的に回避します。
- 永続的予約を使用すると、イニシエータとターゲットの関係(i_T nexus)を複数追跡することで、複数のクライアント(イニシエータ)がターゲットと通信できます。i_T nexusは、SCSIターゲット内の特定のLUNの特定のSCSIイニシエータポートとSCSIターゲットポートの関係です。
- 永続的予約を設定する最初のステップは、予約キーの登録です。予約キーは、各I_T Nexusに固有であり、予約を制御するためにI_T Nexusデバイスの認証を可能にするために必要な情報が含まれています。
永続的予約には2つのコマンドがあります。
persistent reserve in
:イニシエータが、既存の予約と登録に関するターゲットの情報を読み取るために使用します。persistent reserve out
:イニシエータがリザベーションを登録、設定、変更し、エラーリカバリのためにリザベーションを解除するために使用します。
SCSI Persistent Reservationコマンドでは、Service Actionsと呼ばれるサブコマンドも使用して、予約の予約や解放などの特定の機能を実行します。次に、 persistent reserve out
サービスアクションを使用して永続的予約を設定する例を示します。
reservation conflict
ターゲットからイニシエータに応答が送信されると、競合しているイニシエータは reserve
要求を再試行する必要があります。ホストイニシエータのOSは、 reserve
要求を再試行する間隔を制御します。競合しているホストは reservation conflict
、次のいずれかのイベントが発生するまで、ターゲットからステータスを取得し続けます。
- 制御ホストが
release
コマンドを送信します。 - SCSIバスデバイスのリセットは、任意のイニシエータから発行されます。
メモ:SCSI-3永続的予約は'ターゲット・デバイスの電源を再投入しても維持される場合がありますこの動作は reserve
、APTPLフラグを使用して予約要求がターゲットに送信された時点でイニシエータによって決定されます。
NetAppストレージシステムでは、次のような理由からSCSI予約が使用されます。
- SAN環境では、NetAppファブリック接続ストレージシステムは、イニシエータから要求されたLUNについて、従来のリリース/予約および永続的予約を設定し、適用します。
- テープバックアップ環境では、SCSI予約を使用して動的ドライブ共有環境でテープドライブを予約するようにストレージシステムを設定できます。
- 7.1.1より前のData ONTAPリリースでは
options tape.persistent_reservations [on | off]
、SCSI予約/リリース予約はコマンドで制御されていました。 - Data ONTAP 7.1.1以降では、SCSI予約/リリースまたはSCSI永続的予約のいずれかを設定する機能が追加されています。
options tape.persistent_reservations
コマンドは廃止され、options tape.reservations [scsi | persistent]
コマンドに置き換えられました。
- 7.1.1より前のData ONTAPリリースでは
- NetAppハイアベイラビリティ(HA)ストレージコントローラは、SCSI予約を使用してディスクアクセスを制御します。
- ハードウェアディスク所有権を使用するHAペアの場合、SCSI予約はCFテイクオーバー時にのみ使用されます。
- ソフトウェアディスク所有権を使用するHAペアでは、システムがcf takeoverの状態かどうかに関係なく、SCSI予約が使用されます。
- ディスクシェルフの電源を再投入しても、この状態は維持されません。そのため、テイクオーバーしたノードでは、ディスクシェルフの電源が失われた場合やドライブがリセットされた場合に、定期的にリザーブが再アサートされます。
- 予約が存在することは確認できますが、予約を設定したノードを特定することはできません。
- SANOWN(Software Disk Ownership)を使用するアクティブ/アクティブクラスタパートナーは、SCSI-3 Persistent Reservationsを使用してディスク所有権を制御します。
- リザベーションは、HAペアがcf takeoverの状態かどうかに関係なく使用されます。これらの予約はリブート後も維持されます。
- リザベーションを所有するノードは、読み取りおよび書き込み機能を含め、ディスクを完全に制御できます。
- SCSI-3永続的予約は、30秒ごとに再アサートされます。
SCSI-2予約のホストからの競合の解決
lun reset
コマンドと target reset
コマンドはSCSI-2予約にどのような影響を与えますか
- SCSI予約をクリアするには、ホストベースのソフトウェアを使用するのが最善の方法です。通常、LUNは単一のホストにマッピングされます。ただし、ホストクラスタの場合 は、通常、すべてのクラスタノードに同じLUNがマッピングされます。
- 場合によっては、開始しなかった予約のクリアがホストで必要になることがあります。 これには、
lun reset
およびtarget 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にアドレスを指定せずにイニシエータから送信できますが、はlun reset
特定のLUNにアドレスを指定する必要があります。
警告:ターゲットをリセットすると、このコマンドを実行したイニシエータにマッピングされているすべてのLUN上のコマンドが中止されます。 また、中止を開始したイニシエータがアクセスするLUNへの他のイニシエータからのコマンドも中止されます。 |
例:
SCSItarget reset or lun reset
コマンドはSCSI-2予約をクリアしますか。
はい
lun reset
コマンドまたは target reset
コマンドはSCSI-3の永続的予約に影響しますか
いいえ
lun reset
このLUNを認識できるホスト上の任意のイニシエータからSCSIコマンドを実行できますか。
○ただし、 lun reset
コマンドは特定のLUNにアドレス指定する必要があります。
SCSIは lun reset
、特定のLUNにログインしている他のイニシエータに影響しますか。
○特定のLUNにマッピングされているすべてのイニシエータに LUN RESET
通知が送信されます。
SCSI target resetコマンドは、 ターゲットLUNにログインしているすべてのイニシエータのすべてのLUNに影響しますか。
NetApp SCSIターゲットでターゲットをリセットすると、target resetコマンドを送信しているイニシエータにマッピングされている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ホストでは、 [コンピュータの管理]>[ディスクの管理]の順に
Unknown/Unreadable
選択して、ディスクがと表示されることもあります。 - これは、SCSI予約をクリアすることで解決できます。
これらの予約をクリアするには、ホストベースのソフトウェアを使用することをお勧めします。
これが機能しない場合は 、 必要に応じてストレージシステムからNetAppグローバルサポートのエスカレーションエンジニアが実行できます。
NetApp ストレージシステムからのSCSI-3永続的予約の競合を解決する- NetApp ストレージシステムから予約をクリアする前に、NetAppサポートにお問い合わせください。