服务器硬件及RAID配置

RAID磁盘阵列介绍

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

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

RAID级别

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

  • 常用的RAID级别

RAID0、RAID1、RAID5、RAID6、RAID1+0等


RAID 0(条带化存储)

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

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

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

RAID 1(镜像存储)

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

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

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

RAID 5

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

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

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

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

RAID 6

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

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

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

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

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

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

N/2磁盘利用率

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

性能高,可靠性高

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

读写性能与RAID 10相同

安全性低于RAID 10

RAID级别 硬盘数量 磁盘利用率 是否有校验保护能力 写性能

RAID0 N N 无 无单个硬盘的N倍

RAID1 N(偶数) N/2 无 允许一个设备故障需写两对存储设备,互为主备

RAID5 N>=3 (N-1)/N 有 允许一个设备故障需写计算校验

RAID6 N>=4 (N-2)/N 有 允许两个设备故障需双重写计算校验

RAID1 0N>=4 (偶数)N/2 无 允许两个基组中各坏一个N/2块盘同时写入

阵列卡的介绍

阵列卡全称为磁盘阵列卡,阵列卡是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制

器、硬盘连接器和缓存等一系列组件构成的,不同的RAID卡支持的RAID功能不同。

RAID卡分为硬RAID卡和软RAID卡两种:

通过硬件来实现RAID 功能的就是硬RAID;

通过软件并使用CPU 的 RAID 卡我们称为软 RAIID,因为软 RAID 占用 CPU 资源比较高,所以绝大部分的服务器设备都使用的硬RAID。

阵列卡接口的介绍

RAID卡的接口指的是支持的接口,目前有 IDE接口、SCSI 接口、SATA接口和SAS 接口。

阵列卡的缓存

阵列卡的缓存缓存是RAID 卡与外部的线交换数据的场所,工作过程中 RAID 卡先将数据传送到缓存,再由缓存和外边数据总线进行数据交换。缓存的大小与速度是RAID卡的实际传输速度的重要因素,大缓存能够大幅度地提高数据命中率从而提高 RAID卡整体性能。多数的RAID卡都会配备一定数量的内存来作为高速缓存使用,不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等,主要取供于磁盘阵列产品应用的范围。

热备盘

热备盘就相当于RAID阵列的备份,当RAID阵列坏掉的盘的数量超出了RAID阵列最大限制时,再加了热备盘以后,热备盘就会临时顶替换掉的盘,继续维持原来盘的数据正常运转,相当于磁盘的最后一层保险。

热备盘的工作原理

热备盘相当于帮Raid阵列多做多个备份,如果Raid陈列里其中一个盘坏了,这个热备盘就会顶替Raid里的那个坏盘,同时利用异或校验算法,把坏盘上面的数据原样做出来并存储在热备盘中。这样一来就等于Raid没受到损坏,然后再找个一个同样的盘把坏盘替换掉,Raid和热备盘的状态回复正常。

操作:

[root@192 ~]# rpm -qa | grep "mdadm"  ---检查是否安装了组件

[root@192 ~]# mdadm -E /dev/sd[b-e]1            -------检查有没有磁盘已经安装了raid
mdadm: No md superblock detected on /dev/sdb1.
mdadm: No md superblock detected on /dev/sdc1.
mdadm: No md superblock detected on /dev/sdd1.
mdadm: No md superblock detected on /dev/sde1.

mdadm命令:

-C:表示新建;

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

/dev/md5:创建 RAID5 的名称。

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

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

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

/dev/sd[bcd]1:指定使用这四块磁盘分区去创建 RAID。

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

/dev/sde1:指定用作于备用的磁盘

cat /proc/mdstat#还能查看创建RAID的进度

或者

mdadm -D /dev/md5 #查看RAID磁盘详细信息

mdadm命令其它常用选项

r:移除设备

-a:添加设备

-S:停止RAID

-A:启动RAID

删除raid:

1.先umount组建好的raid:umount /dev/md0

