首页 > 代码库 > MDADM

MDADM

先在虚拟机上添加两块硬盘

wKiom1PsyAaTb9IbAAGbnv0Jzq4043.jpg

查看一下操作系统

[root@web1 ~]# uname -a

Linux web1.abc.local 2.6.32-358.el6.x86_64#1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

[root@web1 ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.4(Santiago)

查看mdadm的版本信息

[root@web1 ~]# rpm -qi mdadm

Name       : mdadm                       Relocations: (not relocatable)

Version    : 3.2.5                            Vendor: Red Hat, Inc.

Release     : 4.el6                         Build Date: Fri 07 Dec2012 12:14:45 AM CST

Install Date: Fri 01 Aug 2014 06:05:19 PMCST      Build Host:x86-003.build.bos.redhat.com

Group      : System Environment/Base      Source RPM: mdadm-3.2.5-4.el6.src.rpm

Size       : 860588                          License: GPLv2+

Signature  : RSA/8, Mon 28 Jan 2013 10:48:06 PM CST, Key ID 199e2f91fd431d51

Packager   : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>

URL        : http://www.kernel.org/pub/linux/utils/raid/mdadm/

Summary    : The mdadm program controls Linux md devices (software RAID arrays)

Description :

The mdadm program is used to create,manage, and monitor Linux MD (software

RAID)devices.  As such, it provides similarfunctionality to the raidtools

package. However, mdadm is a single program, and it can perform

almost all functions without aconfiguration file, though a configuration

file can be used to help with some commontasks.

1.分区操作


[root@web1 ~]# fdisk /dev/sdb

 

WARNING:DOS-compatible mode is deprecated. It‘s strongly recommended to

        switch off the mode (command ‘c‘) and change display units to

        sectors (command ‘u‘).

 

Command (m forhelp): p

 

Disk /dev/sdb:32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280bytes

Sector size (logical/physical): 512 bytes /512 bytes

I/O size (minimum/optimal): 512 bytes / 512bytes

Disk identifier: 0x09a1a34a

 

  Device Boot      Start         End      Blocks  Id  System

 

Command (m forhelp): n

Command action

  e   extended

  p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-3916, default 1):

Using defaultvalue 1

Last cylinder, +cylinders or +size{K,M,G}(1-3916, default 3916):

Using default value 3916

 

Command (m forhelp): p

 

Disk /dev/sdb:32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280bytes

Sector size (logical/physical): 512 bytes /512 bytes

I/O size (minimum/optimal): 512 bytes / 512bytes

Disk identifier: 0x09a1a34a

 

  Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        3916   31455238+  83  Linux

 

Command (m forhelp): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.


对dev/sdc进行同样的操作

通过fdisk -l查看


[root@web1 ~]# fdisk -l /dev/sdb

 

Disk /dev/sdb:32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280bytes

Sector size (logical/physical): 512 bytes /512 bytes

I/O size (minimum/optimal): 512 bytes / 512bytes

Disk identifier: 0x09a1a34a

 

  Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        3916   31455238+  83  Linux

[root@web1 ~]# fdisk -l /dev/sdc

 

Disk /dev/sdc:32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280bytes

Sector size (logical/physical): 512 bytes /512 bytes

I/O size (minimum/optimal): 512 bytes / 512bytes

Disk identifier: 0x6881f1ac

 

  Device Boot      Start         End      Blocks  Id  System

/dev/sdc1               1        3916   31455238+  83  Linux


2.建立RAID1


[root@web1 ~]# mdadm -C /dev/md0 -l 1 -n 2/dev/sdb1 /dev/sdc1

mdadm: Note: this array has metadata at thestart and

   may not be suitable as a boot device. If you plan to

   store ‘/boot‘ on this device please ensure that

   your boot-loader understands md/v1.x metadata, or use

   --metadata=http://www.mamicode.com/0.90

Continue creating array? y

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.


输入tail -f /var/log/messages打开日志,在日志中可看到如下内容


md: bind<sdb1>

md: bind<sdc1>

md: raid1 personality registered for level1

bio: create slab <bio-1> at 1

md/raid1:md0: not clean -- startingbackground reconstruction

md/raid1:md0: active with 2 out of 2mirrors

md0: detected capacity change from 0 to32193249280

md: resync of RAID array md0

md: minimum _guaranteed_  speed: 1000 KB/sec/disk.

md: using maximum available idle IObandwidth (but not more than 200000 KB/sec) for resync.

md: using 128k window, over a total of31438720k.

 md0:unknown partition table


3.创建文件系统


先格式化该磁盘阵列

[root@web1 ~]# mkfs.ext4 /dev/md0

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

1966080 inodes, 7859680 blocks

392984 blocks (5.00%) reserved for thesuper user

First data block=0

Maximum filesystem blocks=4294967296

240 block groups

32768 blocks per group, 32768 fragments pergroup

8192 inodes per group

Superblock backups stored on blocks:

       32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

       4096000

 

Writing inodetables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystemaccounting information: done

 

This filesystemwill be automatically checked every 30 mounts or

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


挂载


[root@web1 ~]# mount /dev/md0 /data

[root@web1 ~]# ll /data

total 16

drwx------2 root root 16384 Aug 13 19:18 lost+found


[root@web1 ~]# vi /etc/fstab

 

#

# /etc/fstab

# Created by anaconda on Fri Aug  1 18:02:23 2014

#

# Accessible filesystems, by reference, aremaintained under ‘/dev/disk‘

# See man pagesfstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1

UUID=e3738a2c-63a9-4c8d-99db-8e0794534f45/boot                   ext4    defaults        1 2

/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/md0                /data                   ext4    defaults        0 0


[root@web1 ~]# mdadm -Ds

ARRAY /dev/md0 metadata=http://www.mamicode.com/1.2name=web1.abc.local:0 UUID=562b4e91:606904d1:33e5d565:e5a9f609


写入到配置文件


[root@web1 ~]# mdadm -Ds >>/etc/mdadm.conf


重新启动验证


[root@web1 ~]# reboot


[root@web1 ~]# mount

/dev/mapper/VolGroup-lv_root on / type ext4(rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

/dev/md0 on /data type ext4 (rw)

none on /proc/sys/fs/binfmt_misc typebinfmt_misc (rw)


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

Personalities : [raid1]

md0 : active raid1 sdb1[0] sdc1[1]

     31438720 blocks super 1.2 [2/2] [UU]

 

unused devices: <none>


4.模拟故障


删除一块硬盘


wKiom1PtXbOSQIF_AAFoHVq5XvE066.jpg


# cat /proc/mdstat

Personalities : [raid1]

md0 : active raid1 sdb1[0](F) sdc1[1]

      31438720 blocks super 1.2 [2/1] [_U]

 

unused devices: <none>


5.RAID1重建


新添加一块名为30GBC的磁盘


wKioL1PtYF6Q0EQwAAF8LVRwcpE219.jpg


在线加入新组成单元

[root@web1 ~]# mdadm /dev/md0 -a /dev/sdb1


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


本文出自 “thawliu” 博客,请务必保留此出处http://thawliu.blog.51cto.com/9274422/1540297