《大话存储》第6章-大话磁盘阵列

6.1 初露端倪——外置磁盘柜应用探索

  • 如果做很多块盘的RAID,把磁盘都放到机箱里面肯定不行,所以必须把这些盘放到机箱外面,但是连线和电源问题又不好办?
  • 把所有磁盘都放在一个箱子里,箱子有独立的电源和散热系统,保障磁盘的稳定运行。接口方面,内部其实就是一条SCSI总线,只不过将它做到了电路板上,然后在外面放一个接口,这个接口是用来连接主机上的SCSI卡的。如果主机上装的是不带RAID功能的SCSI卡,加电之后主机会识别到磁盘箱中的所有磁盘。如果是带RAID功能的SCSI卡,那么可以用这个RAID卡先对认到的多块磁盘做一下RAID,划分出逻辑盘,这时OS识别到的就是逻辑磁盘,而不会认到箱子中的物理磁盘。
  • 这种简单的磁盘箱如图6-1所示,叫做”JBOD“(Just a Bound Of Disks),只是一串磁盘。
    在这里插入图片描述

6.2 精益求精——结合RAID卡实现外置磁盘阵列

  • 能否把RAID功能做到磁盘箱中?因为如果要调整RAID的话,还需要重启主机等,会影响到主机应用。这种自带RAID控制器的磁盘箱叫做“磁盘阵列”。有一个不成文的规定,凡是JBOD都叫做磁盘柜,凡是自带RAID控制器的盘柜就叫做磁盘阵列或者盘阵。盘柜和盘阵,前者只是一串外置的磁盘,后者自带RAID控制器。
  • 盘阵是在盘柜的基础上,将内部的磁盘经过其自带的RAID控制器的分分合合,虚拟化成逻辑磁盘,然后经过外部SCSI接口连接到主机上端的SCSI接口。此时,整个盘阵对于主机来说,就是主机SCSI总线上的一个或者多个设备,具有一个或者多个SCSI ID。所以逻辑磁盘都以LUN的形式呈现给主机。
  • 如图6-3所示,盘阵中的SCSI控制器在逻辑上有两个部分,右边的S2控制器连接了一条SCSI总线,上面有若干硬盘。左边的S1控制器同样也连接了一条SCSI总线,但是上面只有两个设备:主机SCSI控制器和它自己。SI和S2不一定就是两块物理上分开的芯片,很有可能就是一块单独的芯片逻辑地分成两个部分,甚至有可能将RAID芯片和SCSI控制器芯片全部集成到一个大芯片中。
    在这里插入图片描述
    在这里插入图片描述

6.3 独立宣言——独立的外部磁盘阵列

  • 主机由于肚量太小容不下想法太多的磁盘,终于磁盘从主机内部跑出来了,磁盘和控制器发布了独立宣言,彻底摆脱了主机的束缚,成为与主机对峙的一个独立的外部设备。此后,存储技术菜真正的成为一个独立的庞大学科,并不断发展壮大。
  • (1).前端和后端
    • 对于盘阵来说,图6-3中RAID控制器的左边就称为“前端”,右边则称为“后端”。面向主机对外提供服务的就叫前端,面向自己管理的磁盘用于内部管理而外部不需要了解的部分就叫做后端。
    • 同样对于主机来说,它的SCSI适配器反而成了后端,而以太网卡可能变成了前端。因为对于主机来说,直接面对外部客户机的是以太网,而管理磁盘的工作不必对客户说明,所以变成了后端。
  • (2).内部接口和外部接口
    • 内部接口是指盘阵RAID控制器连接其内部磁盘时用的接口,如IDE、SCSI、SATA、FC磁盘等。外部接口是指盘阵控制器对于主机端,也就是前端,提供的是什么接口,比如SCSI接口、FC接口等。
    • 内外部接口可以相同,也可以不同(仅限于盘阵,盘柜必须内外接口一致),盘阵控制器是一个虚拟化引擎,前端和后端可以不一致,它可以向主机报告其有多少LUN,尽管内部的磁盘时IDE的。
  • (3).多外部接口
    • 有多个接口是为了连接多台主机。每个RAID控制器生成的逻辑磁盘,可以通过设置只分配(Assign/Map)到其中一个口,也可以把一个LUN同时分配(Map/映射)到两个口。
    • 让两台主机同时对一个LUN写数据,底层是允许的,但是很容易造成数据的不一致,除非使用集群文件系统,或者高可用性系统软件的参与。
  • (4).关于LUN
    • LUN是SCSI协议中的名词,是SCSI ID的更细一级的地址号,每个SCSI ID(Target ID)下面还可以有更多的LUN ID(视ID字段的长度而定)。对于大型磁盘阵列来说,可以生成几把上千个虚拟磁盘,为每个磁盘分配一个SCSI ID是远远不够用的。因为每个SCSI总线最多允许16个设备接入(目前32位SCSI标准最大允许32个设备)。LUN就是一个次级寻址ID,磁盘阵列可以在一个SCSI ID下虚拟多个LUN地址,每个LUN地址对应一个虚拟磁盘。
    • 后来,人们把硬件层次生成的虚拟磁盘,统一称为“LUN”,不管是不是在SCSI环境下;而由软件生成的虚拟磁盘,统一称为“卷”,比如各种卷管理软件、软RAID软件等所生成的虚拟磁盘。

