您的位置:首页 > 大数据 > 人工智能

mdadm创建RAID5

2012-09-04 21:45 531 查看
原文:http://www.qiyeku.com/xinwen/43061.html

mdadm创建RAID5

RAID级别:5

设备列表:

Host:/dev/sda

RAID Devices:/dev/sdb /dev/sdc /dev/sdd

Spare Devices:/dev/sde

设备准备:

直接使用硬盘硬件设备,不需要分区。

如果要具体使用哪个硬盘的分区做RAID,才需要fdisk特定的分区,并给它指定分区类型:fd。

1>创建raid:

mdadm的每个命令都有其简写形式,当然也可以使用shell的正规表达式:

#mdadm --create --verbose /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd --spare-devices=1 /dev/sde

#mdadm -Cv /dev/md0 -l5 -n3 /dev/sdb /dev/sdc /dev/sdd -x1 /dev/sde

#mdadm -Cv /dev/md0 0l5 -n3 /dev/sd[bcd] -x1 /dev/sde

2>格式化raid设备:

#mkfs -t ext3 /dev/md0

3>挂载raid设备:

#mkdir /mnt/raid

#mount -t ext3 /dev/md0 /mnt/raid

4>查看raid设备状态:

#mdadm -D /dev/md0

/dev/md0:

Version : 00.90.03

Creation Time : Tue Nov 13 10:35:35 2007

Raid Level : raid5

Array Size : 2097024 (2048.22 MiB 2147.35 MB)

