`
piaoling
  • 浏览: 261636 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

linux之mdadm

阅读更多
mdadm是linux下用于管理软件 RAID 的工具, 可以到这里http://www.cse.unsw.edu.au/~neilb/source/mdadm/下载最新的mdadm源码包
安装:
# tar xvzf mdadm-2.4.tgz
# cd mdadm-2.4
# make
# make install ( or cp -R mdadm /usr/sbin)

基本语法 : mdadm [mode] <raid-device> [options] <component-devices>
mode  有7种:
   Assemble:将以前定义的某个阵列加入当前在用阵列。
   Build:Build a legacy array ,每个device 没有 superblocks
  Create:创建一个新的阵列,每个device 具有 superblocks
  Manage: 管理阵列,比如 add 或 remove
  Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。
  Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态
  Grow:改变raid 容量或 阵列中的 device 数目
可用的 [options]:
-A, --assemble:加入一个以前定义的阵列
-B, --build:Build a legacy array without superblocks.
-C, --create:创建一个新的阵列
-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分
-D, --detail:打印一个或多个 md device 的详细信息
-E, --examine:打印 device 上的 md superblock 的内容
-F, --follow, --monitor:选择 Monitor 模式
-G, --grow:改变在用阵列的大小或形态
-h, --help:帮助信息,用在以上选项后,则显示该选项信息
--help-options
-V, --version
-v, --verbose:显示细节
-b, --brief:较少的细节。用于 --detail 和 --examine 选项
-f, --force
-c, --config= :指定配置文件,缺省为 /etc/mdadm.conf
-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm.conf
mdadm.conf 格式:
DEVICE  所用到的设备分区列表(在mdadm扫描时,将扫描这些分区)
ARRAY   定义实际的磁盘阵列
简单实例:
DEVICE /dev/sda10 /dev/sda11 /dev/sdb10 /dev/sdb11
ARRAY /dev/md0 devices=/dev/sda11, /dev/sda10
分区:
4.实战RAID
下面将通过实际操作,创建一个RAID1:
4.1 格式化待做软RAID的分区:
准备两个待做RAID1的分区/dev/sda10, /dev/sdb10:
要求: 大小近乎相等,格式为Linux raid autodetect (即:fd);
# fdisk /dev/sda
The number of cylinders for this disk is set to 9964.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1012-9964, default 1012):
Using default value 1012
Last cylinder or +size or +sizeM or +sizeK (1012-1039, default 1012): 1025
Command (m for help): p
Disk /dev/sda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1         1        9964    80035798+   5  Extended
/dev/sda5       917         927       88326    7  HPFS/NTFS
/dev/sda6       928         996      554211    b  Win95 FAT32
/dev/sda7       997        1011      120456    7  HPFS/NTFS
/dev/sda8      1040        9964    71690031   83  Linux
/dev/sda9         1         916     7357707   83  Linux
/dev/sda10     1012        1025      112423+  83  Linux
Partition table entries are not in disk order
Command (m for help): t    (更改分区类型)
Partition number (1-10): 10  
Hex code (type L to list codes): fd  (分区类型为 Linux raid autodetect)
Command (m for help): w    (保存退出)
# fdisk -l /dev/sda
Disk /dev/sda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1         1        9964    80035798+   5  Extended
/dev/sda5         917         927       88326    7  HPFS/NTFS
/dev/sda6         928         996      554211    b  Win95 FAT32
/dev/sda7         997        1011      120456    7  HPFS/NTFS
/dev/sda8        1040        9964    71690031   83  Linux
/dev/sda9          1         916     7357707   83  Linux
/dev/sda10      1012   1025     112423+  fd  Linux raid autodetect
Partition table entries are not in disk order
同样创建另一分区/dev/sdb10
# fdisk -l /dev/sdb
Disk /dev/sdb: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/sdb2      4501        9964    43889580    5  Extended
/dev/sdb3       667        4500    30796605   83  Linux
/dev/sdb4       658         666       72292+  83  Linux
/dev/sdb5      5114        5362     2000061   83  Linux
/dev/sdb6      5751        5878     1028128+  83  Linux
/dev/sdb7      5721        5750      240943+  83  Linux
/dev/sdb8      5620        5720      811251   83  Linux
/dev/sdb9      6261        9964    29752348+  83  Linux
/dev/sdb10     4501        4514  112423+  fd  Linux raid autodetect
Partition table entries are not in disk order
创建RAID1
#mdadm -C --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda10 /dev/sdb10
#或 mdadm -Cv /dev/md0 -l1 -n2 /dev/sda10 /dev/sdb10
mdadm: chunk size defaults to 64K
mdadm: /dev/sda10 appears to contain an ext2fs file system
    size=112320K  mtime=Sat Jan  1 06:39:59 2000
mdadm: /dev/sdb10 appears to be part of a raid array:
    size=112320K ctime=Sat Jan  1 02:45:14 2000
Continue creating array? y
mdadm: array /dev/md0 started.
# mkfs.ext3 /dev/md0  (格式化raid)
   mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
28112 inodes, 112320 blocks
5616 blocks (5.00%) reserved for the super user
First data block=1
14 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729
Writing inode tables: done                          
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# mdadm -D /dev/md0 (查看raid信息)
/dev/md0:
        Version : 00.90.01
  Creation Time : Sat Jan  1 02:45:14 2000
     Raid Level : raid1
     Array Size : 112320 (109.71 MiB 115.02 MB)
    Device Size : 112320 (109.71 MiB 115.02 MB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent
    Update Time : Sat Jan  1 05:08:27 2000
          State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
  Spare Devices : 0
           UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b
         Events : 0.10
    Number   Major   Minor   RaidDevice State
       0       8       10        0      active sync   /dev/sda10
       1       8       26        1      active sync   /dev/sdb10
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda10[0] sdb10[1]
      112320 blocks [2/2] [UU] raid autodetect
unused devices: <none>
# mount /dev/md0  /share/raid  (挂载raid)
# cp /share/partitionA2 /share/raid
# ls /share/raid
lost+found                    asdf.asf
netatalk.tar
# umount /share/raid
# mdadm  /dev/md0 -r /dev/sda10  (将sda10从raid中移除)
# mdadm -D /dev/md0
/dev/md0:
        Version : 00.90.01
  Creation Time : Sat Jan  1 02:45:14 2000
     Raid Level : raid1
     Array Size : 112320 (109.71 MiB 115.02 MB)
    Device Size : 112320 (109.71 MiB 115.02 MB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 0
    Persistence : Superblock is persistent
    Update Time : Sat Jan  1 05:30:28 2000
          State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
  Spare Devices : 0
           UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b
         Events : 0.52
    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       26        1      active sync   /dev/sdb10
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb10[1]
      112320 blocks [2/1] [_U]
     
unused devices: <none>
将sda10的分区类型改为linux (即83),然后重启,重新挂载,查看分区里的文件:
# fdisk /dev/sda
t-->11 --> 83 --> w
# reboot
# mount /dev/sda10 /share/partition
# ls /share/partition
lost+found                    asdf.asf
netatalk.tar
和原来作为raid时的内容完全一样,说明raid1 的确是在每个硬盘都写入数据,有较高的可靠性。
4.3 数据恢复:
下面在sda上新建另一分区,sda11,并把它作为raid1的一个分区,即替代原来的sda10;
# mdadm /dev/md0 -a /dev/sda11
mdadm: hot added /dev/sda11
# mdadm -D /dev/md0
/dev/md0:
        Version : 00.90.01
  Creation Time : Sat Jan  1 02:45:14 2000
     Raid Level : raid1
     Array Size : 112320 (109.71 MiB 115.02 MB)
    Device Size : 112320 (109.71 MiB 115.02 MB)
   Raid Devices : 2
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent
    Update Time : Sat Jan  1 05:50:00 2000
          State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
  Spare Devices : 1
           UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b
         Events : 0.111
    Number   Major   Minor   RaidDevice State
       0       8       11        0      active sync   /dev/sda11
       1       8       26        1      active sync   /dev/sdb10
# mount /dev/md0 /share/raid
# ls /share/raid
lost+found                    asdf.asf
netatalk.tar
4.4 其他操作:
# mdadm -S /dev/md0 (停止raid)
# mdadm -As /dev/md0 (根据mdadm.conf文件启动raid)
# modprobe raid0.ko
# lsmod
raid0 5984 0 - Live 0xbf000000
# mdadm -C --verbose /dev/md0 -l0 -n2 /dev/sda11 /dev/sdb11 (raid0)
# modprobe xor.ko
# modprobe raid5.ko
# lsmod
Module                  Size  Used by    Not tainted
raid5 20544 0 - Live 0xbf006000
xor 5544 1 raid5, Live 0xbf003000
raid0 5984 0 - Live 0xbf000000
# mdadm -C --verbose /dev/md0 -l5 -n3 /dev/sda10 /dev/sda11 /dev/sdb11      (raid5)

关于mdadm.conf
echo "DEVICE partitions" > /etc/mdadm.conf bgKLinux联盟
mdadm --detail --scan >> /etc/mdadm.conf
命令使用:
mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb7 /dev/sdb8
mdadm -D /dev/md0
mdadm -S /dev/md0
mdadm -R /dev/md0
mdadm -As (-s指pg mdadm的配置文件,如果没有指定,则使用/etc/mdadm.conf
分享到:
评论

相关推荐

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

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

    如何利用mdadm在Linux中配置RAID

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

    mdadm-3.2.tar.gz

    《mdadm:Linux下的磁盘阵列管理工具详解》 mdadm,全称为“Multiple Device Administrator”,是Linux系统中的一款开源、免费的RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)管理工具。mdadm...

    mdadm4.1源码(raid)

    MDADM(Multiple Device Administrator)是Linux系统中用于管理磁盘阵列(RAID,Redundant Array of Independent Disks)的开源工具。在版本4.1中,它提供了对多种RAID级别的支持,并且优化了性能和稳定性,特别适合...

    mdadm-3.4.tar.gz

    mdadm 是一个管理 Linux 系统中的多重设备(MD)驱动器,主要用于创建、管理和维护软件RAID(冗余磁盘阵列)的工具。 **描述分析:** 描述中提到,这个源码包可以被编译和移植,适合应用在嵌入式系统中。它提供了...

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

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

    使用mdadm创建软RAID

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

    mdadm-mdadm-4.1.源码

    Linux系统中的mdadm(Multiple Device Administrator)是一款强大的开源工具,用于管理RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)。它支持多种RAID级别,包括RAID0、RAID1、RAID5、RAID6以及...

    mdadm建立软RAID

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

    利用mdadm在Linux中配置RAID

    在Linux环境中,mdadm(Multiple Device Administrator)是用于创建、管理和维护RAID阵列的开源工具,具有高度灵活性和易用性。 首先,RAID的基本概念是通过组合两个或更多个磁盘,创建一个逻辑设备,这个逻辑设备...

    Linux基础课件RAID创建mdadm命令共12页.pd

    本课件主要聚焦于Linux中的RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)技术和如何使用mdadm命令进行配置。RAID是一种通过将多个磁盘组合成一个逻辑单元来提高数据存储性能、可靠性和容错能力的...

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

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

    mdadm软raid配置文档.docx

    在Linux操作系统中,mdadm(Multiple Device Administrator)是一个用于管理磁盘阵列(RAID)的工具,它支持多种RAID级别,包括RAID0、RAID1、RAID5、RAID6以及RAID10等。在深度Linux 15.2版本中,我们可以通过mdadm...

    mdadm在RAID中使用详解

    - **mdadm**是Linux中非常强大的RAID管理工具,可以轻松地创建、监控和维护各种类型的RAID阵列。 - **RAID5**结合了数据条带化和奇偶校验,提供了较高的性能和数据冗余性,适合需要高性能和高可靠性的应用场景。 - ...

    Linux磁盘列阵(RAID),包括RAID详解、Linux磁盘列阵和mdadm命令的相关操作

    文章目录什么是RAIDThe level of RAIDRAID的实现软件磁盘列阵的建立(Ubuntu下的操作)关于mdadm用法的详解(友链) 什么是RAID 磁盘列阵(Redundant Arrays of Independent Disks,RAID),即独立磁盘冗余阵列。 是把...

    puppet-mdadm:管理 Linux 软件 RAID 阵列的“mdadm”实用程序

    管理 Linux 软件 RAID 阵列的mdadm util 描述 此模块安装mdadm包以管理 Linux 软件 RAID 阵列,并提供有限的配置支持。 具体来说,该模块目前不提供对md数组的创建、修改或删除的任何支持。 管理仅限于配置对预先...

    Linux 中软件 RAID 的使用.doc

    在 Linux 系统中,mdadm 软件还提供了许多其他的功能,例如,使用 `mdadm --assemble` 命令可以将多个磁盘组合成一个软件 RAID 设备,而使用 `mdadm --stop` 命令可以停止软件 RAID 设备的运行。 此外,Linux 系统...

Global site tag (gtag.js) - Google Analytics