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

来源:互联网 发布:美食卡 yum 编辑:程序博客网 时间:2024/06/03 11:57

转自 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

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

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

    • 举报非法信息
  • xulei20 发帖自 
    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是什么东西?

    • 举报非法信息
  • xulei20 发帖自 
    2011-11-7
    5. 2012-5-19 上午6:33 (回复 Celia_Lee)
    Re: 分享: 有关主机和SAN存储连接, LUN识别的一些原理

    收益匪浅!

    • 举报非法信息

SHARE THIS DISCUSSION

Share on linkedinShare on facebookShare on twitter

原创粉丝点击