`
emcome
  • 浏览: 304093 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Linux 软RAID---mdadm

阅读更多

 

 

.RAID 建立

 

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb{1,2}

 

mdadm --create /dev/md0 --level=5 --raid-devices=2 /dev/sdb{1,2}

 

添加热备 :

mdadm --create /dev/md0 --add /dev/sdb3

 

创建 raid10

# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb{1,2}

# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb{3,4} -a yes

# mdadm --create /dev/md2 --level=10 --raid-devices=2 /dev/md{0,1} -a yes

 

 

. /proc/mdstat

[root@station20 ~]# cat /proc/mdstat

Personalities : [raid1] [raid6] [raid5] [raid4]

md1 : active raid5 sdb10[3] sdb9[1] sdb8[0]

      196224 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]

      [===============>.....]  recovery = 79.1% (78592/98112) finish=0.0min speed=4136K/sec

     

md0 : active raid1 sdb7[1] sdb6[0]

      98112 blocks [2/2] [UU]

      bitmap: 0/12 pages [0KB], 4KB chunk

 

unused devices: <none>

 

 

. 位图 : --bitmap=internal

原理描述:

mdadm 操作中, bitmap 用于记录 RAID 阵列从上次同步之后更改的部分,即记录 RAID 阵列有多少个块已经同步 (resync) RAID 阵列会定期将信息写入到 bitmap 中。在一般情况下,磁盘阵列在重启之后会有一个完整的同步过程。如果有 bitmap ,那么只有被修改后的数据才会被同步。在另一种情况下,如果阵列一块磁盘被取出, bitmap 不会被清除,当这块磁盘重新加入阵列时,同样只会同步改变过的数据。所以 bitmap 能够减少磁盘阵列同步的时间,起到优化 raid1 的作用。 Bitmap 一般写入的位置是磁盘的 metadata 或者我们成为外部的另外,要注意的是, bitmap 只是对 raid1 的功能,对 raid0 等其他设备来说是没有意义的 .

注意 : 此功能只对 RAID1 有效

Example: mdadm --create /dev/md0 --level=1 --raid-devices=2 -a yes -b internal

 

在已存在的 RAID1 上启用视图

mdadm --grow /dev/md0 --bitmap=internal

 

 

. 共享热备盘及邮件通知

 

[root@server109 ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda{5,6} -a yes -b internal

[root@server109 ~]# mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda{7,8,9} -a yes

[root@server109 ~]# mdadm /dev/md0 --add /dev/sda10

[root@server109 ~]# cat /proc/mdstat

Personalities : [raid1] [raid6] [raid5] [raid4]

md1 : active raid5 sda9[2] sda8[1] sda7[0]

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

     

md0 : active raid1 sda10[2](S) sda6[1] sda5[0]

      98368 blocks [2/2] [UU]

      bitmap: 0/13 pages [0KB], 4KB chunk

unused devices: <none>

 

[root@server109 ~]# mdadm --examine --scan > /etc/mdadm.conf

[root@server109 ~]# cat /etc/mdadm.conf

ARRAY /dev/md1 level=raid5 num-devices=3 UUID=891d6352:a0a4efff:4f162d90:c3500453

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=b070e059:fe2cf975:aac92394:e103a46d

   spares=1

 

可以实现热备共享及邮件通知的配置文件如下 ( 直接修改 mdadm.conf):

[root@server109 ~]# cat /etc/mdadm.conf

## Share Host Spares

ARRAY /dev/md1 level=raid5 num-devices=3 UUID=891d6352:a0a4efff:4f162d90:c3500453 spare-group=1

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=b070e059:fe2cf975:aac92394:e103a46d spare-group=1

   spares=1

 

## Mail Notification

MAILFROM root@localhost             ## 邮件发出 , 不写默认为 root

MAILADDR raider@localhost        ## 邮件接收

 

[root@server109 ~]# /etc/init.d/mdmonitor start

[root@server109 ~]# useradd raider

[root@server109 ~]# echo redhat | passwd --stdin raider

[root@server109 ~]# cat /proc/mdstat

Personalities : [raid1] [raid6] [raid5] [raid4]

md1 : active raid5 sda9[2] sda8[1] sda7[0]

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

     

md0 : active raid1 sda10[2](S) sda6[1] sda5[0]

      98368 blocks [2/2] [UU]

      bitmap: 0/13 pages [0KB], 4KB chunk

 

unused devices: <none>

[root@server109 ~]# mdadm /dev/md1 -f /dev/sda7 -r /dev/sda7

mdadm: set /dev/sda7 faulty in /dev/md1

mdadm: hot removed /dev/sda7

[root@server109 ~]# cat /proc/mdstat

Personalities : [raid1] [raid6] [raid5] [raid4]

md1 : active raid5 sda10[3] sda9[2] sda8[1]

      196736 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]

      [====>................]  recovery = 24.7% (25472/98368) finish=0.1min speed=6368K/sec

     

md0 : active raid1 sda6[1] sda5[0]

      98368 blocks [2/2] [UU]

      bitmap: 0/13 pages [0KB], 4KB chunk

 

[root@server109 ~]# mail -u raider

Mail version 8.1 6/6/93.  Type ? for help.

"/var/mail/raider": 1 message 1 new

>N  1 root@server109.examp  Tue Jan  4 04:28  35/1262  "Fail event on /dev/md1:server109.example.com"

& 1

Message 1:

From root@server109.example.com  Tue Jan  4 04:28:48 2011

Date: Tue, 4 Jan 2011 04:28:47 +0100

From: root@server109.example.com

To: raider@server109.example.com

Subject: Fail event on /dev/md1:server109.example.com

 

.........................

A Fail event had been detected on md device /dev/md1.

 

It could be related to component device /dev/sda7.

 

...............................

 

 

.RAID 扩展 --grow

如果某天 RAID 空间不够用了 , 如何增加 RAID 的空间呢 ?

 

The steps for adding a new disk are:

1. Add the new disk to the active 3-device RAIDS (starts as a spare):

mdadm -add /d ev /mdO /d ev /hda8

2 Reshape the RAID 5 :

mdadm --grow /dev/md0 --raid-devices=4

3. Monitor the reshaping process and estimated time to fi ni sh:

watch -n 1 'cat /proc/mdstat'

4. Expand the FS to fill the new space:

resize2fs /dev/md0

 

[root@server109 ~]# mdadm /dev/md1 --add /dev/sda1 1

[root@server109 ~]# mdadm /dev/md1 --grow --raid-devices= 5

[root@server109 ~]# cat /proc/mdstat

Personalities : [raid1] [raid6] [raid5] [raid4]

md1 : active raid5 sda11[4] sda7[3] sda10[0] sda9[2] sda8[1]

      295104 blocks super 0.91 level 5, 64k chunk, algorithm 2 [5/5] [UUUUU]

      [>....................]  reshape =  2.0% (2812/98368) finish=1.0min speed=1406K/sec

     

md0 : active raid1 sda6[1] sda5[0]

      98368 blocks [2/2] [UU]

      bitmap: 0/13 pages [0KB], 4KB chunk

 

unused devices: <none>

 

[root@server109 ~]# resize2fs /dev/md1

 

 

. RAID 恢复

OS 为独立硬盘 , 数据存储在一个 RAID5 , 重新安装 OS 后如何恢复 RAID ?

 

[root@server109 ~]# mdadm --examine /dev/sda8

/dev/sda8:

          Magic : a92b4efc

        Version : 0.90.00

           UUID : 891d6352:a0a4efff:4f162d90:c3500453

  Creation Time : Tue Jan  4 04:18:45 2011

     Raid Level : raid5

  Used Dev Size : 98368 (96.08 MiB 100.73 MB)

     Array Size : 393472 (384.31 MiB 402.92 MB)

   Raid Devices : 5

  Total Devices : 5

Preferred Minor : 1

 

    Update Time : Tue Jan  4 05:17:52 2011

          State : clean

  Active Devices : 5

Working Devices : 5

  Failed Devices : 0

  Spare Devices : 0

       Checksum : 7f9b882a - correct

         Events : 206

 

         Layout : left-symmetric

     Chunk Size : 64K

 

      Number   Major   Minor   RaidDevice State

this     1       8        8        1      active sync   /dev/sda8

 

   0     0       8       10        0      active sync   /dev/sda10

   1     1       8        8        1      active sync   /dev/sda8

   2     2       8        9        2      active sync   /dev/sda9

   3     3       8        7        3      active sync   /dev/sda7

   4     4       8       11        4      active sync   /dev/sda11

 

[root@server109 ~]# mdadm -A /dev/md1 /dev/sda{7,8,9,10,11}

mdadm: /dev/md1 has been started with 5 drives.

[root@server109 ~]# mount /dev/md1 /mnt/

 

.Raid 重命名

rename / dev / md 1 to / dev / md3

 

[root@server109 ~]# umount /mnt/

[root@server109 ~]# mdadm --stop /dev/md1

[root@server109 ~]# mdadm --assemble /dev/md3 --super-minor=1 --update=super-minor /dev/sda{7,8,9,10,11}

说明 : --super-minor=1  这里的 "1" /dev/md1 一至 , 如果重命令的是 /dev/md0, 那这里就是 --super-minor=0

分享到:
评论

相关推荐

    使用mdadm创建软RAID

    在Linux系统中,mdadm是一个强大的工具,可以用来创建软RAID(Software RAID),软RAID可以将多个硬盘组合成一个逻辑硬盘,以提高存储容量和读写性能。本文将详细介绍使用mdadm创建软RAID的步骤和相关知识点。 ...

    mdadm-mdadm-4.1.源码

    总的来说,mdadm-mdadm-4.1源码包为Linux系统管理员和开发者提供了一个深入了解和定制RAID管理软件的机会,对于提高系统稳定性和效率有着重要作用。通过研究源码,用户不仅可以提升自己的Linux和RAID知识,还能提升...

    Linux基础课件-RAID创建-mdadm命令.pptx

    **Linux操作系统基础——深入理解mdadm命令与RAID创建** 在Linux操作系统中,掌握RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)技术是提升系统稳定性和数据安全性的重要手段。而mdadm(Multiple...

    行业分类-设备装置-实现RAID-1的系统、实现RAID-1的写入及读取写入数据的方法.zip

    例如,在Linux中,可以使用mdadm工具创建和管理RAID-1阵列;在Windows中,可以利用Storage Spaces功能创建镜像卷。 **RAID-1的数据写入** 当数据写入RAID-1阵列时,系统会将数据同时写入到所有镜像硬盘上。这一步骤...

    mdadm4.1源码(raid)

    这个源码包"mdadm-mdadm-4.1"包含了MDADM 4.1版本的所有源代码,允许开发者深入理解其工作原理并进行定制或改进。 MDADM的核心功能包括: 1. **创建RAID阵列**:用户可以通过MDADM创建不同类型的RAID级别,如RAID ...

    LINUX 软RAID

    Linux软RAID是一种在操作系统级别实现的磁盘冗余阵列技术,主要依赖于名为`mdadm`(multiple devices administrator)的管理工具。在Red Hat系统中,软RAID可以帮助提高数据安全性,通过镜像(RAID 1)或者条带化...

    linux软RAID的创建和维护

    Linux软RAID(Redundant Array of Inexpensive Disks)是一种通过软件实现的磁盘冗余技术,它允许用户利用多个廉价磁盘构建出一个性能强大且可靠的存储解决方案。在Linux系统中,用户可以通过内建的软件工具,如...

    Linux软RAID部署系统分区之恢复攻略.docx

    在Linux环境下,软RAID的部署可以通过mdadm工具轻松实现。以下步骤展示了如何在Linux系统中搭建RAID-5: 1. **准备磁盘**:确保有足够的磁盘用于构建RAID阵列。 2. **创建RAID阵列**: ```bash # 创建RAID-5阵列 ...

    mdadm建立软RAID

    以上步骤和示例详细介绍了如何使用 `mdadm` 工具在 Linux 系统中创建软 RAID 阵列。不同的创建方法适用于不同场景的需求,但通常建议使用 `-C` 或 `--create` 参数来确保在系统出现问题时可以更容易地恢复 RAID 配置...

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

    ### Linux下使用mdadm创建和管理软RAID #### mdadm的几个常用参数及功能介绍 **mdadm** 是一个非常强大的工具,主要用于管理和维护Linux下的软件RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)...

    Linux软RAID MD源码分析

    `mdadm` 是用于管理和维护Linux软RAID设备的一个强大工具。它可以用来创建新的RAID阵列、添加或移除设备、监控状态等。对于系统管理员来说,`mdadm` 提供了一个非常方便的方式来管理各种类型的RAID配置。 #### RAID...

    如何利用mdadm在Linux中配置RAID

    mdadm(管理磁盘阵列的管理员)是Linux下用于创建、管理和维护RAID阵列的开源工具。本篇文章将详细介绍如何利用mdadm在Linux环境中配置RAID。 首先,RAID的目的是为了提高数据安全性,确保即使单个磁盘故障,数据...

    在 Linux 下使用mdadm创建 RAID 5-解决CK多存储问题.pdf

    Linux操作系统下的mdadm工具是配置和管理软件RAID的工具,它允许用户通过简单的命令行界面来创建、管理和监控RAID阵列。使用mdadm创建RAID 5阵列至少需要三个磁盘,但理论上可以扩展到更多的磁盘以提高存储容量和...

    Linux-中软件-RAID-的使用.docx

    配置文件/etc/mdadm.conf是软件RAID的默认配置文件,主要作用是方便跟踪软RAID的配置,尤其是可以配置监视和事件上报选项。Assemble命令也可以使用-config(或者其缩写-c)来指定配置文件。 在软件RAID的使用中,...

    详解建立Linux环境软RAID 5教程

    RAID 可分为软 RAID 和硬 RAID,软 RAID 是通过软件实现多块硬盘冗余的,而硬 RAID 是一般通过 RAID 卡来实现 RAID 的。软 RAID 配置简单,管理也比较灵活,对于中小企业来说不失为一最佳选择。硬 RAID 往往花费比较...

    mdadm-3.2.tar.gz

    这通常包括解压、配置、编译和安装四个步骤:`tar -zxvf mdadm-3.2.tar.gz`,`./configure`,`make`,`sudo make install`。 2. **配置RAID**:使用mdadm创建RAID阵列,首先要指定RAID级别,然后选择参与阵列的硬盘...

    mdadm软raid配置文档.docx

    在深度Linux 15.2版本中,我们可以通过mdadm来构建软RAID,以提高数据的安全性和性能。本文档将详细阐述如何使用mdadm将两块系统SSD组建为软RAID。 ### 一、准备工作 首先,确保你拥有两块SSD硬盘,这里假设它们的...

    mdadm-3.4.tar.gz

    综上所述,"mdadm-3.4.tar.gz" 文件提供了在 Linux 系统中创建和管理 RAID1 镜像阵列的强大工具,并且具有良好的可移植性和灵活性,适用于各种环境,包括嵌入式系统。通过编译和配置这些源代码,开发者可以定制适合...

Global site tag (gtag.js) - Google Analytics