Linux实现最常用的磁盘阵列-- RAID5

Linux实现最常用的磁盘阵列-- RAID5,第1张

概述(一)RAID简介: 独立磁盘冗余数组(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余数组(RAID,Redundant Array of Inexpensive Disks),简称硬盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘 (一)RAID简介:

独立磁盘冗余数组(RAID,Redundant Array of Independent disks),旧称廉价磁盘冗余数组(RAID,Redundant Array of Inexpensive disks),简称硬盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说, 看起来就像一个单独的硬盘或逻辑存储单元。分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50。

简单来说,RAID把多个硬盘组合成为一个逻辑扇区,因此, *** 作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为了玩家的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。

最初的RAID分成了不同的等级,每种等级都有其理论上的优缺点,不同的等级在两个目标间取得平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。这些年来,出现了对于RAID观念不同的应用。

clip_image002 clip_image004

clip_image006

clip_image008 clip_image010

(二)linux实现软RAID5:

1、准备硬盘(至少需要3块硬盘,此处使用一块硬盘的5个分区实现,但是在实际生产中一块硬盘做RAID没有意义):

[[email protected] ~]# fdisk -cul /dev/sdb #创建分区如下

disk /dev/sdb: 21.5 GB,21474836480 bytes

255 heads,63 sectors/track,2610 cylinders,total 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

disk IDentifIEr: 0x466fc1b6

Device Boot Start End Blocks ID System

/dev/sdb1 2048 10487807 5242880 83 linux

/dev/sdb2 10487808 41943039 15727616 5 Extended

/dev/sdb5 10489856 16781311 3145728 83 linux

/dev/sdb6 16783360 23074815 3145728 83 linux

/dev/sdb7 23076864 29368319 3145728 83 linux

/dev/sdb8 29370368 35661823 3145728 83 linux

/dev/sdb9 35663872 41943039 3139584 83 linux

[[email protected] ~]# partx -a /dev/sdb #重新读取分区表

[[email protected] ~]# rpm -qa |grep mdadm #查看创建raID软件是否安装

mdadm-3.2.3-9.el6.i686

2、创建RAID5:

[[email protected] ~]# mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 /dev/sdb{5..9} ####-C:创建/dev/md0设备,-a:是否自动检测这里为yes,-l:raID的级别这里为raID5,-n:几块硬盘做为RUN,-x:几块硬盘作为备用

mdadm: Defaulting to version 1.2 Metadata

mdadm: array /dev/md0 started.

[[email protected] ~]# mdadm --detail /dev/md0 #查看/dev/md0的详细信息

/dev/md0:

Version : 1.2

Creation Time : Mon Jan 14 19:36:37 2013

RaID Level : raID5

Array Size : 9414144 (8.98 GiB 9.64 GB)

Used Dev Size : 3138048 (2.99 GiB 3.21 GB)

RaID Devices : 4

Total Devices : 5

Persistence : Superblock is persistent

Update Time : Mon Jan 14 19:37:27 2013

State : clean

Active Devices : 4

Working Devices : 5

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 512K

name : localhost.localdomain:0 (local to host localhost.localdomain)

UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e

Events : 18

Number Major Minor RaIDDevice State

0 8 21 0 active sync /dev/sdb5

1 8 22 1 active sync /dev/sdb6

2 8 23 2 active sync /dev/sdb7

5 8 24 3 active sync /dev/sdb8

4 8 25 - spare /dev/sdb9

3、格式化、挂载、使用/dev/md0:

[[email protected] ~]# mkfs.ext4 /dev/md0 #将/dev/md0格式化

[[email protected] ~]# mkdir /raID5 ##创建挂载目录

[[email protected] ~]# mount /dev/md0 /raID5/ #挂载/dev/md0到/raID5目录下

[[email protected] ~]# cd /raID5/

[[email protected] raID5]# touch raID5.file

[[email protected] raID5]# ls

lost+found raID5.file

4、设置开机启动RAID5:

[[email protected] ~]# mdadm --detail --scan #查看raID简要信息

ARRAY /dev/md0 Metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=f16324c8:0f2a0be2:04c57c07:5f44f53e

[[email protected] ~]# mdadm --detail --scan >/etc/mdadm.conf #创建软raID的配置文件!注意:此文件如果不创建下次开机重启后/dev/md0将会被系统自动识别为其他非/dev/md0名称的设备,对于实现开机挂载和使用都不方便。

[[email protected] ~]# vim /etc/fstab #编辑fstab文件添加如下行

/dev/md0 /raID5 ext4 defaults 0 0

4、管理RAID5:

查看raID的状态:

[[email protected] ~]# cat /proc/mdstat #查看raID的状态

PersonalitIEs : [raID6] [raID5] [raID4]

md0 : active raID5 sdb8[5] sdb94 sdb7[2] sdb6[1] sdb5[0]

9414144 blocks super 1.2 level 5,512k chunk,algorithm 2 [4/4] [UUUU]

unused devices: <none>

查看特定raID设备的详细信息:

[[email protected] ~]# mdadm --detail /dev/md0

……………………………………………省略………………………………………………..

Number Major Minor RaIDDevice State

0 8 21 0 active sync /dev/sdb5

1 8 22 1 active sync /dev/sdb6

2 8 23 2 active sync /dev/sdb7

5 8 24 3 active sync /dev/sdb8

4 8 25 - spare /dev/sdb9

模拟硬盘损坏:

[[email protected] ~]# mdadm /dev/md0 --fail /dev/sdb5 #模拟硬盘损坏

[[email protected] ~]# mdadm –detail #验证

……………………………………………省略………………………………………………..

name : localhost.localdomain:0 (local to host localhost.localdomain)

UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e

Events : 25

Number Major Minor RaIDDevice State

4 8 25 0 spare rebuilding /dev/sdb9

1 8 22 1 active sync /dev/sdb6

2 8 23 2 active sync /dev/sdb7

5 8 24 3 active sync /dev/sdb8

0 8 21 - faulty spare /dev/sdb5

####/dev/sdb5的状态变成了faulty,/dev/sdb9则立即变成active

模拟拔出硬盘:

[[email protected] ~]# mdadm /dev/md0 --remove /dev/sdb5 #模拟拔出硬盘

mdadm: hot removed /dev/sdb5 from /dev/md0

[[email protected] ~]# mdadm –detail #验证

……………………………………………省略………………………………………………..

name : localhost.localdomain:0 (local to host localhost.localdomain)

UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e

Events : 4

Number Major Minor RaIDDevice State

4 8 25 0 active sync /dev/sdb9

1 8 22 1 active sync /dev/sdb6

2 8 23 2 active sync /dev/sdb7

5 8 24 3 active sync /dev/sdb8

####/dev/sdb5已经从/dev/md0中消失了:

模拟往raID中添加硬盘:

[[email protected] ~]# mdadm --zero-superblock --force /dev/sdb5 #修复硬盘

[[email protected] ~]# mdadm /dev/md0 --add /dev/sdb5#模拟往raID中添加硬盘

mdadm: added /dev/sdb5

[[email protected] ~]# mdadm --detail /dev/md0 #验证

/dev/md0:

Version : 1.2

Creation Time : Mon Jan 14 19:36:37 2013

RaID Level : raID5

Array Size : 9414144 (8.98 GiB 9.64 GB)

Used Dev Size : 3138048 (2.99 GiB 3.21 GB)

RaID Devices : 4

Total Devices : 5

Persistence : Superblock is persistent

Update Time : Mon Jan 14 20:17:02 2013

State : clean

Active Devices : 4

Working Devices : 5

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 512K

name : localhost.localdomain:0 (local to host localhost.localdomain)

UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e

Events : 41

Number Major Minor RaIDDevice State

4 8 25 0 active sync /dev/sdb9

1 8 22 1 active sync /dev/sdb6

2 8 23 2 active sync /dev/sdb7

5 8 24 3 active sync /dev/sdb8

6 8 21 - spare /dev/sdb5

####/dev/sdb5已经成功添加到了/dev/md0中并且做为备用设备等待使用。

总结

以上是内存溢出为你收集整理的Linux实现最常用的磁盘阵列-- RAID5全部内容,希望文章能够帮你解决Linux实现最常用的磁盘阵列-- RAID5所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/1020992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存