设为首页 收藏本站
查看: 738|回复: 0

[经验分享] SQL Server性能调校系列(7)--RAID

[复制链接]

尚未签到

发表于 2015-6-29 16:31:41 | 显示全部楼层 |阅读模式
  一: RAID简介
  RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)是一项数据保护策略.
  
  二: RAID的几种常用级别
  
  1. RAID 0:
  通过并行读取来提高数据I/O, 读取操作效率很高, 但是不提供数据容错及保护. 不推荐作为SQL Server使用.
DSC0000.png
  
  2. RAID 1:
  镜像保护,有两个驱动器,一个做主驱动器,一个做镜像, 所以是实际需要两倍的驱动器,第二个所为冗余使用. 使用RAID 1我们的存储容量应该是(n*s/2)。
  一次写操作写入到两个磁盘, 所以虽写入速度会稍微有影响, 但是读取速度几乎是大多数情况下的两倍. 因为在读取操作过程中驱动器可以并行地进行访问,从而提高了吞吐量。RAID 1限制于两个驱动器。
DSC0001.png
  
  3. RAID 5:
  带校验的磁盘条带。在这种类型的RAID中,数据以复杂条带的形式写入到阵列中的所有驱动器中,同时所有驱动器中都有分布数校验块。这样RAID 5就可能使用三个或者更多磁盘组成的任意大小的阵列,只牺牲相当于一个磁盘的存储容量用于校验。但是这种校验是分布式的,并不单独存在于任何一个物理磁盘中.
  RAID 5由于在大型阵列中牺牲的存储容量较少,所以它具有成本效益的特点,从而被人们所广泛使用。与镜像不同的是,带有校验的条带要求必须在磁盘之间进行针对每个写入条带的计算,这造成了一部分的开销。因此,吞吐量并不总是一个容易计算的项目,它在很大程度上取决于系统在做校验计算时候的计算能力。
  计算RAID 5的容量非常简单:就是((n-1)*s)。RAID 5阵列可以避免这列中任何单个磁盘的丢失.
  
  对RAID5的每一次写操作, 都会涉及到多个读用于计算并且存储. 对SQL Server有很多的写操作,并且要求很高效率的时, RAID 5并不是一个很好的选择.
DSC0002.png
  
  4. RAID 6
  带双重校验的磁盘条带。RAID 6与RAID 5非常相似,但它的每个条带使用两个校验块,而不是一个,这加强了应对磁盘故障的保护能力。
  RAID 6是RAID家族中的新成员。RAID 6是其他几个RAID类型实现标准化几年之后增加的。RAID 6比较特殊,因为它可以承受阵列中任意两个驱动器的故障,同时防止数据丢失。但是为了配合额外的冗余度,RAID 6阵列需要牺牲阵列中相当于两个驱动器的容量,并要求真列中最少有四个驱动器。RAID 6的容量可以用((n-2)*s)来计算。
  
  5. RAID 10:
  带条带的镜像。从技术上来说,RAID 10是一种混合的RAID,包括存在于一个非校验条带(RAID 0)中的一对RAID镜像。
  当一个阵列中只有两个驱动器的时候,很多厂商会称其为RAID 10(或者RAID 10+),但从技术上来说这应该是RAID 1,因为阵列中至少有四个驱动器才会发生条带化。对于RAID 10来说,驱动器必须是一对一对添加的,因此阵列中的驱动器数量只可能是偶数。
  RAID 10可以在丢失近半数驱动器组的情况下正常运转,同时最多只能承受每个驱动器中一个驱动器发生故障或者丢失。RAID 10不包含校验计算,这使得它相对RAID 5和RAID 6来说具有一定的性能优势,而且阵列对计算能力的要求也更低。RAID 10提供了超过任何一种常见类型RAID的读取性能,因为在读取操作中阵列中的所有驱动器都可同时使用。但是RAID 10的写入性能要低很多。RAID 10的容量计算方法和RAID 1相同,都是(n*s/2)。
DSC0003.png
  
  RAID性能比较:
DSC0004.png
  
  读效率: 因为是并行读取, 读取效率都很高.
  写效率: RAID 0 > RAID 1 > RAID 10 > RAID 5
  磁盘利用率: RAID 0 > RAID 5 > RAID 1 = RAID 10
  容错能力:  RAID 10 = RAID 1 > RAID 5 > RAID 0
  作为SQL Server 的DB Server建议使用RAID 1 或RAID10.
  
  
  三: RAID与SQL Server
  
  DB server physical disk design with separate RAID volumes for data, log, tempdb and backup files.
  磁盘架构:
  C:  OS [要求很好的数据读写效率, 并且有很强的容错能力, 提供数据保护]
  D: 做RAID10, 存储DB数据文件 [要求读的效率高, 写效率比较低一些, 容错能力要强,如果数据文件很大, 要求节约磁盘空间]
  E: 做RAID1,  存储DB日志文件 [在DB运行过程中, 日志读写比较频繁, 需要很高的数据读写效率]
  F: 做RAID10, 存储数据库的tempdb [存放临时数据库]
  G(可选): 做RAID1, 数据备份,建议数据备份在远端
DSC0005.png
  
  SSD硬盘:SSD的英文全称是Solid State Disk/Drive, 中文翻译为固态硬盘. 可以广泛应用于服务器、台式机、笔记本、移动设备、游戏机等, 加速启动, 提高性能, 同时降低功耗.
  优点:

  • 速度快(高I/O).
  • 耐用防震
  • 无噪音
  • 重量轻
  • SQL Server搭配SSD硬盘可以取得很好的I/O性能
  缺点:

  • 价格高,容量小,做RAID会进一步损失容量, 所以性价比不高. 对于不考虑价格的公司就另当别论.
  • 技术还不是太成熟
  
  四: 总结
  针对不同的功能,建立不同的RAID架构可以提高数据效率和利用率.
  
  (以上只是自己对RAID的一点浅显的理解,如有错误或者不当的地方,欢迎提出指正. 谢谢!)
  

  >>>SQL Server性能调校系列入口地址

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-81640-1-1.html 上篇帖子: SQL SERVER中 ORDER BY也会偷懒 下篇帖子: SQL Server 隐式转换引发的躺枪死锁-程序员需知
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表