服务器支持磁盘阵列,服务器磁盘阵列、RAID级别的阐述

磁盘阵列

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。

磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。

磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

所有的数据都是存储在存储介质中,我们现在做常用的就是硬盘,其实磁盘阵列就是一大堆磁盘组成的一个存储空间。就好比你家有多个房间。共同组成了一个房子。而对于磁盘阵列来说,总重要的是在硬盘坏掉了也能够保证数据的完整性,这个取决于所选择的RAID级别。

RAID级别

RAID技术主要包含RAID 0~RAID 53等数个规范,我们数据中心最常用的是:

RAID 0RAID 1RAID 5RAID 1+0/0+1我就来简单的介绍一下这几个常用的RAID。RAID级别有好多。有兴趣可以查一下。

RAID 0

RAID 0:RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。RAID 0最简单的实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写入到各块硬盘中,它的最大优点就是可以整倍的提高硬盘的容量

RAID 0的存储空间:所有磁盘空间相加。例如使用了三块1T的硬盘组建成RAID 0模式,那么磁盘容量就会是3T。

6ea3c12950fd4a86e0d67f9aa10fad91.png

RAID 0容量是所有磁盘容量和

RAID 1

RAD 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,以四块1T容量的硬盘来讲,可利用的磁盘空间仅为2T。另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。因此,RAID 1多用在保存关键性的重要数据的场合。

RAID 1的存储空间:所有磁盘空间相加的一半。例如使用了两块1T的硬盘组建成RAID 1模式,那么磁盘容量就会是1T。

a728aedab6169906929986b648277aa9.png

RAID 1容量是所有磁盘容量的一半

RAID 5

RAID 5:分布式奇偶校验的独立磁盘结构,RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

RAID 5的存储空间:至少要用3块硬盘。总容量是N-1。例如使用了三块1T的硬盘组建成RAID 5模式,那么磁盘容量就会是2T。

9dd4429b79c0d172315d3a88021a2add.png

RAID 5存储空间是N-1

RAID 1+0/0+1

RAID 0+1名称上我们便可以看出是RAID0与RAID1的结合体。在我们单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。

根据组合分为RAID 10和RAID 01,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。性能上,RAID 0+1比RAID 1+0有着更快的读写速度。可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10远较RAID 01常用,零售主板绝大部份支持RAID 0/1/5/10,但不支持RAID 01。

b04d52cc3719d4afafcae7104029eb7d.png

RAID0+1容量是所有磁盘一半

06eba8664c1b91c2d6afabc9d60a290b.png

RAID1+0容量是所有磁盘的一半

这就是我们常用的磁盘阵列RAID级别,也是因为是我常用的,所以记录一下。都在说这个数据的安全性,这个很多同学自己没有磁盘阵列和RIAD卡进行测试。即便是工作中维护阵列,因为有数据不能够拔下磁盘做测试。所以想要验证这个RAID的对数据到底有没有影响我们可以使用VMWARE WorkStation。虚拟机进行测试。我就简单给截几个图,待有时间你可以自己测试。安装Vmware Workstation很容易。下载安装即可。

当我们新建好虚拟机之后不要安装操作系统,我们添加磁盘,如图:

d2429a5bcddfafb8388aedee01b388ce.png

添加虚拟机磁盘

fc1ad86dd159aa4bc442e490cc95f735.png

添加虚拟机磁盘

看你想做那个RAID级别的测试,比如用RAID 0 。我们添加两块磁盘,启动时做一个RAID 0,然后装系统。装好之后把其中一块磁盘删掉,看看系统能不能启动,当然启动不了。RAID 0,坏一个数据就坏掉了。然后两块磁盘做一个RAID 1,然后装系统,装好之后,删除一块磁盘,再启动试试,发现不受影响???这样就能够测试一下RAID的级别的安全性了。

举报/反馈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1835. 所有数对按位与结果的异或和(位运算 (ab)^(ac) = a(b^c) )

文章目录1. 题目2. 解题1. 题目 列表的 异或和(XOR sum)指对所有元素进行按位 XOR 运算的结果。 如果列表中仅有一个元素,那么其 异或和 就等于该元素。 例如,[1,2,3,4] 的 异或和 等于 1 XOR 2 XOR 3 XOR 4 4 ,而 …

python入门基础系列_03python—9个基础常识-python小白入门系列

《python小白入门系列教程》 专栏 • 第03篇 文 | xc_718 深度好文:1828字 | 4分钟阅读 ​ 1. 注释 1)单行注释:****# #注释内容 print(123) #123 print(abc) #abc print("abc") #abc **2)多行注释: 或 **&q…

hihocoder1089 Floyd算法

题目链接:http://hihocoder.com/problemset/problem/1089 算法描述: floyd算法是求解图中任意两点最短路的经典算法,复杂度为O(n^3)。虽然我们完全可以用n次dijkstra算法来求任意两点的最短路,复杂度也是O(N^3),但如果…

matlab 思维数组_matlab多维数组

1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组。2.利用标准数组函数创建多维数组Azeros(4,3,2)生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似的用法。3.利用直接索引方式生成多维数组Azeros…

css英文左右对齐,中文英文左右padding一致两端对齐实现_js

先看下图:就是一个定宽的容器,左右padding值20像素,结果输入一段文字后(有中文也有英文字符),会发现右侧根本就不对齐,有些地方距离右侧的空白大小也不是20像素,感觉不和谐,设计师就希望排列能够…

python判断字符类型编程_Python检测数据类型的方法总结

我们在用python进行程序开发的时候,很多时候我们需要检测一下当前的变量的数据类型。比如需要在使用字符串操作函数之前先检测一下当前变量是否是字符串。下面小编给大家分享一下在python中如何检测数据类型 首先我们打开CMD控制台,进入到python环境&…

RDD 编程

文章目录1. RDD 创建2. RDD转换3. RDD动作4. 持久化5. 分区6. 文件数据读写6.1 本地6.2 hdfs6.3 Json文件6.4 Hbase学习自 MOOC Spark编程基础1. RDD 创建 从文件创建 Welcome to____ __/ __/__ ___ _____/ /___\ \/ _ \/ _ / __/ _//___/ .__/\_,_/_/ /_/\_…

centos 限制只能访问某个目录的php文件

vi /etc/php.ini #编辑 open_basedir .:/tmp/ #在380行 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行, 或者直接写上程序的目录/da…

python saltstack web_saltstack web uiweb平台界面

拾壹015/04/2016 下午 3:254楼2016-04-15 15:18:15,632 [cherrypy.error ][ERROR ][10998] [15/Apr/2016:15:18:15] ENGINE TypeError(“argument of type ‘NoneType’ is not iterable”,)Traceback (most recent call last):File “/usr/lib/python2.6/site-packages/cherry…

楼宇自控ba系统 服务器,楼宇自控BA系统

1、系统介绍楼宇自控系统 (Building Automation System) 针对楼宇内各种机电设备进行集中管理和监控。楼宇控制系统主要包括空调新风机组、送排风机、集水坑与排水泵、电梯、变配电、照明等。在整个楼宇范围内,通过整套楼宇自动控制系统及其内置最优化控制程序和预设…

用python解决生活问题_Python解决生活问题之闹钟程序的实现

昨天下班回家忘了带手机充电器,手机熄火没闹钟了,可现实是迟到30分钟以内要罚100RMB,超过30分钟算旷工要扣除3天工资,想想这代价,好吧,还是自己动手写一个闹钟程序吧! 系统环境: Lin…

推荐系统可利用的特征

学自 极客时间 《深度学习推荐系统实战》 推荐系统就是利用“用户信息”,“物品信息”,“场景信息”这三大部分有价值数据,通过构建推荐模型得出推荐列表的工程系统 特征其实是对某个行为过程相关信息的抽象表达 构建特征原则:尽…

搭建git服务器

在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。 GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHu…

回拨系统服务器,CISCO接入服务器回拨功能的实现

很多人都在实践中配置过CISCO的接入服务器,象2511、2620或者是5300。接入服务器提供了廉价的通过电话拨号远程访问企业网的方式。但是接入服务器提供的回拨功能却很少有人用到。回拨的过程是用户拨通接入服务器,输入用户名/密码,通过认证后&a…

python3时间戳转换成时间_Python3 日期与时间戳相互转换

开发中经常会对时间格式处理,对于时间数据,比如2019-02-28 10:23:29,有时需要日期与时间戳进行相互转换,在Python3中主要用到time模块,相关的函数如下:其中unix_time函数是正常时间转unix时间戳&#xff0c…

iis无法读取配置文件_SpringBoot 有很多读取配置文件的方法,你知道几个? 静态方法读取呢?...

SpringBoot 如何在静态方法中读取配置文件的值在Spring中呢有很多读取配置文件值的相关注解,读取这些配置文件都是依赖于Spring的方式。我发现的读取配置文件的方式有好几种。1、Value 注解2、ConfigurationProperties 和 EnableConfigurationProperties(Compent&am…

LeetCode 1837. K 进制表示下的各位数字总和

文章目录1. 题目2. 解题1. 题目 给你一个整数 n(10 进制)和一个基数 k ,请你将 n 从 10 进制表示转换为 k 进制表示,计算并返回转换后各位数字的 总和 。 转换后,各位数字应当视作是 10 进制数字,且它们的…

ajax 请求svg,jQuery append 到AJAX加载的SVG问题

我已成功通过AJAX从外部文件加载了一些svg:$("#svg").load(svgUrl " svg", function() {// do stuff});我的HTML看起来像这样:...我可以看到图形很好。现在,我想向已加载的svg添加一些其他svg元素。我将脚本更改为:$("#svg").load(s…

微信开发学习日记(一):快速阅读5本书,掌握整体背景

2015年1月开始学习微信开发。已经有多年开发经验了,从网上文章来看,微信开发主要是接口,然后是业务逻辑,不是很难。所以,我比较强调学习效率。一天学一点,是不能满足我的快速学习欲望的。在京东上&#xff…

python json序列化对象_Python学习之json序列化

一、什么是序列化在我们存储数据或者网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式。这个过程叫序列化,不同的序列化结果也不同,但目的是一样的,都是为了存储和传输在Python中三…