0

我对 AIX 很陌生,我在 AIX 中发现了一个命令 lsattr,它有助于获取设备的 SCSI id 和 LUN id。我无法理解如何解释 SCSI id 和 LUN id 的值。这是一个示例输出:


bash-4.2# lsattr -El hdisk693
.......
lun_id        0x25f000000000000             Logical Unit Number ID           False
scsi_id       0x21300                       SCSI ID                          False
.......

我跳过了不相关的行。

1) LUN id 是 0x25f000000000000 ,这是巨大的,在一些博客中读到我们必须将它右移 48 位才能得到实际值,这是在哪里记录的?

2) 还有SCSI id 呢,即使这个值看起来很大,0x21300

有人可以帮我吗?

感谢和问候,

阿伦·维贾普尔

4

2 回答 2

0

LUN 为 8 个字节。有 4 种形式,这些形式以 LUN 的高 2 位给出。当人们说将其右移 48 位时,那是因为他们假设您的 LUN 是“单级 LUN 结构”。

它变得相对复杂。参见 sam5r14.pdf,第 4.7 节。您可以在此处获取所有 SCSI 规范:http ://www.t10.org/drafts.htm 。

于 2013-08-26T16:10:06.443 回答
0

这是我的可读形式的答案。请参阅我上面的评论以获取更多信息。

typedef struct scsi_long_lun_t

{

   union
   {

      struct
      {

         // Method 0 - Peripheral Device Addressing Method (8 bit LUN)

         // |        7-6        |            5-0            |
         // +-------------------+---------------------------+
         // |Address Method(00b)|    Bus Identifier (00h)   |
         // +-----------------------------------------------+
         // |       Single Level LUN (00h to FFh)           |
         // +-------------------+---------------------------+
         byte   MethodAndBus;
         byte   Lun8;
         byte   Reserved[6];
      } Method0;

      struct
      {
         //  Method 1 - Flat Space Addressing Method (14 bit LUN)

         // |        7-6        |            5-0            |
         // +-------------------+---------------------------+
         // |Address Method(01b)|   High Flat Space LUN     |
         // +-----------------------------------------------+
         // |      Flat Space LUN (0000h to 3FFFh)          |
         // +-------------------+---------------------------+
         byte   MethodAndHighLun;
         byte   LowLun;
         byte   Reserved[6];
      } Method1;

      struct
      {
         //  Method 2 - Logical Unit Addressing Method

         // |        7-6        |            5-0            |
         // +-------------------+---------------------------+
         // |Address Method(10b)|          Target           |
         // +-----------------------------------------------+
         // |     Bus (7-5)        |       LUN (4-0)        |
         // +-------------------+---------------------------+
         byte   MethodAndTarget;
         byte   BusAndLun[7];
      } Method2;

      struct
      {

         //  Method 3 - Extended Logical Unit Addressing

         // |        7-6        |  5-4    |      3-0         |
         // +-------------------+----------------------------+
         // |Address Method(11b)| Length  |Extended Addr Meth|
         // +------------------------------------------------+
         // |  Extended address method specific (7 bytes)    |
         // +------------------------------------------------+
         byte  MethodEtc;
         byte  MethodSpecific[7];
      } Method3;

   } u;

} scsi_long_lun_t;
于 2013-09-08T23:08:44.480 回答