Linux下使用mdadm创建和管理软raid

注:本次操作以RHEL4为例,但应该可以应用到其它大部分的distro上(guess)。

mdadm的几个常用参数

-C 创建Raid,后面跟参数,代表raid设备的名称。比如:/dev/md0,/dev/md1。

-n 用于创建磁盘阵列的磁盘个数。

-l Raid的级别。

-x 指定用于hotspare(热备盘)的磁盘个数。如果阵列中有一块硬盘坏了,它会立刻顶上,并rebuild;

-D 显示软raid的详细信息;

-s 扫描配置文件(/etc/mdadm.conf)或'/proc/mdstat'来查看遗漏的信息f;

创建软raid的大体流程

使用fdisk工具为新磁盘创建分区;

使用mkfs.XXXX工具将刚才划分好的分区格式化成某种格式的文件系统。比如:ext3,reiserfs等;

使用mdadm来创建软raid;

创建/etc/mdadm.conf文件(注意文件的格式,包括是否有逗号等等。该文件是为了系统在重启后能

够自动启用软raid。可以查看/etc/rc.sysinit脚本,搜索'mdadm'字符串就明白了);

示例:创建软raid5(+hotspare)

以下是我的一次实际操作的完整过程:

这是用'fdisk -l'命令查看到的我当前的磁盘和分区情况(只有/dev/sda在使用,

其它四个都是新磁盘,没有分区,没有格式化):

# fdisk -l

Disk /dev/sda: 6442 MB, 6442450944 bytes

255 heads, 63 sectors/track, 783 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id System

/dev/sda1   *           1         720     5783368+ 83 Linux

/dev/sda2             721         783      506047+ 82 Linux swap

Disk /dev/sdb: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sde doesn't contain a valid partition table

使用fdisk创建分区(本例中将整块磁盘划分为一个主分区。其余几块磁盘也做相同的操作。):

# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF

disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected

by w(rite)

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-204, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-204, default 204):

Using default value 204

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

为刚才新建的分区建立文件系统(其余几个分区依次做相同的操作):

# mkfs.ext3 /dev/sdb1

mke2fs 1.35 (28-Feb-2004)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

52416 inodes, 208880 blocks

10444 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=67371008

26 block groups

8192 blocks per group, 8192 fragments per group

2016 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801

Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

所有磁盘都操作完后,再次用'fdisk -l'查看磁盘及分区状态:

# fdisk -l

Disk /dev/sda: 6442 MB, 6442450944 bytes

255 heads, 63 sectors/track, 783 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id System

/dev/sda1   *           1         720     5783368+ 83 Linux

/dev/sda2             721         783      506047+ 82 Linux swap

Disk /dev/sdb: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot      Start         End      Blocks   Id System

/dev/sdb1               1         204      208880   83 Linux

Disk /dev/sdc: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot      Start         End      Blocks   Id System

/dev/sdc1               1         204      208880   83 Linux

Disk /dev/sdd: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot      Start         End      Blocks   Id System

/dev/sdd1               1         204      208880   83 Linux

Disk /dev/sde: 214 MB, 214748160 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot      Start         End      Blocks   Id System

/dev/sde1               1         204      208880   83 Linux

使用mdadm创建一个软raid,raid级别:5;并有一个hotspare盘:

# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd[b-e]1

mdadm: array /dev/md0 started.

输出信息显示软raid(/dev/md0)已经启用了。使用mdadm的-D参数(--detail)可以查

看软raid状态:

# mdadm -D /dev/md0

/dev/md0:

Version : 00.90.01

Creation Time : Wed Aug 23 15:10:19 2006

Raid Level : raid5

Array Size : 417536 (407.75 MiB 427.56 MB)