6.4 双龙戏珠——双控制器的高安全性磁盘阵列

  • 如果盘阵内部只有一个控制器模块,那么会是一个SPOF(Single Point Of Failure),即单点故障点。所以一些高端的盘阵内部都有两个控制器,互为冗余。两个控制器平时都管理各自的LUN,一旦发现对方故障,就会自动将所有LUN都接管过来。
  • 因为如此,两个控制器之间需要相互通信,通告对方自己的状态以及交互一些其他的信息。两个控制器之间可以用PCI总线连接,也可以用厂商自己设计的总线,没有统一标准。至于交互信息的逻辑和内容,更因为品牌而不同,而没有标准来统一它们。
  • 为了避免单点故障,给盘阵安装一个额外的控制器,这个控制器和原来的控制器在它们后端共享一条或者多条磁盘总线。两个控制器可以使用Active-Standby方式,也可以使用Dual-Active的互备方式连接。
  • (1).Active-Standby
    • 这种方式又称HA(High Availablity方式,高可用性),即两个控制器中同一时刻只有一个在工作,另外一个处于等待、同步和监控状态。一旦主控制器发生故障,则备份控制器立即接管其工作。
    • 对于内部为SCSI总线的双控制器盘阵,在机头内部的一条SCSI总线中,两个控制器可以分别占用一个ID,剩余14个ID给磁盘使用。平时只有主控制器这个ID作为Initiator向除了备份控制器ID之外总线上的其他ID来发送指令从而读写数据。
    • 同时备份控制器与主控制器之间保持通信和缓存同步,一旦失联,备份控制器立即接管主控制器。同时为了预防脑分裂,接管前需要通过某种机制将主控制器断电或重启,释放其总线使用权,然后自己接管后端总线和前端总线。
  • (2).Dual-Active
    • 这种双控制器的实现方式是两个控制器同时工作,每个控制器都对所有后端的总线有通路,但是每个总线平时只能被其中一个控制器管理,另一个控制器不去触动。可以将后端一半数量的总线交由一个控制器管理,另一半交由另外一个控制器管理。一旦其中一个控制器损坏,则另外一个控制器接管所有总线。这种方式比Active-Standby方式高效很多。
  • (3)脑分裂(Split Brain)
    • 如果某时刻连接两个控制器之间的通路出现了问题,而不是其中某个控制器死机,此时两个控制器其实都是正常工作的,但是两者都检测不到对方的存在,所以两者都尝试接管所有总线,这就是所谓的“脑分裂”,即同时有两个活动控制器来操控所有后端设备。这种情况是可怕的,类似精神分裂症。
    • 通常做法是利用一个仲裁者来选择到底使用哪一个控制器接管所有总线,比如用一两个控制器都能访问到的磁盘,控制器向其上写入自己的仲裁信息。一旦发生脑分裂,谁最后写入了信息就把控制权给谁。或者用一种电源控制器,一旦其中某个控制器要接管,不管对方是确实发生故障了还是正常的,这个控制器都会向电源控制器发送信号,让对方重启并进入Stangby状态,这样就成功预防了脑分裂。
    • 接管了总线的控制器一般都会对总线上所有磁盘进行SCSI Reserve操作,即预定操作。总线上所有目标设备一旦被预定,它们便不再接受其他控制器的IO请求。SCSI2标准中的SCSI Reserve不允许其他控制器读写被原有控制器预定的设备,但是SCSI3中的Reserve策略有了一些灵活性,可以允许其他控制器对已经被预定的目标设备进行读IO,而写IO则被拒绝。

6.5 龙头凤尾——连接多个磁盘柜

  • 一条SCSI总线最多可以连接15块磁盘,为了这15块磁盘,大动干戈的赋予两个昂贵的RAID控制器,有点不值。为了充分利用这两个控制器,15块磁盘不够,要加磁盘。一个控制器上可以有多个通道,一个通道下面就是一条SCSI总线,将盘阵的每个控制器上再多接一个或两个通道,来充分发挥它的能力。
    在这里插入图片描述
    在这里插入图片描述
  • 经过这样的改造,可连接的磁盘数量成倍增长。还可以增加两个或多个通道,理论上只有RAID控制器处理速度够快,总线带宽和面板上空间够大,多增加几个通道都没有问题。
  • JBOD盘柜以前只有一个外部接口,为了配合双控制器,JBOD在其外部也增加了一个接口来连接冗余控制器。这样,扩展柜上也有两个外部接口了。
  • 把带有控制器的磁盘柜称作“机头”,因为它就像火车头一样,是提供动力的。机头里可以有磁盘,也可以根本不含磁盘。用于扩展容量用的JBOD叫做“扩展柜”,基本的供电和冷却系统还是要有的。

