目录
一、RAID磁盘阵列(Redundant Array of Independent Disks)
一、RAID磁盘阵列(Redundant Array of Independent Disks)
称之为独立冗余磁盘阵列,它是把多块独立的物理硬盘按不同的方式组合成一个硬盘组(逻辑硬盘),提供比单个硬盘更高的存续性能和和提供设备数据备份技术。
组成磁盘列阵的不同方式,称之为RAID级别。
常用RAID级别:
RAID0、RAID1、RAID5、RAID6、RAID10
1.RAID0(条带化存储)
原理:将数据分散到两块硬盘里
①读写性能高
②没有数据备份功能
③最少两块硬盘,偶数快
2.RAID1(镜像存储)
①互为备份(镜像存储)
②写性能差一些,读性能一般
③高可用,坏一块不影响数据
④硬盘数量为偶数(最小两块)
3.RAID5
①硬盘数量>=3
②读性能高,写性能不高
③可以坏掉一块硬盘,不影响业务
④数据校验机制
4.RAID6
奇偶校验(parity check)是一种简单的错误检测和纠正技术。
①硬盘数>=4,最少4个硬盘
②奇偶校验,校验位
③读性能与RAID5相同,但写性能比RAID5更差
④理论上可坏掉两个硬盘,不影响业务
5.RAID10
RAID10可以看作RAID1与RAID0的结合体。有着双方共同的优点。(先做镜像再做条带)
①硬盘数>=4,硬盘数为偶数,磁盘利用率50%
②读性能高,写性能稍差
③理论上可以坏三个硬盘,允许两个机组中各坏一个
6.RAID总结
硬盘数 | 硬盘利用率 | 读性能 | 写性能 | 高可用 | 特点 | |
raid0 | N(偶数块) | N 100% | 高 | 高 | 无 | 追求最大容量和读写速度,坏一块硬盘,数据异常。 |
raid1 | N(偶数块) | N/2 50% | 低 | 低 | 中等 | 追求安全,只坏一块硬盘,不影像数据 |
raid5 | n>=3 | (n-1)/n | 高 | 低 | 高 | 成本控制前提下,追求最大的容量,速度,以及高可用,可以坏掉一块硬盘 |
raid6 | n>=4 | (n-2)/n | 高 | 低 | 很高 | 比raid的数据安全更高,但是写的速度比较低,可以坏掉两块硬盘 |
raid10 | N>=4(偶数块) | N/2 50% | 高 | 中等 | 中等 | 综合raid1与raid0,即有速度,也有高可用,每个基组可以坏掉一个,数据不受影响 |
RAID优点:
1、节省成本,旧称廉价磁盘冗余阵列
2、提高10(读写)能力,磁盘并读写
3、提高耐用性,磁盘冗余算法来实现
4、提供高可用
7、热备盘(全量备份数据)
1.相当RAID列阵的备份
2.当RAID阵列坏掉的数量超出RAID列阵最大限制,可加了热备盘,
3.热备盘可以临时顶替换掉的盘,相当于最后磁盘的一层保险。
二、通过逻辑卷创建RAID
1.先添加几个硬盘
2.lsblk查看硬盘情况
[root@localhost ~]# scan
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sdg 8:96 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /mnt
3.进行分区,fdisk
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x413c6bed 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
No free sectors available
命令(输入 m 获取帮助):q
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sdg 8:96 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /mnt
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):5G
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
└─sdb2 8:18 0 5G 0 part
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sdg 8:96 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /mnt
[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x91f8db19 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x0a7fadd0 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sde
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xbcb9db68 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdf
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xe07e2954 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdg
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xc0cad64a 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
└─sdb2 8:18 0 5G 0 part
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 5G 0 part
└─sdc2 8:34 0 5G 0 part
sdd 8:48 0 20G 0 disk
├─sdd1 8:49 0 5G 0 part
└─sdd2 8:50 0 5G 0 part
sde 8:64 0 20G 0 disk
├─sde1 8:65 0 5G 0 part
└─sde2 8:66 0 5G 0 part
sdf 8:80 0 20G 0 disk
├─sdf1 8:81 0 5G 0 part
└─sdf2 8:82 0 5G 0 part
sdg 8:96 0 20G 0 disk
├─sdg1 8:97 0 5G 0 part
└─sdg2 8:98 0 5G 0 part
sr0 11:0 1 4.2G 0 rom /mnt
4.创建物理卷pvcreate
5.搭建卷组、逻辑卷
[root@localhost ~]# vgdisplay ky29
--- Volume group ---
VG Name ky29
System ID
Format lvm2
Metadata Areas 8
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 0
Max PV 0
Cur PV 8
Act PV 8
VG Size <39.97 GiB
PE Size 4.00 MiB
Total PE 10232
Alloc PE / Size 8960 / 35.00 GiB
Free PE / Size 1272 / <4.97 GiB
VG UUID 3V9BMV-hzXj-dmmJ-2WO6-yuuU-XuAc-Ns71Pr
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
│ └─ky29-zkr1 253:2 0 10G 0 lvm
└─sdb2 8:18 0 5G 0 part
└─ky29-zkr1 253:2 0 10G 0 lvm
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 5G 0 part
│ ├─ky29-zkr1 253:2 0 10G 0 lvm
│ ├─ky29-zkr2 253:3 0 10G 0 lvm
│ ├─ky29-zkr3 253:4 0 10G 0 lvm
│ └─ky29-zkr4 253:5 0 5G 0 lvm
└─sdc2 8:34 0 5G 0 part
└─ky29-zkr2 253:3 0 10G 0 lvm
sdd 8:48 0 20G 0 disk
├─sdd1 8:49 0 5G 0 part
│ └─ky29-zkr2 253:3 0 10G 0 lvm
└─sdd2 8:50 0 5G 0 part
└─ky29-zkr3 253:4 0 10G 0 lvm
sde 8:64 0 20G 0 disk
├─sde1 8:65 0 5G 0 part
│ └─ky29-zkr3 253:4 0 10G 0 lvm
└─sde2 8:66 0 5G 0 part
└─ky29-zkr4 253:5 0 5G 0 lvm
sdf 8:80 0 20G 0 disk
├─sdf1 8:81 0 5G 0 part
└─sdf2 8:82 0 5G 0 part
sdg 8:96 0 20G 0 disk
├─sdg1 8:97 0 5G 0 part
└─sdg2 8:98 0 5G 0 part
sr0 11:0 1 4.2G 0 rom /mnt
6.搭建RAID磁盘列阵
[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/ky29/zkr[1-3] -x1 /dev/ky29/zkr4
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 5234688K
mdadm: largest drive (/dev/ky29/zkr1) exceeds size (5234688K) by more than 1%
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue May 9 16:38:18 2023
Raid Level : raid5
Array Size : 10469376 (9.98 GiB 10.72 GB)
Used Dev Size : 5234688 (4.99 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue May 9 16:38:45 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 : 3dabadfd:0327491d:d8c52c25:c9dc1006
Events : 18
Number Major Minor RaidDevice State
0 253 2 0 active sync /dev/dm-2
1 253 3 1 active sync /dev/dm-3
4 253 4 2 active sync /dev/dm-4
3 253 5 - spare /dev/dm-5
7.格式化文件,挂载
[root@localhost ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5 isize=512 agcount=16, agsize=163456 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2615296, 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 /
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@localhost /]# mkdir data
[root@localhost /]# mount /dev/md5 /data/
8.去除其中的磁盘
[root@localhost /]# mount /dev/md5 /data/
[root@localhost /]# mdadm /dev/md5 -f /dev/ky29/zkr1
mdadm: set /dev/ky29/zkr1 faulty in /dev/md5
[root@localhost /]# mdadm /dev/md5 -f /dev/ky29/zkr2
mdadm: set /dev/ky29/zkr2 faulty in /dev/md5
[root@localhost /]# mdadm /dev/md5 -f /dev/ky29/zkr3
mdadm: set /dev/ky29/zkr3 faulty in /dev/md5
[root@localhost /]# mdadm -D /dev//md5
/dev//md5:
Version : 1.2
Creation Time : Tue May 9 16:38:18 2023
Raid Level : raid5
Array Size : 10469376 (9.98 GiB 10.72 GB)
Used Dev Size : 5234688 (4.99 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue May 9 16:56:48 2023
State : clean, FAILED
Active Devices : 0
Working Devices : 1
Failed Devices : 3
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Number Major Minor RaidDevice State
- 0 0 0 removed
- 0 0 1 removed
- 0 0 2 removed
0 253 2 - faulty /dev/dm-2
1 253 3 - faulty /dev/dm-3
3 253 5 - spare /dev/dm-5
4 253 4 - faulty /dev/dm-4
建立几个文件检测一下已无法建立