raid 搭建

RAID几种常见的类型

RAID类型

最低磁盘个数

空间利用率

各自的优缺点

级 别

说 明

RAID0

条带卷

2+

100%

读写速度快,不容错

RAID1

镜像卷

2

50%

读写速度一般,容错

RAID5

带奇偶校验的条带卷

3+

(n-1)/n

读写速度快,容错,允许坏一块盘

RAID10

RAID1的安全+RAID0的高速

4

50%

读写速度快,容错

RAID基本思想:把好几块硬盘通过一定组合方式把它组合起来,成为一个新的硬盘阵列组,从而使它能够达到高性能硬盘的要求

RAID-0-1-5-10搭建及使用-删除RAID及注意事项

RAID的实现方式

面试题:我们做硬件RAID,是在装系统前还是之后?

答:先做阵列才装系统 ,一般服务器启动时,有显示进入配置Riad的提示。

硬RAID:需要RAID卡,我们的磁盘是接在RAID卡的,由它统一管理和控制。数据也由它来进行分配和维护;它有自己的cpu,处理速度快

软RAID:通过操作系统实现

Mdadm命令详解

Linux内核中有一个md(multiple devices)模块在底层管理RAID设备,它会在应用层给我们提供一个应用程序的工具mdadm ,mdadm是linux下用于创建和管理软件RAID的命令。

mdadm命令常见参数解释:

参数

作用

-a

检测设备名称

添加磁盘

-n

指定设备数量

-l

指定RAID级别                                                              

-C

创建

-v

显示过程

-f

模拟设备损坏

-r

移除设备

-Q

查看摘要信息

-D

查看详细信息

-S

停止RAID磁盘阵列

互动: raid5需要3块硬盘。  那么使用4块硬盘,可以做raid5吗?

可以的

实战搭建raid10阵列

新添加4块硬盘

raid 搭建

第一步:查看磁盘

