美文网首页
【大话存储】学习笔记(6章), 磁盘阵列

【大话存储】学习笔记(6章), 磁盘阵列

作者: dy2903 | 来源:发表于2018-02-05 15:31 被阅读121次

    磁盘阵列

    JBOD

    在过去一台服务器只能放两三块盘,远远不能满足要求,所以可以把盘放到主机的外面。也就是说专门拿一个箱子,所有磁盘都放在机箱里面,而且独立电源和散热,接口方面,内部其实就是一条SCSI线缆,这就形成了磁盘柜(Just a Bound Of Disk , JBOD),顾名思义,实际上就是“一串磁盘”

    image.png

    独立的外部磁盘阵列

    JBOD的内部不含RAID卡,这样,如果要调整RAID的话,还需要重启主机,影响主机里面的应用。那么最好是可以把RAID功能做到磁盘箱内部。

    如下图所示,凡是自带RAID控制器的盘柜就叫磁盘阵列。通过外部的SCSI接口,连接到主机上端的SCSI端口。

    image.png

    主机的SCSI控制器与盘阵SCSI控制器相比,盘阵的SCSI控制器作为Target模式,被主机SCSI控制器操控。

    而在右边的SCSI总线上,盘阵的S2控制器作为Initiator模式,占据主动权。磁盘均为SCSI Target,受控于Initiator

    前端和后端

    对盘阵来说,左边为前端,面向主机提供对外服务
    面向自己管理的磁盘就变成了后端。也就是右边的部分。

    内部接口和外部接口

    • 内部接口:盘阵RAID控制器连接内部磁盘时用的接口:可以连接IDE磁盘等
    • 外部接口:盘阵控制器对于主机端,提供什么接口,

    内外接口可以不一样,比如内部连接IDE磁盘,外部用SCSI接口连接主机。(仅限于盘阵,盘柜必须一样)

    因为盘阵控制器是一个虚拟化引擎,可以不一致,即使内部是IDE的,也可以向主机报告有多少LUN

    多外部接口

    有多个接口是为了连接多台的主机。

    每个由盘阵RAID控制器生成的逻辑磁盘,可以通过设置只分配到其中一个口,连接到其他口的主机就不会看到这个LUN。

    也可以把一个LUN同时分配到两个口,两台主机对一个LUN写数据,容易造成数据不一致。

    关于LUN

    LUN是SCSI ID的更细一级的地址号。每个SCSI ID下面可有更多的LUN ID 。

    大型磁盘阵列有几千个虚拟磁盘,但是每条SCSI总线最多允许16个设备,所以为每个虚拟磁盘分配一个SCSI ID不够用。

    可以在一个SCSI ID虚拟多个LUN地址,每个LUN地址对应一个虚拟磁盘。

    LUN:硬件层次生成的虚拟磁盘统称为LUN。
    :软件生成的虚拟磁盘

    双控制器磁盘阵列

    如果控制器只有一个,则会存在单点故障,所以至少有两个控制器。双控制器需要相互通信,一般使用PCI总线进行互联。

    而两个控制器的协同方式有两种,Active-Standby 、Dual-Active

    Active-Standby(HA)

    HA方式:两个控制器同一时刻只有一个在工作,另一个在等待、同步和监控状态,只是在故障以后才接管。

    两控制器各占一个ID 。剩余14个ID给磁盘,

    为了预防脑分裂,备份控制器在接管之前需要将主控断电或者重启,释放其总线使用权,然后接管前端和后端总线。

    主机端必须使用两个SCSI适配器分别连接到盘阵上的控制器,但是这样做,主机端必须通过某种方式感知到HA策略,并在故障发生时切换。

    对于FC盘阵来说,使用双控及主机端使用双FC适配卡非常普遍。

    Dual-Active

    所谓Dual-active,也叫控制器双活,指的是两个控制器同时工作,对所有后端总线有通路,但是每个总线平时只被一个控制器管理,另一个不触动
    可以将后端一半数量的总线交由一个控制器管理,另一半交由另一个控制器管理。一旦损坏,可以立刻接管所有的总线,比Active-Standby更高效。

    脑分裂Split Brain

    脑裂指的是控制器之间的通路出现了问题。也就是说两个控制器其实是正常的,但是检测不到对方的 存在。所以都会尝试接管所有的总线。类似于精神分裂。

    解决方案:
    加入一个仲裁者

    • 使用两个控制器都能写到的硬盘,向其写入自己的仲裁信息,如果脑分裂,就看谁在上面最后写了信息。
    • 电源控制器:向电源控制器发送信号,让对方重启并进入Standby

    接管了总线的控制器一般会对总线上所有的磁盘进行SCSI Reserve操作,即预订操作。

    总线上所有目标设备一旦被预订,便不再接受其他控制器的IO请求。

    连接多个扩展柜

    到现在,一个盘柜里面有两个磁盘控制器、有磁盘,但是一条SCSI总线最多15块磁盘,为了15块磁盘,使用两个RAID控制器有点不值。

    下图为一个机头,它带有一个扩展磁盘接口以及两个控制器。

    image.png

    然后使用这个机头连接JBOD扩展柜

    image.png

    总结一下:

    机头:带有控制器的磁盘柜,就像是火车的机头一样,是提供动力的,机头也可以有磁盘。
    扩展柜:用于扩展容量的JBOD,就如同车厢,没有动力,但是需要有基本的供电和冷却系统。

    主机和磁盘阵列本是一家

    盘阵控制器的主机化

    可以说盘阵控制器本来但是一个简单的主机系统

    所以完全可以用一台服务器来充当存储系统的控制器。

    插入几张SCSI卡作为前端接口卡,若干SCSI卡作为后端连接磁盘箱的接口卡,然后设计软件从/向后端读写数据,经过处理或者虚拟化后,传送给前端的主机服务器。

    目前有两种趋势:

    • 主机充当控制器
    • 高集成度的芯片作为控制器的核心

    盘阵类型

    按照前端-后端接口分,有

    • SCSI-FC盘阵:前端是FC接口的盘阵,后端是SCSI磁盘
    • FC-FC盘阵
    • SATA-FC盘阵
    • SCSI-SCSI盘阵

    后面会讲到FC-FC盘阵,这是目前高端盘阵所采用的架构。

    SAN(Storage area network)

    RAID 控制器相当与路由器,也就是协议转换器。

    SAN,存储区域网: 将磁盘放到主机外部,存储设备和主机之间形成了一个独立的网络

    image.png

    相关文章

      网友评论

          本文标题:【大话存储】学习笔记(6章), 磁盘阵列

          本文链接:https://www.haomeiwen.com/subject/ynfizxtx.html