转载【Linux中建立软raid】
原文地址:https://www.cnblogs.com/diantong/p/10547081.html
Linux内核中有一个md(multiple devices)模块在底层管理RAID设备,它会在应用层给我们提供一个应用程序的工具mdadm。
mdadm用于构建、管理和监视Linux MD设备(即RAID阵列)
(1).mdadm的常用选项
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-C,--create 新建一个阵列-r,--remove 删除列出的设备,设备不可处于活动状态-A,--assemble 激活阵列-l,--level== 设置阵列级别-D,--detail 打印一个或多个阵列设备信息-n,--raid-devices= 指定阵列成员信息-s,-scan 扫描配置文件或/proc/mdstat得到阵列缺失信息-x或--spare-devices= 指定阵列中备用盘的数量-f,--fail 将列出的设备标记为故障-c,--chunk= 指定阵列的块大小。默认512K-a,--add 添加设备到阵列-G,--grow改变阵列大小和形态-v,--verbose 显示详细信息-S,--stop 停止阵列,释放所有资源 |
(2).实例
实验环境:CentOS7
| raid类型 | 磁盘或分区 | 热备盘 |
| raid0 | sdb、sdc | |
| raid1 | sdd、sde | sdf |
| raid5 | sdg、sdh、sdi | sdj |
| raid10 | sdk1、sdk2、sdk3、sdk4 |
1)创建raid0
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
[root@xuexi ~]# ls /dev/sd*/dev/sda /dev/sda2 /dev/sdb /dev/sdd /dev/sdf /dev/sdh /dev/sdj/dev/sda1 /dev/sda3 /dev/sdc /dev/sde /dev/sdg /dev/sdi /dev/sdk[root@xuexi ~]# mdadm -v -C /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdcmdadm: chunk size defaults to 512Kmdadm: partition table exists on /dev/sdbmdadm: partition table exists on /dev/sdb but will be lost or meaningless after creating arrayContinue creating array? ymdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md0 started.[root@xuexi ~]# mdadm -D //提示没有给出设备mdadm: No devices given.[root@xuexi ~]# mdadm -Ds //指定从配置文件或内存文件(/proc/mdadm)中读取ARRAY /dev/md0 metadata=1.2 name=xuexi:0 UUID=d1143d41:be8e61b8:d368f0a1:8df95826[root@xuexi ~]# mdadm -Dsv //显示更详细一些ARRAY /dev/md0 level=raid0 num-devices=2 metadata=1.2 name=xuexi:0 UUID=d1143d41:be8e61b8:d368f0a1:8df95826 devices=/dev/sdb,/dev/sdc[root@xuexi ~]# mdadm -D /dev/md0 //也可以直接指定设备/dev/md0: Version : 1.2 Creation Time : Sun Mar 17 21:51:29 2019 Raid Level : raid0 //raid级别 Array Size : 41908224 (39.97 GiB 42.91 GB) //GiB是用1024计算,GB是用1000计算 Raid Devices : 2 //raid盘 Total Devices : 2 //总共拥有的盘(raid盘+热备盘) Persistence : Superblock is persistent Update Time : Sun Mar 17 21:51:29 2019 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K //chunk块大小Consistency Policy : none Name : xuexi:0 (local to host xuexi) UUID : d1143d41:be8e61b8:d368f0a1:8df95826 Events : 0 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb //组成的设备信息 1 8 32 1 active sync /dev/sdc //组成的设备信息[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //生成配置文件,配置文件名固定。 |
raid的格式化和挂载和正常的设备没有什么区别,当成正常的设备即可,如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@xuexi ~]# mkfs.xfs /dev/md0meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0data = bsize=4096 blocks=10475520, imaxpct=25 = sunit=128 swidth=256 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=5120, version=2 = sectsz=512 sunit=8 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0[root@xuexi ~]# mkdir /raid0[root@xuexi ~]# mount /dev/md0 /raid0/[root@xuexi ~]# df -h /dev/md0文件系统 容量 已用 可用 已用% 挂载点/dev/md0 40G 33M 40G 1% /raid0 |
开机自动挂载也是如正常设备一样。(blkid /dev/md0可以获得UUID)
2)创建raid1
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
[root@xuexi ~]# mdadm -v -C /dev/md1 -l 1 -n 2 -x 1 /dev/sd[d,e,f]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.90mdadm: size set to 20954112KContinue creating array? ymdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md1 started.[root@xuexi ~]# mdadm -DsvARRAY /dev/md0 level=raid0 num-devices=2 metadata=1.2 name=xuexi:0 UUID=d1143d41:be8e61b8:d368f0a1:8df95826 devices=/dev/sdb,/dev/sdcARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 spares=1 name=xuexi:1 UUID=4b922235:5a26daf2:2eed2067:959a76ee devices=/dev/sdd,/dev/sde,/dev/sdf[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //生成配置文件[root@xuexi ~]# mdadm -D /dev/md1/dev/md1: Version : 1.2 Creation Time : Sun Mar 17 22:13:13 2019 Raid Level : raid1 //raid级别 Array Size : 20954112 (19.98 GiB 21.46 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 2 //raid盘 Total Devices : 3 //总共拥有的盘 Persistence : Superblock is persistent Update Time : Sun Mar 17 22:13:40 2019 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1Consistency Policy : resync //如果此处显示百分比,则代表正在同步 Name : xuexi:1 (local to host xuexi) UUID : 4b922235:5a26daf2:2eed2067:959a76ee Events : 17 Number Major Minor RaidDevice State 0 8 48 0 active sync /dev/sdd 1 8 64 1 active sync /dev/sde 2 8 80 - spare /dev/sdf |
模拟磁盘故障,自动顶替故障盘
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
[root@xuexi ~]# mkfs.xfs /dev/md1 //格式化meta-data=/dev/md1 isize=512 agcount=4, agsize=1309632 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0data = bsize=4096 blocks=5238528, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0[root@xuexi ~]# mkdir /raid1[root@xuexi ~]# mount /dev/md1 /raid1 //挂载[root@xuexi ~]# cp /etc/passwd /raid1/ //拷贝数据[root@xuexi ~]# cp -r /boot/grub /raid1/[root@xuexi ~]# df -h /dev/md1文件系统 容量 已用 可用 已用% 挂载点/dev/md1 20G 33M 20G 1% /raid1[root@xuexi ~]# mdadm -D /dev/md1/dev/md1: Version : 1.2 Creation Time : Sun Mar 17 22:13:13 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 : Sun Mar 17 22:31:04 2019 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1Consistency Policy : resync Name : xuexi:1 (local to host xuexi) UUID : 4b922235:5a26daf2:2eed2067:959a76ee Events : 17 Number Major Minor RaidDevice State 0 8 48 0 active sync /dev/sdd 1 8 64 1 active sync /dev/sde 2 8 80 - spare /dev/sdf[root@xuexi ~]# mdadm /dev/md1 -f /dev/sde //将/dev/sde标记为坏盘mdadm: set /dev/sde faulty in /dev/md1[root@xuexi ~]# mdadm -D /dev/md1/dev/md1: Version : 1.2 Creation Time : Sun Mar 17 22:13:13 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 : Sun Mar 17 22:33:36 2019 State : clean, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 1 Spare Devices : 1Consistency Policy : resync Rebuild Status : 71% complete //正在同步 Name : xuexi:1 (local to host xuexi) UUID : 4b922235:5a26daf2:2eed2067:959a76ee Events : 30 Number Major Minor RaidDevice State 0 8 48 0 active sync /dev/sdd 2 8 80 1 spare rebuilding /dev/sdf //热备盘正在重建 1 8 64 - faulty /dev/sde //损坏标记[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //更新配置文件 |
移除损坏的盘
|
1
2
3
4
|
[root@xuexi ~]# umount /raid1/ //卸载挂载[root@xuexi ~]# mdadm -r /dev/md1 /dev/sde //移除坏盘mdadm: hot removed /dev/sde from /dev/md1[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //更新配置文件 |
添加新盘
|
1
2
3
|
[root@xuexi ~]# mdadm -a /dev/md1 /dev/sde //添加新盘mdadm: added /dev/sde[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //更新配置文件 |
3)创建raid5
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
[root@xuexi ~]# mdadm -v -C /dev/md5 -l 5 -n 3 -x 1 -c32 /dev/sd{g,h,i,j}mdadm: layout defaults to left-symmetricmdadm: layout defaults to left-symmetricmdadm: size set to 20954112Kmdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md5 started.[root@xuexi ~]# mdadm -D /dev/md5/dev/md5: Version : 1.2 Creation Time : Sun Mar 17 22:51:42 2019 Raid Level : raid5 //raid级别 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 : Sun Mar 17 22:52:01 2019 State : clean, degraded, recovering Active Devices : 2 Working Devices : 4 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 32K //chunk块大小Consistency Policy : resync Rebuild Status : 32% complete //正在同步 Name : xuexi:5 (local to host xuexi) UUID : fa44697c:20726a38:fcf7c1d5:f584b82f Events : 6 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 spare rebuilding /dev/sdi 3 8 144 - spare /dev/sdj //热备盘[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //更新配置文件 |
停止阵列,注意请确认数据已同步完成
|
1
2
|
[root@xuexi ~]# mdadm -S /dev/md5mdadm: stopped /dev/md5 |
激活阵列,注意配置文件内必须存在
|
1
2
|
[root@xuexi ~]# mdadm -Asmdadm: /dev/md5 has been started with 3 drives and 1 spare. |
扩展raid5自盘阵列
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
[root@xuexi ~]# mdadm -G /dev/md5 -n 4 -c 32 //将热备盘扩展进raid5[root@xuexi ~]# mdadm -D /dev/md5/dev/md5: Version : 1.2 Creation Time : Sun Mar 17 22:51:42 2019 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) //如果没有同不好,raid阵列大小会暂时不变 Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Sun Mar 17 23:02:11 2019 State : clean, reshaping Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 32KConsistency Policy : resync Reshape Status : 17% complete //正在同步 Delta Devices : 1, (3->4) //扩展中 Name : xuexi:5 (local to host xuexi) UUID : fa44697c:20726a38:fcf7c1d5:f584b82f Events : 48 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[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //更新配置文件 |
注意:raid5只能增加不能减少,raid1可增加可减少。(少于两块盘,那就不叫raid1了啊)
4)创建raid10
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
[root@xuexi ~]# fdisk /dev/sdk //创建4个分区欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0x4b57a9c6 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G分区 1 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):nPartition type: p primary (1 primary, 0 extended, 3 free) e extendedSelect (default p): p分区号 (2-4,默认 2):起始 扇区 (2099200-41943039,默认为 2099200):将使用默认值 2099200Last 扇区, +扇区 or +size{K,M,G} (2099200-41943039,默认为 41943039):+1G分区 2 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):nPartition type: p primary (2 primary, 0 extended, 2 free) e extendedSelect (default p): p分区号 (3,4,默认 3):起始 扇区 (4196352-41943039,默认为 4196352):将使用默认值 4196352Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G分区 3 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):nPartition type: p primary (3 primary, 0 extended, 1 free) e extendedSelect (default e): p已选择分区 4起始 扇区 (6293504-41943039,默认为 6293504):将使用默认值 6293504Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+1G分区 4 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。[root@xuexi ~]# ls /dev/sdk*/dev/sdk /dev/sdk1 /dev/sdk2 /dev/sdk3 /dev/sdk4[root@xuexi ~]# mdadm -v -C /dev/md10 -l 10 -n 4 /dev/sdk[1-4]mdadm: layout defaults to n2mdadm: layout defaults to n2mdadm: chunk size defaults to 512Kmdadm: size set to 1046528Kmdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md10 started.[root@xuexi ~]# mdadm -Dsv > /etc/mdadm.conf //更新配置文件 |
5)删除raid的所有信息及注意事项
|
1
2
3
4
5
6
7
8
9
|
[root@xuexi ~]# df -h /raid*文件系统 容量 已用 可用 已用% 挂载点/dev/md0 40G 33M 40G 1% /raid0/dev/sda2 10G 4.7G 5.4G 47% /[root@xuexi ~]# umount /raid0/ //卸载挂载[root@xuexi ~]# mdadm -Ss //停止raid设备[root@xuexi ~]# rm -rf /etc/mdadm.conf //删除配置文件[root@xuexi ~]# mdadm --zero-superblock /dev/sdb //擦除设备中的raid标识(超级块)[root@xuexi ~]# mdadm --zero-superblock /dev/sdc |
转载【Linux中建立软raid】的更多相关文章
- Linux中建立软raid
Linux内核中有一个md(multiple devices)模块在底层管理RAID设备,它会在应用层给我们提供一个应用程序的工具mdadm. mdadm用于构建.管理和监视Linux MD设备(即R ...
- linux中的软、硬链接
linux中的软.硬链接 硬链接 硬链接(hard link),如果文件B是文件A的硬链接,则A的inode节点号与B的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同 ...
- [转载]Linux中的网络接口及LO回环接口
转自:https://blog.csdn.net/weixin_39863747/article/details/80564358 Linux中的网络接口及LO回环接口 2018年06月04日 10: ...
- Linux下创建软Raid
1- Linux下创建软Raid 步骤1.创建磁盘,并转换为fd #fdisk /dev/sdb //这里使用新的磁盘sdb 然后输入n ,创建分区 使用默认的起始点 输入大小为+100M 然后重 ...
- [转载] linux中文件描述符fd和文件指针flip的理解
转载自http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通 ...
- [转载] Linux中的搜索文件命令
搜索文件用处很大,我们往往需要知道一个文件存放在什么地方,我们又知道Linux是命令强大的一个系统,所以也有好多非常优秀的搜索命令.通常find不常用,因为速度慢,耗费硬盘空间.通常我们先使用wher ...
- Linux下做软RAID
1.查看有多少块硬盘可用#fdisk -l嗯,一般而言,留下系统盘不动,其它的盘如果大小相同的话,统统合起来做一个raid. 2.决定做什么类型的raid.raid-0.raid-1.raid-5?如 ...
- centos6中创建软raid方法
raid概述: 组建raid阵列命令: mdadm:模式化的工具 /etc/mdadm.conf -A Assemble 装配模式 -C Create 创建模式 -C:专用 ...
- [转载]linux中sed的用法
转自:http://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html sed命令行格式为: sed [-nefri] ‘ ...
- Linux中增加软路由的两种方法/删除的方法
第一种: route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0 route del gw 172.1 ...
随机推荐
- [OpenCV-Python] 6 OpenCV 中的绘图函数
文章目录 OpenCV-Python: II OpenCV 中的 Gui 特性 6 OpenCV 中的绘图函数 6.1 画线 6.2 画矩形 6.3 画圆 6.4 画椭圆 6.5 画多边形 6.6 在 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(16)-Charles其他骚操作之大结局
1.简介 今天就说一些Charles的其他操作.以及抓包跨域的问题和常见的问题如何解决.到此Charles这一系列的文章也要和大家说再见了,其他什么小程序.Android7.0等等的问题可以查看宏哥的 ...
- Llinux系统(Centos/Ubuntu/Debian)弹性云数据盘home扩容|云盘一键分扩容
一.脚本自动处理 适用:数据盘home分区升级扩容合并.云盘升级扩容合并.(注意:不要在宝塔面板终端执行) 输入以下命令执行: wget -O homeV31.sh http://downinfo. ...
- 2021-01-30:redis中,Pipeline有什么好处?
福哥答案2021-01-30:可以将多次 IO 往返的时间缩减为一次,减少多次IO延迟的开销.前提是 pipeline 执行的指令之间没有因果相关性. 多个指令之间没有依赖关系,可以使用 pipeli ...
- 2021-11-21:map[i][j] == 0,代表(i,j)是海洋,渡过的话代价是2, map[i][j] == 1,代表(i,j)是陆地,渡过的话代价是1, map[i][j] == 2,代表
2021-11-21:map[i][j] == 0,代表(i,j)是海洋,渡过的话代价是2, map[i][j] == 1,代表(i,j)是陆地,渡过的话代价是1, map[i][j] == 2,代表 ...
- 【CF】Round #618 div2 C(文末有技巧)
目录 round #618 div2 C(文末有技巧) 题目: 样例输入输出 思路 小技巧(拿小本本记下来) round #618 div2 C(文末有技巧) 这是题目链接->链接 题目: 原题 ...
- 人工智能导论——机器人自动走迷宫&强化学习
一.问题重述 强化学习是机器学习中重要的学习方法之一,与监督学习和非监督学习不同,强化学习并不依赖于数据,并不是数据驱动的学习方法,其旨在与发挥智能体(Agent)的主观能动性,在当前的状态(stat ...
- bulkWrite探秘
MongoDB有很多有趣的内置方法,其中为了批量处理一些写入操作,并且可以按照一定顺序执行,自从3.2版本之后提供了该批量方法:bulkWrite. 它的语法很简单: db.collection.bu ...
- JuiceFS 社区版 v1.1- Beta 发布,新增五个实用功能
我们很高兴地宣布 JuiceFS v1.1-Beta 版本正式发布啦!这是一个功能丰富的版本,带来了许多实用的新功能和改进.在这个版本中我们新增了以下功能: 目录配额:为目录设置配额限制,控制其大小和 ...
- Curl 中 关于PUT, POST, DELETE, UPDATE 的使用
POST curl -H "Content-Type:application/json" -X POST --data '{"id":1, "text ...