Linux高级磁盘管理-RAID管理

在冯诺依曼体系机构中,输入输出要存储的外部磁盘I/O能力实在太低,尤其是企业面对高并发的访问量,在系统内部需要大量调度磁盘的上的网页文件资源,这些都会产生大量的I/O,一个磁盘的I/O能力不管如何提升毕竟是有线的,尤其是机械硬盘;同时为了保障业务的连续性,磁盘故障时必须提供冗余能力,面对这样的实际需求环境,RAID技术产生了,通过组织磁盘阵列方式提供I/O,在内部通过RAID控制器,把多个磁盘的I/O平行组织在一起,当系统需要载入或写入磁盘上的数据时,也就在RAID控制器的控制下,多个磁盘同时读同时写,同时一个数据在控制器下,还可以同时单独写入多份,这样就有了冗余能力,保证了系统业务的连续性,不同的RAID磁盘组织方式,对应不同的实际生产应用需求,根据实际生产应用需求选择RAID比较合理,实现资源高利用率;

1.RAID:Redundant Arrays of Inexpensive Disks

2.作用:

    (1)提供I/O能力

    (2)提供冗余(数据容错能力)

3.RAID控制器功能:

    (1)RAID控制器——分割大小(chunk):

     控制器在接受到由CPU控制指令发出写入磁盘的数据的数据是,在RAID控制器内部把数据划分多个相同大小的Chunk,每个磁盘写入一个chunk的数据进行保存,这样既能提供写入能力,同时当读取数据时,RAID控制器也能够理解还原数据;这就是划分chunk的原因;

      

   (2)RAID控制器做异或运算–提供校验码机制:

     为了提供冗余能力,数据在写入的同时对chunk做异或运算写入校验码,当有一个磁盘坏损时,读取数据时可以通过在其他磁盘上的校验码做异或运算,推导出原数据,只不过这时的读取能力差,处于降级模式;

4.RAID级别图例:

RAID0.png

RAID1.png

RAID5.png

RAID10.png

u=2867059069,1903177332&fm=21&gp=0.jpg

5.RAID总结 

   级别代表多块磁盘的组织工作方式不同;

RAID级别    读写性能提升     冗余     空间利用率     组织最小磁盘数

 0              有           没有       100%            2

 1              有(读)       有         1/2             2

 4              有           有         n-1             3

 5              有           有         n-1             3

 6              有           有         n-2             4

 10             有           有         1/2             4

 01             有           有         1/2             4

6.RAID分析:

RAID0

    条带卷,有一个磁盘坏损,业务立即终止,可以做临时文件存储

RAID1

    镜像卷,只提供读性能,有冗余,但是空间利用率太低,提供的I/O性能不是很高;

RAID4:

    校验存储,利用异或算法,校验码在一块磁盘,校验盘成为瓶颈,坏损I/O性能降级;

RAID5:

    循环存储校验,允许坏损,但是I/O性能降级;

RAID6:

    循环存储两份校验 ,允许坏损2块,但是整体性能不是很好;

RAID10:

    先做1再做0,数据切割一次,IO性能整体很高,每组镜像只允许坏一块;

RAID01:

    先做0再做1,数据切割两次,每组允许坏损2,但是整体同时只允许一个组有坏损,这种多个组同时坏损一块的几率还是比较大的;

JBOD:Just a Bunch of Disks

    作用:将多块磁盘空间合并为一个大的连续空间使用,为了应对企业单个大文件的访问存储;

6.RAID应用实现方式:

    (1)软件RAID:这种利用软件功能实现,一般仅供学习使用;

    (2)硬件RAID:需要RAID控制卡,利用的连接设备有可能是光纤交换机;

7.Linux提供软RAID功能:

mdadm [mode] [options] devices

   -C:创建

     -n # :使用多少个快创建;

     -l # :创建RAID级别;

     -a [yes|no] :自动创建;

     -c Chunk_size :指明chunk大小;

     -x # :指明空闲磁盘数;

   

   -A:启动

   -F:监控

   -f:标记坏损;

   -r:移除;

   -a:添加;

   -D:显示详细信息;

   -G:添加成员

  

显示详细信息

mdadm -D /dev/md0

标记损坏

mdadm /dev/md0 -f /dev/

移除

mdadm /dev/md0 -r /dev/

添加

mdadm /dev/md0 -a /dev/

停止

mdadm -S /dev/md0

启动

mdadm -A /dev/md0

观察状态:

cat /proc/mdstat 

使用watch命令持续观察

watch -n 1 'cat /proc/mdstat'

8.实例:在CentOS6.8上创建RAID5阵列

    (1)添加5块硬盘作为RAID使用

Linux高级磁盘管理-RAID管理

    (2)默认分区格式化整个磁盘为主分区20G,同时修改分区类型为支持RAID分区类型;

