在Linux下用软件实现RAID功能的实现方法

mdadm使用的也是md驱动,由于其拥有多种模式,而且单一工具,不依赖所有设置文件,是替代raidtools的好工具。目前几乎所有发行版本使用的都是该工具。
一、安装和编译
源码下载:
http://www.cse.unsw.edu.au/~neilb/source/mdadm/
编译:
tar xzvf ./mdadm-1.6.0.tgz
cd mdadm-1.6.0
make install
rpm安装:
rpm -ivh mdadm-1.6.0-3.rpm
※源码最新版本是2.5,由于我使用的1.6.0的rpm包,所以还是以该版本为例。
二、模式
mdadm有6种模式,前两种模式:Create、Assemble用于设置和激活阵列;Manage模式用于操作在活动阵列中的设备;Follow或Monitor模式允许管理员对活动阵列设置事件提醒和动作;Build模式用于对旧阵列使用旧版本的md驱动;更有Grow模式能扩展阵列;剩下的是Misc模式,他包括对多种内部的任务和没有指定特别模式的一些操作。
系统平台: 红帽 AS4 for x86
三、部署
1、准备磁盘
只能使用Sofware RAID格式的磁盘才能组成阵列,所以,首先我们要把做好磁盘格式。正如上面提到的,除了系统盘sda外,我们需要对sdb、sdc、sdd进行操作
a)对sdb进行分区
fdisk /dev/sdb
n,划分区:

p,划分区:

w,写入退出:

2、创建阵列
mdadm能支持LINEAR、RAID0 (striping)、 RAID1(mirroring)、 RAID4、RAID5、RAID6和MULTIPATH的阵列模式。
创建命令格式如下:
mdadm [mode] [options]
例如:创建一个RAID 0设备:
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
--level表示创建的阵列模式,--raid-devices表示参和阵列的磁盘数量。
也能这样表达,意思是相同的:
mdadm -Cv /dev/md0 -l0 -n3 /dev/sd[bcd]1
还能增加-c128参数,指定chunk size为128K(默认64K)
3、设置文件
mdadm不采用/etc/mdadm.conf作为主要设置文件,他能完全不依赖该文件而不会影响阵列的正常工作。
该设置文件的主要作用是方便跟踪软RAID的设置。对该设置文件进行设置是有好处的,但不是必须的。推荐对该文件进行设置。
通常能这样来建立:

echo DEVICE /dev/sd[bcd]1 > /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf

4、格式化阵列
后续,只要你把/dev/md0作为一个独立的设备来进行操作即可:

mkfs.ext3 /dev/md0
mkdir /mnt/test
mount /dev/md0 /mnt/test
5、若要开机自动挂载,请加入/etc/fstab中:
/dev/md0 /mnt/tes auto defaults 0 0
四、监视和管理
mdadm能非常方便的对阵列进行监视和管理的操作,也包括了停止和启动阵列等常用维护。
1、查看
cat /proc/mdstat
能查看所有使用md驱动的阵列的状态:
mdadm --detail /dev/md0
查看指定阵列的周详信息(-D):

2、停止
mdadm -S /dev/md0
停止指定阵列,并释放磁盘(--stop):
※注意:停止后,原组成阵列的磁盘将处于空闲状态,一旦吾操作这些磁盘,将不能再重启激活原阵列。
3、启动
mdadm -A /dev/md0 /dev/sd[bcd]1
启动指定的阵列,也可理解为讲一个新阵列装配到系统中(--assemble):
若你已在上面设置了/etc/mdadm.conf文件,也可用-s查找:
mdadm -As /dev/md0

4、测试
如果你没有设置/etc/mdadm.conf文件,而且又忘了某磁盘属于那个阵列,则你能使用检测:(--examine)
mdadm -E /dev/sdb1
获得UUID后,也能这样激活阵列:
mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 /dev/sd*
能看到,只要磁盘没有损坏,这样装配是非常方便的:
5、添加及删除磁盘
mdadm能在Manage模式下,对运行中的阵列进行添加及删除磁盘。常用于标识failed磁盘,增加spare(冗余)磁盘,及替换磁盘等。
例如:原来状态是:
则能使用--fail指定坏磁盘,并--remove走:
mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1

※需要注意的是,对于某些阵列模式,如RAID0等,是不能用--fail和--remove的。
增加一个新的阵列用磁盘
mdadm /dev/md0 --add /dev/sdc1
※需要注意的是,对于某些阵列模式,如RAID0等,是不能用--add的。

