RAID的概念:app
磁盘阵列的英文全名是RedundanArrays of Inexpensive Disk ,即容错廉价磁盘阵列. RAID 能够经过一些技术(软件或者硬件)将多个较小的磁盘整合一个较大的磁盘设备;而这个较大的设备的磁盘功能可不止存储而已,它还具备数据保护的功能.整个RAID因为等级(LEVEL)不一样,而使的整合的磁盘具备不一样的功能,基本常见的等级有以下:工具
这里简单的列举他们的优缺点:性能
0:条带 性能提高:读,写 容错能力:无 空间利用率:ns 1:镜像 性能表现:写性能降低,读性能提高 容错能力:有 空间利用率:1/2 5:验证码 性能表现:读写 容错能力:有 空间利用率:(n-1)/n 10: 性能表现:读写提高 容错能力:有 空间利用率:1/2 01: 性能表现:读写提高 容错能力:有 空间利用率:1/2 50:轮换校验盘 性能表现:读写 容错能力:有 空间利用率:(n-2)/n jbod: 性能提高:无 容错能力:无 空间利用率:100%
经常使用命令:ui
#partprobe partprobe 是一个能够修改kernel中分区表的工具。能够使kernel从新读取分区表this
cat /proc/partitions 查看的文件分区,通常结合上条命令使用在使用fdisk分区工具先读入内核,用该命令验证spa
cat /proc/mdstat 查看raid信息的命令3d
下面演示RAID1的软件模拟建立与删除完整过程:code
准备好几个分区:blog
echo 'n p 1 +1G n p 2 +1G n p 3 +1G t 1 fd t 2 fd t 3 fd w'|fdisk /dev/sdb&>/dev/null #partprobe #cat /proc/partitions
[root@localhost ~]# cat /proc/partitions
major minor #blocks namerem
8 0 20971520 sda
8 1 512000 sda1
8 2 20458496 sda2
8 16 20971520 sdb
8 17 1060258 sdb1
8 18 1060290 sdb2
8 19 1060290 sdb3
253 0 18423808 dm-0
253 1 2031616 dm-1
9 127 2119680 md127
9 126 1059200 md126
建立RAID1
[root@localhost ~]# mdadm -C /dev/md0 -a yes -n 2 -l 1 /dev/sdb{1,2}
mdadm: /dev/sdb1 appears to contain an ext2fs file system
size=5253220K mtime=Wed Oct 19 15:03:29 2016
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=2 ctime=Sat Oct 22 21:22:27 2016
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/sdb2 appears to be part of a raid array:
level=raid0 devices=2 ctime=Sat Oct 22 21:22:27 2016
Continue creating array?
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1] [raid0]
md0 : active raid1 sdb2[1] sdb1[0]
1059200 blocks super 1.2 [2/2] [UU]
unused devices: <none>
格式化:
#mke2fs -j /dev/md0
[root@localhost ~]# blkid /dev/md0
/dev/md0: UUID="7c48763f-023f-4757-98fe-f4e68bc75819" SEC_TYPE="ext2" TYPE="ext3"
挂载成功:
[root@localhost ~]# mount /dev/md0 /users
[root@localhost ~]# cd /users
[root@localhost users]# ls
lost+found
模拟有一块磁盘损坏:
首先查看RAID 详细信息
[root@localhost users]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Oct 27 22:25:23 2016
Raid Level : raid1
Array Size : 1059200 (1034.55 MiB 1084.62 MB)
Used Dev Size : 1059200 (1034.55 MiB 1084.62 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Oct 27 22:30:21 2016
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : localhost:0 (local to host localhost)
UUID : 733d9830:5686636c:cf2a22e6:2de98483
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
使用-f模拟损坏
[root@localhost users]# mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@localhost users]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Oct 27 22:25:23 2016
Raid Level : raid1
Array Size : 1059200 (1034.55 MiB 1084.62 MB)
Used Dev Size : 1059200 (1034.55 MiB 1084.62 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Oct 27 22:34:43 2016
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Name : localhost:0 (local to host localhost)
UUID : 733d9830:5686636c:cf2a22e6:2de98483
Events : 18
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 18 1 active sync /dev/sdb2
0 8 17 - faulty spare /dev/sdb1
移除
[root@localhost users]# mdadm /dev/md0 -r /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
增长一块新盘恢复
[root@localhost users]# mdadm /dev/md0 -a /dev/sdb3
[root@localhost users]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Oct 27 22:25:23 2016
Raid Level : raid1
Array Size : 1059200 (1034.55 MiB 1084.62 MB)
Used Dev Size : 1059200 (1034.55 MiB 1084.62 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Oct 27 22:37:54 2016
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : localhost:0 (local to host localhost)
UUID : 733d9830:5686636c:cf2a22e6:2de98483
Events : 40
Number Major Minor RaidDevice State
2 8 19 0 active sync /dev/sdb3
1 8 18 1 active sync /dev/sdb2
中止阵列
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
从新装配
[root@localhost ~]# mdadm -A /dev/md0 /dev/sdb2 /dev/sdb3
mdadm: /dev/md0 has been started with 2 drives.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Oct 27 22:25:23 2016
Raid Level : raid1
Array Size : 1059200 (1034.55 MiB 1084.62 MB)
Used Dev Size : 1059200 (1034.55 MiB 1084.62 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Oct 28 04:14:05 2016
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : localhost:0 (local to host localhost)
UUID : 733d9830:5686636c:cf2a22e6:2de98483
Events : 40
Number Major Minor RaidDevice State
2 8 19 0 active sync /dev/sdb3
1 8 18 1 active sync /dev/sdb2
把RAID 信息保存至配置文件以便之后装配
[root@localhost ~]# mdadm -D --scan > /etc/mdadm.conf
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -A /dev/md0
mdadm: /dev/md0 has been started with 2 drives
自动挂载到/users目录
echo "/dev/md0 /users ext3 defaults 0 0" >> /etc/fstab
取消删除RAID:
删除配置文件/etc/fstab /etc/mdadm.conf中的最后一行
[root@localhost ~]# umount /dev/md0
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
演示空闲挂载
[root@localhost ~]# mdadm -C md1 -a yes -l 1 -n 2 -x 1 /dev/sdb1 /dev/sdb2 /dev/sdb3
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1] [raid0]
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md/md1
/dev/md/md1:
Version : 1.2
Creation Time : Fri Oct 28 04:33:15 2016
Raid Level : raid1
Array Size : 1059200 (1034.55 MiB 1084.62 MB)
Used Dev Size : 1059200 (1034.55 MiB 1084.62 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Fri Oct 28 04:33:25 2016
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : localhost:md1 (local to host localhost)
UUID : 86892be1:ad09376d:20f1329e:7c667317
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
2 8 19 - spare /dev/sdb3