欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux中服务器硬件及RAID配置(包含RAID5实操!)

程序员文章站 2022-07-10 09:49:23
...

Linux中服务器硬件及RAID配置

一、RAID磁盘阵列

1.RAID磁盘阵列介绍

  • 是Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列

  • 把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术

  • 组成磁盘阵列的不同方式称为RAID级别(RAID Levels)

  • 常用的RAlD级别

    RAID0,RAID1,RAID5,RAID6,RAID1+0等

Linux中服务器硬件及RAID配置(包含RAID5实操!)

1)RAID 0(条带化存储)

  1. RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余。

  2. RAID 0只是单纯的提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据

  3. RAID 0不能应用于数据安全性要求高的场合

    N块硬盘并行组合成一个新的逻辑盘,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
    Linux中服务器硬件及RAID配置(包含RAID5实操!)

2)RAID 1(镜像存储)

  1. 通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据

  2. 当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能

  3. RAID 1是磁盘阵列中单位成本最高的。但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

    Linux中服务器硬件及RAID配置(包含RAID5实操!)

3)RAID 5(当前生产环境中用的最多的,比较重要)

  1. N(N≥3)块盘组成阵列,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N块盘上循环均衡存储

  2. N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高

  3. (N-1)/N 磁盘利用率

  4. 可靠性高,允许坏一块盘,不影响所有数据

    RAID5数据写入会根据算法分成3部分,然后写入这3块硬盘,写入的同时还会在这3块硬盘上写入校验信息,当读取写入的数据的时候会分别从3块硬盘上读取数据内容,再通过检验信息进行校验。当其中有1块硬盘出现损坏的时候,就从另外2块硬盘上存储的数据可以计算出第3块硬盘的数据内容。也就是说raid5这种存储方式只允许有一块硬盘出现故障,出现故障时需要尽快更换。当更换故障硬盘后,在故障期间写入的数据会进行重新校验。 如果在未解决故障又坏1块,那就是灾难性的了。(P代表校验数据)
    Linux中服务器硬件及RAID配置(包含RAID5实操!)

4)RAID 6(两个盘写校验数据)

  1. N(N≥4)块盘组成阵列,(N-2)/N 磁盘利用率

  2. 与RAID 5相比,RAID 6增加了第二块独立的奇偶校验信息块

  3. 两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用

  4. 相对于RAID 5有更大的“写损失”,因此写性能较差

Linux中服务器硬件及RAID配置(包含RAID5实操!)

5)RAID 1+0(先做镜象,再做条带)

  1. N (偶数,N>=4)块盘两两镜像后,再组合成一个RAID 0

  2. N/2磁盘利用率

  3. N/2块盘同时写入,N块盘同时读取

  4. 性能高,可靠性高

Linux中服务器硬件及RAID配置(包含RAID5实操!)

6)RAID 0+1(先做条带,再做镜象)

  1. N (偶数,N>=4)块盘两两做出条带后,再组合成一个RAID 1
  2. 读写性能与RAID 10相同
  3. 安全性低于RAID 10

Linux中服务器硬件及RAID配置(包含RAID5实操!)

7)RAID0、RAID1、RAID5、RAID6对比

RAID级别 硬盘数量 硬盘利用率 是否有校验 保护能力 写性能
RAID0 N N 单个硬盘的N倍
RAID1 N(偶数) N/2 允许一个设备故障 需写两对存储设备,互为主备
RAID5 N≥3 (N-1)N 允许一个设备故障 需写计算校验
RAID6 N≥4(偶数) N/2 允许两个基组各坏一个 N/2块盘同时写入

二、阵列卡简介

  • 阵列卡是用来实现RAID功能的板卡
  • 通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列组件构成的
  • 不同的RAID卡支持的RAID功能不同
    例如支持RAID0、RAID1、RAID5、RAID10等
  • RAID卡的接口类型
    IDE接口、SCSI接口、SATA接口和SAS接口

三、构建软RAID磁盘阵列(RAID5)

1.先检查创建环境

即查看mdadm软件包是否已安装

Linux中服务器硬件及RAID配置(包含RAID5实操!)

2.新增硬盘

需要先关闭虚拟机,然后编辑虚拟机,选择添加,添加硬盘(除了容量自选其他都使用默认值),添加4块硬盘以后可看到硬件下方多出四块硬盘,然后“确定”。开启虚拟机,用Xshell连接至虚拟机。

Linux中服务器硬件及RAID配置(包含RAID5实操!)

3.使用fdisk -l查看磁盘分区情况

Linux中服务器硬件及RAID配置(包含RAID5实操!)

4.分区管理

把4个盘分区类型都更改为RAID,下方是其一,另外3个操作相同

Linux中服务器硬件及RAID配置(包含RAID5实操!)

5.查看分区类型

Linux中服务器硬件及RAID配置(包含RAID5实操!)

Linux中服务器硬件及RAID配置(包含RAID5实操!)

6.创建RAID5

使用cat /proc/mdstat查看RAID5创建进度

Linux中服务器硬件及RAID配置(包含RAID5实操!)

7.查看RAID详细信息

Linux中服务器硬件及RAID配置(包含RAID5实操!)

8.模拟一个磁盘损坏

测试备用磁盘是否会自动重建

Linux中服务器硬件及RAID配置(包含RAID5实操!)

9.使用前必须格式化与挂载

和之前LVM一样,使用必须经过的步骤

Linux中服务器硬件及RAID配置(包含RAID5实操!)

四、mdadm命令

1.命令格式

mdadm [选项] [操作磁盘对象]

2.常用选项及功能

创建RAID5中使用到的选项

-C:表示新建

-v:显示创建过程中的详细信息

/dev/md0:创建RAID5的名称

-a yes:-–auto,表示如果有什么设备文件没有存在的话就自动创建,可省略

-l:指定RAID的级别,l5(level5)表示创建RAID5

-n:指定使用几块硬盘创建RAID,n3表示使用3块硬盘创建RAID

/dev/sd [bcd]1:指定使用这三块磁盘分区去创建RAID,作为活跃设备

-x:指定使用几块硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作备用dev/sde1:指定用作于备用的磁盘

其他选项

-r:移除设备

-a:添加设备

-S:停止RAID

-A:启动RAID

例:

mdadm -S /dev/md0 #停止运行此RAID

mdadm /dev/md0 -r /dev/sdb1 #从此RAID中移除磁盘/dev/sdb1

补充:

如果创建RAID 10需要先做镜像再做条带

mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[bc]1

mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1

mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/md1

查看RAID磁盘详细信息

cat /proc/mdstat  #此命令还能查看RAID创建进度

mdadm -D /dev/md0 #展示RAID详细信息

检查磁盘是否已做RAID

mdadm -E /dev/sd[b-e]1