RAID在企业服务器中的应用(RAID几种级别)

企业级的数据库应用大多部署在RAID磁盘阵列的服务器上,这样能提高磁盘的访问性能,并能够实现容错/容灾。
RAID(冗余磁盘阵列),简单理解,就是拿一些廉价的硬盘来做成阵列。其目的无非是为了扩展存储容量,提升读写性能,实现数据冗余(备份容灾)。就像很早就有老外拿N台旧PC,做成一个强大的“服务器集群”。RAID技术诞生于1987年,由美国加州大学伯克利分校提出。
主流的大概可以分为几个级别:RAID 0,RAID 1,RAID 5,RAID 10 。配置起来也不是很复杂,有兴趣的朋友可以找相关的资料,自己动手实践。

SQL Server 2005常用的有几个级别0,1,5,10 下面我来简单说说这个几个级别的区别及其应用。

RAID 0 简称磁盘条带化,它可以提供最好的读写性能,如果你把两块磁盘做成了RAID0,那么在写入数据的时候,就可以同时对A磁盘和B磁盘执行写入操作。这里我必须说明的是:“可以同时...写入操作”,并不是意味着将文件的相同内容“在同一时间内完全写入”A磁盘和B磁盘中。打个比方:有一个100M的文件需要写入磁盘中,假设单个磁盘的写入速度是10M/S,那么需要10秒钟才能完成写入工作。但如果在具有A、B两块磁盘的RAID 0阵列环境中,(以秒/S为最小单位的)单时间内,可以将10M内容写入A磁盘中,并同时将紧随的10M内容写入B磁盘中,这样算起来,写入速度变成了20M/S,只需要5秒钟就能搞定了,而且每块磁盘中只需存储50M的文件内容,不会造成硬盘存储压力。当然,上诉例子也许不恰当,也只是指的理论环境下,实际环境中会有很多其他因素,效率肯定不能达到。
毋庸置疑的是,这样肯定是能提高读写性能的,但是这样也带来了一个问题就是,如果其中的一部分数据丢失了,你的全部数据都不会找回来的,因为RAID0没有提供冗余恢复数据的策略。所以RAID0可以用在只读的数据库数据表,或者是经过复制过来的数据库上,如果你对数据丢失不敏感的话,也可以使用RAID 0,总之这个level下是高性能、无冗余

RAID 1 磁盘镜像 它对读没有什么影响,如果有两块磁盘它只对写有影响,因为它采用了一块磁盘做冗余备份的方法,这样如果你有两块50G的磁盘,那么加起来就是100G,但是在RAID 1下,那么你只能使用50G ,这种方法会影响磁盘的空间使用,降低了I/O 写的性能。通俗点来讲:你将一个100M的文件写入RAID 1时,讲内容写入A磁盘的同时,也会将相同的内容写入B磁盘中。这样一来,两块磁盘的内容是完全一致的(这就传说中的”冗余“,并不是什么高深的东西)。本来只需要写入1块硬盘的,可是现在要写入到两块硬盘去,效率肯定会变低。至于“读”操作,RAID 1环境下,读取时候只使用到了一块硬盘,所以和普通的环境下没啥区别(如果两块硬盘都能够同时工作,那么还可以分摊压力的)。只是当第一个硬盘数据损坏或者挂掉了,就启动第二块硬盘。当然,两块硬盘都挂了,那就真的崩溃了。哈哈。值得一提的是,有些书或者文章上讲,RAID 1是在将第一块硬盘写入完成后,才将数据完整复制到第二块磁盘中做为镜像备份的这种说法有待考证,按我的理解,是同时复制写入的。


RAID 5 与RAID1 不同之处就是多了奇偶校验,所有的奇偶校验的信息会遍布各个磁盘,性能上要比RAID1高些,但是一旦发生磁盘I/O失败,就会造成性能急剧下降,同时这种方法也在RAID0 与RAID1间折了中,是比较通用的做法。 用简单的语言来表示,至少使用3块硬盘(也可以更多)组建RAID5阵列,当有数据写入硬盘的时候,按照1块硬盘的方式就是直接写入这块硬盘的,如果是RAID5的话这次数据写入会分根据算法分成3部分,然后写入这3块硬盘,写入的同时还会在这3块硬盘上写入校验信息,当读取写入的数据的时候会分别从3块硬盘上读取数据内容,再通过检验信息进行校验。当其中有1块硬盘出现损坏的时候,就从另外2块硬盘上存储的数据可以计算出第3块硬盘的数据内容。也就是说RAID5这种存储方式只允许有一块硬盘出现故障,出现故障时需要尽快更换。当更换故障硬盘后,在故障期间写入的数据会进行重新校验。 如果在未解决故障又坏1块,那就是灾难性的了。

