Linux软raid创建和维护

简介:

制作人:wqmsl

博客地址:http://wqmsl.blog.51cto.com

 

说明:RAID分为软RAID和硬件RAID

软件RAID是基于系统的软件工作 
不稳定,如果系统坏了,RAID整列也就损坏,容易造成数据丢失

下面我们要讲的基于LINUX系统的软件RAID

在LINUX下管理RAID阵列的工具是mdadm工具

mdadm程序是一个独立的程序,能完成所有的软RAID管理功能

主要有7种使用模式:

Create 使用空闲的设备创建一个新的阵列,每个设备具有元数据块

Assemble 将原来属于一个阵列的每个块设备组装为阵列

Build 创建或组装不需要元数据的阵列,每个设备没有元数据块

Manage 管理已经存储阵列中的设备,比如增加热备磁盘或者设置某个磁盘失效,然后从阵列中删除这个磁盘

Misc 报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息

Grow 改变阵列中每个设备被使用的容量或阵列中的设备的数目

Monitor 监控一个或多个阵列,上报指定的事件

由于这个工具太强大,不能一一为大家讲解

我们今天主要讲创建任意级别的RAID,和如何删除这个RAID

至于管理就只有您自己下来找资料研究了

往往廉价的东西,用的人都多

RAID分区的ID是 fd 请大家记住

(以上说明部分来自互联网,省的自己写了哈)

创建raid的流程就是:

wps_clip_image-3244

第一步:创建分区

现在我们先来做几个分区来做软raid哦

wps_clip_image-15334

查看一下创建的分区

wps_clip_image-21286

由于分区默认的格式是83(Linux),需要我们修改一下id,依次修改5—9分区的格式

wps_clip_image-4753

修改id后,查看一下

wps_clip_image-10492

保存分区退出

wps_clip_image-31521

第二步:创建RAID

分区创建完后,现在我们来做软raid,需要使用mdadm这个命令来创建raid

wps_clip_image-18993

下面创建raid 5, 用4个分区做raid,用1个分区来做热备分区,-n和-x都可以指定多个

注:系统默认有个md0可以给我们用,如果我要多个raid的话,就需要自己创建设备了,创建raid设备块的命令    mknod /dev/md01 b 9 1

wps_clip_image-15220

注释:

man帮助中的例子:mdadm  --create /dev/md0 --level=1  --raid-devices=2   /dev/hd[ac]1

-C 代表创建

-l 代表创建的级别 

-n 代表活动的分区,也就是你要给这个级别多少个分区

-x 就是热备份的分区

解释图:-x:是热备分区,raid至少需要3个分区

wps_clip_image-32642

第三步:查看创建好RAID的状态

命令:mdadm --detail /dev/md0、mdadm -D /dev/md0

sdb5、sdb6、sdb7、sdb8是raid的成员,激活状态;sdb9 是热备分区

wps_clip_image-4676

第四步:格式化并挂载RAID设备

wps_clip_image-2541

创建目录并挂载raid阵列设备,在raid里面创建文件

wps_clip_image-27927

第五步:故障模拟和恢复

模拟一个raid故障

wps_clip_image-5975

状态如下图:sdb5已经不在raid成员内了

wps_clip_image-18131

然后我们从raid里删除掉sdb5

wps_clip_image-3248

再看一下状态,sdb5已经不在列表中了,原热备分区sdb9已经到raid成员中并激活

wps_clip_image-26082

看看数据还是没有错

wps_clip_image-6382

其他额外知识补充:

1、查看/dev/md0 设备是否存在,以及它的容量;

fdisk -l /dev/md0

df -lh /dev/md0

wps_clip_image-28817

注:如果您想要用分区操作,用fdisk  /dev/md0

2、向一个既已存在RAID 中添加或移除一个硬盘或分区,要用mdadm 工具的-f  -r  -a参数

mdadm /dev/mdX -f RAID成员

mdadm /dev/mdX -r RAID成员

wps_clip_image-20807

mdadm /dev/mdX -a RAID成员

wps_clip_image-2680

注:

-f 同  --fail 表示把一个设备列为有问题的设备,以便用-r 或--remove参数移除;

-r 同  --remove 表示把RAID 中的一个成员移出RAID;

-a 同  --add 表示向一个RAID中添加一个成员;

--re-add 重新把最近移除的RAID成员重新添加到RAID 中;

