磁盘阵列补充介绍

1、前言

前面的文章中有简单介绍磁盘阵列的概念,本节作进一步的补充介绍(以下以SCSI-SCSI磁盘阵列为例)。

在单块硬盘已经满足不了应用的需求以及一个主机箱里安装的硬盘数量有限的情况下,把多块硬盘集合在一个外置箱子里,箱子里有独立的电源和散热系统,以便保障硬盘的稳定运行,然后在外面放置一个接口,再连接到主机(服务器)上的SCSI卡上来满足需求。

一般主机上的SCSI卡都会带有RAID功能,那么可以用这个RAID卡(或者叫RAID控制器或者简单称为控制器)先来对认到的多块硬盘做一下RAID,划分出逻辑盘,这个时候操作系统识别到的就是逻辑磁盘,而不是直接识别到箱子中的物理硬盘,这样可以再经过逻辑卷配置划分,然后为应用提供存储空间。

另外如果主机上安装的不是带有RAID功能的SCSI卡,那么加电之后,主机会识别到箱子里的所有硬盘,这种简单的硬盘箱叫做JBOD,即 Just a Bound of Disks,只是一串磁盘,非常形象的描述,中文叫做硬/磁盘柜,简称盘柜。

2、概述

由于在主机上安装RAID控制器会占用主机的设备空间以及部分性能,经过多次试验,人们终于做成了一个设备,把RAID控制器集成在上面提到的硬盘箱子里面。这样自带RAID控制器(简称为控制器)的硬盘箱叫做磁盘阵列或者简称盘阵。盘阵是在盘柜的基础上,将内部的硬盘经过其自带的RAID控制器的分分合合,虚拟化成逻辑盘,然后再经过外部的SCSI接口连接到主机端上的SCSI接口。此时,整个盘阵对于主机来说,就是主机SCSI总线上的一个或者多个设备,具有一个或者多个SCSI ID,所有逻辑盘都以LUN的形式呈现给主机。

3、什么是LUN?

LUN是SCSI协议中的名词,LUN是SCSI ID的更细一级的地址号,每个SCSI ID 下面还可以有更多的LUN ID(视ID字段的长度而定)。对于大型磁盘阵列来说,可以生成几百甚至几千个虚拟磁盘,为每个磁盘分配一个SCSI ID是远远不够用的,因为SCSI 总线最多能连接的SCSI 设备是有限的,LUN就是这样一个次级寻址ID,磁盘阵列可以在一个SCSI ID下虚拟多个LUN地址,每个LUN地址对应一个虚拟磁盘,这样就可以在一条总线上生成众多虚拟磁盘,以满足应用需求。

后来人们把硬件层次生成的虚拟磁盘,统一称为“LUN”,不管是不是SCSI环境下,虽然LUN最初只是SCSI体系里面的一个概念。而由软件生成的虚拟磁盘,统一称为“卷”,比如各种卷管理软件,软RAID软件等所生成的虚拟磁盘。也可以简单理解为卷是在LUN的基础上通过卷管理等相关软件配置后生成的。

4、有关双控制器盘阵

如果盘阵内部只有一个控制器模块,那么会是一个SPOF(Single Point of Failure),即单点故障。所以出现了有2个控制器的磁盘阵列(也有多控盘阵,这里暂不做介绍),互为冗余,从而防止产生单点故障。两个控制器都各自管各自的LUN,一旦发现对方故障,那么就会自动将所有LUN都接管过来,不影响系统的正常运行。其运行模式主要有以下2种模式:

(1)Active-Standby

这种方式又称为HA方式(High Availability,高可用性),即两个控制器中同一时刻只有一个在工作,另外一个处于等待、同步和监控状态。一旦运行的控制器发生故障,则备份控制器立即接管其工作。

(2)Dual-Active

故名思义,这种双控制器的实现方式是两个控制器同时在工作,每个控制器对所有后端的总线有通路,但是每个总线平时只被其中一个控制器管理,另一个控制器不去触动。可以将后端一半数量的总线交由一个控制器管理,另一半交由另一个控制器管理。一旦其中一个控制器损坏,则另外一个控制器接管所有的总线,这种方式比Ative-Standby方式高效很多。

脑分裂:这个词显得有些恐怖,如果某个时刻连接2个控制器之间的通路出现了问题。而不是其中某个控制器死机,此时两个控制器其实都是工作正常的,但是2者都检测不到对方的存在,所以2者都尝试接管所有的总线,这个时候就是所谓的脑分裂,即同时有2个活动控制器来控制所有的后端设备,这种情况是可怕的,类似精神分裂症。如何预防这种情况呢?通常做法是利用一个仲裁者来选择到底是用哪一个控制器来接管所有总线。

5、盘阵连接多个扩展柜

一个控制上可以有多个通道,一个通道下面就是一条SCSI总线,那么将盘阵的每个控制器上再多接一个或者多个通道,来充分发挥它的能力,然后连接1个或者多个有硬盘的盘柜。这样把带有控制器的磁盘柜称作“机头”,提供动力的,机头里可以有硬盘也可以没有硬盘,把用于扩展容量的JBOD叫做“扩展柜”,它就像一节节火车车厢,本身没有动力,全靠车头来带动,但基本的供电和散热系统是需要的。

6、主机和磁盘阵列本是一家

随着人们需求不断提高,一个存储系统拥有几十、几百TB的容量已经不是什么惊人的事情了。面对如此大的容量和如此多的硬盘,小小的控制器已经不能满足需求了,因此大的主机系统替代了短小精悍的控制器。

可以说磁盘阵列就是一个简单的主机系统。既然这样,就完全可以用一台主机来充当存储系统的控制器。

7、盘阵的内部接口和外部接口

对于盘阵来说还有一个内部接口和外部接口的概念。内部接口是指RAID控制器连接其内部的硬盘时候用的接口,外部接口是指盘阵控制器对于主机端,也就是前端提供什么样的接口,内部接口可以和外部接口相同,内外接口也可以不同(盘柜必须内外接口一致)。同时盘阵上可以有多个外部接口,目的是为了连接多台主机,方便盘阵的RAID控制器生成的虚拟磁盘可以分配给多台主机来使用。

按照前端和后端接口,盘阵大致可划分为:SCSI-FC盘阵,FC-FC盘阵,SATA-FC盘阵,SCSI-SCSI盘阵等类型,还有一些基于SAS或者ISCSI接口的盘阵后面会陆续讲到。SCSI-FC类型表示后端接口为SCSI 接口,前端用于连接主机的为FC接口,也即是后端为SCSI硬盘,前端为FC接口的盘阵。

8、盘阵架构参考图:

欢迎您提出宝贵建议,

如您喜欢本文 请分享,谢谢!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G1CHVD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券