本节所讲内容
14.1 RAID 概念-企业级 RAID 0.1.5. 10 的工作原理
14.2 RAID-0-1-5-10 搭建以及使用-删除RAID及注意事项
14.3 实战:企业中硬件RAID 5 的配置
RAID 有三个关键技术
镜像 提供了数据的安全性
chunk 条带 (块大小也可以说是条带的粒度) 他的存在就是为了提供I/O 提供了数据并发性
数据的校验,提供了数据的安全
Raid 特点
答: 先做阵列才装系统,一般服务器启动时,有显示进入配置Raid 的提示,比如:按下CTRL+L/H/M进入raid 界面
互动:raid 需要3块硬盘,那么使用4块硬盘,可以做raid5 吗?
可以的
试验环境:新添加11块盘,每块磁盘的作用如下
14。2.2 创建RAID0
试验环境:
[centos@xueshen65 ~]$ ls /dev/sd*
/dev/sda /dev/sda3 /dev/sdd /dev/sdg /dev/sdj /dev/sdm /dev/sdp
/dev/sda1 /dev/sdb /dev/sde /dev/sdh /dev/sdk /dev/sdn /dev/sdq
/dev/sda2 /dev/sdc /dev/sdf /dev/sdi /dev/sdl /dev/sdo
2 [centos@xueshen65 ~]$ mdadm -C -v/dev/md0 -l 0 -n 2/dev/sdb /dev/sdc
[root@xueshen65 ~]# mdadm -C -v /dev/md1 -l 0 -n 2 /dev/sdb /dev/sdc
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
3 root@xueshen65 ~]# mdadm -Ds
ARRAY /dev/md1 metadata=1.2 name=xueshen65.cn:1 UUID=1e525462:c5e9afed:3208fb52:c246f7c3
[root@xueshen65 ~]# mdadm -Dsv
ARRAY /dev/md1 level=raid0 num-devices=2 metadata=1.2 name=xueshen65.cn:1 UUID=1e525462:c5e9afed:3208fb52:c246f7c3
devices=/dev/sdb,/dev/sdc
4 root@xueshen65 ~]# blkid /dev/md1
5 [root@xueshen65 ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Fri Apr 3 15:01:54 2020
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
6 root@xueshen65 ~]# mdadm -Dsv > /etc/mdadm.conf 生成配置文件
对创建的raid 0 进行文件创建并挂载
对md1 进行格式化
1 [root@xueshen65 ~]# mkfs.xfs /dev/md1
meta-data=/dev/md1 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data
2 [root@xueshen65 ~]# mkdir /raid0
3 [root@xueshen65 ~]# mount /dev/md1 /raid0/
[root@xueshen65 ~]# df -h
有40个G
[root@xueshen65 ~]# echo aaaa /raid0/a.txt
aaaa /raid0/a.txt
4 [root@xueshen65 ~]# blkid /dev/md1
/dev/md1: UUID="71df981c-eb64-42a1-b5b2-26285e9dc179" TYPE="xfs"
[root@xueshen65 ~]# ^C
[root@xueshen65 ~]# echo "UUID=71df981c-eb64-42a1-b5b2-26285e9dc179 /raid0 xfs defaults 0 0">> /etc/fstab
5 root umount /raid0/
6 [root@xueshen65 ~]# mount -a
[root@xueshen65 ~]# ls /raid0/
[root@xueshen65 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 10G 5.2G 4.9G 52% /
devtmpfs 975M 0 975M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 197M 142M 56M 72% /boot
tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs 199M 36K 199M 1% /run/user/1000
tmpfs 199M 0 199M 0% /run/user/0
/dev/md1 40G 33M 40G 1% /raid0
[root@xueshen65 ~]# umount /raid0/
[root@xueshen65 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 10G 5.2G 4.9G 52% /
devtmpfs 975M 0 975M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 197M 142M 56M 72% /boot
tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs 199M 36K 199M 1% /run/user/1000
tmpfs 199M 0 199M 0% /run/user/0
[root@xueshen65 ~]# mount -a
[root@xueshen65 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 10G 5.2G 4.9G 52% /
devtmpfs 975M 0 975M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 197M 142M 56M 72% /boot
tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs 199M 36K 199M 1% /run/user/1000
tmpfs 199M 0 199M 0% /run/user/0
/dev/md1 40G 33M 40G 1% /raid0
[root@xueshen65 ~]# cp /etc/passwd /raid0/a.txt
[root@xueshen65 ~]# umount /raid0/
[root@xueshen65 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 10G 5.2G 4.9G 52% /
devtmpfs 975M 0 975M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 197M 142M 56M 72% /boot
tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs 199M 36K 199M 1% /run/user/1000
tmpfs 199M 0 199M 0% /run/user/0
[root@xueshen65 ~]# mount -a
[root@xueshen65 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 10G 5.2G 4.9G 52% /
devtmpfs 975M 0 975M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 197M 142M 56M 72% /boot
tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs 199M 36K 199M 1% /run/user/1000
tmpfs 199M 0 199M 0% /run/user/0
/dev/md1 40G 33M 40G 1% /raid0
[root@xueshen65 ~]# ls /raid0/
a.txt
1) 创建RAID1
2) 添加1个热备盘
3) 模拟磁盘故障,自动顶替故障盘
4) 从raid1 中移除故障盘
1 mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sd[d,e,f]
-C 创建
-v 显示详细信息
-n 几块磁盘
-x 热备份
2 [root@xueshen65 ~]# mdadm -Dsv > /etc/mdadm.conf
[root@xueshen65 ~]# mdadm -D /dev/md11
/dev/md11:
Version : 1.2
Creation Time : Fri Apr 3 15:58:19 2020
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
格式化 : mkfs.xfs /dev/md11
[root@xueshen65 ~]# mkdir /raid11
5 ~]# mount /dev/md11 /raid11
[root@xueshen65 ~]# cp /etc/passwd /raid11/
[root@xueshen65 ~]# cp -r /boot/grub /raid11/
下面,模拟TAID1 中数据盘/dev/sde 出现故障,观察/dev/sdf 备用盘能否自动顶替故障盘
1[root@xueshen65 ~]# mdadm /dev/md2 -f /dev/sde
2 mdadm -D /dev/md11
3 查看数据有没有丢
ls /raid1/ 数据正常,没有丢失
重要的数据如: 数据库; 系统盘(把系统安装到raid的md1 设备上,可以做md1做分区)
移除损害的设备:
mdadm -r /dev/md11 /dev/sde
[root@xueshen65 ~]# mdadm -D /dev/md11 检查一下有几块盘
也可以移回来
xueshen65 ~]# mdadm -a /dev/md11 /dev/sde 重新加载
mdadm: added /dev/sde
14.2.4 创建RAID5
试验环境
14.2.4.1 创建RAID-5
1 [root@xueshen65 ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 -c32 /dev/sd{g,h,i,j}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
2 oot@xueshen65 ~]# mdadm -D /dev/md5
14.2.4.2 停止MD5 阵列
3 保存配置文件 [root@xueshen65 ~]# mdadm -Dsv > /etc/mdadm.conf # 一定要先保存配置文件
2 oot@xueshen65 ~]# mdadm -D /dev/md5
mdadm -S /dev/md5 #
4 [root@xueshen65 ~]# mdadm -S /dev/md5
mdadm: stopped /dev/md5
root@xueshen65 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdi[4] sdj[3](S) sdh[1] sdg[0]
41908224 blocks super 1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU]
md11 : active raid1 sde[3](S) sdf[2] sdd[0]
20954112 blocks super 1.2 [2/2] [UU
md1 : active raid0 sdc[1] sdb[0]
41908224 blocks super 1.2 512k chunk
unused devices:
然后再次查看就没有md5 的信息了
cat /proc/mdstat
激活md5
[root@xueshen65 ~]# mdadm -As
mdadm: /dev/md5 has been started with 3 drives and 1 spare.
14.2.4.4 扩展raid5 磁盘阵列
将热备盘增加到md5 , 使用md5 中可以使用的磁盘数量为4块
root@xueshen65 ~]# mdadm -G /dev/md5 -n 4 -c 32
然后查看 发现多处一块盘来
mdadm -Dsv > /etc/mdadm.conf 保存配置文件
[root@xueshen65 ~]# mdadm -D /dev/md5 查看状态
Number Major Minor RaidDevice State
0 8 96 0 active sync /dev/sdg
1 8 112 1 active sync /dev/sdh
4 8 128 2 active sync /dev/sdi
3 8 144 3 active sync /dev/sdj
等一会儿,等所有数据同步完成后,查看md5 空间大小
Array Size : 62862336 (59.95 GiB 64.37 GB) # 空间以及变大
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
14.2.5 创建RAID10
试验环境
先做4个分区
fdisk /dev/sdk
[root@xueshen65 ~]# fdisk /dev/sdk
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x336fbde6 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):p
磁盘 /dev/sdk:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x336fbde6
设备 Boot Start End Blocks Id System
命令(输入 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):+1G
Last 扇区, +扇区 or +size{K,M,G} (2097152-41943039,默认为 41943039):^C
[root@xueshen65 ~]# fdisk /dev/sdk
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xe0cded1b 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):p
磁盘 /dev/sdk:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe0cded1b
设备 Boot Start End Blocks Id System
命令(输入 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):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (2099200-41943039,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-41943039,默认为 41943039):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G
分区 3 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
已选择分区 4
起始 扇区 (6293504-41943039,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+1G
分区 4 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
2 [root@xueshen65 ~]# ls /dev/sdk*
/dev/sdk /dev/sdk1 /dev/sdk2 /dev/sdk3 /dev/sdk4
3
[root@xueshen65 ~]# mdadm -C -v /dev/md10 -l 10 -n 4 /dev/sdk[1-4]
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 1046528K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started
[root@xueshen65 ~]# mdadm -D /dev/md10 查看状态
14.2.6 删除RAID所有信息以及注意事项
用卸载 umount /raid11
首先卸载mdadm -Ss
root@xueshen65 ~]# mdadm -Ss
[root@xueshen65 ~]# rm -rf /etc/mdadm.conf
[root@xueshen65 ~]# mdadm --zero-superblock /dev/sdb
[root@xueshen65 ~]# mdadm --zero-superblock /dev/sdc 删除文件中的超级块
[root@xueshen65 ~]#