6、监视
在Follow或Monitor状态下,能使用mdadm对阵列进行监视,例如当阵列出现问题的时候,发送邮件给管理员;或当磁盘出现问题的时候进行自动的磁盘替换。
nohup mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 &
上述定义:没300秒监视一次,当阵列出现错误,会发送邮件给sysadmin用户。由于monitor启动后是不会自动退出的,所以需要加上nohup和&,使之持续在后台运行。
在Follow模式下,是允许共享冗余磁盘的。
例如,我们有两个阵列:/dev/md0、/dev/md1,而/dev/md0里面有一个spare磁盘。当我们在/etc/mdadm.conf中定义类似:
DEVICE /dev/sd*
ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=database
UUID=410a299e:4cdd535e:169d3df4:48b7144a
ARRAY /dev/md1 level=raid1 num-device=2 spare-group=database
UUID=59b6e564:739d4d28:ae0aa308:71147fe7
也就是定义一个spare-group组。并运行上面的monitor模式命令。这样,当组成/dev/md1的其中一个磁盘出现问题的时候,mdadm会自动从/dev/md0上移走spare磁盘,并加入/dev/md1中,而不必人工干预。(请注意,能实现这样工作的,只有在该阵列支持冗余的情况下才能实现,如raid1、raid5等。而对于raid0等阵列模式,是无效的)
五、其他
1、增加spare磁盘
能通过在创建的时候指定冗余磁盘:
mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd[bcd]1
-x(--spare-devices)参数用于指定冗余磁盘的数量,结果:
另外,对于full的阵列(例如已有2个磁盘的RAID1),则直接使用-add参数,mdadm会自动把冗余的磁盘作为spare disk。

2、删除阵列
mdadm -S /dev/md0

rm /dev/md0
修改/etc/mdadm.conf、/etc/fstab等设置文件,把相关的地方去掉;
最后,用fdisk对磁盘进行重新分区即可。
3、重建阵列
我们也能在没有fdisk的情况下把使用过,但目前没有属于所有阵列的磁盘划分到新阵列中:

(0)

