linux高級管理RAID原理基础和软件RAID的实现

1.传统磁盘的劣势

计算机的性能的组件一般包括:CPU、主板总线IO、内存IO,硬盘IO、网卡IO。现代计算机整体的IO性能较弱,严重影响了计算机的性能。

IOPS性能指标。第一个速度第二个IOPS

以目前来看,影响性能主要是硬盘IO的限制。硬盘速度很慢。

SATA     <150M/s     机械硬盘

SCSI     <200M/s      比较传统的

SAS        200M/s

SSD      500M/s         固态硬盘   

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

2.RAID技术(廉价磁盘冗余阵列技术)

解决磁盘速度慢,和稳定性差的缺陷。

通过多次盘并行运行来提高计算机的存储IO性能。

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

 

RAID 0    读写性能

RAID 1    读取性能、冗余性

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

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

 

RAID 0 空间利用率最高,性能最好,但没有冗余能力

RAID0使用最少2快硬盘,读写时,将数据分开写到多块硬盘的方式来提高读写性能。性能为所有硬盘速度之和,但是没有冗余能力(任何一块磁盘损毁数据就会丢失)。空间利用率是所有硬盘空间之和。(一般来讲创建RAID,所有的硬盘的大小一样,生产环境中不仅要求大小一样,型号规格也要一样,防止不兼容而出现问题)

 

linux高級管理RAID原理基础和软件RAID的实现_第1张图片

RAID1  (只用在稳定性极强的地方,写数据不经常发生)

最少使用两块硬盘,在写数据时,将数据复制写到多块硬盘,在读时,以提供冗余性,同时从多块硬盘读取数据,以提高读性能

 

空间利用率:所有磁盘中最小的那一块(磁盘使用率非常低)

性能:读为所有硬盘之和,写性能会有所减弱。

冗余:只要有一块硬盘正常,数据就正常。冗余能力是最强的。

 

在实际生产环境中最长使用的是RAID5和RAID6

 

RAID 5

最少使用三块硬盘,和RAID0类似,读写数据时会将数据分布式的读写在所有硬盘上,但在写数据的时候会对数据进行奇偶校验运算,将校验信息同时保存在硬盘上,校验信息可以进行数据恢复使用(通过校验信息和其他的数据将丢失的数据反推获取)。

空间利用率:1-1/n

性能:读性能接近RAID0,写性能较RAID0差点

冗余能力:可接受1块硬盘的损坏

RAID6

最少使用4块硬盘。与RAID5类似,但会比RAID5多保存一份校验信息,所以冗余性较RAID5有所提升。

空间利用率:1-2/n

性能:读性能接近RAID5,但写比RAID5还要弱一些

冗余能力:可以接受2块硬盘的损坏

linux高級管理RAID原理基础和软件RAID的实现_第2张图片

 3、RAID实现

软件实现与硬件实现

软件:通过系统功能或RAID软件实现。会占用一定的系统资源(CPU、硬盘接口速度)并且受操作系统稳定性影响。

硬件:通过独立的RAID硬件卡实现。有些主板集成RAID硬件,有些需要购买独立的RAID硬件卡,不需要占用资源,稳定性和速度都比软件RAID强。

 

linux高級管理RAID原理基础和软件RAID的实现_第3张图片

 

4。软件RAID

 

Linux中通过mdadm这个程序实现

mdadm支持RAID的级别:0,1,4,5,6

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

创建好的软件RAID对应/dev/mdn   ,n为第几个RAID,如创建的RAID为:/dev/md0

RAID信息保存在/proc/mastat文件中,通过mdadm命令查看。

5.实际操作

 

mdadm -C  /dev/md0  -a yes -l 0 -n 2 /dev/sdb  /dev/sdc

-C    创建一个新的RAID

-a     自动创建对应设备

-l      指定要创建的RAID级别

-n     指定硬盘的数量

 

创建好RAID之后,我们需要创建一个配置文件,否则重启后信息会丢失:

mdadm -D  --scan  > /etc/mdadm.conf

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

mkfs.ext4  /dev/md0

mount  /dev/md0   /mnt

linux高級管理RAID原理基础和软件RAID的实现_第4张图片

 

查看RAID信息

linux高級管理RAID原理基础和软件RAID的实现_第5张图片

创建其他级别的RAID

备份磁盘  正常不工作,当出现故障时,指定的备份磁盘自动上线工作。

关闭RAID,关闭前必须卸载(不同的版本不一样)底层磁盘(组成RAID的磁盘还是保存RAID信息的)

 

彻底清除作为其他的情况使用

mdadm --zero-superbolck  /dev/sdb

mdadm--zero-superbolck  /dev/sdc

将组成RAID的磁盘中的数据彻底删除

之后可以重新创建

 

RAID5和6需要对相应的磁盘进行自动条带化

 

6.模拟故障

 

 

你可能感兴趣的:(linux高級管理RAID原理基础和软件RAID的实现)