理论+实验服务器硬件即RAID配置实战
[TOC]
十年专注成都网站制作,企业网站设计,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于企业网站设计,高端网页制作,对成都岗亭等多个领域,拥有丰富的网站营销经验。
前言:
磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中
一:服务器硬件
常见的服务器硬件有:cpu,内存,网卡,硬盘,远程管理口,阵列卡,电源,主板
cpu一般是双芯的,即安装两个cpu
内存:支持内存容量很高,基本上都在4TB
硬盘:通常都会对硬盘做raid,来保证数据的高效传输和数据安全可靠
二:RAID磁盘阵列详解
1)RAID磁盘阵列介绍
- RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列
- RAID是吧多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能额和提供数据备份技术
- 组成磁盘阵列的不同方式称为RAID级别(RAID Levels),常用的RAID级别有以下几种:RAID0,RAID1,RAID5,RAID6,RAID1+0等
2) RAID 0磁盘阵列介绍
RAID 0连续以位或字节为单位分个数据,并行同时读/写于多个磁盘上,因此具有很高的数据传输率,但他没有数据冗余(即没有备份),因此并不能算是真正的RAID结构
RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,可靠性低而且其中的一个磁盘失效将影响到所有数据
RAID 0不能应用于数据安全性要求高的场合,常应用于多读写的场景
RAID 0 在windows中叫做带区卷(linux叫条带券),
容量总和是两个磁盘相加
3)RAID 1磁盘阵列介绍
- 通过磁盘数据镜像实现数据冗余(即备份),在成堆的独立磁盘上产生互为备份的数据
- 在原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能;写入速度不变,容量只有磁盘(偶数)总容量的二分之一,因此成本最高,另外一半用来备份数据,可靠性高
- RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据
4)RAID 5磁盘阵列介绍
- N(N>=3)块盘组成阵列,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N块盘上循环均衡存储
- N块盘同时读写,读性能很高,但由于有校验机制的问题,即校验数据的存在,写性能相对不高
- 容量为(N-1)/N*总磁盘容量
- 可靠性高,允许坏1块盘,不影响所有数据,把坏的磁盘换下来,可以利用校验数据来恢复丢失数据
5)RAID 6磁盘阵列介绍
- N(N>=4)块盘组成阵列,容量为(N-2)/N*磁盘总容量
- 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法(相当于二元一次方程),即时两块磁盘同时失效也不会影响数据的使用
- 相对于RAID 5有更大的写损失,因此写性能相对较差
- 线网上面用RAID 6 的比较多
6) RAID 1+0磁盘阵列介绍
N(偶数,N>=4)块盘两两镜像后,再组合成一个RAID 0
- 容量为N/2容量
- N/2块盘同时写入,N块盘同时读取
- 性能高,可靠性高
- 也是线网中常用的一种磁盘阵列
三:RAID阵列卡介绍
3.1阵列卡
阵列卡就是用来实现RAID功能的板卡,通常是由I/O(imput输入/output输出)处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的
不同的RAID卡支持的RAID功能不同,例如支持RAID0、RAID1、RAID5、RAID10等
RAID卡的接口类型
IDE接口、SCSI接口、SATA接口和SAS接口
3.2 阵列卡的缓存
缓存(Csche)是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,在由缓存和外边数据总线交换数据
缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素
不同的RAID卡出厂时配备的内存容量不同,一半为几兆到数百兆容量不等
四:构建软RAID磁盘阵列
案例:构建软RAID磁盘阵列
需求描述:
- 为Linux服务器添加4块SCSI硬盘
- 使用mdadm软件包,构建RAID磁盘阵列,提高磁盘存储的性能和可靠性
思路:
- 安装mdadm
- 准备用于RAID阵列的分区
- 为Linux服务器添加4块SCSI硬盘,并使用fdisk工具各划分出一块2GB的分区,依次为/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1
- 将其类型ID更改为“fd'”,对应为“Linux raid autodetect” ,表示支持用于RAID磁盘阵列
- 创建RAID设备并建立文件系统
- 挂载并使用文件系统
[root@localhost ~]# rpm -q mdadm 查看madadam工具是否已安装
mdadm-4.0-5.el7.x86_64 显示安装
接下来开始配置硬盘
当前磁盘情况
[root@localhost ~]# fdisk -l 查看所有磁盘信息
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a55e9
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 12584959 6291456 83 Linux
/dev/sda2 12584960 79710207 33562624 8e Linux LVM
磁盘 /dev/mapper/centos-root:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-home:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# init 6 重启系统
[root@localhost ~]# fdisk -l 重新查看所有磁盘信息,发现新增的四块磁盘
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
开始依次给每块磁盘进行分区
[root@localhost ~]# fdisk /dev/sdb 创建分区,
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x2ed1de1d 创建新的 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 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):l
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2ed1de1d
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
用fdisk /dev/sdc,fidsk /dev/sdd,fdisk /dev/sde命令去配置另外三块磁盘,
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
设备 Boot Start End Blocks Id System
/dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect
设备 Boot Start End Blocks Id System
/dev/sde1 2048 41943039 20970496 fd Linux raid autodetect
接下来就可以以这四块磁盘为素材,去配置raid,先配置个raid
可以先试一下raid0条带卷,也叫做跨区卷
[root@localhost ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1
#/dev/md0就是raid0名字,-C 创建,-v显示过程 -l确定raid等级,-n确定几块盘,
还有一个备用选项-x
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm -D /dev/md0 #mdadm -D 显示raid信息
/dev/md0:
Version : 1.2
Creation Time : Mon Nov 4 12:49:59 2019
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Nov 4 12:49:59 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : d531230c:c4e71b72:00f695a1:f9ce404c
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
[root@localhost ~]# cat /proc/mdstat #还可以从/proc硬件信息目录中查看
raid对应的文件/proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdc1[1] sdb1[0]
41908224 blocks super 1.2 512k chunks
raid0 卷制作完毕,接下来格式化之后就可以挂载使用
[root@localhost ~]# mkfs.xfs /dev/md0 #格式化/dev/md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkdir /md0 #创建挂载点目录
[root@localhost ~]# mount /dev/md0 /md0 #挂载
[root@localhost ~]# df -Th #查看
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 20G 3.3G 17G 17% /
devtmpfs devtmpfs 977M 0 977M 0% /dev
tmpfs tmpfs 993M 0 993M 0% /dev/shm
tmpfs tmpfs 993M 9.0M 984M 1% /run
tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 xfs 6.0G 161M 5.9G 3% /boot
/dev/mapper/centos-home xfs 10G 50M 10G 1% /home
tmpfs tmpfs 199M 12K 199M 1% /run/user/42
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/md0 xfs 40G 33M 40G 1% /md0 #已挂载
接下来取消挂载,停止md0
[root@localhost dev]# umount /md0
[root@localhost dev]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
[root@localhost dev]# cat /proc/mdstat
Personalities : [raid0]
unused devices:
[root@localhost dev]# ls 查看发现没有md0
agpgart log sdc tty18 tty45 urandom
autofs loop-control sdc1 tty19 tty46 usbmon0
block lp0 sdd tty2 tty47 usbmon1
bsg lp1 sdd1 tty20 tty48 usbmon2
btrfs-control lp2 sde tty21 tty49 vcs
bus lp3 sde1 tty22 tty5 vcs1
cdrom mapper sg0 tty23 tty50 vcs2
centos mcelog sg1 tty24 tty51 vcs3
char mem sg2 tty25 tty52 vcs4
console mqueue sg3 tty26 tty53 vcs5
core net sg4 tty27 tty54 vcs6
cpu network_latency sg5 tty28 tty55 vcsa
cpu_dma_latency network_throughput shm tty29 tty56 vcsa1
crash null snapshot tty3 tty57 vcsa2
disk nvram snd tty30 tty58 vcsa3
dm-0 oldmem sr0 tty31 tty59 vcsa4
dm-1 port stderr tty32 tty6 vcsa5
dm-2 ppp stdin tty33 tty60 vcsa6
dri ptmx stdout tty34 tty61 vfio
fb0 pts tty tty35 tty62 vga_arbiter
fd random tty0 tty36 tty63 vhci
full raw tty1 tty37 tty7 vhost-net
fuse rfkill tty10 tty38 tty8 vmci
hidraw0 rtc tty11 tty39 tty9 vsock
hpet rtc0 tty12 tty4 ttyS0 zero
hugepages sda tty13 tty40 ttyS1
hwrng sda1 tty14 tty41 ttyS2
initctl sda2 tty15 tty42 ttyS3
input sdb tty16 tty43 uhid
kmsg sdb1 tty17 tty44 uinput
开始制作raid1,rai1d俗称镜像卷
[root@localhost dev]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1
#-C创建 -v显示详细过程 要创建的raid名称 -l raid等级 -n磁盘个数 磁盘名称
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=2 ctime=Mon Nov 4 12:49:59 2019
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: /dev/sdc1 appears to be part of a raid array:
level=raid0 devices=2 ctime=Mon Nov 4 12:49:59 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost dev]# cat /proc/mdstat 查看mdstat状态
Personalities : [raid0] [raid1]
md1 : active raid1 sdc1[1] sdb1[0]
20954112 blocks super 1.2 [2/2] [UU]
[=====>...............] resync = 26.7% (5601408/20954112) finish=1.2min speed=207459K/sec #正在同步
unused devices:
[root@localhost dev]# mdadm -D /dev/md1 #查看详细信息
/dev/md1:
Version : 1.2
Creation Time : Mon Nov 4 13:41:55 2019
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Nov 4 13:43:39 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : d873e511:0bb8274c:97a98d9f:76313fc8
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
[root@localhost dev]# mkfs.xfs /dev/md1 #格式化/dev/md1
mkfs.xfs: /dev/md1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
#反馈说md1中存在xfs系统,是否要强行执行-f格式化,原因自己分析一波,我就不解释了
[root@localhost dev]# mkfs.xfs -f /dev/md1 #强制执行
meta-data=/dev/md1 isize=512 agcount=4, agsize=1309632 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5238528, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost dev]# mount /dev/md1 /md0 #挂载到之前设置的挂载点/md0
[root@localhost dev]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 20G 3.3G 17G 17% /
devtmpfs devtmpfs 977M 0 977M 0% /dev
tmpfs tmpfs 993M 0 993M 0% /dev/shm
tmpfs tmpfs 993M 9.0M 984M 1% /run
tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 xfs 6.0G 161M 5.9G 3% /boot
/dev/mapper/centos-home xfs 10G 50M 10G 1% /home
tmpfs tmpfs 199M 12K 199M 1% /run/user/42
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/md1 xfs 20G 33M 20G 1% /md0
还有-x 指定备用磁盘,这里操作演示一波
[root@localhost dev]# umount /md0 取消挂载
[root@localhost dev]# mdadm -S /dev/md1 停止raid1
mdadm: stopped /dev/md1
[root@localhost dev]# mdadm -C /dev/md2 -l1 -n2 /dev/sd[d-e]1 -x1 /dev/sdb1
#重新创建一个raid1,-x1,指定一块备用磁盘
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: /dev/sdb1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Mon Nov 4 13:41:55 2019
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
[root@localhost dev]# cat /proc/mdstat #查看信息状态
Personalities : [raid0] [raid1]
md2 : active raid1 sdb1[2](S) sde1[1] sdd1[0]
20954112 blocks super 1.2 [2/2] [UU]
[====>................] resync = 21.0% (4400896/20954112) finish=1.3min speed=209566K/sec
unused devices:
[root@localhost dev]# mdadm -D /dev/md2 #第二种方法查看
/dev/md2:
Version : 1.2
Creation Time : Mon Nov 4 14:27:51 2019
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Mon Nov 4 14:28:49 2019
State : clean, resyncing
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync
Resync Status : 56% complete
Name : localhost.localdomain:2 (local to host localhost.localdomain)
UUID : 774b6bee:46ab3939:243f63b7:fdc1d58d
Events : 9
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1
2 8 17 - spare /dev/sdb1 #这一块就是备用盘
用mdadm中的-f去模拟演示毁掉一块盘
[root@localhost dev]# mdadm -f /dev/md2 /dev/sdd1 毁掉md2中的sdd1
mdadm: set /dev/sdd1 faulty in /dev/md2
[root@localhost dev]# mdadm -D /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Nov 4 14:27:51 2019
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Mon Nov 4 14:30:11 2019
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 1
Spare Devices : 1
Consistency Policy : resync
Rebuild Status : 15% complete
Name : localhost.localdomain:2 (local to host localhost.localdomain)
UUID : 774b6bee:46ab3939:243f63b7:fdc1d58d
Events : 21
Number Major Minor RaidDevice State
2 8 17 0 spare rebuilding /dev/sdb1 #被顶替上去
1 8 65 1 active sync /dev/sde1
0 8 49 - faulty /dev/sdd1 #被换下来
再实验一个raid5,从案例的需求可以发现,可以为其配置raid6,或者raid1+0,这里还是先顺序把raid5演练一波
[root@localhost dev]# mdadm -S /dev/md2 #停止md2
mdadm: stopped /dev/md2
[root@localhost dev]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
#-C创建 -v显示详细过程 raid名称 -l raid等级 -n 组成raid磁盘个数 组成raid的磁盘名称
-x 备用磁盘
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Mon Nov 4 14:27:51 2019
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Mon Nov 4 13:41:55 2019
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Mon Nov 4 14:27:51 2019
mdadm: /dev/sde1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Mon Nov 4 14:27:51 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost dev]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Mon Nov 4 14:57:07 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 : Mon Nov 4 14:58:53 2019
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 : 6057b886:24586340:b6ece802:6f3904d6
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
3 8 65 - spare /dev/sde1
-x备用了一块磁盘,这里搞坏一个盘试一试
[root@localhost dev]# mdadm -f /dev/md5 /dev/sdd1 #搞坏md5下面的sdd1
mdadm: set /dev/sdd1 faulty in /dev/md5 #显示成功搞坏
[root@localhost dev]# mdadm -D /dev/md5 #再次查看信息
/dev/md5:
Version : 1.2
Creation Time : Mon Nov 4 14:57:07 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 : Mon Nov 4 15:04:50 2019
State : clean, 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 : 25% complete
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : 6057b886:24586340:b6ece802:6f3904d6
Events : 24
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 65 2 spare rebuilding /dev/sde1 #顶替上来
4 8 49 - faulty /dev/sdd1 #换下来
然后的操作就是格式化,mkfs.xfs /dev/md5,挂载,这里就不再操作了
raid6就是把其中的级别-l改为6,磁盘块数-n不少于四块,备用盘-x记得给,养成好习惯,在演示一波raid1+0
raid1+0的原理是先用两块盘去做raid1镜像卷,然后把两个raid1为单位,去做raid0条带卷
[root@localhost dev]# mdadm -S /dev/md5 #停用md5
mdadm: stopped /dev/md5
[root@localhost dev]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 #创建raid1 md1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Mon Nov 4 14:57:07 2019
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: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Mon Nov 4 14:57:07 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost dev]# mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]1 #创建riad1 md2
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Mon Nov 4 14:57:07 2019
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: /dev/sde1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Mon Nov 4 14:57:07 2019
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
[root@localhost dev]# mdadm -C -v /dev/md0 -l0 -n2 /dev/md[1-2] #以两个镜像卷为
单位,创建raid0
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost dev]# mdadm -D /dev/md0 #查看raid0卷md0
/dev/md0:
Version : 1.2
Creation Time : Mon Nov 4 15:19:28 2019
Raid Level : raid0
Array Size : 41875456 (39.94 GiB 42.88 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Nov 4 15:19:28 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : e0b393ab:3c8c8d1c:21ddf9f1:26ab1901
Events : 0
Number Major Minor RaidDevice State
0 9 1 0 active sync /dev/md1 #单位是镜像卷
1 9 2 1 active sync /dev/md2
[root@localhost dev]# mdadm -D /dev/md1 #查看raid1卷md1
/dev/md1:
Version : 1.2
Creation Time : Mon Nov 4 15:18:02 2019
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Nov 4 15:19:47 2019
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : 8ece5682:dc5b03c7:5d1d67a8:22c85b59
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 #单位是sd
1 8 33 1 active sync /dev/sdc1
[root@localhost dev]# mdadm -D /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Nov 4 15:18:43 2019
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Nov 4 15:20:02 2019
State : active, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Resync Status : 79% complete
Name : localhost.localdomain:2 (local to host localhost.localdomain)
UUID : 9501fa59:f37e90a0:227aaf3f:567026a1
Events : 13
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1
[root@localhost dev]# mount /dev/md1 /md0 #挂载raid1镜像卷
mount: 未知的文件系统类型“linux_raid_member” #没有格式化
[root@localhost dev]# mount /dev/md0 /md0 #挂载raid0条带卷
mount: /dev/md0 写保护,将以只读方式挂载 #可以挂,但是没啥用,只读,写保护
mount: 未知的文件系统类型“(null)”
[root@localhost dev]# mkfs.xfs /dev/md0 #格式化条带卷raid0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654208 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10467328, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5112, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost dev]# mount /dev/md0 /md0 #再次挂载raid0,可以正常挂上去
[root@localhost dev]# mkfs.xfs /dev/md1 #格式化镜像卷raid1,发现资源忙
mkfs.xfs: cannot open /dev/md1: 设备或资源忙 #这是因为镜像卷成为raid0的单位,
无法执行独立的操作
[root@localhost dev]# df -TH #查看一下
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 22G 3.5G 18G 17% /
devtmpfs devtmpfs 1.1G 0 1.1G 0% /dev
tmpfs tmpfs 1.1G 0 1.1G 0% /dev/shm
tmpfs tmpfs 1.1G 9.5M 1.1G 1% /run
tmpfs tmpfs 1.1G 0 1.1G 0% /sys/fs/cgroup
/dev/sda1 xfs 6.5G 168M 6.3G 3% /boot
/dev/mapper/centos-home xfs 11G 52M 11G 1% /home
tmpfs tmpfs 209M 13k 209M 1% /run/user/42
tmpfs tmpfs 209M 0 209M 0% /run/user/0
/dev/md0 xfs 43G 35M 43G 1% /md0 #挂载成功
总结:
- raid0是两块磁盘,同时读写,速度比一般的快一倍,但是没有进行备份数据的操作,所以在数据安全性的层面上跟一般的一样,容量是所有磁盘容量的总和
- raid1是两块磁盘,同时往里写一样的数据,速度跟一般的一致,安全方面,多了一块磁盘,就多了一份保障,容量是磁盘总容量的一半
- raid5最少三块磁盘,分别往里读写,在原有数据的基础上,还多了一份数据校验记录,这一份数据校验记录跟原有数据平均均分在各个磁盘内,相当于可以损坏一块磁盘,把坏磁盘换下来,数据校验记录可以恢复坏磁盘的数据,安全性比一般的多了一层保障,读写速度是一般的(N-1)倍,容量是磁盘总容量的(N-1)N
- raid6最少四块磁盘,相当于在raid5的基础上再加一个数据校验记录,这样就可以同时损坏两块盘而不影响数据完整,安全性比一般的多了两层保障,读写速度是一般的(N-2)被,容量是磁盘总容量的(N-2)/N
- raid1+0是raid1和raid0的集合,相当于对数据先进行已经raid1的封装,然后在进行raid0的封装,应用也是比较广
当前文章:理论+实验服务器硬件即RAID配置实战
网站链接:http://azwzsj.com/article/jjsshd.html