分享: 有关主机和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
on linkedinShare
on facebookShare
on twitter
就个人经验做一些分享,欢迎大家补充和更正讨论
首先,主机和存储相连, 去识别存储上存储设备的时候, 大多数操作系统都是用几个参数来标记这个设备. 这种标记尤其在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
Shareon linkedinShare
on facebookShare
on twitter
相关文章推荐
- stroage——SAN存储与WINDOWS主机连接
- stroage——SAN存储与Linux主机连接
- 有关httpclient完成ssl验证的一些连接
- 【新手经验分享】有关MYSQL和JDBC应用中的一些问题整合
- 【案例分享】SQL job服务连接不到存储引擎
- 存储的一些基本概念(HBA,LUN)
- 存储与服务器的连接方式对比(DAS,NAS,SAN)
- [置顶] 专题:有关容斥原理和子集枚举的一些问题
- Eclipse连接数据库MySQL以及一些有关数据库的知识
- 学习中收集的一些有关网页UI设计、前端开发的相关知识网址分享,赶紧收藏走起。。。
- 一些有关CRM产品的资源和论坛,和大家分享~~~
- SAN BOOT-用IBM BladeCenter HS20刀片服务器连接IBM FastT 700存储远程启动Windows 2003配置实例
- 存储入门:主机与ISCSI设备之间三种连接方式
- 分享一些cocos2d手势识别资料
- ASP.NET Identity(处理身份数据存储) 与 OWIN主机(实现katana验证授权)原理概括
- 分享一些cocos2d手势识别资料
- SAN,LINUX EXT3 LUN,存储ORACLE数据库,FSCK后出错,数据恢复手记
- 关于vmware虚拟主机使用host-only连接并共享主机上网的一些设置
- 分享:有关一些经典数据库管理工具
- 有关android wifi 的一些资料连接