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

磁盘阵列

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

posted @ 2018-02-05 15:33  dy2903  阅读(2601)  评论(0编辑  收藏  举报