磁盘阵列的组成
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一是命令和数据都要经过同一I/O路 一是命令和数据都要经过同一 路 当有多个用户请求时, 径。当有多个用户请求时,容易造成 阻塞, 阻塞,即使单个用户也延长了服务等 待时间; 待时间; 二是在数据读取和传输过程中, 二是在数据读取和传输过程中 , 即 使采取DMA方式,也需经历多次存储 方式, 使采取 方式 转发, 增加了系统开销, 转发 , 增加了系统开销 , 降低了数传 率。
读命令的执行过程 阵列处理读命令过程为: 阵列处理读命令过程为:
接收命令→ 命令分解→ 读盘→ 接收命令→ 命令分解→ 读盘→数据重组 数据输入→状态、消息输入→ →数据输入→状态、消息输入→ 完成 等待下一命令到达) (等待下一命令到达)
写命令的执行过程 阵列处理写命令过程为: 阵列处理写命令过程为:
命令分解,数据分块重组模块: 命令分解,数据分块重组模块: 根据设定的阵列参数, 根据设定的阵列参数,从从通道 控制模块生成的命令队列里取出的 I/O命令按一定的规则分解为独立磁 I/O命令按一定的规则分解为独立磁 盘上的子命令, 盘上的子命令,同时将读写数据进 行分块重组。 行分块重组。
Cache-Buffer管理模块: Cache-Bufferwenku.baidu.com理模块: 管理模块
开发周期短,维修方便, 开发周期短,维修方便,能附加用户特殊要求 和性价比高等优点, 和性价比高等优点,但存在部分冗余的部件和 机箱尺寸稍大等缺点
集成式磁盘阵列中的关键问题
1.硬件组成环节的性能平衡; 硬件组成环节的性能平衡; 硬件组成环节的性能平衡 2.软件开发平台的选择、裁剪和板支 软件开发平台的选择、 软件开发平台的选择 持软件的设计 ; 3.系统控制软件的设计 ; 系统控制软件的设计 4.完成特定功能的软件设计 ; 完成特定功能的软件设计
主通道控制模块(串控制器): 主通道控制模块(串控制器): 调度、 调度、控制阵列中的串控制器完 成磁盘I/O操作, I/O操作 成磁盘I/O操作,并且负责向上层模 块报告I/O完成情况和磁盘状态。 I/O完成情况和磁盘状态 块报告I/O完成情况和磁盘状态。
容错功能模块: 容错功能模块:
包括数据重构(Reconstruct) 包括数据重构(Reconstruct)和磁盘 数据的重建(Rebuild)修复。 数据的重建(Rebuild)修复。前者是指 在阵列运行于有容错功能的级别下单盘 失效时阵列降级运行, 失效时阵列降级运行,利用冗余的校验 信息重新生成失效盘上的数据以响应主 机的I/O请求; I/O请求 机的I/O请求;后者指的是在有盘失效的 情况下, 情况下,当系统检测到有新的磁盘被换 上时, 上时,系统在后台将失效盘上的数据恢 复到新盘上。 复到新盘上。
传统服务器系统示意图
瓶颈
以 太 网
工 作 站
服 务 器 磁 带 库 SCSI通 道
工 作 站 服 务 器 磁 盘 阵 列
工 作 站
服 务 器
磁 盘 阵 列
网络磁盘阵列设备示意图
外 设 通 道
网络通道
网络磁盘阵列说明: 网络磁盘阵列说明
网络磁盘阵列和与之相连的服务器 构成网络磁盘阵列系统; 构成网络磁盘阵列系统; 系统的连接方式与传统的服务器- 系统的连接方式与传统的服务器- 存储设备连接方式不同, 存储设备连接方式不同,它在磁盘阵 列端增加网络通道直接入网, 列端增加网络通道直接入网,即磁盘 阵列具有异构双通道——外设通道与 阵列具有异构双通道 外设通道与 网络通道。 网络通道。
协议转换模块: 协议转换模块:
完成从SCSI命令到对应的 命令到对应的EIDE命 完成从 命令到对应的 命 令的转换。如读写命令。 令的转换。如读写命令。
网络磁盘阵列简介
在传统的服务器系统中, 在传统的服务器系统中 , 当客户机需下 载服务器上的文件时, 载服务器上的文件时 , 由客户机向服务器 发出请求。响应后,通过文件系统和I/O系 发出请求。响应后,通过文件系统和 系 统 , 调用设备驱动程序对磁盘驱动器进行 读操作。读得的数据经由原路进入客户机, 读操作 。 读得的数据经由原路进入客户机 , 此次服务便告结束。这种服务器/客户机工 此次服务便告结束。这种服务器 客户机工 作模式,存在两个显著的缺点: 作模式,存在两个显著的缺点:
(2)缓冲区层根据数据块的逻辑设备名 (2)缓冲区层根据数据块的逻辑设备名 和块号,使用bio结构体对它进行包装 bio结构体对它进行包装, 和块号,使用bio结构体对它进行包装,形 成一个请求(request). 成一个请求(request).同时使用 submitbio将请求挂在该设备( submitbio将请求挂在该设备(blk_devs) 的请求队列上,等待设备进行读写工作. 的请求队列上,等待设备进行读写工作. (3)如果读写的设备不是MD设备 如果读写的设备不是MD设备, (3)如果读写的设备不是MD设备,则转 5.( 中磁盘阵列以MD设备来标识) MD设备来标识 向5.(Linux 中磁盘阵列以MD设备来标识)
图1:硬件结构图 :
图2:软件关系图 :
启动
初始化模块
容错功能模块
消息、数据 流向
命令 分解数据分块 重组
I/O调度模块 调度模块
Cache-Buffer 管理模块
应用层
从通道控制模块
主通道控制模块
驱动层
软件模块功能说明
阵列参数设置、初始化模块: 阵列参数设置、初始化模块:
提供一个浏览、 提供一个浏览、配置阵列参数的人机交 互接口, 互接口,根据用户的配置设置对阵列控 制软件中的相关参数进行初始化, 制软件中的相关参数进行初始化,这些 参数包括阵列级别、数据分块大小、 参数包括阵列级别、数据分块大小、校 验存放策略、阵列中的串数及盘数等, 验存放策略、阵列中的串数及盘数等, 它们是阵列有效容量计算、 它们是阵列有效容量计算、逻辑地址与 物理地址相互转换的依据。 物理地址相互转换的依据。
(4)如果读写的设备是MD设备, (4)如果读写的设备是MD设备,则RAID 如果读写的设备是MD设备 驱动程序分析该请求,进行优化处理, 驱动程序分析该请求,进行优化处理, 最后将该请求分解到对应的磁盘, 分解到对应的磁盘 最后将该请求分解到对应的磁盘,并将 分解后的请求挂在真正的设备上. 分解后的请求挂在真正的设备上.如图 中虚线所示. 中虚线所示. (5)最后由磁盘驱动程序来完成读写 (5)最后由磁盘驱动程序来完成读写 过程,然后将处理的结果再一层层的向 过程, 上传递到文件系统. 上传递到文件系统.
Linux软阵列的数据流程 软阵列的数据流程
文件系统 缓冲区层
阵列驱动层
设备驱动层
硬件设备
流程: 流程:
(1)文件系统会调用具体的文件读写过 (1)文件系统会调用具体的文件读写过 程,将偏移量和文件的起始位置转换为 具体文件系统中的数据块, 具体文件系统中的数据块,同时将这些 信息传递给下面的缓冲区层. 信息传递给下面的缓冲区层.
该模块提供了三种可供用户根据实际 应用的数据请求特点进行选择的Buffer 应用的数据请求特点进行选择的Buffer 策略,即写回策略(Write-back)、 )、写 策略,即写回策略(Write-back)、写 直达策略(Write-through)、 )、自适应的 直达策略(Write-through)、自适应的 顺序预取策略。Cache-Buffer管理模块 顺序预取策略。Cache-Buffer管理模块 的主要目的是减少实际的磁盘I/O次数, I/O次数 的主要目的是减少实际的磁盘I/O次数, 达到快速响应用户的数据请求, 达到快速响应用户的数据请求,从软件 上最大限度地提供磁盘阵列的性能。 上最大限度地提供磁盘阵列的性能。
接收命令→ 接收数据→ 接收命令→ 接收数据→ 命令分解数据分 状态、消息输入→ 块→写磁盘 →状态、消息输入→ 完成 等待下一命令到达) (等待下一命令到达)
从通道控制模块(Target): 从通道控制模块(Target): 控制阵列中的从通道适配器完成 主机和阵列的消息、命令、 主机和阵列的消息、命令、数据的 交互;将来自主机的I/O I/O命令按顺序 交互;将来自主机的I/O命令按顺序 进行排队以等待命令分解模块和其 他模块处理。 他模块处理。
磁盘阵列的组成
参考书: 参考书:
《海量信息存储》 海量信息存储》
(第三章、第四章) 第三章、第四章)
磁盘阵列的分类
1.软阵列 : 阵列部分的处理功能由主机 软阵列
(服务器)完成; 服务器)完成;
2.硬阵列: 由专门的硬件来完成阵列的 硬阵列
功能
软阵列
特点: 特点: 可以用磁盘分区组合磁盘阵列, 可以用磁盘分区组合磁盘阵列,不 必用整个磁盘来组合; 必用整个磁盘来组合;每个磁盘可以 是不同类型,大小也可以不同。 是不同类型,大小也可以不同。增加 了服务器的处理负载。 了服务器的处理负载。
I/O调度模块: I/O调度模块: 调度模块 依次扫描各子命令队列, 依次扫描各子命令队列,对这些 子命令经过Cache Buffer管理模块 Cache子命令经过Cache-Buffer管理模块 过滤后, 过滤后,将需要磁盘操作的子命令 按优先级分组, 按优先级分组,然后按优先级从高 到低逐组分派给各主通道控制模块 并行地完成磁盘操作请求。 并行地完成磁盘操作请求。该模块 是整个阵列控制程序的控制核心, 是整个阵列控制程序的控制核心, 其他模块几乎都要和它发生交互。 其他模块几乎都要和它发生交互。
RAID5重构和重建 重构和重建
校验块
接口异构的磁盘阵列原理
接口异构:指在结构上磁盘阵列控制
器与主机的接口和阵列中磁盘驱动 器的接口不是同一种接口, 器的接口不是同一种接口,称为异 构接口。 构接口。如SCSI-EIDE、USB-SCSI、 、 、 USB-EIDE、FC-SCSI等。 、 等
例:SCSI-EIDE阵列 SCSI-EIDE阵列
用户读取文件的过程
客户机向文件服务器发出读文件请求; 客户机向文件服务器发出读文件请求; 服务器确认请求的合法性和权限, 服务器确认请求的合法性和权限,经分析截取文件的位 置和存储地址组的信息; 置和存储地址组的信息; 服务器向网络磁盘阵列发出用户授权; 服务器向网络磁盘阵列发出用户授权; 网络磁盘阵列启动读进程,等待客户机请求到来; 网络磁盘阵列启动读进程,等待客户机请求到来; 服务器向客户机发出确认字、授权字、 服务器向客户机发出确认字、授权字、磁盘阵列的网络 地址和数据存储地址组; 地址和数据存储地址组; 建立客户机与磁盘阵列的连接并从磁盘阵列上读得数据; 建立客户机与磁盘阵列的连接并从磁盘阵列上读得数据; 客户机向服务器和磁盘阵列发出结束请求的信号; 客户机向服务器和磁盘阵列发出结束请求的信号; 磁盘阵列向服务器发出结束信号; 磁盘阵列向服务器发出结束信号; 读出过程结束。 读出过程结束。
课后作业
阅读linux下MD代码, 阅读linux下MD代码,弄清 linux 代码 RAID0, RAID0,1的工作流程
硬阵列的组成
1.专用的电路板 : 磁盘阵列卡,盒式磁盘阵 专用的电路板 磁盘阵列卡,
列控制器 (易于嵌入服务器内形成一个整体 )
2.通用板卡集成式磁盘阵列:更新速度快, 通用板卡集成式磁盘阵列 更新速度快,
命令模拟模块: 命令模拟模块:
完成与主机的启动配置通信, 完成与主机的启动配置通信,使 主机能够识别阵列, 主机能够识别阵列,读取正确的阵 列参数,完成IDE协议不能对应的 列参数,完成 协议不能对应的 SCSI命令。该模块负责完成的SCSI 命令。该模块负责完成的 命令 命令包括:Inquiry、Test Unit Ready、 命令包括 、 、 Verify、Read Capacity、Mode 、 、 Sense等。 等
PC主板 PC主板 (EPROM) 阵列控制软件 阵列Cache 阵列
SCSI总线 总线
CPU
NCR53 C8XX EIDE适配器 适配器
……
连接 主机
EIDE适配器 适配器
0
EIDE /ATA 总线
m-1 -
EIDE /ATA 总线
说明: ≤ 说明:m≤2
m
2m-1 -
软件: 软件:
在普通SCSI阵列软件基础上再 阵列软件基础上再 在普通 增加命令模拟模块 命令模拟模块和 增加命令模拟模块和协议转换模 块