Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132039
  • 博文数量: 35
  • 博客积分: 692
  • 博客等级: 上士
  • 技术积分: 317
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-22 16:40
文章分类
文章存档

2014年(2)

2012年(4)

2011年(29)

分类: LINUX

2011-10-02 22:20:30

p { margin-bottom: 0.08in; }

                                              磁盘阵列(RAID

一 磁盘阵列简介

磁盘阵列Redundant Array of Independent Disks , RAID是把多个磁盘设备合并成为一个磁盘空间


1 磁盘阵列的功能

=>整合闲置的磁盘空间

=>提高磁盘的读取效率

当磁盘阵列在写入数据时,会将数据拆分为若干分,同时写入到各个磁盘;同理,读取时,会同时从多个磁盘读取,提高读写效率

=>提供容错性(Fault Tolerance

当磁盘阵列中,某一块磁盘发生故障时,磁盘阵列仍能从其他正常的磁盘读取数据,并允许加入新磁盘来重建损坏磁盘的数据


2 磁盘阵列等级RAID Level

常见的磁盘阵列等级有RAID0 RAID1RAID3RAID5RAID10RAID1+RAID0等,以下仅介绍RAID0RAID1RAID5

1)RAID0

RAID0又称为Stripe(条带化)或Striping,它代表了所有RAID级别中最高的存储性能。RAID0提高存储性能的原理是把连续的数 据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用 总线的带宽,显著提高磁盘整体存取性能


2)RAID1

RAID1又称为MirrorMirroring(镜像),它的宗旨是最大限度的保证用户数据的可用性和可修复性。RAID1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上


3)RAID5

RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。以四个硬盘组成的RAID5为例,其数据存储方式如图所示:图中,P0D0D1D2的奇偶校验信息,其它以此类推。由图中可以看出,RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息(Parity)存储到组成 RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校 验信息去恢复被损坏的数据

3优缺点比较

        RAID         RAID0            RAID1                 RAID5

优点                  读取快                具备容错               读取快

                         写入快                读取快                   可容错

                       增加了可用空间                                  增加可用空间

缺点                无容错性             耗费磁盘空间           写入慢且需要较高的计算能力

组成磁盘数量 2个以上               2个以上                     3个以上

二 企业应用中的磁盘阵列

两种类型的磁盘阵列

=>硬件磁盘阵列(Hardware RAID)

通过磁盘阵列卡(RAID Controller Card)提供磁盘阵列功能

=>软件磁盘阵列(Software RAID)

linux内核仿真磁盘阵列的功能

注:硬件磁盘阵列在于操作不易,成本高,但其效率远远高于软件磁盘阵列


1 硬件磁盘阵列

Linux提供dmraid工具,用于管理各种硬件磁盘阵列


1)建立硬件磁盘阵列

大致步骤如下:

=>查看系统dmraid支持的磁盘阵列等级

#dmraid -l

=>通过设置工具设置磁盘阵列

该操作因磁盘阵列设备的不同而不同

=>启动磁盘阵列设备

#dmraid -a y

设置正确并启动后,会产生/dev/mapper/TYPE_UNIQUENAME设备文件

TYPE_UNIQUENAME为硬件磁盘设备名称,其中TYPE为硬件磁盘设备代号UNIQUENAME为该硬件设备唯一识别码


2)使用硬件磁盘阵列

建立好硬件磁盘阵列后,即可当作一个一般磁盘进行分区等操作,建立分区后产生的设备文件形式为

/dev/mapper/TYPE_UNIQUENAMEpNUMBER //NUMBER为分区编号


3)管理硬件磁盘阵列

=>读取磁盘阵列设备

#dmraid -r [DEVICE...]

=>查看硬件磁盘阵列

#dmraid -s [RAID...]

=>停用硬件磁盘阵列

#dmraid -a n [RAID...] //RAID为要停用的磁盘阵列设备文件



2软件磁盘阵列

软件磁盘阵列由内核提供该功能,以磁盘分区为组成单位

Linux系统中目前以MD(Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟块设备,若系统添加了md模块,则会产生/proc/mdstat文件,或查看/proc/devices中是否md模块,没有加载请手动加载

#cat /proc/devices/ |grep md

#lsmod |grep md

#modprobe md


1)建立软件磁盘阵列

大致步骤如下:

=>产生组成单元,即磁盘分区

=>设置/etc/mdadm.conf //系统启动时,依据此文件的设置来启动多重磁盘设备,以及软件 磁盘阵列监控服务

=>初始化多重磁盘设备

mdadm使用--create(或其缩写-C)参数来创建新的阵列,并且将一些重要阵列的标识信息作为元数据可以写在每一个底层设备的指定区间。 --level(或者其缩写-l)表示阵列的RAID级别,--chunk(或者其缩写-c)表示每个条带单元的大小,以KB为单位,默认为64KB,条 带单元的大小配置对不同负载下的阵列读写性能有很大影响。--raid-devices(或者其缩写-n)表示阵列中活跃的设备个数,而--spare- devices(或者其缩写-x)表示阵列中热备盘的个数,一旦阵列中的某个磁盘失效,MD内核驱动程序自动用将热备磁盘加入到阵列,然后重构丢失磁盘上 的数据到热备磁盘上。


设置/etc/mdadm.conf

#touch /etc/mdadm.conf

格式如下:

DEVICE /DEV/HDA10 /DEV/HDA11

ARRAY /DEV/MD0 DEVICES=/DEV/HDA10 , /DEV/HDA11

注:可参看/usr/share/doc/mdadm-VERSION/目录中的mdadm.conf-example范例文件

语法请查看mdadm.conf(5)手册页

初始化多重磁盘设备:

#mdadm --create MD_DEVICE --level=LEVEL --raid-devices=N DEVICES...

#mdadm -C MD_DEVICE -lLEVEL -nN DEVICES...

p { margin-bottom: 0.08in; }

例:

#mdadm -C /dev/md0 -l5 -n3 /dev/sda{7,8,9}

注释:MD_DIVECE为磁盘阵列名,命名方式/dev/mdNN为数字

LEVEL为磁盘阵列等级

N为组成单元的数量

2管理软件磁盘阵列

=>查看多重磁盘状况

#cat /proc/mdstat

#mdadm –detail|-D MD_DEVICE

=>添加与删除组成单元

#mdadm MD_DEVICE --remove DEVICE

#mdadm MD_DEVICE --add DEVICE

=>模拟故障

#mdadm MD_DEVICE –set-faulty DEVICE...

=>启用与停用

启用 #mdadm -As MD_DEVICE

停用 #mdadm --stop|-S MD_DEVICE p { margin-bottom: 0.08in; }



阅读(1255) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~