RAID 10  (也叫RAID 0+1 )就是RAID0 与 RAID1的组合,它提供了高性能,高可用性,性能上要比RAID5好,特别适合大量写入的应用程序,但是就是成本比较高无论是多少块磁盘你都是将损失一半的磁盘存储。按照我的理解,至少需要4块硬盘才能完成,A和B做数据分割,分别存储一半的数据,C和D分别对应做A和B的镜像备份。这样一来,可真是完美了,也是我理想中的最佳状态。也不需要RAID 5的奇偶校验。很显然,这样子成本也会高一些。

当然,这就和我们讲架构时候经常说的“负载均衡、高可用集群,横向扩展,纵向扩展”的目的其实很类似。通俗点来讲,都是为了实现不间断的工作,保证数据完整性和高可用性,而且最重要的,还要能分摊压力。突然让我想起了上初中物理时候学的“串联和并联”,有点像哦。顺便讲个丢人的笑话,也是我的真实经历,N年前,某日和某大师在一起抽烟、吹牛、瞎侃,大师瞎侃说”google光是在中国目前有XX台服务器集群......“,当时我并不理解什么叫“集群”,第一反应就是这么多台服务器之间到底是“串联“的还是”并联”的关系呢?

  说到最后,可能某些朋友已经不耐烦了。好像本文只是在不停的解释常见RAID的和其好处,而并没提及到sqlserver或者windows存储相关的内容。大家都知道,I/O往往是数据库性能最大的瓶颈, 有时候其实很简单,只需要将sqlserver所在的db server上部署合适的RAID,并将数据库文件分布到不同的磁盘上,就能很大程度的提升数据库的性能,真可谓是立竿见影。有兴趣的朋友,不妨自己实际动手实践一下,网上这方面的资料也很多。其实RAID成本并不高(和DELL、EMC等等那些高端的存储比起来真是“廉价”)。

甚至自己在家里PC机上,也可以通过阵列卡的方式来实现(效果可能不太好)。目前一般的PC服务器,内置都会有RAID支持,在PC服务器领域使用非常广泛。

本文出自http://blog.csdn.net/dinglang_2009,转载请注明出处。

时间: 2024-08-07 17:37:08

RAID在企业服务器中的应用(RAID几种级别)的相关文章

Linux系统如何在企业服务器上使用

  论微软系统和Linux系统的优劣点分析,很多人都道不出个所以然来,因为现在市面上还是微软系统的使用率高一点,尤其是私人电脑和家庭笔记本,大多使用的微软的系统,加上微软的系统一直都在更新换代,根据用户的需求来进行更新,很注重用户体验,所以市面上的系统大多被微软系统所占领.虽然如此,Linux系统还是有它的立足之地,比如一些企业和大型服务器中使用度最高的还是Linux系统,这么看来Linux系统好像更适用于大公司的电脑.下面小编给大家分析,Linux系统在企业服务器中如何使用? 1.基本命令 1

电脑中进行磁盘阵列RAID配置的详细步骤

  电脑中进行磁盘阵列RAID配置的详细步骤          1.按照屏幕下方的虚拟磁盘管理器提示,在VD Mgmt菜单(可以通过CTRL+P/CTRL+N切换菜单),按F2展开虚拟磁盘创建菜单; 2.在虚拟磁盘创建窗口,按回车键选择"Create New VD"创建新虚拟磁盘; 3.在RAID Level选项按回车,可以出现能够支持的RAID级别,RAID卡能够支持的级别有RAID0/1/5/10/50,根据具体配置的硬盘数量不同,这个位置可能出现的选项也会有所区别,选择不同的级别

浅析企业综合网络布线技术在企业服务器维护中的应用

