传统磁盘的劣势:

影响计算机性能的组件一般包括:cpu,主板总线IO,内存IO,磁盘IO,网卡IO。

现代处理器的性能已经很高了,但是计算机整体IO性能较弱,严重影响了计算机的性能。

现代计算机总线,内存速度可以达到5G每秒,甚至更高,但是磁盘的IO性能总体来说是较低的。

磁盘类型

速度

SATA

<150M/s

SCSI

<200M/s

SAS

200M/s每秒左右

SSD

500M/s每秒左右

但是硬盘绝大多数是计算机的性能瓶颈。


RAID简述:

1、现代磁盘性能的缺陷:IO性能极弱,稳定性差;

2、RAID(Redundant Arrays of Independent Disks,RAID),廉价磁盘冗余阵列的技术是通过多磁          盘 , 并行运行来提高计算机存储IO性能。

3、RAID分为很多种类,称之为RAID级别,现代RAID共有7类,常用的有以下4类。

RAID 0:读写性能

RAID 1:读写性能、冗余性

RAID 5:读写性能、冗余性(1块硬盘)

RAID 6:读写性能、冗余性(2块硬盘)


RAID 0

RAID 0最少使用两块磁盘,在读写时,将数据分开读写到多磁盘的方式来提高读写性能。

wKioL1XxIGuz7leoAABrGcrojRE912.jpg

空间利用率:所有磁盘空间之和;

性     能:所有磁盘速度之和;

冗余 能力:无


RAID 1

RAID 1最少使用2块磁盘,在读写时,将数据复制到多块磁盘,在读数据的时候,已提供冗余性。同时从多块硬盘中读取数据,以提高读性能。

wKioL1XxILjSfty1AAB8sp6mPDw892.jpg

空间利用率:所有磁盘空间最小那块;

性     能:读性能为磁盘速度之和,写性能有所减弱;

冗余 能力:只要一块磁盘正常,数据就正常;


RAID 5

RAID 5最少使用3块磁盘,raid5与Raid0相似,读写数据的时候会将数据分布式的读写在所有硬盘上,但是在写数据的时候会对数据进行奇偶校验运算,将奇偶校验信息同时保存在硬盘上,校验信息可以进行数据恢复时使用。

wKioL1XxINihpkn3AACcDDzuzuM933.jpg

空间利用率:1-1/n;

性     能:读性能接近RAID0,写性能较RAID0弱一些;

冗余 能力:可以接受1块磁盘损坏;


RAID 6

RAID 6最少使用4块磁盘,raid6与Raid5相似,读写数据的时候会将数据分布式的读写在所有硬盘上,并保存奇偶校验信息,但是会比RAID5多保存一份校验信息,所以冗余性较RAID5有所提升。

wKiom1XxHsqgZyryAACk0p5vIGw983.jpg

空间利用率:1-2/n;

性     能:读性能接近RAID5,写性能较RAID5弱一些;

冗余 能力:可以接受2块磁盘损坏;


RAID实现

1、RAID机制通过使用多硬盘并行运行的方式来提高硬盘的IO性能。

2、RAID分为多种,称之为RAID level ,RAID共有7级:RAID0-RAID6.

3、RAID常用级别:RAID0,RAID1,RAID5,RAID6;

RAID级别

速度

冗余性

磁盘利用率

RAID0

读写性能有所提升0

所有磁盘之和

RAID1

读性能提升

N

一个磁盘大小

RAID5

读写性能有所提升

1

1-1/n

RAID6

读写性能有所提升

2

1-2/n

RAID的实现分为:硬件RAID、软件RAID。


MDADM(多磁盘管理)

1、每种操作系统都有软件RAID的实现

2、在Linux中软件RAID通过mdadm这个程序实现

3、Mdadm支持的的RAID级别有RAID0,RAID1,RAID5,RAID6;

4、Mdadm可以基于多块硬盘、分区或逻辑卷创建软件RAID

5、创建好的软件RAID对应的/dev/mdn,n为第几个RAID,如创建第一个RAID为/dev/md0,第二个             为/dev/md1

6、RAID的信息保存在/proc/mdstat文件中,或者通过mdadm命名查看。


创建软件RAID

关于mdadm命令创建软件RAID的几个参数:


    -c:创建一个新的RAID
    -a:自动创建对应的设备
 -l:指定要创建的RAID级别
 -n:指定硬盘的数量

创建软RAID示例及基本步骤:


       1、创建RAID 0     

 Mdadm –C /dev/md0 –a yes –l 0 –n 2 /dev/sdb /dev/sdc

2、创建RAID 1     

  Mdadm –C /dev/md0 –a yes –l 1 –n 2 /dev/sdb /dev/sdc

3、创建RAID 5       

 Mdadm –C /dev/md0 –a yes –l 5 –n 3 /dev/sdb /dev/sdc /dev/sdd

 4、创建RAID 6       

Mdadm –C /dev/md0 –a yes –l 6 –n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

5、我们也可以使用-x 参数指定一个备份磁盘,备份磁盘一般不使用,当出现故障磁盘时,指定的备

份磁盘可以自动上线工作:     

Mdadm –C /dev/md0  –a yes –l 5 –n 3 –x /dev/sdb /dev/sdc /dev/sdd /dev/sde

6、创建好RAID之后,我们需要创建一个配置文件:     

Mdadm –D –scan >/etc/mdadm.conf

7、创建文件系统之后挂载使用     

Mkfs.ext4 /dev/md0
Mount /dev/md0 /mnt


查看RAID信息:

    1、我们可以使用mdadm命令查看相关信息     

 Mdadm –D /dev/md0

2、/proc中的文件也包含RAID相关信息:     

 Cat /etc/mdstat


控制RAID:

      1、可以通过以下命令关闭一个RAID,关闭前先卸载:     

 Mdadm –s /dev/md0

2、通过以下命令可以启用指定的RAID:     

Mdadm –R /dev/md0

3、清除RAID 信息     

Mdadm –zero-superblock /dev/md0


模拟故障:

       1、实验环境下,我们可以通过以下命令模拟一个磁盘的故障     

Mdadm  /dev/md0  -f  /dev/sdb

2、之后,我们可以将故障磁盘移除   

  Mdadm  /dev/md0  -r /dev/sdb

3、换上新硬盘后,我们可以将新硬盘添加到RAID中:   

  Mdadm  /dev/md0 –a /dev/sdb