Linux-磁盘阵列raid

1、基础

1.1、什么是raid

将多块盘组合进行排列,提高磁盘的整体读写能力,和冗余能力,通常我们将其称为磁盘阵列。

1.2、为什么需要raid

1、提升读写能力。(在RAID中,可以让很多磁盘同时传输数据,因为多块磁盘在逻辑上感觉是一个磁盘,所以使用RAID可以达到单个磁盘的几倍、几十倍甚至上百倍的速率。)
⒉、保证数据安全。(硬盘其实非常的脆弱,它经常会坏掉。所以有了RAID这个东西。它的目的是将好几个硬盘合并在一起,就算硬盘坏了一个,剩下还有好几个硬盘是正常的,这样服务器还能正常提供服务。保证磁盘高可用。)
3、raid可以预防数据丢失,但并不能百分百保证数据不丢,所以在使用RAID的同时还是要备份重要的数据。

2、RAID常用模式

2.1、RAID-0

2.1.1、介绍

RAID-0条带卷,最少两块盘。读写性能好,但没有容错机制。坏一块磁盘数据全丢。
 磁盘空间使用率 : 100%,成本低。
 读性能 : N * 单块磁盘的读性能;
 写性能 : N * 单块磁盘的写性能;
 冗余 : 无,任何一块磁盘损坏都将导致数据不可用;
 应用场景 : 无状态服务(web);

2.1.2、架构图

 

2.2、RAID-1

2.2.1、介绍

RAID-1镜像卷,写入性能一般、读取性能快、有容错机制,但磁盘有50%浪费
磁盘空间使用率 : 50%成本较高。
读性能 : N * 单块磁盘的读性能﹔
写性能 : 1 * 单块磁盘的写性能﹔
冗余 : 在这一对镜像盘中有一块磁盘可以使用,那么无影响;
应用场景 : 有状态服务(db);

2.2.2、架构图

2.3、RAID-5

2.3.1、介绍

RAID5校验卷,至少3块相同大小的盘,并且只允许坏一块盘,有效空间1/3,读写速度快,坏掉—块盘,读会慢。
磁盘空间利用率:(N-1),即只浪费—块磁盘用于奇偶校验;
读性能:(n-1) * 单块磁盘的读性能,接近RAID-0的读性能;
写性能:(n-1) * 单块磁盘的写性能,接近RAID-O的写性能;
冗余:只允许一块磁盘损坏;
应用场景:常规选择(all);

 2.3.2、架构图

2.4、RAID-10

2.4.1、介绍

RAID10,先做RAID-1 ,在做RAID-0
磁盘空间利用率:50%
读性能︰
写性能︰
冗余:只要一对镜像盘中有一块磁盘可以使用就没问题。。应用场景︰数据库(db) ;

2.4.2、架构图

3、实现RAID的方式

3.1、软raid

软RAID通过操作系统软件来实现,性能远不如硬RAID,仅测试效果;

3.2、硬raid

硬RAID使用硬件阵列卡;在安装操作系统之前进入BIOS配置

4、软RAID配置-实战【不适合生产环境】

4.1、RAID环境准备

4.1.1、硬盘数量准备

系统盘:1个【只要系统能跑起来就可以】
测试raid硬盘:3块

4.1.2、安装软raid工具

yum install mdadm -y

4.1.3、mdadm命令介绍

mdadm-磁盘阵列命令选项

创建模式:
    -c︰创建阵列;
    -1∶指定指定级别;
    -n∶指定设备数量;
    -v︰指定设备名称;
    -x︰指定备用磁盘;

管理模式:
    --add
    --remove
    --fail

4.2、RAID-0实战

4.2.1、硬盘准备

/dev/sdb  5G
/dev/sdc  5G

4.2.2、创建raid-0

]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc 
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

