为了保证数据库的性能,需要合理选择和配置存储;反过来讲,数据库也是企业存储设备最常见的用途之一,因此为数据库场景考虑/优化也是不可少的。
这次我整理了一些DBA和存储工程师互相关注的问题,并将这份资料和朋友们讨论的精华分享出来,希望对大家有帮助。 本次交流,主要围绕上面这5个话题进行。 由于Oracle Redo log是不断的追加写,不会随机去覆盖之前写入的部分,所以数据在SSD写缓存和RAID控制器DRAM Cache中可以有合并。当然这个要有掉电保护机制。 早期确有全闪存阵列的用户不放心这方面,专门把Redo log放在另外的磁盘阵列的情况。现在已经很少了,除非是有Redo log双写的需求。 OracleExadata独享的SmartFlash Logging技术,同时将Redo log写入闪存和磁盘控制器Cache,以先返回成功的为确认。这个对延时算是双保险吧,不过有朋友经过一些实际观察都是闪存先写成功的。 EMC拿XtremIO做了一个104小时的压测,Redo总共写入25TB,平均68MB/s。DBA专家表示该延时结果已经很理想了。 如今的PCIeSSD大多提供512byte-4KB逻辑扇区的转换工具。Intel建议Oracle Redo log使用4KB格式,同时创建Redo log时选择4KB尺寸。 可以看出,在日志文件并行写入的情况下,延时更低,能更好发挥SSD上闪存单元的并发能力。 大家认为,通常情况下Redolog的写入压力不会长时间达到SSD的极限,因此GC(垃圾回收)带来负面影响也很少。前提是使用成熟的企业级Flash存储。 如今为闪存优化的集中式双控/多控存储阵列,已经能较好满足Oracle的性能需求。ServerSAN如果没有价格优势,个人感觉吸引力不够大。 由于门槛不高,国内类似的产品不少。需要注意的是,如果是双节点超融合(或者只有2个存储节点)最好引入第3点仲裁盘,这个与RAC ASM Normal模式做双机双柜是一样的道理。 DBA专家朋友们表示,MySQL Ceph的超融合架构是用来替代共享存储HA方案的,而不影响传统binlog复制一主多从、读写分离这种主流的集群方式。 使用存储虚拟化网关的RAC双活方案,在SAN组网上确实会复杂一些,但不见得性能差。大家认为将双活功能内嵌在存储控制器中,优点更多。 |