6.6 锦上添花——完整功能的模块化磁盘阵列

  • 再后来,机头做的都比较漂亮,而且感觉很厚实。但是JBOD就是一堆磁盘,显得和机头有些不搭配。所以也给扩展柜增加了所谓的模块,不仔细看的话,外观和机头没多大区别。只不过扩展柜的模块上,没有RAID控制器的功能,但是会加上一些其他功能,如探测磁盘温度等二线辅助功能。这个模块将接口、功能芯片、电路等都集成在一个板子上,所以外观和机头差不多。
  • 这些磁盘扩展柜的模块中主要包含单片机或者DSP芯片、FC-AL半交换逻辑处理以及其他功能的FPGA/ASIC/CPLD芯片、SFP适配器编程芯片、ROM或者Flash芯片、RAM缓存芯片等。如果有新的Firmware被开发出来,可以将程序逻辑写入Flash或者ROM芯片中,即固件升级。

6.7 一脉相承——主机和磁盘阵列本是一家

  • (1).盘阵(磁盘阵列)控制器的主机化
    • 随着需求的不断提高,面对如此大的容量和如此多的磁盘,小小的控制器已经不能满足要求了。因此大的主机系统替代了短小精悍的控制器。
    • 众所周知,主机系统的经典架构就是CPU、内存、总线、各种IO设备和CPU执行的代码(软件),而观察一下盘阵控制器的基本架构,如RAID控制器芯片(CPU)、内存、总线、IO接口(SCSI接口等)和RAID芯片执行的代码(软件),就可以发现盘阵控制器就是一个简单的主机系统。
    • 既然这样,完全可以用一台主机服务器来充当存储系统的控制器。比如,在这台主机上插入几张SCSI卡作为前段接口卡,再插入若干SCSI卡作为后端连接磁盘箱的接口卡,然后设计软件从/向后端读写数据,经过处理或者虚拟化之后,再传送给前段的主机服务器。
    • 目前有两种趋势:一种是趋向使用现成的主机来充当控制器的载体,另一种是趋向使用高集成度的芯片作为控制器的核心。各有利弊。
  • (2).盘阵的类型
    • 按照前段和后端接口来分,有SCSI-FC盘阵、FC-FC盘阵、SATA-FC盘阵、SCSI-SCSI盘阵等。SCSI-FC类型表示后端接口为SCSI接口,前段用于连接主机的为FC接口。

6.8 天罗地网——SAN

  • 网络,不仅仅指以太网、TCP/IP网,可以是SCSI网、PCI总线网、USB网等。RAID控制器,就相当于一个路由器,也就是协议转换器。
  • 将磁盘放到了主机外部,存储设备和主机之间,就形成了有一个独立的网络:存储区域网络(Storage Area Network,SAN)。
  • 数据就是在这种网络中来回穿梭,格式不断被转换和还原。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
大话存储 终极版pdf》是一本关于存储技术和数据管理的综合性指南。本书从存储技术的发展历程、存储媒介的分类和特点等方面入手,深入浅出地介绍了存储系统的原理和工作方式。 在内容上,《大话存储 终极版pdf》首先介绍了存储技术的基础知识,如计算机存储的基本原理、数据的存储方式以及存储设备的种类和性能指标等。接着,书中详细介绍了不同类型的存储媒介,如硬盘、固态硬盘、内存、光盘和磁带等,并对它们的特点、优缺点以及应用场景进行了分析和对比。 此外,《大话存储 终极版pdf》还深入讲解了存储系统的架构和组织,包括存储设备的连接与组织方式、数据的存储和访问、存储系统的容错和冗余备份等内容。同时,书中还介绍了分布式存储和云存储等新兴的存储技术,以及面向大数据和人工智能的存储解决方案。 此外,《大话存储 终极版pdf》还探讨了数据管理和数据保护的相关内容,包括数据备份和恢复、数据加密和安全性、数据一致性和事务处理等。此外,书中还介绍了数据压缩和数据去重等常见的数据优化技术,以及数据存储管理的最佳实践和案例分析。 总之,《大话存储 终极版pdf》通过通俗易懂的语言、丰富的实例和图表,全面系统地介绍了存储技术和数据管理的各个方面,对于从事存储系统设计和管理的专业人士、计算机爱好者和学习者来说,都是一本难得的参考书籍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值