4.2.3、查看队列信息

]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=192.168.10.35:0 UUID=034f4d30:3ea88a61:85832d32:067a13ea
]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Apr 22 05:00:36 2023 Raid Level : raid0 Array Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Sat Apr 22 05:00:36 2023 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K Consistency Policy : none Name : 192.168.10.35:0 (local to host 192.168.10.35) UUID : 034f4d30:3ea88a61:85832d32:067a13ea Events : 0 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc

4.2.4、格式化磁盘并分区挂载

~]# mkfs.xfs /dev/md0 ]# mkdir /mnt/md0
]# mount /dev/md0 /mnt/md0
]# df -h | grep md /dev/md0 10G 33M 10G 1% /mnt/md0

4.2.5、删除磁盘队列

# 测试好,就可以删除掉了
mdadm --stop /dev/md0

4.3、RAID-1实战

4.3.1、硬盘准备

/dev/sdb
/dev/sdc
/dev/sdd # 热备盘

4.3.2、创建raid-1

mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdc

4.3.3、查看队列信息

]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=192.168.10.35:0 UUID=ad2b1316:425b9831:9fbe19a0:74402323

]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Apr 22 05:23:54 2023 Raid Level : raid1 Array Size : 5237760 (5.00 GiB 5.36 GB) Used Dev Size : 5237760 (5.00 GiB 5.36 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Sat Apr 22 05:24:21 2023 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : resync Name : 192.168.10.35:0 (local to host 192.168.10.35) UUID : ad2b1316:425b9831:9fbe19a0:74402323 Events : 17 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc

4.3.4、格式化磁盘并分区挂载

mkfs.xfs /dev/md0 -f
mount /dev/md0 /mnt/md0

4.3.5、模拟一块硬盘挂掉,看看还能不能正常写入数据

# 将/dev/sdb设置为挂掉
mdadm /dev/md0 --fail /dev/sdb

# 数据还是写入,读取都正常
echo "test" >/mnt/md0/index.html
cat /mnt/md0/index.html 

4.3.6、检查状态

~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Sat Apr 22 05:23:54 2023
        Raid Level : raid1
        Array Size : 5237760 (5.00 GiB 5.36 GB)
     Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sat Apr 22 05:28:59 2023
             State : clean, degraded 
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 1
     Spare Devices : 0

Consistency Policy : resync

              Name : 192.168.10.35:0  (local to host 192.168.10.35)
              UUID : ad2b1316:425b9831:9fbe19a0:74402323
            Events : 27

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
 
       0       8       16        -      faulty   /dev/sdb  这个失败了

4.3.7、移除挂掉的硬盘

mdadm /dev/md0 -r /dev/sdb

4.3.8、删除磁盘队列

# 测试好,就可以删除掉了
mdadm --stop /dev/md0

4.4、RAID-5-实战

4.4.1、硬盘准备

/dev/sdb
/dev/sdc
/dev/sdd

4.4.2、创建raid-5

mdadm -C -v /dev/md0 -l 5 -n 3 /dev/sd{b,c,d}

4.4.3、检查状态

~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=192.168.10.35:0 UUID=d8c78f77:a49e0ff3:7faae8b2:5274f643

~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Apr 22 05:36:20 2023 Raid Level : raid5 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 5237760 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent Update Time : Sat Apr 22 05:36:47 2023 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : 192.168.10.35:0 (local to host 192.168.10.35) UUID : d8c78f77:a49e0ff3:7faae8b2:5274f643 Events : 18 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 3 8 48 2 active sync /dev/sdd

4.4.4、格式化磁盘并分区挂载

mkfs.xfs /dev/md0 -f
mount /dev/md0 /mnt/md0

4.4.5、模拟挂掉一块硬盘,检查数据是否可以写入

mdadm /dev/md0 --fail /dev/sdb
echo "test" >/mnt/md0/index.html
cat /mnt/md0/index.html 

# 还是可以正常写入数据

4.4.6、删除磁盘队列

# 测试好,就可以删除掉了
mdadm --stop /dev/md0

 

posted @ 2023-04-21 21:41  小粉优化大师  阅读(458)  评论(0)    收藏  举报