Device Size : 208768 (203.88 MiB 213.78 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Wed Aug 23 15:10:21 2006

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 64K

Number   Major   Minor   RaidDevice State

0       8       17        0      active sync   /dev/sdb1

1       8       33        1      active sync   /dev/sdc1

2       8       49        2      active sync   /dev/sdd1

3       8       65       -1      spare   /dev/sde1

UUID : f8283de5:39c73d89:b9fbc266:fdceb416

Events : 0.2

生成配置文件(/etc/mdadm.conf):

# mdadm -D -s >/etc/mdadm.conf

查看一下:

# cat /etc/mdadm.conf

ARRAY /dev/md0 level=raid5 num-devices=3

UUID=f8283de5:39c73d89:b9fbc266:fdceb416

devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1

修改(把上面devices=后面的磁盘,都放到DEVICE后面,并且不要逗号。而/dev/md0之后

的内容,都要用逗号来分隔):

DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

ARRAY /dev/md0

level=raid5,num-devices=3,UUID=f8283de5:39c73d89:b9fbc266:fdceb416

重启一下,检测配置好的软raid是否能够在系统重启后自动启用。

重启后,查看'/proc/mdstat'文件就可以看到软raid的状态:

# cat /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdb1[0] sde1[3] sdd1[2] sdc1[1]

417536 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: That's all.

出现故障后的恢复

这里指的出现故障,是指raid中的一块磁盘出现了故障,无法使用。这时候需要使用额外的

磁盘来代替它。这里以强制将某块磁盘标记为已损坏,来模拟实际出现故障(注:新的磁盘

的容量最好和已损坏的磁盘一致):

将/dev/sdb1标记为已损坏:

# mdadm /dev/md0 -f /dev/sdb1

mdadm: set /dev/sdb1 faulty in /dev/md0

这时候使用mdadm的-D参数来查看状态,可以看到/dev/sdb1已经被认为是faulty,而

hotspare(热备)盘'/dev/sde1'已经顶替了它的位置(这就是hotspare的作用):

# mdadm -D /dev/md0

/dev/md0:

Version : 00.90.01

Creation Time : Wed Aug 23 15:10:19 2006

Raid Level : raid5

Array Size : 417536 (407.75 MiB 427.56 MB)

Device Size : 208768 (203.88 MiB 213.78 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Wed Aug 23 15:42:24 2006

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 1

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

Number   Major   Minor   RaidDevice State

0       8       65        0      active sync   /dev/sde1

1       8       33        1      active sync   /dev/sdc1

2       8       49        2      active sync   /dev/sdd1

3       8       17       -1      faulty   /dev/sdb1

UUID : f8283de5:39c73d89:b9fbc266:fdceb416

Events : 0.4

既然'/dev/sdb1'出现了故障,当然就要将它移除:

# mdadm /dev/md0 -r /dev/sdb1

mdadm: hot removed /dev/sdb1

现在可以关机了。关机之后拔下这块已损坏的磁盘了,换上你的新磁盘。换好之

后,分区,mkfs.XXXX。然后将它加入到软raid中:

# mdadm /dev/md0 -a /dev/sdb1

mdadm: hot added /dev/sdb1

这时候再使用mdadm的'-D'参数,可以看到sdb1已经作为hotspare盘了:

# mdadm -D /dev/md0

/dev/md0:

Version : 00.90.01

Creation Time : Wed Aug 23 15:10:19 2006

Raid Level : raid5

Array Size : 417536 (407.75 MiB 427.56 MB)

Device Size : 208768 (203.88 MiB 213.78 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Wed Aug 23 16:19:36 2006

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 64K

Number   Major   Minor   RaidDevice State

0       8       65        0      active sync   /dev/sde1

1       8       33        1      active sync   /dev/sdc1

2       8       49        2      active sync   /dev/sdd1

3       8       17       -1      spare   /dev/sdb1

UUID : f8283de5:39c73d89:b9fbc266:fdceb416

Events : 0.6

misc

假如创建了RAID,但是没有生成 /etc/mdadm.conf 文件,那么系统重启后是

不会启用RAID的,这时候需要这样做:

# mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

linux下使用mdadm组软raid,Linux下使用mdadm创建和管理软raid相关推荐

  1. linux软RAId配置与管理总结,Linux下使用mdadm创建和管理软raid(转)

    Linux下使用mdadm创建和管理软raid 注:本次操作以RHEL4为例,但应该可以应用到其它大部分的distro上(guess). mdadm的几个常用参数 -C 创建Raid,后面跟参数,代表 ...

  2. linux mdadm 脚本,Linux下使用mdadm创建和管理软raid

    Linux下使用mdadm创建和管理软raid 注:本次操作以RHEL4为例,但应该可以应用到其它大部分的distro上(guess). mdadm的几个常用参数 -C 创建Raid,后面跟参数,代表 ...

  3. Linux中如何理解组的分类,Linux中用户和组管理

    一.用户分类 1.管理员和普通用户 1️⃣:管理员   --    用户ID:0 2️⃣:普通用户 --   用户ID:1-65535 2.普通用户又分为系统用户和登陆用户 1️⃣:系统用户 -- 用 ...

  4. 阵列卡直通模式和raid模式_linux入门系列13--磁盘管理之RAID、LVM技术

    前一篇文章学习了磁盘分区.格式化.挂载等相关知识,本文将讲解RAID和LVM技术. 磁盘管理操作主要是运维人员用的较多,如果只是单纯的开发人员,可以先略过本文.但是在很多小公司里往往都是一人多用,运维 ...

  5. linux用户和群组的作用,linux中的用户、群组和权限

    新建用户natasha,uid为1000,gid为555,备注信息为"master" groupadd -g 555 natasha useradd -u 1000 -g 555  ...

  6. linux中用户与组的概念,Linux用户和组的概念

    linux下面角色分类 超级用户 默认root 普通用户 www ftp 虚拟用户 无法登录系统,bin adm nobody 用户和组的关系 一对一 一对多 多对一 多对多 用户的配置文件 /etc ...

  7. linux所有者和所属组的含义,Linux文件权限(所有者,所属组)及含义详解

    我们发现,初学者并不是不能理解权限命令,而是不能理解为什么需要设定不同的权限.所有的人都直接使用管理员身份,不可以吗? 这是由于绝大多数用户使用的是个人计算机,而使用个人计算机的用户一般都是被信任的用 ...

  8. linux两个卷组可以合并,Linux系统中所有的逻辑卷必须属于同一个卷组()。

    _ 债券收益率曲线的情况分别是( ) 商业银行进行流动性管理的方法有( ). 眼见即脑见. MOST总线可以有睡眠模式直接切换到通电工作模式. 在使用递归算法解决问题时,应满足以下两点:一是该问题能够 ...

  9. 软考信息系统项目管理师_项目整体管理---软考高级之信息系统项目管理师010

    这里项目整体管理,这里有10大管理,这里案例分析,论文是必考的部分. 47个管理过程都需要 背诵下来. 可以看到最顶部有整体管理,这个图就是接下来我们要学的,这部分 很重要,我们先看整体管理 可以看到 ...

最新文章

  1. BOOST_MP11_VERSION宏用法的测试程序
  2. prometheus-net.DotNetRuntime 获取 CLR 指标原理解析
  3. 判断子字符串是否出现在主字符串内
  4. PHP如何实现HTML页面静态化
  5. CentOS7.5搭建k8s集群
  6. 4款基于Django框架的开源软件推荐
  7. CISCO路由器NAT-T与IPSec ×××配置实验【实践闯未来】
  8. mysql数据库关联查询慢_mysql数据库多表关联查询的慢SQL优化
  9. Sql Server 2005 64位安装包
  10. 三星手机怎么看html5,三星手机查看硬件信息方法
  11. 智商黑洞(门萨Mensa测试)8
  12. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow(第2版)》学习笔记
  13. 2小时学会CSS,完成网页制作!
  14. 《时间从来不语,却回答了所有问题》读后感
  15. 吼 困 鸭
  16. 给你的应用程序添加动态鼠标
  17. 程序员是青春饭?该何去何从?
  18. 美格智能5G模组助力电力巡检之无人机产品智能化高效运作
  19. 大学四年如何规划之出国留学
  20. Airflow使用MsSqlHook与数据库交互

热门文章

  1. 项目_MySQL比较字符大小的小坑
  2. JNPF快速开发框架的八大功能介绍
  3. SugarNMS交换机、路由器监控软件
  4. 18天精读掌握《费曼物理学讲义卷一》 第2天 2019.6.13
  5. linux 命令行 mpv,在Ubuntu本机编译mpv,秒杀其他播放器
  6. Fly.Box 2.0.2 企业网盘,企业云盘解决方案
  7. 廖雪峰Java高级架构师第一期
  8. 大话西游2服务器维护公告,大话西游2经典版:2019年05月09日停机维护公告
  9. 最新《JPA入门到精通JAVA进阶项目实战》
  10. 圆柱模板行业B2B站点打造MIP推送+熊掌号推送+历史普通推送插件