web-dev-qa-db-ja.com

Linux Rhel5.6:SCSIプロトコルバージョン-どこで定義されていますか?

私たちの環境では、RHLinuxサーバーに接続されたいくつかのストレージキャビネットがあります。ホストに接続されているストレージキャビネットに応じて、SCSIプロトコルバージョン2(バージョン= 0x02 [SCSI-2])を使用して表示されるLUNと、プロトコルバージョン4(バージョン= 0x04 [SPC-2])を使用して表示されるLUNがあります。

このプロトコルバージョンはどこで構成されていますか?これはオペレーティングシステム側ですか?またはストレージ側?まったく同じ方法でRHサーバーをインストールしました。私たちはRHELとストレージベンダーにケースを開きます。もちろん、RHELはそれがストレージであり、ストレージベンダーはそれがOSであると言っています。

これはLUN検出に影響を与えます(LUNIDが順番になっていない->スキャンするLUNIDの範囲を手動でscsi-rescanに指示する必要があります->手動の介入なしに再起動時にすべてのLUNを表示することはできません) 。

もうどこを見ればいいのかわからないのですが、どこを見ればいいのかIDを持っている人はいますか?以下は、3つの異なるサーバーでのsg_inqの出力です。

[qualification:root@xxxxxxxx:/root]$ sg_inq /dev/sda
standard INQUIRY:
PQual=0 Device_type=0 RMB=0 version=0x02 **[SCSI-2]**
[AERC=0] [TrmTsk=0] NormACA=0 HiSUP=1 Resp_data_format=2
SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=0 BQue=0
EncServ=0 MultiP=1 (VS=0) [MChngr=0] [ACKREQQ=0] Addr16=1
[RelAdr=0] WBus16=0 Sync=0 Linked=0 [TranDis=0] CmdQue=1
[SPI: Clocking=0x0 QAS=0 IUS=0]
length=184 (0xb8) Peripheral device type: disk
Vendor identification: HITACHI
Product identification: DF600F
Product revision level: 0000
Unit serial number: 850531780000


[root@ccccccccccc ~]# sg_inq /dev/sda
standard INQUIRY:
PQual=0 Device_type=0 RMB=0 version=0x04 **[SPC-2]**
[AERC=0] [TrmTsk=0] NormACA=0 HiSUP=1 Resp_data_format=2
SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=0 BQue=0
EncServ=0 MultiP=1 (VS=0) [MChngr=0] [ACKREQQ=0] Addr16=1
[RelAdr=0] WBus16=0 Sync=0 Linked=0 [TranDis=0] CmdQue=1
[SPI: Clocking=0x0 QAS=0 IUS=0]
length=184 (0xb8) Peripheral device type: disk
Vendor identification: HITACHI
Product identification: DF600F
Product revision level: 0000
Unit serial number: 8505035001DA

[pre-prod:root@vvvvvvvvv:/home/a143524]$ sg_inq /dev/sda
standard INQUIRY:
PQual=0 Device_type=0 RMB=0 version=0x04 **[SPC-2]**
[AERC=0] [TrmTsk=0] NormACA=0 HiSUP=1 Resp_data_format=2
SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=0 BQue=0
EncServ=0 MultiP=1 (VS=0) [MChngr=0] [ACKREQQ=0] Addr16=1
[RelAdr=0] WBus16=0 Sync=0 Linked=0 [TranDis=0] CmdQue=1
[SPI: Clocking=0x0 QAS=0 IUS=0]
length=184 (0xb8) Peripheral device type: disk
Vendor identification: HITACHI
Product identification: DF600F
Product revision level: 0000
Unit serial number: 850503500032

ドライバーは、rhelに付属するデフォルトのqlaモジュールです。多くのパラメーターは変更しません。

オプションqla2xxxqlport_down_retry = 1 ql2xplogiabsentdevice = 1 ql2xmaxqdepth = 16

結果は次のようになります:

