0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux下软RAID实现方案

Linux爱好者 来源:未知 作者:胡薇 2018-06-28 16:13 次阅读

一.应用场景

Raid大家都知道是冗余磁盘的意思(Redundant Arrays of Independent Disks,RAID),可以按业务系统的需要提供高可用性和冗余性,目前市面上比较常见的是通过服务器的raid阵列卡来实现此功能。

通过硬件阵列卡实现raid具有可靠性高,性能好等特点,但是对于一般的企业而言硬件阵列卡固然好,如果大规模应用的话动辄几千上万的费用也不是他们所能承受的,难道就没有既能保证数据安全,又能减少费用支持的IT方案吗?

当然有,软raid就可以实现这一需求。

二.实现步骤

软raid比较依赖操作系统,所以他的劣势也显而易见,需要占用系统资源(主要是CPU资源)。目前在Linux和windows下软raid都比较常见了,Linux是通过mdadm实现的,windows下则在win2003之后通过磁盘管理来实现。

实验环境:

一台centos 7.2 VM,主机名分别为host1,host1上挂载两块50G的数据盘,我们的实验就在这两块数据盘上完成。

P.S:需要强调的是生产环境下两块组raid的硬盘必须是同品牌同型号同容量的,否则极容易出现软raid失效的情况。

1.确认操作系统是否安装了mdadm软件

[root@host1 ~]# rpm -qa |grep mdadm

mdadm-3.3.2-7.el7.x86_64

2.对两块数据盘进行分区,并设置分区类型为raid

fdisk命令只能对容量在2T以下的硬盘进行分区,如果超过2T则需要使用parted工具了。Parted命令以后会介绍使用方法,本节不赘述了。

在fdisk下raid的分区类型代码是fd,在parted工具下首先需要使用mklabel将磁盘格式由MBR改成GPT,然后才能使用mkpart命令进行分区,分完区之后使用set设置分区flag为raid即可。

3.使用mdadm命令创建raid1

可以看到创建时有个Note的提示,是说软raid不能当启动设备,这就是软raid比较鸡肋的地方了。

mdadm-C/dev/md0-ayes-l1-n2/dev/xvd[b,c]1

命令说明:

-C--create创建阵列;

-a--auto同意创建设备,如不加此参数时必须先使用mknod命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;

-l--level阵列模式,支持的阵列模式有linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

-n--raid-devices阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;

/dev/md0阵列的设备名称,如果还有其他阵列组可以以此类推;

创建完成后可以使用cat /proc/mdstat查看阵列状态:

下图中第一次查看的时候提示resync完成了95.7%,第二次查询的时候两块盘才真正同步完。

也可以使用mdadm -D /dev/md0查看阵列组的状态

4.创建md0的配置文件

echo DEVICE /dev/sd{a,b}1 >> /etc/mdadm.confmdadm -Evs >> /etc/mdadm.conf

mdadm运行时会自动检查/etc/mdadm.conf 文件并尝试自动装配,因此第一次配置raid后可以将信息导入到/etc/mdadm.conf 中。

5.使用/dev/md0

在/dev/md0上创建文件,然后挂载进行使用。

mkfs.ext4 /dev/md0

注意:在格式化时,可以指定-E选项下的stride参数指定条带是块大小的多少倍,有在一定程度上提高软RAID性能,如块默认大小为4k,而条带大小默认为64k,则stride为16,这样就避免了RAID每次存取数据时都去计算条带大小,如:

mkfs.ext4 -E stride=16 -b 4096 /dev/md0

6.其他命令

比如组raid的阵列中有磁盘损坏,可以使用如下命令:

选项:-a(--add),-d(--del),-r(--remove),-f(--fail)

模拟损坏盘:

mdadm /dev/md1 -f /dev/sdb5

移除故障盘:

mdadm /dev/md1 -r /dev/sdb5

添加新硬盘:

mdadm /dev/md1 -a /dev/sdb7

停止阵列

mdadm -S /dev/md1

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11304

    浏览量

    209502
  • RAID
    +关注

    关注

    0

    文章

    278

    浏览量

    35097