值得一提的是,这些参数的运用,必须是在RAID 正常运行的情况下进行。其中RAID 设备是/dev/mdX,X是一个大于0的整数,RAID 成员是一个硬盘或分区。添加设备并不会把RAID 的容量扩大,仅仅是为了添加备用成员,比如在RAID1、RAID5和RAID10中有用。当一个RAID 成员发生故障的时候,要用这种办法来让新成员顶替工作(后面讲扩容了);

3、为RAID 进行扩充容量;  

在这里我们要用到RAID 的Grow模式,也就是增长模式。扩充模式,极为简单,有--size参数,-n参数 --size是指大定RAID的大小,这个可以省略,具体由你所做的RAID 级别而定。  -n 代表RAID 真正成员的个数。在这个例子中,RAID5真正成员是3个,后来我们又添加了一个备用成员/dev/sdb2进去。我们所做的就是把这个备用成员“推”到真正成员的位置上。也就是说RAID 的真正成员由3个变成4个。只是这一简单的指令,就可以让RAID5容量增加起来。

我单纯的使用-a的参数并不能使容量增大,默认是添加到了热备分区上面

wps_clip_image-22106

下面来解决这个问题

mdadm -G /dev/md0  -n4   ————>这样就把热备的分区添加到了raid成员中了,容量也扩大了哦

wps_clip_image-12293

4、清除一个 RAID 成员的超级块存储存的 RAID 信息;

RAID 成员在  superblock中所存储的RAID 信息是极为重要的,我们可以根据这个信息轻松恢复RAID。

mdadm --zero-superblock RAID成员;

如果你确认RAID 成员这个成员对你没任何用处,你已经把这个成员移除RAID,并且您想把这个设备另作他用。这时你可以清除其  superblock的信息。比如;

# mdadm --zero-superblock /dev/sdb12

wps_clip_image-16386

这个示例就是清除/dev/sdd3中的超级块中所存储的RAID 信息;





     本文转自 wqmsl 51CTO博客,原文链接:http://blog.51cto.com/wqmsl/468700,如需转载请自行联系原作者


相关文章
|
4天前
|
存储 安全 Linux
Linux中的软RAID
Linux中的软RAID
21 2
|
Ubuntu Linux 网络安全
Linux Debian11服务器安装SSH,创建新用户并允许远程SSH远程登录,并禁止root用户远程SSH登录
本文介绍了Linux Debian11服务器安装SSH,创建新用户并允许远程SSH远程登录,并禁止root用户远程SSH登录。
2278 1
Linux Debian11服务器安装SSH,创建新用户并允许远程SSH远程登录,并禁止root用户远程SSH登录
|
2月前
|
存储 缓存 关系型数据库
Mysql专栏 - Linux底层交互和Raid存储架构
Mysql专栏 - Linux底层交互和Raid存储架构
80 0
|
4月前
|
存储 机器学习/深度学习 安全
Linux加强篇007-使用RAID与LVM磁盘阵列技术
山重水复疑无路,柳暗花明又一村
234 0
Linux加强篇007-使用RAID与LVM磁盘阵列技术
|
8月前
|
Linux
14.2.2 【Linux】software, hardware RAID
14.2.2 【Linux】software, hardware RAID
89 0
|
8月前
|
安全 Linux 数据安全/隐私保护
14.2 【Linux】软件磁盘阵列(Software RAID)
14.2 【Linux】软件磁盘阵列(Software RAID)
89 0
|
Linux 数据安全/隐私保护
Linux Debian11创建新用户和删除用户
Linux Debian11创建新用户和删除用户
2772 0
Linux Debian11创建新用户和删除用户
|
10月前
|
Linux 计算机视觉
【Linux】(超详细步骤)构建软RAID磁盘阵列
【Linux】(超详细步骤)构建软RAID磁盘阵列
773 1
|
10月前
|
存储 Linux
Linux廉价磁盘冗余队列(RAID)
通过几篇文章的介绍,来到了RAID的学习,本篇文章将介绍RAID,以及学会创建RAID,并且使用它,下面就进入学习吧。
90 0
|
11月前
|
存储 SQL 缓存
Mysql专栏 - Linux底层交互和Raid存储架构
​ 在专栏之前的几篇文章中,我们总结了缓冲池,缓存页,redo log,undo log,以及数据页和数据行在底层是如何进行存储的,后续介绍了表空间,段,区等概念。这一节比较特殊,讲述的是和Linux有关的交互原理,因为多数的mysql都是部署在linux的服务器上面,本节会简单介绍一下linux是如何处理mysql的请求的,以及linux系统会带来哪些问题
159 0
Mysql专栏 - Linux底层交互和Raid存储架构