使用lsattr解释AIX中的LUN id和Target id

时间:2013-03-06 10:21:56

标签: storage aix scsi

我是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

有人可以帮我解决这个问题吗?

谢谢&的问候,

Arun Vijapur

2 个答案:

答案 0 :(得分:0)

LUN为8个字节。有4种形式,这些形式在LUN的高位2位中给出。当人们说要将它正确移位48位,这是因为他们假设你的LUN是“单级LUN结构”。

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

答案 1 :(得分: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;