免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2655 | 回复: 0
打印 上一主题 下一主题

Solaris的硬盘/磁盘命名cxtxdxsx各字母含义详解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-28 08:40 |只看该作者 |倒序浏览

                                                                                                                               

在solaris中磁盘以cxtxdxsx的方式出现,其中
  • c表示控制器编号,control number
  • t表示target number,如果连着存储,主机的HBA卡和存储之间有几条通道就有几个target number
  • d表示disk number,对应着来自存储设备的lun,logic unit number
  • s表示磁盘的分片情况,s2表示整个磁盘
更具体的理论,请参考左边图示的书上第43页。
对于我们常用的pc机,使用的是ide硬盘,如果安装Solaris系统,则磁盘编号变为cxdxsx,看不到所谓的target number,即tx不见了。
之所以 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风格来表达。
往下拉,内容更精彩!
[color="#ff0000"]找不到需要的信息?Google搜索,精确定位你的需求:   Searching my blog :         
【需要更多资料?欢迎访问Google为您精心推荐的网站~】
实例讲解
这样吧,单说很难理解,先仔细看看书本第43页的图,然后结合我这里给的实例
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
       [color="DarkOrange"]2. c1t16d0 cyl 51198 alt 2 hd 256 sec 16>     [color="Red"]//这个lun 100G
[color="DarkOrange"]          /pci@1,700000/fibre-channel@0/sd@10,0
[color="DarkOrange"]       3. c1t16d1 -1.00TB>
[color="DarkOrange"]          /pci@1,700000/fibre-channel@0/sd@10,1
[color="DarkOrange"]       4. c1t16d2 2.00TB>
[color="DarkOrange"]          /pci@1,700000/fibre-channel@0/sd@10,2
[color="Blue"]       5. c1t17d0
[color="Blue"]          /pci@1,700000/fibre-channel@0/sd@11,0
[color="Blue"]       6. c1t17d1
[color="Blue"]          /pci@1,700000/fibre-channel@0/sd@11,1
[color="Blue"]       7. c1t17d2
[color="Blue"]          /pci@1,700000/fibre-channel@0/sd@11,2
       [color="SandyBrown"]8. c2t16d0
[color="SandyBrown"]          /pci@3,700000/fibre-channel@0/sd@10,0
[color="SandyBrown"]       9. c2t16d1
[color="SandyBrown"]          /pci@3,700000/fibre-channel@0/sd@10,1
[color="SandyBrown"]      10. c2t16d2
[color="SandyBrown"]          /pci@3,700000/fibre-channel@0/sd@10,2
[color="RoyalBlue"]      11. c2t17d0
[color="RoyalBlue"]          /pci@3,700000/fibre-channel@0/sd@11,0
[color="RoyalBlue"]      12. c2t17d1
[color="RoyalBlue"]          /pci@3,700000/fibre-channel@0/sd@11,1
[color="RoyalBlue"]      13. c2t17d2
[color="RoyalBlue"]          /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):

  • 第0、1号磁盘是本地硬盘,只有一个控制器,这个不说了,其他的盘都是从存储阵列上来的
  • 第2、3、4和5、6、7和8、9、10和11、12、13这4组是重复的,其实就只有3块盘(为什么这样呢,后面说)
    • 如果注意看,就会发现编号为2,5,8,11这4块盘的大小是一样的,其实它们指向的是存储上的同一个LUN
    • 此外,3,6,9,12也是同一个LUN,4,7,10,13亦是如此
  • 2-13这4组盘,经过多路径管理软件后重新变成3块盘:14、15、16(最终我们使用这3块盘,2-13的盘我们不去动它)

现在开始解释:
先看连接图
QUOTE:                                   |========存储阵列控制器1-sp1
       |----HBA卡1=======SAN交换机1|========存储阵列控制器2-sp1
服务器|
       |----HBA卡2=======SAN交换机2|========存储阵列控制器1-sp2
                                   |========存储阵列控制器2-sp2

图例说明:[color="Blue"]======  表示一对光纤,光纤接口总是分成两个小口,一收一发,要接两根光纤(术语通常叫尾纤)
注解:一收一发,两根光纤,光纤从来都是讲对的,而不是和双绞线一样讲根,特此说明。(其实双绞线也讲对,一根里面有4对,5类线以100MB速率传输时仅用其中2对,即4根;6类线以千兆速率传输时就要用全其中的4对8根线了)
这样呢,可以看到服务器有两块hba卡,分别连不同的光纤交换机,而每台光纤交换机和同一台存储阵列都有两条路径连接。
于是,服务器到存储阵列就变成有4条通道:

  • 控制器1(c1,即hba卡1)经过光纤交换机1后有[color="Blue"]两条通道到存储阵列(所以有[color="Blue"]两个target number,t16,t17)
  • 控制器2(c2,即hba卡2)经过光纤交换机2后有两条通道到存储阵列(所以有[color="Blue"]两个target number,t16,t17)

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

  • 存储上划了3个lun(Lun 10,lun 11,lun12,大小分别是100G,1T,2T)给服务器使用,因为solaris的cxtxdxsx中的dx是和存储的Lun一一对应的,所以在服务器端的solaris系统的眼里来看,对应的dx也只有三个,分别为:d0,d1,d2。
  • 但是呢,因为每个lun有4条路径(经过两块HBA卡(c1和c2),每块HBA卡有两条路径(t16和t17),共4条路径)到达服
    务器端,所有在服务器端看的话同一个lun会变成4块盘,比如d0就变成4块:c1t16d0,c1t17d0,c2t16d0,c2t17d0
  • 因此最后需要用多路径管理软件把4块盘在重新整编起来变成逻辑意义上的一块盘,免得误用,最后来自存储的3个lun==》操作系统的emcpower0a,emcpower1a,emcpower2a这三块盘,大小不变,还是分别为100G,1T,2T

多路径管理软件的作用
从2-13其实只有3块盘

2、5、8、11  是存储上的同一个LUN,假设是存储上的LUN 10,因为多路径的存在导致操作系统把它认成4块盘
3、6、9、12  是存储上的同一个LUN,假设是存储上的LUN 11,同上
4、7、10、13 是存储上的同一个LUN,假设是存储上的LUN 12,同上
所以呢,在服务器和存储阵列之间存在多路径的情况下,就需要用多路径管理软件,
多路径管理软件能够识别出2、5、8、11其实是存储上的同一个lun,然后虚拟出一块盘emcpower0a来给操作系统来使用,这样操作系统就不用担心路径的问题了
假设emcpower0a目前正使用c1t16d0,如果这条路径不通了(比如线脱落接触不良等),多路径管理软件会自动切换到c1t17d0,...
对于操作系统而言,emcpower0a却是始终可用的。
===============================================
一个LUN不管被操作系统认成几块盘,容量始终不变,只是盘名变了而已,已经写在最初的贴里,红字表示
LUN 10:100G   即最终的emcpower0a
LUN 11:1T     emcpower1a
LUN 12:2T     emcpower2a
论坛实时更新讨论帖:
http://bbs2.chinaunix.net/thread-1438482-1-2.html
   
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12442/showart_1912519.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP