电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

【2017年整理】存储是系统的最底层

15页
  • 卖家[上传人]:豆浆
  • 文档编号:1003165
  • 上传时间:2017-05-25
  • 文档格式:DOC
  • 文档大小:114KB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、存储是系统的最底层,非常重要,如何选择最合适自己存储呢? 梳理下知识点,以备后用 1. 存储应用的场景,了解自己的应用需求、预算及数据使用特点 2. 了解存储的相关知识 3. 选择存储应注意的要素 4. 存储的使用和维护1. 存储应用的场景,了解自己的应用需求、预算及数据使用特点要清楚存储是应用在 OLAP 还是 OLTP?对存储的性能,安全性要求如何?预算是多少?预计未来 2-5 年的业务增长趋势?中端存储可以提供高响应速度,在磁盘数量相同的条件下,不会比高端存储差多远(但高端存储的扩展能力,可靠性非常强)2. 了解存储的相关知识磁盘:一个 IO 的访问,大致分为三个步骤,第一是磁头到指定的磁道(寻道),第二是等待需要读取的数据随盘片旋转到磁头(延迟),第三是读取数据。相比较前两个时间,读取数据的时间可以忽略不计,所以一个 IO 的响应时间等于 寻道时间+延迟时间决定(ssd 固态硬盘除外,它的存储方式不一样),寻道时间由于是机械的动作,所以很难得到大幅度提高,但是可以通过提高磁盘转速来提高延迟时间。所以转速越高的盘,可以承载更多的IOPS。磁盘的 IOPS 由磁盘的转速决定,比如

      2、15000RPM 的磁盘,一般可以承受 150 个IOPS。和存储相关的三个性能参数:IOPS,吞吐量,响应时间吞吐量:吞吐量,则由磁盘的转速和接口决定,转速决定了内部传输率,接口则决定了外部传输率,很明显前者肯定低于后者。常见的接口有 ATA,SCCI,SATA,SAS,FC 等等。FC 接口一般在高端存储中比较常见,而 SAS 和 SATA 多在服务器或者中低端存储中常见。影响吞吐量的因素稍微复杂些,由磁盘的数量和存储的架构决定,当磁盘到达一定的数量后,吞吐量主要受限于存储的架构。比如某高端存储,吞吐量最大就是 1.4GB,这是由它内部的架构所决定的。另外还要注意存储与主机的接口,比如 HBA 卡,有 4Gb和 2Gb(这里是 bit,而不是 Byte),一般主机和存储都配有多块 HBA 卡IOPS:对于一个存储系统来说,IOPS 主要决定于 cache 的算法,以及磁盘的数量。有时候我们往往会被厂商的数据给忽悠了,第一是 cache 命中率,厂商利用了某种手段,让 cache命中率非常高,IOPS 几乎可以随心所欲。另外一个因素就是磁盘的数量,厂家的数据是同型号 1000 块磁盘

      3、的测试结果,而实际的系统只有几十或者几百块磁盘。购买存储时,应该避免买高端的存储,而只配数量很少的磁盘,厂商非常喜欢你买一个高端的 BOX,告诉你扩展性好,现在用不着可以少买点盘,以后可以扩容等等,这完全是忽悠。建议不要超前消费,如果确实对性能追求很高,可以选用容量小一些的磁盘,而磁盘的数量多一些。磁盘的数量可以计算得出,我们的经验,一般 OLTP 应用的 cache命中率在 20%左右,剩下的 IO 还是要到磁盘上的,根据磁盘的转速和类型,就可以知道一块盘能够承载的 IOPS,磁盘数量就可以估算出来了,为了得到比较好的响应时间,建议每块磁盘的 IOPS 不要超过 100。响应时间:除了 IOPS 与吞吐量,存储的另外一个重要性能指标就是单 io 的响应时间,单 io 的响应时间与 IOPS 的当前值,吞吐量大小及 cache 命中率都有密切的关系,经验值表示,一个 io 的响应时间在 20ms 以后,应用基本可以正常工作,但对于高可用的核心 OLTP 系统,最佳的 IO 时间是小 10ms。Stripe:Stripe 的作用就是尽可能的分散 IO,它在有些存储上是可以调节的,但是很多

      4、存储是不可以调节的,一般在 128K-512K 之间。有一个错误的说法是,我在存储上做了 stripe,数据库的一个 IO,所有的磁盘都会响应这个 IO。这个说法是错误的,对于 Oracle 来说,一个随机 IO 的大小是 8K,一般条带的大小要比 8K 大得多,所以 Oracle 一个随机 IO 永远只会落在一块磁盘上。一块磁盘在同一个时刻只能响应一个 IO,也就是说磁盘没有并发IO 的概念,但是从整个系统来看,不同的磁盘响应不同的 IO,宏观上 IO 还是分散的,所以我们看到一个数据库在运行时,所有的磁盘都在忙,实际上每块磁盘是为不同的 IO 服务。对于顺序 IO,Oracle 的默认设置是 128K,最大值由 OS 决定,一般是 1M,如果顺序 IO 的大小大于 stripe,那么一个 IO 可能会有几块盘同时响应,但是很多存储的 stripe都大于 128K,这时一个 IO 还是只有一块磁盘响应,由于读是一个顺序的过程( 在不同的multiblock read 之间,存在一定程度的并行。Oracle 每次同时向 OS 发送若干个multiblock read IO 请求,然后把

      5、返回的结果合并排序。整个 scattered read 应该是局部并行,宏观串行的过程),所以要在数据库这个级别加上并发,才可以真正达到提高吞吐量的目的。有人要问,stripe 到底多大合适?假设把 stripe 做得很小,这样不是很好吗?一个IO 同时可以读很多块盘,大大提高了吞吐量。我们假设 stripe 为 1K,Oracle 一个 IO 要分布在 8 块不同的磁盘上,但是这时新的问题就出现了,因为一块磁盘是不具备并发 IO 能力的,如果每个 IO 都占用很多块盘,这样整个系统的并发 IO 能力就下降了,而且一个8K 的 IO 如果在一块盘上读,和从 8 块盘上并行读,不会有很大的差别(也许在一块盘上读还要更快),所以 stripe 不能做的很小。stripe 到底设多大,我的观点是大比小好,不要小于 256K,数据仓库应用可以设置的更大一些。ASM 对于数据文件的 stripe 默认是1M,不要设置太小,经验表明,1M 的性能更好,Oracle 也推荐用 1M。这说明对于数据库应用来说,stripe size 要稍微大一点,而不是我们想的越细或者越分散越好。Raid:RAID

      6、一般比较常见的就是 RAID10 和 RAID5,对性能要求比较高的数据库应用一般都采用 RAID10,RAID5 也可以用,但是别把 redo 放在 RAID5 上,因为 RAID5 的对于redo 这种小 IO,性能非常差,很容易造成 log file sync 的等待。一个 RAID group 中的磁盘数量不宜过多,不要超过 10 块,原因是 RAID group 中磁盘数量越多,坏盘的概率就越大(概率问题)。一些高端存储对于 RAID group 中的磁盘数量都是固定的,这主要和存储的架构有关。使用存储的过程中,你会发现,越是高端的东西,就越是死板,而中低端存储则非常灵活,并不是说高端存储不好,而是说架构决定一切。存储划分划分好的 LUN 输出到主机后,我们怎么用?这个就比较灵活多变,首先要看我们的用途,我们是追求 IOPS 还是吞吐量?我们用 file system, raw devices,ASM?存储输出的LUN 跨在多少块盘上?一般的存储没有虚拟化功能,则输出的 LUN 只跨在一个 RAID group 上,这时往往需要利用 OS 上的 LVM 来再次划分一次,比如有

      7、两个 raid group,每个 RAID goup 有四块磁盘,建立两个 LUN,输出到主机后,然后分别创建两个 VG,再创建 LV( stripe),这下每个 LV 就完全跨在了所有的磁盘上。实际中考虑的问题要更多,有时候不仅仅要考虑磁盘,还要考虑将负载分配在不同的控制器,前端卡后端卡和多路径的问题,相当复杂。有些存储本身有虚拟化的功能,甚至可以输出一个 LUN,比如 3PAR就可以输出一个虚拟卷,这个卷已经跨在所有的磁盘上,我们直接使用就可以了(但实际工作中这么使用的比较少见)。Oracle 有了 ASM,问题就更加复杂了,我的建议是如果可以的话,存储只做RAID1, stripe 交给 ASM 去做。如果有些存储必须要做 stripe,也没问题。存储划分是一个很有技术含量的工作,必须建立在对存储,主机和数据库深入了解的基础上,才有可能做出一个好的规划。3. 选择存储应注意的要素1选择 32 位或 64 位的 RISC CPU 还是普通的 Intel 586 CPU?服务器的结构已由传统的 I/O 结构改为 I2O 结构,其目的就是为了减少服务器中 CPU 的负担,将系统的 I/

      8、O 与服务器 CPU 负载分开。 I2O 是由一 颗 RISC CPU 来负责 I/O 的工作。服务器上都已用 RISC CPU,磁盘阵列上当然也必须用 RISC CPU 才不会形成瓶颈。另外,我们现在常用的网络操作系统大都是 32 位或 64 位的,当操作 系统已由 32 位转到64 位时,磁盘阵列上的 CPU 必须是 RISC CPU 才能满足要求。2磁盘阵列内的硬盘是否有顺序要求?也就是说,硬盘是否可以不按原先的次序插回阵列中, 而数据仍能正常存取?很多人都想当然地认为根本不应该有顺序要求,其实不然。我们曾用过一个阵列,其必须按照原来的次序才能正常存取数据。现在假设这样一种情况,我们准备 清理一下硬盘阵列,把所有硬盘都放在一起,结果记不住顺序了,为了正常存取数据,我们 只有一个个地试,而对于有8 块硬盘的阵列来说,最坏的情况要试 88 次才行。现在已出现 了磁盘阵列产品具有不要求硬盘顺序的功能,为了防止上述事件发生,应选择对顺序没有要 求的阵列。3是硬件磁盘阵列还是软件磁盘阵列?软件磁盘阵列指的是用一块 SCSI 卡与磁盘连接,硬件磁盘阵列指的是阵列柜中具有背板的阵列,它与软件磁

      9、盘阵列的区别很大。硬件磁盘阵列是一个完整的磁盘阵列系统与系统相接,内置 CPU,与主机并行动作,所有的 I/O 都在磁盘阵列中完成,减轻主机的负担,增加系统整体性能,有 SCSI 总线主控与 DMA 通道,以加速数据的存取与传输。而软件磁盘阵列是一个程序,在主机上执行,通过一块 SCSI 卡与磁盘相接形成阵列,其最大的缺点是大大增加了主机的负担,对于大量输入输出的系统,很容易使系统瘫痪。显然,应尽量选择硬件磁盘阵列。4是 IDE 磁盘阵列还是 SCSI 磁盘阵列?最近市场上出现了 IDE 磁盘阵列,它们的速度挺快,如增强型 IDE 在 PCI 总线下的传输速率可达 66MB/s,价格与 SCSI 磁盘阵列相比要便宜得多; 而 SCSI Ultra3 速率接近160MB/s。但从实际应用情况来看,在单任务时,IDE 磁盘阵列比 SCSI 磁盘阵列快;在多任务时,SCSI 磁盘阵列比 IDE 磁盘阵列要快得多。但 IDE 磁盘阵列 有一个致命的缺点:不能带电热插拔。这个缺点使 IDE 磁盘阵列命中注定只能使用于非重要 场合。如果您的应用不能停机,则一定要选择 SCSI 磁盘阵列。5是单控制器还是冗余控制器? 磁盘阵列一般都是以一个控制器连接主机及磁盘,在磁盘阵列的容错功能下达到数据的 完整性。但磁盘阵列控制器同样会发生故障,在此情况之下,数据就有可能丢失。为了解决 此问题,可以把两个控制器用缆线连接起来,相互备份。但两个独立控制器在机箱内的连接 意味着一旦出现故障必须打开机箱换控制器,即必须停机,这在很多应用中根本就不可能, 所以,我们应该选择热插拔双控制冗余的架构。现在有些磁盘阵列新产品上利用快取内存和 内存镜像的方式,以保证在出现故障时不丢失数据,且在控制器更换后,自动恢复故障前的 工作设置,把工作负荷分散给相互备份的控制器,以达到负载均衡,这种架构能提供单控制 器所达不到的高性能及高安全性。当然如果你对安全要求更高,可以选择多控制器的高端存储 6SCSI 接口还是光纤通道接口? SCSI 的完善规格、成熟技术及高性能一直吸引着小型系统,但从目前的情况来看,光纤通道已形成市场,双环可达 200MB/s,且传输距离达 10km, 可接 126 个设备。光纤通道把总线与网络合二为一,是存储网络的根本,其取代

      《【2017年整理】存储是系统的最底层》由会员豆浆分享,可在线阅读,更多相关《【2017年整理】存储是系统的最底层》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.