您的位置:首页 > 其它

分享: 有关主机和SAN存储连接, LUN识别的一些原理

2012-05-24 13:40 399 查看
转自 https://community.emc.com/message/631633#631633

就个人经验做一些分享,欢迎大家补充和更正讨论

首先,主机和存储相连, 去识别存储上存储设备的时候, 大多数操作系统都是用几个参数来标记这个设备. 这种标记尤其在solaris操作系统里面特别明显. 而其他的操作系统只是名字有所更改, 而其原理大同小异.

设备标记主要有三个参数:

C -- Controller

T -- Target

D -- Disk

在SAN存储的识别过程当中,C就是主机用来和存储相连的控制器, 即FC HBA卡. 不同的设备有不同的controller.

比如说连接主机本地磁盘的硬盘控制器就是一种contrller, 连接磁带机的SCSI卡或是SAS卡也是一种controller,

这些接口卡都会在装好驱动以后,由操作系统分配一个编号,这个编号就是C的编号.

T的编号就是在控制器连接并识别到外部设备以后,为识别到的设备的端口所分配的target number.

在SAN存储环境中, 存储的每一个前端端口(front end port WWN), 在被HBA卡识别到以后,都会分配到一个T的编号.

这个编号和存储的端口地址的对应关系,会被系统记录下来,存在配置文件里.

而在solaris早期版本里,(5.8以前的版本),这种对应关系默认是不保留的,

这样导致每次重新启动主机的时候,有可能会针对相同的存储前端端口分配了一个不同的Target的编号,

这样的情况在一台主机同时连接多个存储系统的时候,就会造成LUN的识别混乱,而引起应用无法正常运行.

所以只有solaris操作系统需要做persistent binding. 使用HBA卡所带的工具lputil(emulex HBA情况下)

来把这个配置表写到主机的HBA卡配置文件(lpfc.conf)里.

最后一个参数是D, 也就是存储分配给主机可以识别的LUN, 存储上的一个LUN对应主机上的一个磁盘.

在ESXi主机上,这个参数就是l.一样的原理,只是不同的字母标记.

而这个数字并不是存储创建LUN的时候分配的Array LUN ID.

而是在把LUN放到storage group里让主机可以访问的时候做了一个ID的映射(mapping),

这个ID叫Host ID, 可以在主机所在的storage group里面查到

这种设计是由于有些操作系统对识别到的LUN ID有限制,比如说ESX只能识别ID为0-255的LUN,

而现在存储可以支持最多LUN的数量是8192(不同存储系统和不同的flare会有不同的数字),

也就是0-8191个LUN ID, 如果不做这种映射,LUN ID大于255的LUN将不能被主机识别.

Host ID默认以0开始随添加LUN的数量依次递增, 可以在LUN加入Stroage group的时候进行修改,

一旦加入storage group之后就不能再修改了. 如果要修改host ID, 必须把LUN先移除storage group之后再加入的时候才能修改.

这样主机识别存储上的设备就是依照这三个CTD的参数来识别的.

换言之, 如果CTD相同, 并且磁盘的signature(label in unix/linux)信息也相同,主机就会认为是同一个LUN.

而CTD或是signature有任何一个参数发生变化, 操作系统就会认为是一个新的LUN.

总结如下:

C -- Controller -- FC HBA

T -- Target -- Storage FE Port WWN

D -- Disk -- LUN (Host LUN ID)

iSCSI原理类似, 只是名称不同, 下表是iSCSI和FC各组件的对应关系.

FC iSCSI

HBA iSCSI initiator (hardware or software)

storage target

WWN iSCSI name (eui or iqn)

FE port portal (IP + TCP ) 注:TCP default 3260

Name server iSNS

喜欢
(0)

分类:
CLARiiON, VNX 标签: san, vnx, lun, clariion





wangxl
3
发帖自

2012-4-18

1. 2012-5-14
上午6:21 (回复
Celia_Lee)
Re:
分享: 有关主机和SAN存储连接, LUN识别的一些原理

学习了,谢谢楼主的总结和分享


举报非法信息

喜欢
(0)





xulei
20
发帖自

2011-11-7

2. 2012-5-18
上午3:48 (回复
Celia_Lee)
Re:
分享: 有关主机和SAN存储连接, LUN识别的一些原理

C -- Controller -- FC HBA

C不是指channel吗?

应该有4个参数确定一个scsi设备的吧?

# cat /proc/scsi/scsi

Host: scsi2 Channel: 00 Id: 03 Lun: 16

Vendor: DGC Model: RAID 10 Rev: 0326

Type: Direct-Access

Host ID (host port number)

Channel number (bus number)

Target ID

Lun (host LU number)

一直不理解channel是什么东西?

举报非法信息

喜欢
(0)





Celia_Lee
18
发帖自

2012-5-2

3. 2012-5-18
上午9:52 (回复
xulei)
Re:
分享: 有关主机和SAN存储连接, LUN识别的一些原理

channel是通道, 有的设备没有channel, 首先是controller, 然后是通道.

比如说一块SCSI RAID controller, 上面有两个SCSI 接口,这样这个设备就有一个controller, 2个通道.

因为HBA卡是用WWN来识别端口, 所以用HBA卡的WWPN去区分controller, 就没有通道了.

在ESX主机中可以看到channel的数字,但很多操作系统在FC SAN的环境里已经没有了.

比如在Windows里,可以从powerpath的管理软件中看到CTD的设备,当中C的数字就对应了HBA卡的编号.

sun solaris和hp-unix也是如此, 直接用CTD标记一块磁盘.

而linux用sd来标记这个设备, aix用 hdisk来标记.

这个文档只是一部分,我有时间会把从存储磁盘到主机文件系统完整的逻辑关系都写出来.

举报非法信息

喜欢
(0)





Celia_Lee
18
发帖自

2012-5-2

4. 2012-5-18
上午9:59 (回复
xulei)
Re:
分享: 有关主机和SAN存储连接, LUN识别的一些原理

channel ID在某些环境下还会用到,多数是使用或是连接了一些旧的设备的时候.

但由于多端口的HBA卡在系统里被当作多个HBA卡来识别,每个HBA卡会有自己独立的controller ID,

所以就没有象以前一些设备当中有通道的概念了.你可以看到channel都是0的.

还有SAS的设备当中, 每个端口有4个LANE, 这个LANE也和以前的channel类似.

所以有些操作系统会留有以前的这个标记,但不做为识别磁盘的设备名称来出现.

举报非法信息

喜欢
(0)





xulei
20
发帖自

2011-11-7

5. 2012-5-19
上午6:33 (回复
Celia_Lee)
Re:
分享: 有关主机和SAN存储连接, LUN识别的一些原理

收益匪浅!

举报非法信息

喜欢
(0)

转至原始发帖


SHARE THIS DISCUSSION

Share
on linkedinShare
on facebookShare
on twitter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: