热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

辛星浅析raid

我们来分析一下影响计算机性能的主要组件,主要就是CPU、主板的总线IO、内存IO、硬盘IO、网卡IO等等,而且现在CPU的性能已经很好了,但是计算机的整体的IO性能却较低,严重影响

     我们来分析一下影响计算机性能的主要组件,主要就是CPU、主板的总线IO、内存IO、硬盘IO、网卡IO等等,而且现在CPU的性能已经很好了,但是计算机的整体的IO性能却较低,严重影响了计算机的性能,现在的计算机的总线IO、内存IO的速度都可以达到5G/s以上,但是磁盘IO往往较低。

     我们来分析一下常见的几种吧,对于SATA硬盘来说,速度小于150MB/s,对于SCSI硬盘来说,速度小于200MB/s,对于SAS硬盘来说,速度大约在200MB/s左右,而固态硬盘,也就是SSD,速度大约在500MB/s左右。我们平时自己使用的硬盘大多数是SATA接口的机械硬盘,而SATA3接口还是比较快的,可以达到6GB/s,而SCSI SAS一般用于服务器,通常转速很快,可以达到每秒一两万转,所谓SAS就是串行SCSI,而SSD就是固态硬盘啦。

     硬盘式绝大多数计算机的性能瓶颈,而IOPS也起到了很大的作用,所谓IOPS,它是Input/Output  Operation Per Second的缩写,也就是每秒进行读写(IO)操作的次数,多用于数据库等场合,他是衡量随机访问的性能的一个重要参数。而且我们发现现代磁盘的缺陷:IO性能弱,稳定性差。

    所谓RAID,也就是Redundant   Array  of  Independent  Disks,也就是廉价磁盘冗余阵列,它通过多磁盘并行运行,来提供计算机的存储IO性能。RAID有很多种类,称之为RAID的级别,现代RAID有7类,常用的则有4类。也就是RAID0、RAID1、RAID5、RAID6.对于冗余性,可以类比备份,多块磁盘组成了一个RAID,但是在OS看来只有一块RAID硬盘,而RAID5允许并行中的多块硬盘,可以有一块出现故障,而不丢失数据。

    对于RAID0,它最少需要两块硬盘,它将数据分别读写到多块硬盘,来提升读写性能,有几块硬盘,就可以吧数据分为几份来写,它的空间利用率是所有硬盘空间之和,它的性能也是所有硬盘速度之和,它没有冗余能力。它的优点就是可以并行的读和谐,而且空间利用率高,性能也最好。它的缺点就是一旦RAID中的某块硬盘出现故障,则数据将会全部丢失。

    对于RAID1,它需要偶数块硬盘,在读数据时,同时从多块硬盘读取数据来提高读取性能,它与RAID0的读速度一样,在写数据时它需要将同一数据复制到多块磁盘,从而提供冗余性。它应用于数据安全性以及完整性要求比较高的情景,而且读远多于写。它的空间利用率就是组成RAID1中最小的那块磁盘,它的读性能为所有硬盘速度之和,但是写性能比读性能要差一些。它的冗余能力就是,只要有一块硬盘没有损坏,那么数据就是完整的。对于RAID1来说,它的读很快,冗余性也很高,但是缺点就是有几块硬盘就需要有几份相同的数据,写数据很慢。

    对于RAID5来说,它最少使用3块硬盘,在读数据时,同RAID0,分布式的往磁盘上写数据,在读数据时,对数据进行奇偶校验,将校验信息同时保存在磁盘上,而校验信息在数据恢复时使用。其中RAID0性能最高,而RAID1冗余性最高,但是使用场景都不多,而实际的生产环境中多使用RAID5和RAID6.它的空间利用率是1-1/硬盘数,它的读性能很接近RAID0,写性能比RAID0弱,它的冗余能力就是如果有一块磁盘损坏,不会丢失数据。

    对于RAID6来说,它最少使用4块硬盘,它和RAID5一样,只是多一块硬盘保存校验信息的副本,读数据时,同RAID5,分布式的往磁盘上写数据,在写数据时,对数据进行奇偶校验,将校验信息同时保存在磁盘上,但是会再额外保存一份校验信息。它的空间利用率是1-2/硬盘数,它的读性能接近RAID5,但是写性能比RAID5弱,它的冗余能力就是如果有一块 硬盘损坏,不会丢失数据。

    对于RAID的实现,可以分为软件实现 和硬件实现。如果是软件实现,可以通过系统功能或者软件来实现,它没有独立的硬件和接口,它会占用一定的系统资源,比如cpu、内存、硬盘接口速度,受操作系统的稳定性影响。如果是硬件实现,可以通过购买独立的RAID硬件卡来实现RAID,有些主板集成了RAID硬件,硬件RAID不需要占用其他的硬件资源,而且稳定性和速度都比软件RAID要强。    

   

辛星浅析raid


推荐阅读
  • IEC60825激光产品安全标准详解
    随着激光技术在全球范围内的广泛应用,尤其是激光投影显示技术的兴起,了解和遵守相关的安全标准变得尤为重要。本文将详细介绍IEC60825激光产品安全标准及其重要性。 ... [详细]
  • Mysqlcheck作为MySQL提供的一个实用工具,主要用于数据库表的维护工作,包括检查、分析、修复及优化等操作。本文将详细介绍如何使用Mysqlcheck工具,并提供一些实践建议。 ... [详细]
  • 本文介绍了Linux内核中TCP的三种接收队列:Prequeue、sk_receive_queue和Backlog。这些队列在数据包处理过程中扮演着重要角色,帮助提高系统性能和效率。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • ED Tree HDU4812 点分治+逆元
    这道题非常巧妙!!!我们进行点分治的时候,算出当前子节点的所有子树中的节点,到当前节点节点的儿子节点的距离,如下图意思就是当前节点的红色节点,我们要求出红色节点的儿子节点绿色节点, ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文深入分析了在使用JavaScript中的Date.UTC()方法初始化Date对象时,getDay()方法返回值与预期不符的原因,并提供了相应的解决方案。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • Redis: 高效的键值存储系统
    Redis是一款遵循BSD许可的开源高性能键值存储系统,它不仅支持多种数据类型的存储,还提供了数据持久化和复制等功能,显著区别于其他键值缓存解决方案。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 本文详细介绍了如何使用Rufus工具制作一个兼容UEFI启动模式的Windows Server 2008 R2安装U盘,包括必要的软件和步骤。 ... [详细]
  • 本文介绍如何使用 Python 计算两个时间戳之间的时间差,并将其转换为毫秒。示例代码展示了如何通过 `time` 和 `datetime` 模块实现这一功能。 ... [详细]
author-avatar
前世梦0708
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有