[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde

第二步:下载mdadm

[root@ken ~]# yum install mdadm -y

第三步:创建raid10阵列

raid 搭建
[root@ken ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd{b,c,d,e}
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
raid 搭建

第四步:格式磁盘阵列为ext4

raid 搭建
[root@ken ~]# mkfs.ext4 /dev/md0
mapper/ mcelog md0 mem midi mqueue/
[root@ken ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10477056 blocks
523852 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624 Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
raid 搭建

第五步:挂载

raid 搭建
[root@ken ~]# mkdir /raid10
[root@ken ~]# mount /dev/md0 /raid10
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 224M 0 224M 0% /dev
tmpfs 236M 0 236M 0% /dev/shm
tmpfs 236M 5.6M 230M 3% /run
tmpfs 236M 0 236M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 48M 0 48M 0% /run/user/0
/dev/md0 40G 49M 38G 1% /raid10
raid 搭建

第六步:查看/dev/md0的详细信息

raid 搭建
[root@ken ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 28 19:08:25 2019
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent Update Time : Thu Feb 28 19:11:41 2019
State : clean, resyncing
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0 Layout : near=2
Chunk Size : 512K Consistency Policy : resync Resync Status : 96% complete Name : ken:0 (local to host ken)
UUID : c5df1175:a6b1ad23:f3d7e80b:6b56fe98
Events : 26 Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
raid 搭建

第七步:写入到配置文件中

[root@ken ~]# echo "/dev/md0 /raid10 ext4 defaults 0 0" >> /etc/fstab

损坏磁盘阵列及修复

之所以在生产环境中部署RAID 10磁盘阵列,是为了提高硬盘存储设备的读写速度及数据的安全性,但由于我们的硬盘设备是在虚拟机中模拟出来的,因此对读写速度的改善可能并不直观。

在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm命令将其移除,然后查看RAID磁盘阵列的状态,可以发现状态已经改变。

第一步:模拟设备损坏

raid 搭建
[root@ken ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@ken ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 28 19:08:25 2019
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent Update Time : Thu Feb 28 19:15:59 2019
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0 Layout : near=2
Chunk Size : 512K Consistency Policy : resync Name : ken:0 (local to host ken)
UUID : c5df1175:a6b1ad23:f3d7e80b:6b56fe98
Events : 30 Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde 0 8 16 - faulty /dev/sdb
raid 搭建

第二步:添加新的磁盘

在RAID 10级别的磁盘阵列中,当RAID 1磁盘阵列中存在一个故障盘时并不影响RAID 10磁盘阵列的使用。当购买了新的硬盘设备后再使用mdadm命令来予以替换即可,在此期间我们可以在/RAID目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。

raid 搭建
[root@ken ~]# reboot
[root@ken ~]# umount /raid10
[root@ken ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb
[root@ken ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 28 19:08:25 2019
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent Update Time : Thu Feb 28 19:19:14 2019
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1 Layout : near=2
Chunk Size : 512K Consistency Policy : resync Rebuild Status : 7% complete #这里显示重建进度 Name : ken:0 (local to host ken)
UUID : c5df1175:a6b1ad23:f3d7e80b:6b56fe98
Events : 35 Number Major Minor RaidDevice State
4 8 16 0 spare rebuilding /dev/sdb #rebuilding重建中
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
raid 搭建

再次查看发现已经构建完毕

raid 搭建
[root@ken ~]# mdadm -D  /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 28 19:08:25 2019
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent Update Time : Thu Feb 28 19:20:52 2019
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0 Layout : near=2
Chunk Size : 512K Consistency Policy : resync Name : ken:0 (local to host ken)
UUID : c5df1175:a6b1ad23:f3d7e80b:6b56fe98
Events : 51 Number Major Minor RaidDevice State
4 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
raid 搭建

实战搭建raid5阵列+备份盘

为了避免多个实验之间相互发生冲突,我们需要保证每个实验的相对独立性,为此需要大家自行将虚拟机还原到初始状态。另外,由于刚才已经演示了RAID 10磁盘阵列的部署方法,我们现在来看一下RAID 5的部署效果。部署RAID 5磁盘阵列时,至少需要用到3块硬盘,还需要再加一块备份硬盘,所以总计需要在虚拟机中模拟4块硬盘设备。

raid 搭建

第一步:查看磁盘

[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde

第二步:创建RAID5阵列

raid 搭建
[root@ken ~]# mdadm  -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd{b,c,d,e}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
raid 搭建

第三步:格式化为ext4

raid 搭建
[root@ken ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10477056 blocks
523852 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624 Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
raid 搭建

第四步:挂载

raid 搭建
[root@ken ~]# mount /dev/md0 /raid5
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/md0 40G 49M 38G 1% /raid5
raid 搭建

第五步:查看阵列信息

可以发现有一个备份盘/dev/sde

raid 搭建
[root@ken ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 28 19:35:10 2019
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent Update Time : Thu Feb 28 19:37:11 2019
State : active
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1 Layout : left-symmetric
Chunk Size : 512K Consistency Policy : resync Name : ken:0 (local to host ken)
UUID : b693fe72:4452bd3f:4d995779:ee33bc77
Events : 76 Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd 3 8 64 - spare /dev/sde
raid 搭建

第六步:模拟/dev/sdb磁盘损坏

可以发现/dev/sde备份盘立即开始构建

raid 搭建
[root@ken ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@ken ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 28 19:35:10 2019
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent Update Time : Thu Feb 28 19:38:41 2019
State : active, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1 Layout : left-symmetric
Chunk Size : 512K Consistency Policy : resync Rebuild Status : 2% complete Name : ken:0 (local to host ken)
UUID : b693fe72:4452bd3f:4d995779:ee33bc77
Events : 91 Number Major Minor RaidDevice State
3 8 64 0 spare rebuilding /dev/sde
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd 0 8 16 - faulty /dev/sdb
raid 搭建
上一篇:Mysql存储过程包含事务,且传入sql数据执行


下一篇:【BZOJ2588】Count On a Tree(主席树)