相关推荐

  • linux服务器磁盘扩容的方法(图)

    1.系统环境如下图: 2.为该系统添加一块新的虚拟硬盘,添加后需重启虚拟机,否则系统不识别:如下图,/dev/sdc 是新添加的硬盘: 3.fdisk /dev/sdc为新硬盘创建分区: 4.Linux允许的主分区为4个,则我们创建分区为 /dev/sdc15.默认情况下新建分区的格式为Linux,我们使用LVM动态添加磁盘空间,故需要修改 /dev/sdc1 分区格式为LVM,LVM格式id为8e;6.创建并修改成功后需格式化该分区:mkfs.ext3  /dev/sdc17.执行完成进入/e

  • linux系统如何访问NTFS磁盘

    本文介绍了在Redhat 7.3.8.0 9.0访问NTFS磁盘的完全解决方法,文中介绍的是的最为简单的解决办法. 下载RPM 主站: http://linux-ntfs.sourceforge.net/info/redhat.html 第二站: http://fr2.rpmfind.net/linux/rpm2ht...ery=kernel-ntfs 如果上面的链接下的RPM包不能用.就下面的地址来找. 第三站: http://www.city-fan.org/ftp/contrib/driv

  • linux大于2T的磁盘使用GPT分区的方法分享

    在linux我们可以先把大容量的磁盘进行转换,转换为GPT格式.由于GPT格式的磁盘相当于原来MBR磁盘中原来保留4个 partition table的4*16个字节只留第一个16个字节,其它的类似于扩展分区,真正的partition table在512字节之后,所以对GPT磁盘表来讲没有四个主分区的限制. 对GPT磁盘分区表进行操作,我们要使用功能强大的parted命令. 例:常用的parted命令 # parted /dev/sdb GNU Parted 1.8.1 Using /dev/s

  • 在Linux下用软件实现RAID功能

    数据安全性是人们在使用计算机中最重要的问题之一.通常情况下,人们会在服务器环境中采用硬盘镜像技术,以达到数据的双重备份.同样,在Linux环境下,我们也可以采用这种技术. 在Linux环境下,采用Raidtools工具,不仅可以将两个硬盘进行镜像,还可以制作软RAID0.RAID1.RAID5.说是软RAID,是因为通常情况下,RAID盘是通过专用的RAID卡进行的,而在Linux环境下,可以利用Raidtools软件实现RAID功能,所以称为软RAID.本文介绍根据不同的Linux版本,建立并

  • linux常用disk磁盘操作命令整理

    复制代码 代码如下: #按照目录大小排序战士最前面15个目录或者文件 du -xB M --max-depth=2 /var | sort -rn | head -n 15 #列出当前所有子目录的文件大小 du -h --max-depth=1 #列出当前文件或者目录最大的10个 du -s * | sort -n | tail #按照目录大小从大到小排序 du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s

  • linux中如何查看Raid磁盘阵列信息

    Linux下查看Raid磁盘阵列信息的方法 以下是组建服务器raid时查到的资料,做下笔记,没兴趣的朋友请无视. Linux下查看软.硬raid信息的方法. 软件raid:只能通过Linux系统本身来查看 cat /proc/mdstat 可以看到raid级别,状态等信息. 硬件raid: 最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdline,也有图形界面.如Adaptec公司的硬件卡就可以通过下面的命令进行查看: # /usr/dpt/raidutil -L all 可以看到

  • 如何在linux下做软raid实现方法

    如何在linux下做软raid?希望以下介绍能对朋友们有所帮助和启发! 在虚拟机系统中添加一块10g的硬盘为sdb,将硬盘分5个逻辑盘分别是sdb{5,6,7,8,9},每个盘的大小是1G. 首先利用其中三块硬盘sdb{5,6,7}建立raid5,sdb8为热备盘. 然后将sdb6作为故障盘下线,之后拔出sdb6,插入新的盘sdb9. 命令如下:mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb{5,6,7,8} 通过上面命令建立了使用空间为2G的raid5.盘符为/d

  • 在Linux下用软件实现RAID功能的实现方法

    mdadm使用的也是md驱动,由于其拥有多种模式,而且单一工具,不依赖所有设置文件,是替代raidtools的好工具.目前几乎所有发行版本使用的都是该工具.一.安装和编译源码下载:http://www.cse.unsw.edu.au/~neilb/source/mdadm/编译:tar xzvf ./mdadm-1.6.0.tgzcd mdadm-1.6.0make installrpm安装:rpm -ivh mdadm-1.6.0-3.rpm※源码最新版本是2.5,由于我使用的1.6.0的rp

  • 详解linux 下安装软件tar.gz, rpm,deb的方法

    在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种: 1)一种是软件的源代码,您需要自己动手编译它.这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz). 2)另一种是软件的可执行程序,你只要安装它就可以了.这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm. 当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包.只要您理解了以下的思路,这两种形式的安装包也不在话下

  • Linux下的软件安装

    1.Linux下有哪些中文系统? 主要有CXTERM.wzce.CXWIN.XCIN.ZhXwin.CXTERM是运行在X-WINDOW下的中文终端.Wzce是一个作为shell运行的终端.CXWIN是支持中文的XSERVER.XCIN可以在X-WINDOW下输入中文.ZhXwin是中文输入程序,需要CXTERM. 下载以上软件,例如要下载cxterm则进入自由软件库,查找cxterm即可. 2.怎样在X Window中象Pwin98那样显示/输入中文? 要在X Window的任何地方输入中文,

  • Linux下彻底删除Mysql 8.0服务的方法

    观看本文前最好有一定的Linux命令基础,具体为centos7.3环境中清除使用yum安装的Mysql 卸载前请先关闭Mysql服务 service mysql stop 使用 rpm 命令的方式查看已安装的mysql rpm -qa|grep mysql 开始卸载Mysql服务 使用yum安装需要先进行清除服务等 yum remove mysql mysql-server mysql-libs mysql-server 再次查询 rpm -qa|grep mysql 使用过rpm -ev +对

  • Linux下nginx生成日志自动切割的实现方法

    Linux下nginx生成日志自动切割的实现方法 1.编辑切割日志的 shell 程序,目录自定 #vi /data/nginx/cut_nginx_log.sh 输入代码: #!/bin/bash # This script run at 00:00 function cutAccess() { dir=$1 newdir="${dir}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday&quo

  • Linux下Oracle删除用户和表空间的方法

    本文实例讲述了Linux下Oracle删除用户和表空间的方法.分享给大家供大家参考,具体如下: 1.删除某个用户 SQL> conn /as sysdba Connected. SQL> drop user userName cascade; 用户已删除 如果用户无法删除,并报错: ERROR at line 1: ORA-01940: cannot drop a user that is currently connected 通过查看用户的进行,并kill用户进程,然后删除用户. SQL&

  • Linux下Tomcat8.0.44配置使用Apr的方法

    听说Apr可以提高tomcat很多的性能,配置具体如下 1.安装apr 1.5.2 [root@ecs-3c46 ]# cd /usr/local/src [root@ecs-3c46 src]# wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz [root@ecs-3c46 src]# tar -xzvf apr-1.5.2.tar.gz [root@ecs-3c46 src]# cd apr-1.5.2 [root@ecs-3c46 apr

  • linux下判断文件和目录是否存在的方法(总结)

    1.前言 工作中涉及到文件系统,有时候需要判断文件和目录是否存在.我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询. 2.stat系列函数 stat函数用来返回与文件有关的结构信息.stat系列函数有三种情况,分别对应文件名称.文件描述符和符号链接文件.stat结构描述了文件的属性,主要包括文件的类型.文件大小等等.详细stat结构如下所示: struct stat { mode_t st_mode; // file type & mode(permissio

  • linux下passwd命令设置修改用户密码的方法

    1.passwd 简单说明: 我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码:passwd命令的用法也很多,我们只选如下的几个参数加以说明:想了解更多,请参考man passwd或passwd --help : passwd [OPTION...] passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定:如果root用户运行passwd ,可以设置或修改任何用户的密码: passwd 命令后面不接任何参数或用户名

随机推荐