2.停止raid设备:mdadm -S /dev/md0

3.此时如果忘了raid中的硬盘名称,要么重启系统,要么运行:mdadm -A -s /dev/md0 然后再用mdadm -D /dev/md0查看raid

中包含哪几个硬盘。再次运行第二步停止命令:mdadm -S /dev/md0

4.删除raid里的所有硬盘:mdadm --misc --zero-superblock /dev/sdc,

mdadm --misc --zero-superblock /dev/sdd

mdadm --misc --zero-superblock /dev/sde

mdadm --misc --zero-superblock /dev/sdf

有几块硬盘,就按格式删几次,注意最后面的硬盘名称!

5.删除配置文件:rm -rf /etc/mdadm.conf

补充:释放的硬盘在做一个raid5 raid1+0

  • 生成配置:

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

  • 停止设备:

mdadm -S /dev/md0

  • 激活设备:

mdadm -A -s /dev/md0

  • 强行启动:

mdadm -R /dev/md0

  • 增加新的成员

mdadm -G /dev/md0 -n5 -a /dev/sdg

  • 解挂载 (lazy umount)

umount -l

创建RAID5

[root@localhost ~]# mdadm -E /dev/sd[b-e]1                  #检查是否安装raid
mdadm: No md superblock detected on /dev/sdb1.
mdadm: No md superblock detected on /dev/sdc1.
mdadm: No md superblock detected on /dev/sdd1.
mdadm: No md superblock detected on /dev/sde1.
[root@localhost ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 5238784K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      10477568 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md5                  #检查详细 -D
/dev/md5:
           Version : 1.2
     Creation Time : Fri Feb 24 01:26:53 2023
        Raid Level : raid5
        Array Size : 10477568 (9.99 GiB 10.73 GB)
     Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Fri Feb 24 01:27:19 2023
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 2e41e384:8ac5d7e9:bcbf694d:ebcf5d3b
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1

       3       8       65        -      spare   /dev/sde1
[root@localhost opt]# mkdir md5
[root@localhost opt]# ls
httpd-2.4.29  httpd-2.4.29.tar.bz2  md5  rh
[root@localhost ~]# mkfs.xfs /dev/md5 
meta-data=/dev/md5               isize=512    agcount=16, agsize=163712 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2619392, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/md5 /opt/md5/
[root@localhost ~]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda3      xfs        47G  4.1G   43G   9% /
devtmpfs       devtmpfs  1.4G     0  1.4G   0% /dev
tmpfs          tmpfs     1.4G     0  1.4G   0% /dev/shm
tmpfs          tmpfs     1.4G  9.2M  1.4G   1% /run
tmpfs          tmpfs     1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/sda1      xfs       297M  157M  141M  53% /boot
tmpfs          tmpfs     280M  8.0K  280M   1% /run/user/42
tmpfs          tmpfs     280M   52K  280M   1% /run/user/1000
/dev/sr1       iso9660   4.3G  4.3G     0 100% /run/media/richard/CentOS 7 x86_64
tmpfs          tmpfs     280M     0  280M   0% /run/user/0
/dev/md5       xfs        10G   33M   10G   1% /opt/md5

模拟故障:

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    3G  0 part [SWAP]
└─sda3   8:3    0 46.7G  0 part /
sdb      8:16   0   20G  0 disk 
└─sdb1   8:17   0    5G  0 part 
sdc      8:32   0   20G  0 disk 
└─sdc1   8:33   0    5G  0 part 
sdd      8:48   0   20G  0 disk 
└─sdd1   8:49   0    5G  0 part 
sde      8:64   0   20G  0 disk 
└─sde1   8:65   0    5G  0 part 
sdf      8:80   0   20G  0 disk 
└─sdf1   8:81   0    5G  0 part 
sr0     11:0    1   54M  0 rom  
sr1     11:1    1  4.2G  0 rom  /run/media/richard/CentOS 7 x86_64
[root@localhost ~]# mdadm -Cv /dev/md0 -l10 -n4 -x1 /dev/sd{b,c,d,e,f}1
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 5238784K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Feb 24 01:56:20 2023
        Raid Level : raid10
        Array Size : 10477568 (9.99 GiB 10.73 GB)
     Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
      Raid Devices : 4
     Total Devices : 5
       Persistence : Superblock is persistent

       Update Time : Fri Feb 24 01:57:00 2023
             State : clean, resyncing 
    Active Devices : 4
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 1

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

     Resync Status : 80% complete

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 07d015ae:d8538d68:501b10fe:483aeee7
            Events : 12

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync set-A   /dev/sdb1
       1       8       33        1      active sync set-B   /dev/sdc1
       2       8       49        2      active sync set-A   /dev/sdd1
       3       8       65        3      active sync set-B   /dev/sde1

       4       8       81        -      spare   /dev/sdf1
[root@localhost ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=163712 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2619392, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir data
[root@localhost opt]# cd -
/root
[root@localhost ~]# mount /dev/md0 /opt/data
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Feb 24 01:56:20 2023
        Raid Level : raid10
        Array Size : 10477568 (9.99 GiB 10.73 GB)
     Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
      Raid Devices : 4
     Total Devices : 5
       Persistence : Superblock is persistent

       Update Time : Fri Feb 24 01:57:17 2023
             State : active 
    Active Devices : 4
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 1

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 07d015ae:d8538d68:501b10fe:483aeee7
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync set-A   /dev/sdb1
       1       8       33        1      active sync set-B   /dev/sdc1
       2       8       49        2      active sync set-A   /dev/sdd1
       3       8       65        3      active sync set-B   /dev/sde1

       4       8       81        -      spare   /dev/sdf1
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdb1                        #模拟故障
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Feb 24 01:56:20 2023
        Raid Level : raid10
        Array Size : 10477568 (9.99 GiB 10.73 GB)
     Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
      Raid Devices : 4
     Total Devices : 5
       Persistence : Superblock is persistent

       Update Time : Fri Feb 24 01:59:52 2023
             State : active, degraded, recovering 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 1
     Spare Devices : 1

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 46% complete

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 07d015ae:d8538d68:501b10fe:483aeee7
            Events : 27

    Number   Major   Minor   RaidDevice State
       4       8       81        0      spare rebuilding   /dev/sdf1
       1       8       33        1      active sync set-B   /dev/sdc1
       2       8       49        2      active sync set-A   /dev/sdd1
       3       8       65        3      active sync set-B   /dev/sde1

       0       8       17        -      faulty   /dev/sdb1
[root@localhost ~]# 

检查装载进度:

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid10] 
md0 : active raid10 sdf1[4](S) sde1[3] sdd1[2] sdc1[1] sdb1[0]
      41908224 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
      [=====>...............]  resync = 25.4% (10656512/41908224) finish=2.5min speed=206551K/sec

iostat 显示所有设备负载情况:

[root@localhost ~]# iostat
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     02/27/2023     _x86_64_    (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.34    0.09    0.33    0.01    0.00   99.22

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
scd0              0.00         0.00         0.00         48          0
scd1              0.00         0.11         0.00       3096          0
sda               2.37        37.19        87.47    1038691    2442982
sdb               0.33       150.26         0.00    4196830         17
sdc               0.33       150.24         0.00    4196306         17
sdd               0.33         0.20       150.03       5574    4190225
sde               0.01         0.20         0.00       5578         17
sdf               0.00         0.04         0.00       1044          0
md5               0.00         0.04         0.00       1044          0

cpu属性值说明:

**%user:**CPU处在用户模式下的时间百分比

**%nice:**CPU处在带NICE值的用户模式下的时间百分比

**%system:**CPU处在系统模式下的时间百分比

**%iowait:**CPU等待输入数时间的百分比

**%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比

**%idle:**CPU空闲时间百分比

PS:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高单系统响应慢时,有可能时CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R1chArd_TvT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值