LiangGaRy-学习笔记-Day20

1、raid磁盘阵列

1.1、阵列介绍

简称:独立冗余磁盘阵列

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

  • RAID可以预防数据丢失;也可以支持备份操作

常见的阵列类型:

  • raid0:条带化存储
  • raid1:镜像存储
  • raid5:
  • raid10:先做镜像,在做存储
  • raid01:做存储,再做镜像

1.2、raid0

  • 磁盘使用率为100%
  • 把多块磁盘按照一定的组合方式组合起来,行程一个新的磁盘阵列
  • RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余。高性能、使用率高;
  • RAID 0只是单纯的提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据
  • RAID 0不能应用于数据安全性要求高的场合

1.3、raid1

  • 提供镜像功能
  • 使用率只有50%
  • 有冗余功能
  • 通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
  • 当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能
  • RAID 1是磁盘阵列中单位成本最高的。但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

1.4、raid5

  • 至少三块硬盘组成
  • 热备实现故障修复;允许损坏一块盘
  • 空间使用率 (n-1)/n
  • N(N≥3)块盘组成阵列,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N块盘上循环均衡存储
  • N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高

1.5、raid10

  • N (偶数,N>=4)。块盘两两镜像后,再组合成一个RAID 0
  • N/2磁盘利用率
  • N/2块盘同时写入,N块盘同时读取
  • 性能高、可靠性高

1.6、raid01

raid10和raid01,基本相似,顺序不同而已;

  • N (偶数,N>=4)。块盘两两镜像后,再组合成一个RAID 0
  • N/2磁盘利用率
  • N/2块盘同时写入,N块盘同时读取
  • 性能高、可靠性高

2.、raid的相关操作

实验:没法有真正的整列卡可以操作,因此都是软raid的实现

2.1、mdadm命令

作用:用于管理raid磁盘阵列信息;

语法:mdadm+选项+设备名

选项:

  • -C:创建新的阵列
  • -r:移除设备
  • -A激活磁盘阵列
  • -I:指定级别
  • -s:扫描配置文件
  • -x:指定磁盘的数量
  • -f:指定出现故障的硬盘
  • -c:指定阵列的块大小
  • -a:添加到磁盘阵列
  • -G:改变磁盘阵列大小
  • -V:详细
  • -S:停止磁盘
  • -D:表示查看信息

2.2、搭建raid0实验

本次实验使用一块硬盘,进行两个分区;

  • 然后使用分区充当硬盘来实现raid0

首先对硬盘进行分区

  • sdb1/2/3/4