在向大家介绍企业服务器之前,还是先向大家了解一下企业综合网络布线技术. 然后全面介绍了网线的制作,企业网络综合布线.对于服务器来讲,更加合理的优化企业综合网络布线,能够对服务器的维护起到很好的作用.对于服务器的维护工作来讲, 的确是个十分 复杂的而且重要的工作,同时服务器的维护涉及的方面技术比较广泛:服务器安全.硬件维护,软件维护等.硬件维护跟软件具有同等重要的地位,对服务器乃至整个网络环境的硬件系统有着基础性的作用.由此可见,服务器的维护工作极其重要,关键是如何更好的为企业提供更好的解决方案,

存储网络在企业应用中的安全隐患

  安全是存储网络的一个关键特性.它可能会影响到存储解决方案的所有组成部乐一个完整的存储安全解决方案需要考虑所有可能的存储接人点和安全机制的管理.在静态数据的保护中关注的是保护存储在阵列中的数据,它包括防病毒.电子数据销毁或者静态数据加密,这种保护主要是为了防止数据受到用户对阵列的物理访问的影响.还必须保护主机和存储管理应用对存储的访问:存储分隔通过只向主机提供对主机应用需要访问的部分存储的访问权限,降低了存储被主机访问的可能性,它可以利用LUN屏蔽和分区,对主机的存储访问和在数据复制过程中进行

Greenplum在企业生产中的最佳实践(上)

本文章转自Pivotal公众号,在此感谢任振中和Pivotal公司的分享,希望对更多的朋友有帮助- 一.GP搭建过程当中硬件的选择和部署建议 GP是一个分布式X86架构,是把多台X86服务器组合成一起做一个大的集群.相比传统单机版的Oracle和MySQL,它的特点是使用比较多的服务器做海量数据处理. 一般在企业客户中,把X86服务器采集过来后会做上机安装,如果企业使用的集群规模比较大,比如国内客户最大的有将近128个节点,数据量有1PB.在部署的时候,X86的服务器会非常多,有超过100台的服

国庆菜鸟学堂:企业存储中各种术语浅析

DAS.NAS和SAN三种存储 对于存储来说,很多人依然停留在简单的硬盘.内存上,随着网络时代的快速发展,存储技术不断的更新,存储已经早就在硬盘技术为基础下得到飞速的发展.如今,企业级存储技术不断涌入市场,使得用户在专业术语认知上有所缺陷,如网络存储.虚拟存储.云存储.重复数据删除技术.归档技术等一大批术语究竟是什么,这些技术让人费解? 尽管掌握这些术语对于大多数人来说似乎没有实际意义,并不能真正意味着对于行业技术的熟悉,但是这些基本的存储术语,可以帮助想进一步深入了解企业存储技术的人获得入门知

Forefront TMG 服务器中规划和实现高可用性的方法

前段时间一直在做TMG在企业中的高可用性的规划与实施,在windows产品中高可用性一般最常用到的也就是"群集(Cluster)"与"网络负载均衡(NLB)",那么在TMG中我们要想实现高可用性如何进行操作呢? 在微软TMG产品中实现高可用性用,我们一般依托"TMG阵列"+"网络负载均衡(NLB)"来实现,目前在企业安全边界规划中,我们一般使用一个或多个 Forefront TMG 阵列来进行对Forefront TMG 部署

使用WebDAV读取Exchange服务器中的数据

在MOSS开发中,我们往往会集成Exchange服务器中的邮件等数据,采用WebPart或其他方式. Exchange 2007中提供了一套简易的Web Service.Exchange 2003中却没有. 考虑到目前很多企业使用的都是Exchange 2003,下面我给出一套实用WebDAV读取Exchange的通用方法 . 为了让更多的人使用,示例代码使用普通的asp.net版本.请需要做MOSS的朋友自己改为Web Part. 界面截图

tomcat-Tomcat服务器中url中文传值乱码,急,求解决。。。

问题描述 Tomcat服务器中url中文传值乱码,急,求解决... 上海 在servlet中获取城市,设置了编码为UTF-8,然后跳转带页面, <% String city=(String)session.getAttribute("city"); %> <%=city %>切换城市 不管选择哪个城市,最终显示在网页都是??,求各位大神给出个解决办法.. 解决方案 URL中文乱码服务器端(tomcat)解决方法 解决方案二: java URLEncoder和UR