关于solaris硬盘cxtxdxsx的含义

1613阅读 0评论2009-09-02 舒风星
分类:系统运维

  这是CU上的一篇精华帖子。讨论的是cxtxdxsx的具体含义。我觉得不错特意整理了一下。
 
问题:
c0t0d0s0:
C:controller
T:Target
D:Disk
S:slice
为何在虚拟机的磁盘编号(/dev/dsk/c0d0s0 )有D无T?
 
解答:
一、
QUOTE:
Last login: Thu Apr 23 17:03:51 2009 from x.x.x.x
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t0d0
          /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@0,0
       1. c0t1d0
          /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@1,0
       2. c1t16d0 cyl 51198 alt 2 hd 256 sec 16>     //这个lun 100G
          /pci@1,700000/fibre-channel@0/sd@10,0
       3. c1t16d1 -1.00TB>
          /pci@1,700000/fibre-channel@0/sd@10,1
       4. c1t16d2 2.00TB>
          /pci@1,700000/fibre-channel@0/sd@10,2
       5. c1t17d0
          /pci@1,700000/fibre-channel@0/sd@11,0
       6. c1t17d1
          /pci@1,700000/fibre-channel@0/sd@11,1
       7. c1t17d2
          /pci@1,700000/fibre-channel@0/sd@11,2
       8. c2t16d0
          /pci@3,700000/fibre-channel@0/sd@10,0
       9. c2t16d1
          /pci@3,700000/fibre-channel@0/sd@10,1
      10. c2t16d2
          /pci@3,700000/fibre-channel@0/sd@10,2
      11. c2t17d0
          /pci@3,700000/fibre-channel@0/sd@11,0
      12. c2t17d1
          /pci@3,700000/fibre-channel@0/sd@11,1
      13. c2t17d2
          /pci@3,700000/fibre-channel@0/sd@11,2
      14. emcpower0a
          /pseudo/emcp@0
      15. emcpower1a
          /pseudo/emcp@1
      16. emcpower2a
          /pseudo/emcp@2
Specify disk (enter its number):



现在开始解释:

先看连接图

QUOTE:
                                                   |========存储阵列控制器1-sp1
       |----HBA卡1=======SAN交换机1|========存储阵列控制器2-sp1
服务器|
       |----HBA卡2=======SAN交换机2|========存储阵列控制器1-sp2
                                                   |========存储阵列控制器2-sp2


图例说明:======  表示一对光纤,光纤接口总是分成两个小口,一收一发,要接两根光纤(术语通常叫尾纤)

注解:一收一发,两根光纤,光纤从来都是讲对的,而不是和双绞线一样讲根,特此说明。(其实双绞线也讲对,一根里面有4对,5类线以100MB速率传输时仅用其中2对,即4根;6类线以千兆速率传输时就要用全其中的4对8根线了)

这样呢,可以看到服务器有两块hba卡,分别连不同的光纤交换机,而每台光纤交换机和同一台存储阵列都有两条路径连接。

于是,服务器到存储阵列就变成有4条通道:


结果呢,就导致存储上的一块盘(对存储而言叫做lun,logic unit number,书本P46),到服务器的操作系统上看来就变成了4块盘,但dxx保持不变(LUN对操作系统而言就叫 disk number,怎么变成4块盘的下面接着说)

本实例中,

二、

之所以 t 与 d 混淆 是由于 SCSI 造成的
传统上的小型机(当然大型机也是) 硬盘与机器的设备接口是SCSI 的, 而我们用的PC机是IDE的。因此在SPARC小型机上会看到带 t 的标识, 而在自己PC(IDE盘)上安装solaris的话,就不会看到t.
之所以定义了t 是因为, 沿用了SCSI的定义。 因为SCSI bus 里有 Initiator, target 和 terminator.
Initiator 发布操作命令。 target 接受命令。 terminator 是电气要求完成阻抗平衡。
Target Number 就是Physical Unit Number (PUN)。比如一个SCSI卡上连了3个硬盘和1个CD-ROM, 那么就可能看到:
c0t0d0 ,  c0t1d0, c0t2d0,  c0t6d0. 主要是在t 上设置, d 都是0。
d 的定义, 其实就是lun,  LUN 也是SCSI的概念。 因为SCSI ID识别号只能扩展到4位 (8/16个device)。 当接驳更多设备的时候, 为了提供更多的设备识别号给主机, SCSI技术标准在SCSI ID 基础上增设了LUN 。比如在一个SCSI卡外面直接挂一个SCSI磁盘阵列,里面的N多个盘可以看成对应同一个target上的N多个lun。 或者在阵列里选其中的几个物理盘做成一个RAID逻辑盘对应成一个LUN。
所以说t和d 是沿用SCSI概念的产物。而Fibre Channel, 由于寻址能力强,它定义的target 数量没有SCSI/16的限制, 但沿用了cXtXdX 的风格。linux 下设备标识则使用简单的BSD风格来表达。

讨论贴地址:

上一篇:记录一下ORACLE数据隐式转换规则
下一篇:Larry Ellison的雄心壮志