【存储】RAID 知识之一

简介:
  作为一名小小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性能的因素。
相关文章
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
474 2
|
编解码 API 数据安全/隐私保护
FFmpeg中overlay滤镜用法-水印及画中画
overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛,常见的例子有,电视屏幕右上角显示的电视台台标,以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口,两个窗口不同的视频内容同时播放。
2388 0
FFmpeg中overlay滤镜用法-水印及画中画
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
684 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
SQL Java 数据库连接
揭秘Hibernate Lazy Loading:如何实现按需加载并优化性能?
【8月更文挑战第31天】Hibernate 是一个流行的 Java ORM 框架,其懒加载(Lazy Loading)特性可按需加载数据,减少数据库查询次数,提升应用性能。本文介绍懒加载的实现原理:通过动态代理在访问未加载属性时触发 SQL 查询并缓存结果。此外,还提供了优化建议,包括合理设置 FetchType、使用 @BatchSize 注解批量加载、利用二级缓存和查询缓存,以及避免 N+1 查询问题,以进一步提升性能。开发者应根据具体需求选择最佳策略。
399 0
|
运维 安全 Linux
服务器基础知识大科普
服务器基础知识大科普
798 0
|
SQL 缓存 关系型数据库
数据库连接池到底应该设多大?
数据库连接池到底应该设多大?
617 0
|
Ubuntu 虚拟化 Windows
将Vmware虚拟机磁盘映射到本地实现文件传输
将虚拟机磁盘映射到本地,可以实现文件互传,更方便使用,在开发时可以替代SecureFx等FTP客户端软件
1227 0
|
机器学习/深度学习 编解码 自然语言处理
TGANv2、VideoGPT、DVG…你都掌握了吗?一文总结视频生成必备经典模型(二)
TGANv2、VideoGPT、DVG…你都掌握了吗?一文总结视频生成必备经典模型(二)
518 0
|
安全 JavaScript API
生成 UUID 的三种方式及测速对比!
通用唯一识别码(英语:Universally Unique Identifier,缩写:UUID)是用于计算机体系中以识别信息的一个 128 位标识符,通常表现为一串 32 位十六进制数字。

热门文章

最新文章