原文标题:Linux 下软 RAID 实现方案

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RAID技术全程指南

    阵列中任意一个硬盘的传输率,RAID 0的优势开始体现出来。对于追求高性能的用户来说,这应该是他们梦寐以求的。这里应该说明的是,在Linux环境,我们同样可以利用Raidtools工具来实现
    发表于 03-30 11:48

    Linux基础】Linux链接简介

      一、Linux链接简介  Linux链接(symbolic link)又叫符号连接,相当于Windows的快捷方式。  
    发表于 09-20 15:50

    详解Linux RAID

    RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。
    发表于 07-22 06:26

    面向嵌入式Linux系统的中断设计与实现

    本文在分析标准Linux 内核的中断机制的演化以及实现原理的基础上,提出并实现了一个面前嵌入式Linux 系统的
    发表于 08-03 11:20 16次下载

    L inuxiSCSI网络RAID的分析与研究

    RAID 是存储系统的基础,为了将RAID 的思想扩展到分布的网络中,论文首先说明了网络RAID 的概念和iSCSI 协议的工作原理,深入Linux 内核重点深入分析和研究了
    发表于 12-25 15:32 14次下载

    如何实现硬盘的raid

    如何实现硬盘的raid    问:最近在升级硬盘时听朋友说可以把两块硬盘做成RAID,请问RAID 是什么?要实现这个功能需要
    发表于 03-01 10:32 463次阅读

    RAID0,RAID1和RAID5是什么意思,其原理是什么

    RAID0,RAID1和RAID5是什么意思,其原理是什么 RAID 0:无差错控制的带区组 要实现R
    发表于 03-29 10:17 1.2w次阅读

    利用RAID提高硬盘性能

      今天介绍利用RAID提高硬盘性能。   一、简单认识RAID   RAID不需要
    发表于 08-20 17:06 782次阅读

    Linux的网络HOOK实现

    最近疯狂的研究Linux的种种功能,也颇有心得,这里讲述一Linux的Net的Hook,使用net的Hook可以实现很多很多非常底层的功
    发表于 05-14 10:27 5146次阅读

    基于Linux的LCD驱动程序实现

    基于Linux的LCD驱动程序实现
    发表于 10-30 16:45 12次下载
    基于<b class='flag-5'>Linux</b><b class='flag-5'>下</b>的LCD驱动程序<b class='flag-5'>实现</b>

    Linux 2.4.x内核中断机制

    本文从Linux内核几种中断机制相互关系和发展沿革入手,分析了这些机制的实现方法,给出了它们的基本用法。 中断概况 中断是利用硬件中断
    发表于 11-02 11:01 0次下载

    RAIDRAID的区别是什么

    随着NVMe固态硬盘的普及,RAID0距离DIY发烧友渐行渐远。不过相信各位朋友手中还有大量SATA接口的硬盘仍在服役当中,RAID1/5依然有不小的使用需求。我们能否利用组建RAID阵列的方式为它们提速增效?
    发表于 09-24 15:17 2.2w次阅读
    硬<b class='flag-5'>RAID</b>和<b class='flag-5'>软</b><b class='flag-5'>RAID</b>的区别是什么

    软件RAID 5的实现过程详解

    RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案RAID 5可以理解为是RAID 0和RAID 1的折中
    的头像 发表于 10-29 16:39 279次阅读
    软件<b class='flag-5'>RAID</b> 5的<b class='flag-5'>实现</b>过程详解

    raid 存储方案适合哪些场景

    不同的配置级别,提供了不同的性能和冗余特性。常见的RAID级别包括RAID 0、RAID 1、RAID 5、RAID 6、
    的头像 发表于 11-12 09:36 308次阅读

    RAID 5 硬件与软件 RAID 的区别

    RAID 5硬件RAID与软件RAID之间存在显著的差异,这些差异主要体现在实现方式、性能、数据安全性、灵活性以及成本等方面。 一、实现方式
    的头像 发表于 12-27 18:05 290次阅读