Linux高级磁盘管理-RAID管理

    (3)查看分区完的磁盘是否读入到内核中,如何没有使用partx -a device同步;

2016-09-05 15 06 42.png

   (4)使用mdadm命令创建RAID5,三个做RAID5成员,一块做空闲盘,另一块后面使用

2016-09-05 15 12 25.png

    (5)查看创建过程状态;

2016-09-05 15 13 22.png

2016-09-05 15 17 46.png

    (6)等待创建完成,也可以使用cat /proc/mdstat命令查看

2016-09-05 15 15 49.png

    (7)把创建的配置信息导入到/etc/mdadm.conf文件中,方便下次启动能够读取配置信息;

生成配置文件.png

    (8)要想使用RAID必须格式化文件系统,这里使用ext4

2016-09-05 15 19 12.png

    (9)创建挂载目录并且挂载到/tmp/raid

2016-09-05 15 22 33.png

    (10)复制文件到RAID5分区中

2016-09-05 15 25 58.png

    (11)测试实验:标记一块成员硬盘为坏损,

2016-09-05 15 29 55.png

    (12)查看RAID5分区中的文件是否可以查看,测试坏损一块成员时,在空闲磁盘构建中,数据是否可以继续访问

2016-09-05 15 32 01.png

    (13)查看构建空闲磁盘为成员完成

2016-09-05 15 32 56.png

    (14)删除标记的坏损成员

Linux高级磁盘管理-RAID管理

     (15)添加一个成员进入,这里变成空间盘

2016-09-05 15 37 35.png

    (16)添加一块成员进入RAID5阵列中,扩大阵列范围

2016-09-05 15 43 01.png

    (17)再次测试数据是否可用

2016-09-05 15 46 46.png

    (18)实验完成删除RAID步骤

2016-09-05 16 48 16.png

  注意:有了RAID企业还有必要备份数据吗?

这是必须的,不能取代,RAID提供的仅仅是磁盘坏损不影响业务的终止,并不能保证误操作引发的数据丢失,备份能防止误操作和意外故障时提供数据恢复。

原创文章,作者:xiashixiang,如若转载,请注明出处:http://www.178linux.com/43545

(1)
xiashixiangxiashixiang
上一篇 2016-09-06
下一篇 2016-09-06

相关推荐

  • 上下文管理练习(为加法函数计时)

    上下文管理(为加法函数计时) 为加法函数计时 使用装饰器显示该函数的执行时长 使用上下文管理显示该函数的执行时长 装饰器实现 import time import datetime from functools import wraps def logger(fn): @wraps(fn) # wraps(fn)(wrapper) def wrapper(*…

    2017-11-18
  • 四.Linux博客-2016年7月26日ls、通配符、touch、cp、mv、rm、mkdir

    格式说明: 操作 概念 命令 说明及举例 四.ls、通配符、touch、cp、mv、rm、mkdir du -sh /sys 查看文件、文件夹大小 /sys/class/scsi_host/host2/scan 在线扫盘(新加硬盘执行这个命令后才能发现) stat /etc/issue 更详细的看数…

    Linux干货 2016-08-23
  • “lnmap实战之负载均衡架构(无高可用)”之新增keepalived高可用

    “lnmap实战之负载均衡架构(无高可用)”之新增keepalived高可用 我之前有一篇”lnmap实战之负载均衡架构(无高可用)“博客是专门部署了lanmap,之前没有做高可用,那么我们现在就把高可用补上去吧 这样我们照着之前的文档从新部署一下 1.机器结构如下: 192.168.42.150 node0 …

    Linux干货 2017-06-25
  • N25第一周作业

    1.描述计算机的组成及其功能   计算机整体上分为两大部分:     一、硬件部分:运算器,存储器,控制器,输入设备,输出设备     运算器是对数据进行加工处理,主要是指各种算术运算与逻辑运算     存储器是存储各种数据、信号、命令等信息并在他们需要时提供这些信息 &nbsp…

    Linux干货 2016-12-03
  • 系统基础之权限管理

    权限管理: 概论:  上节,为大家介绍了用户,和组的知识.今天为大家介绍与用户,组息息相关的知识,权限.linux是多用户,多任务的操作系统,面对多人的操作,安全问题就很重要,权限机制就很好的对安全进行防护,避免他人操作自己的文件.下面给大家详细介绍权限.   首先让我们先直观地看下权限,对权限有个最基本的认识.以/etc/issue文件…

    Linux干货 2016-08-04
  • 文本处理三兄弟(grep,sed,awk)

    linux文本处理三剑客: grep:文本过滤工具 grep  egrep=grep -e  fgrep sed:流编辑器  处理多个行  awk:文本编辑工具,格式化工具 grep [OPTIONS] PATTERN [FILE…] : 文本处理搜索工具,根据用户指定的“模式”对目标文本进行匹配检查;打印匹…

    Linux干货 2017-04-01