作为一名小小DBA,接触的很多数据库应用,
通常情况下对于OLTP类型的数据库应用属于IO bond 型 ,IO往往会成为瓶颈。后续会写一系列与数据库相关的存储的文章,正如本博客的标题所言“
DBA的价值不仅仅在于维护数据库本身,而应该在数据存储方案的选择上做出最专业的判断,这是DBA最大的价值所在。--淘
宝DBA 张瑞
”。回归正题,
解决该问题方法有
1 软件方面主要是一主多从读写分离,垂直拆分,水平拆分,分区表技术,使用cluster 集群技术。
2 硬件方面主要是使用RAID和SSD,FIO 和 SAS 盘一起做flash cache ,提高缓存使用率。
常用的案是 软件 + 硬件同时优化。硬件方面,相对于fio ,硬件使用raid的成本更低,所以使用RAID情况较多!
本文对RAID 做介绍 (更多侧重于RAID 卡硬件)
一 什么是RAID 卡?
RAID 是英文Redundant Array of Independent Disks的缩写(独立磁盘冗余阵列),或简称磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels),RAID可以提供数据冗余备份技术、扩展存储空间和提高存储性能。
RAID卡就是用来实现RAID功能的板卡,通常是由I/O处理器、SCSI控制器、SCSI连接器和缓存等一系列零组件构成的。不同的RAID卡支持的RAID功能不同。支持RADI0、RAID1、RAID3、RAID4、RAID5、RAID10以及他们的其他组合。
RAID卡可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个的磁盘驱动器几倍、几十倍甚至上百倍的速率。 所以RAID卡可以解决io瓶颈和提供容错功能!
接下来我们认识一下RAID 卡的硬件构成。
二 RAID卡工作原理 RAID 卡有自己的CPU,Cache Memory,通过集成或借用主板上的SCSI控制器来管理硬盘,可以称之为一个智能化的设备。
RAID 卡的分类:
根据是否有据集成的SCSI控制器来划分.
零通道 RAID卡 :没有集成 SCSI 控制器,使用主板上面的SCSI 控制器来管理硬盘,也称为板载RAID 卡.
使用了集成的SCSI 控制器的RAID 卡M,根据SCSI 控制器的通道数量,分为单通道、双通道、三通道 RAID 卡:
按照SCSI 控制器的标准来划分RAID卡的种类:
1 Ultra Wide
2 Ultra2 Wide
3 Ultra160 Wide .
下图是带有集成SCSI卡的RAID卡结构图
RAID 处理器:是一个PCI从设备,接受并执行来自系统的命令.同时占用PCI中断,代表SCSI磁盘子系统向系统提出中断请求,请求占用PCI总线,返回对系统命令的响应,如输送SCSI硬盘上的数据.
作为 RAID 卡的 CPU ,通过执行闪存中的 Firmware ,控制 SCSI 控制器,Cache Memory 以及指示报警电路,来实现 RAID 卡的功能,运作流程如下:
1 初始化 RAID 卡寄存器。
2 读取 NVRAM 的上次 RAID 参数,与硬盘实际信息进行比较,显示结果。
3 发送配置提示、响应 HOST 命令进入配置界面。
4 提供配置菜单、将用户提供的 RAID 卡参数、 RAID 参数存入 NVRAM。
5 根据 RAID 参数,通过 SCSI 控制器对硬盘进行初始化写操作。
6 完成配置。
7 等待 Host 发出读写操作命令。
使用RAID 卡本身是为了解决系统的IO瓶颈并提供高可靠的数据稳定性,安全性功能。后续将讲述RAID卡提高磁盘IO性能的因素。