RAID0的条带大小设置

考虑到现有的硬件资源以及其他因素,我们选择RAID 0的工作方式:

1. 重起机器进入BIOS界面,按照主板说明书的提示开启RAID功能。
2. 保存重起,根据界面提示按CTRL+I进入Intel Raid设置界面,选择第一项,创建一个新的卷。
3. 选择模式为Raid 0;填写卷名;选择一个条带大小(strip size),其中有16KB、32KB、64KB、128KB、512KB可供选择。

选哪一个好呢?

让我们先来复习一下相应的概念。

Raid的概念:

RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文即为独立磁盘冗余阵列,或简称磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。RAID技术经过不断的发展,现在已拥有了从 RAID 0 到 6 七种基本的RAID 级别。另外,还有一些基本RAID级别的组合形式,如RAID 10(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同RAID 级别代表着不同的存储性能、数据安全性和存储成本。

Raid的分类:

1.RAID0级,无冗余无校验的磁盘阵列。数据同时分布在各个磁盘驱动器上,没有容错能力,读写速度在RAID中最快,但因为任何一个磁盘驱动器损坏都会使整个RAID系统失效,所以安全系数反倒比单个的磁盘驱动器还要低。一般用在对数据安全要求不高,但对速度要求很高的场合。

2.RAID1级,镜像磁盘阵列。每一个磁盘驱动器都有一个镜像磁盘驱动器,镜像磁盘驱动器随时保持与原磁盘驱动器的内容一致。RAID1具有最高的安全性,但只有一半的磁盘空间被用来存储数据。主要用在对数据安全性要求很高,而且要求能够快速恢复被损坏的数据的场合。

3.RAID2级,纠错海明码磁盘阵列。磁盘驱动器组中的第一个、第二个、第四个……第2n个磁盘驱动器是专门的校验盘,用于校验和纠错,例如七个磁盘驱动器的RAID2,第一、二、四个磁盘驱动器是纠错盘,其余的用于存放数据。使用的磁盘驱动器越多,校验盘在其中占的百分比越少。RAID2对大数据量的输入输出有很高的性能,但在少量数据的输入输出时性能不好。RAID2很少实际使用。

4.RAID3和RAID4,奇校验或偶校验的磁盘阵列。不论有多少数据盘,均使用一个校验盘,采用奇偶校验的方法检查错误。任何一个单独的磁盘驱动器损坏都可以恢复。RAID3和RAID4的数据读取速度很快,但写数据时要计算校验位的值以写入校验盘,速度有所下降。RAID3和RAID4的使用也不多。

5.RAID5级,无独立校验盘的奇偶校验磁盘阵列。同样采用奇偶校验来检查错误,但没有独立的校验盘,校验信息分布在各个磁盘驱动器上。RAID5对大小数据量的读写都有很好的性能,被广泛地应用。

回到前面的问题,我们知道RAID-0,也称条带。写往磁盘的数据被分成“条带”,大小一般为16~256KB,每个条带以阵列形式写到不同磁盘上。假设用两个磁盘组建RAID-0阵列,条带大小128KB,现在需要写入256KB的数据。0号磁盘将获得前128KB数据,而1号磁盘将获得剩下的128KB数据。

 

因为同一段时间写入了双倍数据,RAID-0写入数据的速度是单磁盘的两倍。不过在把数据传输到磁盘之前,RAID控制器首先要将数据分成条带。读取时,假设要读取256KB的数据,花费的时间也是原来时间的一半,理论上性能翻倍。

由于此服务器上跑的是SQL的数据库,所以特地请教了微软的同学,他的反馈是,请将条带大小设置成64KB。

 

--但由于现在大都使用的nvme磁盘,条带大小可以更大。

 

转载自:http://51soren.blog.sohu.com/131137695.html

 

 

 

分条可以按照水平方向(跨越每个硬盘控制器)进行,可以按照垂直的方向(跨越硬盘集合)进行

   对硬盘进行分条动作的目的是为了使用多个硬盘控制器以便达到对数据的并行访问,因此必须考虑系
统中可用的硬盘控制器数目以及每个分条集合中的成员数目。通常,不应该使得分条集合中的成员数
目多于系统中可用的硬盘控制器数目,否则将会不能很好地实现进行硬盘分条的目标,这个目标就是
将数据分散到系统中可用的多个资源上,以便实现数据的并发访问
   如果假设操作系统与数据库的数据块大小都是8KB,那么系统为了实现对四个分条集合的并行访问,
那么每次就应该至少读写32KB(8KB×4个硬盘控制器)的数据

一个条带大小是一次访问的IO数据(可以是数据库块的倍数),但是由于这一次IO的数据分布在不同
的硬盘(应该是不同的硬盘控制器上),提供了并行的方式,提高读的性能(就相当于原来一台收银台
收4个客户的钱,如果条带了4个磁盘控制器就相当有4台收银台来收钱,同一时间可以一起收,提高并行度)

对于OLTP和DSS,进行硬盘的垂直分条操作对于克服I/O热点问题非常有效

对于大多数OLTP应用程序, 32KB或者64KB的分条大小是比较有效的。但是,除非应用程序完全是
OLTP应用程序,笔者并不推荐使用16KB的分条大小。

对于DSS应用程序,笔者推荐使用64KB或者128KB的分条大小,有时甚至可以使用256KB或者
512KB的分条。分条大小也同样取决于数据库的总大小

分条大小 = 数据库块大小 * RAID组中硬盘数(最好是跟硬盘控制器相同) *  n 
这个n通常是1,可以谁数据库的类型(如oltp/oltp)改变,通常olap值更大

保存有表数据和不唯一索引的表空间可以被放置在分条大小较大的硬盘上,
SYSTEM表空间、保存有唯一关键字索引的INDEX表空间,可以被分条到较小的分条大小

另外对于temp tablespace,logfile等要结合特性进行划分

 

对于象temp tablespace,redologfile ,archive logfile这样的顺序IO,可以设置较大的条带值,因为是顺序读写,便于减少IO

 

posted @ 2022-01-04 14:22  狂神314  阅读(3596)  评论(0编辑  收藏  举报