[qualification:root@xxxxxxxx]$ for i in  /sys/module/qla2xxx/parameters/*;
do
echo $i;cat $i;
done

/sys/module/qla2xxx/parameters/ql2xallocfwdump
1

/sys/module/qla2xxx/parameters/ql2xdbwr
1

/sys/module/qla2xxx/parameters/ql2xdevdiscgoldfw
0

/sys/module/qla2xxx/parameters/ql2xdontresethba
0

/sys/module/qla2xxx/parameters/ql2xenablemsix
1

/sys/module/qla2xxx/parameters/ql2xetsenable
0

/sys/module/qla2xxx/parameters/ql2xextended_error_logging
1

/sys/module/qla2xxx/parameters/ql2xfdmienable
0

/sys/module/qla2xxx/parameters/ql2xfwloadbin
0

/sys/module/qla2xxx/parameters/ql2xloginretrycount
30

/sys/module/qla2xxx/parameters/ql2xlogintimeout
20

/sys/module/qla2xxx/parameters/ql2xmaxqdepth
16

/sys/module/qla2xxx/parameters/ql2xplogiabsentdevice
1

/sys/module/qla2xxx/parameters/ql2xqfullrampup
120

/sys/module/qla2xxx/parameters/ql2xqfulltracking
1

/sys/module/qla2xxx/parameters/ql2xshiftctondsd
6

/sys/module/qla2xxx/parameters/ql2xtargetreset
1

/sys/module/qla2xxx/parameters/qlport_down_retry
1

Linuxの問題について考えさせられるもう1つのことは、次のとおりです。evryホストでは次の出力が異なります。SCSIリビジョンでは異なる結果が得られます。

cat /proc/scsi/scsi:
...

Host: scsi1 Channel: 00 Id: 04 Lun: 99
  Vendor: HITACHI  Model: DF600F           Rev: 0000
  Type:   Direct-Access                    ANSI SCSI revision: 02

しかし、SCLIを使用すると、常に同じ出力SBC-2が見つかりました。

LUN 99
---------------------------------------
Product Vendor                 : HITACHI 
Product ID                     : DF600F          
Product Revision               : 0000
LUN                            : 99
Size                           : 100.00 GB
Type                           : SBC-2 Direct access block device
                       (e.g., magnetic disk)
WWULN                          : 48-49-54-41-43-48-49-20-38-35-30-35-32-38-39-30
                       30-30-39-39
OS LUN Name                    : /dev/sdiz;/dev/sg259;

これは誰かに何かアイデアを与えますか?よろしくマイク

2011年10月27日更新:

こんにちは私たちは最近2つの興味深いテストを行いました:

  • 同じストレージから別のホストにLunを提示する(RACクラスターの3つのメンバーで同じ問題が発生したため、このテストは明らかでした)

->このSCSIリビジョンはOKでした

  • 別のストレージから問題のあるホストにLunを提示する

->このホストではscsiリビジョンはOKでした

これらの3つのRACノードの異なるストレージに多数のディスクがあることに気付きました... 1つのストレージをデコミッションする必要があるため、先に進む前にまずこれをクリーンアップします...

また、ブートシーケンスにscsi-rescanを実装して、問題なくマシンを再起動できるようにすることも決定しました(この種の回避策は嫌いです)

私は将来のためにあなたの他の提案を保持します;)

よろしくお願いします

3
Mike

プロトコルバージョンは、ドライブ、またはドライブとホストの間にあるエミュレーションレイヤーのプロパティです。 RAID機能を実行し、複数のデバイスを表す単一のLUN、または構成可能なスライスを提示するキャビネットがある場合、それが話すSCSIプロトコルのバージョンを定義するのはレイドレイヤーです。

1
psusi

うーん、パラメータなしで呼び出すと、sg_inqがバージョン情報全体を一覧表示しないことを確認しました。デバイスが準拠していると主張しているすべての標準のリストが必要な場合は、sg_inq -d /dev/sdaを使用する必要があります。すべてのホストで同じ出力が得られる可能性があります。

一方、デバイスが主張しているものが何であれ、それは必ずしもあなたが使用しているものではありません-交渉されたプロトコルのプロパティは異なる場合があります。

LUNが順不同で検出されたため、構成間で考えられる違いについてFast!Util構成オプションをよく調べてみてください。この問題の考えられる原因について、QLogic(またはHBAをOEMしている場合はハードウェアの製造元)のサポートに問い合わせる価値があるかもしれません。

編集:あなたの問題はトリッキーなようです-暗闇の中でのいくつかのショットは明白な理由なしに役立つかもしれませんまたは解決に向けてあなたにいくつかのステップを押してください。

  • 別のドライバーを試してください-おそらくQLA23xx/24xx FC HBAを使用していますが、古いqla2xxxドライバーを使用しています-それらをqla2300/qla2400固有のモジュールに置き換えて、これが違いを生むかどうかを確認してください
  • 問題のあるマシンと正常に動作しているマシンで 出荷時設定へのHBA構成のリセット を試して、違いが生じるかどうかを確認してください
  • このオプションがある場合は、別のFC HBAを使用して(eBayで古いEmulexアダプターを50ドルで購入するだけかもしれません)、テストして何かが変わるかどうかを確認します
  • 異なるOSバージョン(たとえば、ライブ sysrescuecd バージョン)でシステムを起動して、問題が異なるカーネル/モジュールバージョンで再現可能かどうかを確認します
1
the-wabbit