#对sdb进行分区
[root@Node1 ~]# fdisk  /dev/sdb 
............#重复下面操作
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{
    
    K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set
.............
Command (m for help): p
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576    5  Extended

制作raid0磁盘阵列

#安装mdadm命令
[root@Node1 ~]# yum -y install mdadm

#使用mdadm命令执行阵列创建
	#-C:表示创建
	#-V:表示显示过程
	#-l:表示指定raid级别
	-n:指定硬盘个数
[root@Node1 ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2 
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
	#查看是否创建成功
[root@Node1 ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=Node1:0 UUID=cacdff6d:ac04df7d:c5b66f5b:a30c2b49
[root@Node1 ~]# lsblk | grep sdb
sdb               8:16   0   20G  0 disk  
├─sdb1            8:17   0    2G  0 part  
├─sdb2            8:18   0    2G  0 part  
└─sdb3            8:19   0    1K  0 part

#查看raid0的详细信息
[root@Node1 ~]# mdadm  -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Thu Jul  6 11:05:57 2023
        Raid Level : raid0
        Array Size : 4188160 (3.99 GiB 4.29 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent
..........

#到这里就可以创建文件系统并且挂载使用
[root@Node1 ~]# mkfs.ext4  /dev/md0 
...........
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

#创建目录-->然后挂在使用
[root@Node1 ~]# mkdir  /raid0
[root@Node1 ~]# mount /dev/md0 /raid0/
#创建文件就可以使用
[root@Node1 ~]# cd /raid0/
[root@Node1 raid0]# touch aa.txt
[root@Node1 raid0]# ls
aa.txt  lost+found

2.3、搭建raid1实验

搭建这个实验同样是使用一块硬盘,然后做几个分区

创建几个分区

#创建几个分区
[root@Node1 ~]# fdisk /dev/sdc
.......
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{
    
    K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set
............
Command (m for help): p
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     4196351     2097152   83  Linux
/dev/sdc2         4196352    10487807     3145728   83  Linux
/dev/sdc3        10487808    18876415     4194304   83  Linux
/dev/sdc4        18876416    41943039    11533312    5  Extended
/dev/sdc5        18878464    23072767     2097152   83  Linux
/dev/sdc6        23074816    25171967     1048576   83  Linux
/dev/sdc7        25174016    29368319     2097152   83  Linux

创建阵列

  • 创建raid1–>使用两块硬盘(/dev/sdc1 /dev/sdc2)
  • 添加一个热备盘(/dev/sdc3)
  • 模拟磁盘故障,自动顶替故障磁盘
  • 从raid1中故障盘移走
  • 添加新的磁盘 2+1
#创建raid1-->
	#选项说明
	-C:指定新建raid
	-v:显示过程
	-l:指定raid级别
	-n:指定硬盘数量
	-x:指定热备盘
[root@Node1 ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdc1 /dev/sdc2 /dev/sdc3 
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: size set to 2094080K
mdadm: largest drive (/dev/sdc3) exceeds size (2094080K) by more than 1%
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

#查看是否创建成功
[root@Node1 ~]# lsblk  | grep md1
│ └─md1           9:1    0    2G  0 raid1 
│ └─md1           9:1    0    2G  0 raid1 
│ └─md1           9:1    0    2G  0 raid1 
............
[root@Node1 ~]# mdadm  -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Jul  6 13:55:09 2023
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

#创建文件系统
[root@Node1 ~]# mkfs.xfs  /dev/md1

#然后创建目录-->挂载使用
[root@Node1 ~]# mkdir  /raid1
[root@Node1 ~]# mount /dev/md1  /raid1

准备好测试数据

  • 模拟损坏
#准备好测试数据
[root@Node1 ~]# cd /raid1
[root@Node1 ~]# cd /raid1
[root@Node1 raid1]# mkdir -p aa/bb/cc
[root@Node1 raid1]# touch aa.txt bb.txt
[root@Node1 raid1]# echo 1111111111 >> cc.txt
[root@Node1 raid1]# tree /raid1
/raid1
├── aa
│   └── bb
│       └── cc
├── aa.txt
├── bb.txt
└── cc.txt

#直接模拟损坏
[root@Node1 raid1]# mdadm  /dev/md1  -f /dev/sdc2
mdadm: set /dev/sdc2 faulty in /dev/md1

#然后在观察磁盘
[root@Node1 raid1]# mdadm -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Jul  6 13:55:09 2023
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent
...........#这里明显已经掉了一块,备用盘已经顶替上去了
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       2       8       35        1      active sync   /dev/sdc3

       1       8       34        -      faulty   /dev/sdc2

#把故障的硬盘移除掉
[root@Node1 raid1]# mdadm  -r /dev/md1 /dev/sdc2
mdadm: hot removed /dev/sdc2 from /dev/md1

#再次查看
[root@Node1 raid1]# mdadm  -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Jul  6 13:55:09 2023
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent
.................

#然后在添加一块硬盘给它
[root@Node1 raid1]# mdadm  -a /dev/md1 /dev/sdc5
mdadm: added /dev/sdc5

#再次查看
[root@Node1 raid1]# mdadm -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Jul  6 13:55:09 2023
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent
...............

到这里为止,实验就成功了

  • 创建raid1
    • 使用到-C -v -l -n -x等等参数
    • 如果使用mdadm -Dsv >> /etc/mdadm.conf:可以添加到配置文件
    • -D:这个是查看磁盘整列信息
  • 创建好了就要挂在使用
    • 优先创建文件系统
      • mkfs.xfs命令实现
  • 然后就模拟数据
    • 移除硬盘–>查看数据
      • mdadm /dev/md1 -f 指定的是哪一块硬盘损坏了
    • 移除故障硬盘,然后查看热备盘是否顶替上去
      • mdadm -r:移除故障硬盘
  • 最后就是添加新的硬盘
    • mdadm -a:添加新硬盘

2.4、搭建raid5实验

实验同样是使用一块硬盘,然后创建多个分区

对硬盘进行分区

#对硬盘进行分区
[root@Node1 ~]# fdisk  /dev/sdd 
.....
Command (m for help): N
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
Partition number (3,4, default 3): 
First sector (6293504-41943039, default 6293504): 
Using default value 6293504
Last sector, +sectors or +size{
    
    K,M,G} (6293504-41943039, default 41943039): +1G
Partition 3 of type Linux and of size 1 GiB is set
.................
Command (m for help): p

Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x8991c938

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048     2099199     1048576   83  Linux
/dev/sdd2         2099200     6293503     2097152   83  Linux
/dev/sdd3         6293504     8390655     1048576   83  Linux
/dev/sdd4         8390656    41943039    16776192    5  Extended
/dev/sdd5         8392704    12587007     2097152   83  Linux
/dev/sdd6        12589056    16783359     2097152   83  Linux
/dev/sdd7        16785408    20979711     2097152   83  Linux
/dev/sdd8        20981760    25176063     2097152   83  Linux

创建raid5阵列

#创建raid5
	#选项说明
	-C:新建
	-v:显示过程
	-l:指定raid级别
	-n:指定硬盘数
	-x:表示热备盘
	-c:指定块大小
[root@Node1 ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 -c 32 /dev/sdd{1..3} /dev/sdd6
................
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

#然后查看raid5的信息
[root@Node1 ~]# mdadm  -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Thu Jul  6 14:17:30 2023
        Raid Level : raid5
        Array Size : 2093056 (2044.00 MiB 2143.29 MB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent
...............

#可以停止raid5,然后重新激活raid5
	#停止raid5
[root@Node1 ~]# mdadm  -S /dev/md5
mdadm: stopped /dev/md5
	#查看状态
[root@Node1 ~]# mdadm  -D /dev/md5
mdadm: cannot open /dev/md5: No such file or directory

	#重新激活raid5
[root@Node1 ~]# mdadm  -As
mdadm: /dev/md/5 has been started with 3 drives and 1 spare.
mdadm: Found some drive for an array that is already active: /dev/md1
mdadm: giving up.
mdadm: Found some drive for an array that is already active: /dev/md1
mdadm: giving up.
	#然后在查看
[root@Node1 ~]# mdadm  -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Thu Jul  6 14:17:30 2023
        Raid Level : raid5
        Array Size : 2093056 (2044.00 MiB 2143.29 MB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

如果想要拓展raid5阵列

  • 使用到的参数就是-G
[root@Node1 ~]# mdadm  -G /dev/md5 -n 4 -c32
[root@Node1 ~]# mdadm  -Ds > /etc/mdadm.conf
	#然后在查看一下状态
[root@Node1 ~]# mdadm  -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Thu Jul  6 14:17:30 2023
        Raid Level : raid5
        Array Size : 3139584 (2.99 GiB 3.21 GB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent
.............

到这里实验结束

  • 停止阵列:-S选项
  • 激活阵列:-A
  • 拓展阵列:-G

猜你喜欢

转载自blog.csdn.net/Liang_GaRy/article/details/131067094