磁盘冗余阵列之RAID5、RAID10
RAID技术主要有以下三个基本功能:
RAID0、RAID1、RAID5、RAID10的特点
RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。
将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。
实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。
如下图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。
继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。
因这种结构的成本高,一般用于存放要求速度与差错控制的数据。
linux虚拟机模拟 独立磁盘冗余阵列RAID5配置5块磁盘、3块做raid,2块做备份)
1.准备mdadm
Linux下需要安装mdadm软件包,mdadm命令用于管理系统软件RAID硬盘阵列。
[root@yyd-hbza ~]# rpm -qa |grep mdadm
mdadm-4.0-5.el7.x86_64
mdadm命令格式为:”mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”。
mdadm管理RAID阵列的动作有:
名称 |
作用 |
Assemble |
将设备加入到以前定义的阵列 |
Build |
创建一个没有超级块的阵列 |
Create |
创建一个新的阵列,每个设备具有超级块。 |
Manage |
管理阵列(如添加和删除)。 |
Misc |
允许单独对阵列中的某个设备进行操作(如停止阵列)。 |
Follow or Monitor |
监控状态。 |
Grow |
改变阵列的容量或设备数目。 |
mdadm管理RAID阵列的参数有:
参数 |
作用 |
-a |
检测设备名称 |
-n |
指定设备数量 |
-l |
指定raid级别 |
-C |
创建 |
-v |
显示过程 |
-f |
模拟设备损坏 |
-r |
移除设备 |
-a |
添加设备 |
-Q |
查看摘要信息 |
-D |
查看详细信息 |
-S |
停止阵列 |
2.在虚拟机中再添加5块硬盘
如上操作,重复五次,出现五块新磁盘。
3、使用mdadm命令创建RAID5,名称为”/dev/md0″。
(1).启动主机,在终端下查看磁盘是否成功添加
输入命令:
#fdisk -l
(2).分区转换
-C代表创建操作,-v显示创建过程,-a yes检查RAID名称,-n是用到的硬盘个数,-l是定义RAID的级别 -x 使备用磁盘格式 而后面写上要加入阵列的硬盘名称, 这里新的磁盘再/dev/md0 下
输入命令:
mdadm -Cv /dev/md0 -n 3 -l 5 -x 2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
(3).查看RAID组的详细信息:
#mdadm -D /dev/md0
4.格式化并挂载使用
(1).格式化为xfs格式。
输入mkfs,按两次tab键,查询格式,根据需求格式化。
在这里我们格式化成xfs格式,输入命令:
#mkfs.xfs /dev/md0
(2).挂载
首先创建挂载目录:
#mkdir /RAID
进行文件系统的挂载:mount /dev/md0 /RAID
查看磁盘挂载信息:
# df -h
设置 开机自动挂载:#echo "/dev/md0 /RAID xfs defaults 0 0" >> /etc/fstab
查看 /etc/fstab 文件内容写入是否正确 #cat /etc/fstab
5.模拟有1块硬盘损坏的情况
(1).将/dev/sdb移出阵列:
#mdadm /dev/md0 -f /dev/sdb
(2).查看RAID组的详细信息: /dev/sdb磁盘损坏,备份磁盘/dev/sdf自动顶替/dev/sdb作用
#mdadm -D /dev/md0
RAID硬盘依然可以正常的创建或删除文件
(3).重启主机,查看RAID组的详细信息: 发现/dev/sdf代替成为为raid
#mdadm -D /dev/md0
(4).将磁盘添加回阵列/dev/sdb
#mdadm /dev/md0 -a /dev/sdb
(5).查看RAID组的详细信息:
#mdadm -D /dev/md0
结果 /dev/sdf磁盘成为raid,/dev/sdb成为备份磁盘
linux虚拟机模拟 独立磁盘冗余阵列RAID10配置5块磁盘
RAID10配置,除第三步创建RAID进行分区转换的命令有所差别,其余配置步骤相同。
RAID进行分区转换命令:#mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-f]
磁盘冗余阵列之RAID5、RAID10的更多相关文章
- 磁盘冗余阵列之RAID5的配置
1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢 ...
- RAID 独立磁盘冗余阵列 - redundant array of independent disks
RAID: RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. RAID ...
- RAID(独立磁盘冗余阵列)简介
RAID(独立磁盘冗余阵列) 在大数据技术出现之前,人们就需要面对这些关于存储的问题,对应的解决方案就是RAID技术. RAID(独立磁盘冗余阵列)技术主要是为了改善磁盘的存储容量,读写速度,增强磁盘 ...
- 转 关于Raid0,Raid1,Raid5,Raid10的总结
关于Raid0,Raid1,Raid5,Raid10的总结 RAID0 定义: RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能 ...
- 使用mdadm创建磁盘RAID10整列,RAID5出现故障,自动替换硬盘
首先需了解mdadm的参数使用 . 第一步: 先在虚拟机中添加四块硬板 第二步:使用mdadm命令创建RAID10名称为"/dev/md0" -C代表创建操作,v 显示创建过程,- ...
- 磁盘冗余阵列之RAID10的配置
1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢 ...
- linux系统中RAID5磁盘冗余阵列配置(5块磁盘)
RAID5:需要至少三块(含)硬盘,兼顾存储性能.数据安全和储存成本. 如图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RA ...
- linux系统中RAID10磁盘冗余阵列配置
介绍:RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高,RAID10用两个磁盘做RAID0,用其他两个做RAID1当备份. 配置流程: 第一步:在原有基础上为磁盘再填入五块磁盘(至少 ...
- 关于Raid0,Raid1,Raid5,Raid10的总结
RAID0 定义: RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就 ...
随机推荐
- pandas对列求和
了解更多,请关注公众号"轻松学编程" 一行代码实现对列求和 使用pandas把列表中的字典元素转成二维数组,然后使用pandas函数实现对每一列求和. 代码: import pan ...
- 对于RBAC与shiro的一些思考
一.什么是RBAC模型 RBAC模型是一个解决用户权限问题的设计思维. 在最简单的RBAC模型中,将用户表设计为如下几个表 1.用户 2.角色 3.权限 以及这三张表衍生出来的两张中间表 4.用户_角 ...
- C++ 设计模式 4:行为型模式
0 行为型模式 类或对象怎样交互以及怎样分配职责,这些设计模式特别关注对象之间的通信. 1 模板模式 模板模式(Template Pattern)定义:一个抽象类公开定义了执行它的方法的方式/模板.它 ...
- Scanner对象
Scanner对象 通过Scanner类来获取用户的输入. 使用需导入 java.util.Scanner 包. 基本语法: Scanner s = new Scanner(System.in); n ...
- 《Machine Learning in Action》—— 剖析支持向量机,优化SMO
<Machine Learning in Action>-- 剖析支持向量机,优化SMO 薄雾浓云愁永昼,瑞脑销金兽. 愁的很,上次不是更新了一篇关于支持向量机的文章嘛,<Machi ...
- Fastdfs集群部署以及基本操作
FastDFS引言 本地存储与分布式文件系统 本地存储的缺点: 是否有备份? 没有 成本角度? 贵 服务器 :用于计算 ---- cpu/内存 用于存储 ---- 硬盘大 存储瓶颈? 容量有限 ...
- day001|python基础回顾
1.python是一门编程语言 编程语言是人与计算机能够沟通的一种语言 人----------编程语言---------计算机 2.编程是: ①人将要做的事的步骤想清楚 ②找计算机能够听懂的语言将步骤 ...
- 浅析TCP协议---转载
https://cloud.tencent.com/developer/article/1150971 前言 说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一 ...
- SpringBoot微服务框架
springboot 是什么? 配置如何编写 yaml 自动装配原理 集成Web开发 集成数据库Druid 分布式开发:Dubbo(RPC)+zookeeper swagger:接口文档 任务调度 S ...
- 同步FIFO学习笔记