Device Size : 1048512 (1024.11 MiB 1073.68 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Tue Nov 13 10:42:34 2007

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 64K

UUID : b5e3276f:ab97e843:e601b1a4:46720384

Events : 0.2

Number Major Minor RaidDevice State

0 8 16 0 active sync /dev/sdb

1 8 32 1 active sync /dev/sdc

2 8 48 2 active sync /dev/sdd

3 8 64 - spare /dev/sde

#cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdd[2] sde[3](S) sdc[1] sdb[0]

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

unused devices: <none>

说明:

sdd[2]:此设备在RAID中的次序。

[3/3]:RAID使用3个设备,当前有3个设备正常运行。当某一个设备出错时将会显示[3/2]。

[UUU]:RAID中所有磁盘运转正常。如果出错则显示[_UU],则说明RAID中第一磁盘fail。

# mdadm -E /dev/sdb

/dev/sdb:

Magic : a92b4efc

Version : 00.90.00

UUID : b5e3276f:ab97e843:e601b1a4:46720384

Creation Time : Tue Nov 13 10:35:35 2007

Raid Level : raid5

Device Size : 1048512 (1024.11 MiB 1073.68 MB)

Array Size : 2097024 (2048.22 MiB 2147.35 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Update Time : Tue Nov 13 10:54:58 2007

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Checksum : c59d3483 - correct

Events : 0.2

Layout : left-symmetric

Chunk Size : 64K

Number Major Minor RaidDevice State

this 0 8 16 0 active sync /dev/sdb

0 0 8 16 0 active sync /dev/sdb

1 1 8 32 1 active sync /dev/sdc

2 2 8 48 2 active sync /dev/sdd

3 3 8 64 3 spare /dev/sde

5>mdadm配置文件:

mdadm的缺省配置文件为/etc/mdadm.conf。对于阵列而言不是必须的,主要是为了方便阵列的日常管理。

使用配置文件后,我们每次启动RAID时,就不需要再次输入建立RAID时的一大堆的参数。

mdadm.conf文件中要包含两行:

第一行是以DEVICE开头的行,它指明在阵列中的设备列表。

第二行是以ARRAY开头的行,它详细地说明了阵列的名称、模式、阵列中活动设备的数目以及设备的UUID号。

一般会有如下格式:

#cat /etc/mdadm.conf

===========================================================

DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde

ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=b5e3276f:ab97e843:e601b1a4:46720384

============================================================

生成方法:

#echo 'DEVICE /dev/sd[bcde]' > /etc/mdadm.conf

#mdadm -Ds >> /etc/mdadm.conf



#echo 'DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde' > /etc/mdadm.conf

#mdadm -Ds >> /etc/mdadm.conf

6>配置mdadm开机自启动:

使用配置文件后,RAID设备在重启后也可以正常的自动加载,因为系统在开机启动时会自动加载RAID。

#cat /etc/rc.d/rc.sysinit

=============================================================================

# RAID setup

update_boot_stage RCraid

[ -x /sbin/nash ] && echo "raidautorun /dev/md0" | nash --quiet

if [ -f /etc/mdadm.conf ]; then

/sbin/mdadm -A -s

fi

=============================================================================

设备配置文件只能使系统在开机时正常启用RAID设备,但自动挂载RAID设备还是要再修改/etc/fstab

#vi /etc/fstab

===============================================

/dev/md0 /mnt/raid ext3 defaults 0 0

===============================================

7>停止与开启RAID设备:

停止:

#umount /mnt/raid

#mdadm -S /dev/md0

mdadm: stopped /dev/md0

开启:

使用配置文件时:

#mdadm -As /dev/md0

mdadm: /dev/md0 has been started with 3 drives and 1 spare.

没有使用配置文件时:

#mdadm -A /dev/md0 /dev/sd[bcde]

mdadm: /dev/md0 has been started with 3 drives and 1 spare.

8>故障演示

(1)将一个磁盘标记为faulty,模拟硬盘坏损

#mdadm /dev/md0 -f /dev/sdb

(2)查看RAID5重建过程

#mdadm -D /dev/md0

/dev/md0:

Version : 00.90.03

Creation Time : Tue Nov 13 11:55:59 2007

Raid Level : raid5

Array Size : 2097024 (2048.22 MiB 2147.35 MB)

Device Size : 1048512 (1024.11 MiB 1073.68 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Tue Nov 13 18:21:27 2007

State : clean, degraded, recovering

Active Devices : 2

Working Devices : 3

Failed Devices : 1

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 64K

Rebuild Status : 48% complete

UUID : faee3020:14fc3e48:9717e6f5:d7cf7de7

Events : 0.6

Number Major Minor RaidDevice State

4 8 64 0 spare rebuilding /dev/sde

1 8 32 1 active sync /dev/sdc

2 8 48 2 active sync /dev/sdd

3 8 16 - faulty spare /dev/sdb

#cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdb[3](F) sde[4] sdd[2] sdc[1]

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

[=================>...] recovery = 88.7% (931664/1048512) finish=0.0min speed=24130K/sec

unused devices: <none>

(3)查看完成坏损设备后的RAID状态

#mdadm -D /dev/md0

/dev/md0:

Version : 00.90.03

Creation Time : Tue Nov 13 11:55:59 2007

Raid Level : raid5

Array Size : 2097024 (2048.22 MiB 2147.35 MB)

Device Size : 1048512 (1024.11 MiB 1073.68 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Tue Nov 13 18:21:59 2007

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 1

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

UUID : faee3020:14fc3e48:9717e6f5:d7cf7de7

Events : 0.8

Number Major Minor RaidDevice State

0 8 64 0 active sync /dev/sde

1 8 32 1 active sync /dev/sdc

2 8 48 2 active sync /dev/sdd

3 8 16 - faulty spare /dev/sdb

#cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdb[3](F) sde[0] sdd[2] sdc[1]

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

unused devices: <none>

(4)移除坏损设备

#mdadm /dev/md0 -r /dev/sdb

mdadm: hot removed /dev/sdb

(5)添加新的设备

#mdadm /dev/md0 -a /dev/sdb

mdadm: added /dev/sdb

(6)查看最终状态

#mdadm -D /dev/md0

/dev/md0:

Version : 00.90.03

Creation Time : Tue Nov 13 11:55:59 2007

Raid Level : raid5

Array Size : 2097024 (2048.22 MiB 2147.35 MB)

Device Size : 1048512 (1024.11 MiB 1073.68 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Tue Nov 13 18:25:44 2007

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 64K

UUID : faee3020:14fc3e48:9717e6f5:d7cf7de7

Events : 0.10

Number Major Minor RaidDevice State

0 8 64 0 active sync /dev/sde

1 8 32 1 active sync /dev/sdc

2 8 48 2 active sync /dev/sdd

3 8 16 - spare /dev/sdb

#cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdb[3](S) sde[0] sdd[2] sdc[1]

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

unused devices: <none>

9>mdadm中文man(引用)

基本语法 : mdadm [mode] [options]

[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/mdadm.conf

-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.conf

create 或 build 使用的选项:

-c, --chunk=:Specify chunk size of kibibytes. 缺省为 64.

--rounding=: Specify rounding factor for linear array (==chunk size)

-l, --level=:设定 raid level.

--create可用:linear, raid0, 0, stripe, raid1,1, mirror, raid4, 4, raid5, 5, raid6, 6, multipath, mp.

--build可用:linear, raid0, 0, stripe.

-p, --parity=:设定 raid5 的奇偶校验规则:eft-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs.缺省为left-symmetric

--layout=:类似于--parity

-n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改

-x, --spare-devices=:指定初始阵列的富余device 数目

-z, --size=:组建RAID1/4/5/6后从每个device获取的空间总数

--assume-clean:目前仅用于 --build 选项

-R, --run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。

-f, --force:通常mdadm不允许只用一个device 创建阵列,而且创建raid5时会使用一个device作为missing drive。此选项正相反。

-a, --auto{=no,yes,md,mdp,part,p}{NN}:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: