存储和数据库不得不说的故事

 

12月3日,惠普技术总监郑晓辉老师,在【DBA+社群】北京群进行了一次主题为“存储和数据库不得不说的故事”的线上分享。小编特别整理出其中精华内容,供大家学习交流。同时,也非常感谢郑晓辉老师对DBA+社群给予的大力支持。

 
 

嘉宾简介  

  • 现任中国惠普存储事业部技术总监
  • 从事IT行业20多年,工作经历包括硬件设计、ERP开发实施、数据仓库咨询实施、存储产品经理等
  • 生活中是一个热爱美食和电影的胖子

 

摘要  
 

大部分用户购买存储都是为了运行数据库,存储工程师和DBA一直是紧密合作的两个群体,但是毕竟立场不同,在性能优化、数据保护、容灾备份等方面很多观点迥异。作为一个存储从业者,同时又有从1995年开始做Oracle开发的经历,希望抛砖引玉,介绍一下存储派的相应观点,供DBA们借鉴和批判。

 

演讲实录 

本次分享的主要内容有:

一、存储市场概况:包括厂商份额,主要产品评测排名等;
二、存储产品的亮点:主要是全闪存阵列的发展;
三、存储规划的要点:如何保护数据

  
存储市场

 

1、存储发展史:

  • 独立存储的起源

1)基本都是上个世纪90年代初开始发展。EMC/HDS,一开始主要用于大型机的连接,加上IBM,一共只有这三家可以连接大型机。还有一家Netapp,从单控NAS起步,主要用于普通用户的共享。

2)固定的RAID组是一个主要的特征;

  • 中生代的存储

1)本世纪初开始,如HP 3PAR,DELL Compellent,主要在RAID方式做了改进,底层采用虚拟化RAID,数据打散分布在所有磁盘上,提高容量、性能效率,简化了管理;

2)这一代的存储比较重视一些管理功能,如Thin Provision(精简配置),强调快照数据保护等;
 

3)今年一些国产存储也是以模仿这一代的功能为主;

  • 新形态存储

1)软件定义存储:其实大部分存储都是基于软件实现的,只不过销售的时候还是捆绑了特定的硬件,所以这个概念更多是一种业务和商业层面的,技术上并无特定含义;
 

2)超融合存储:采用通用硬件,通过虚拟化的方法把计算、存储资源合在一个硬件节点里,通过软件实现多节点扩展;
 

3)开源分布式存储:例如Sheepdog、Ceph这些,其技术投入、运维成本不是普通用户可以承受的,只有特定规模场景采用价值;

2、当前市场格局

Gartner公司是IT行业的教父,它用魔力象限的形式对各个IT细分技术市场进行评测,从技术和市场两个维度把厂商分为四个象限。

上图是2014年的,右上的领导者象限有EMC、HP、HDS、Netapp、IBM、DELL。

图片是2015年的,右上的领导者象限有EMC、HP、HDS、Netapp、DELL、IBM、Nimble。

其实就是Netapp和IBM大幅度下滑,Nimble崛起,其它厂商排名没啥太大变化。

当前外部存储市场份额:

 

大部分传统厂商震荡下跌;
HP小幅度上升;
华为大幅度上升;

 

全球存储市场分布:
 

AMS(美洲)基本上占一半;
China大概8.6%

具体存储产品销售额排行:

销售额最新排名是

  • 第一名HP 3PAR 13.3%
  • 第二名12.3%
  • 第三名11.1%

Gartner高端存储技术评测榜:

  • 第一名:HDS G1000/HP XP7
  • 第二名:HP 3PAR SS20800
  • 第三名:EMC VMAX

 

Gartner中端存储技术评测榜:

  • 第一名:HP 3Par
  • 第二名:EMC VNX2
  • 第三名:Nimble CS


闪存产品

 

1、闪存的超快速发展

上图是近年来2.5英寸SAS磁盘和SSD盘的最大容量对比,蓝色为SSD;可以看到闪存容量基本每年翻一番,已经超过了摩尔定律;

2014年,闪存单盘容量超过SAS;

2015年,闪存单位容量价格已经低于15K SAS磁盘;

不久的将来,SAS盘就会消失。

2、某厂商闪存和磁盘销售额对比

图示时间是财政年度,比自然年早两个月;可以看到,闪存销售额急剧上升,实际情况是2014年比2013年增长10倍,2015年比2014年增长5倍;在2015财年第四季度,闪存销售额超过了磁盘。

3、闪存基本分类

  • SLC:每个Cell存储1个bit。又快又贵,很少使用
  • MLC:每个Cell存储2个bit。目前主流产品;
  • TLC:每个Cell存储3个bit。主要用在消费类产品;
  • QLC:每个Cell存储4个bit。基本没有;
  • 3D-NAND:最新的工艺,会大幅度降低成本;

总体上:SSD容量越来越大,每个Cell的写入寿命越来越小(但是由于容量变大,整体寿命并未明显下降),相对性能也在下降,但是仍然远远超过SAS。

4、SSD基本指标

以2.5英寸MLC为例:

  • 单盘纯读测试, 20000 IOPS
  • 单盘随机混合读写:5000 IOPS
  • 擦写寿命:5000次
  • 功耗:8W左右

寿命:MLC大概擦写5000次左右,一般SSD盘有7%-28%不等的超供(Over Provisioning),等到超供空间完全磨损完,从法律上这块盘就坏了,实际不可能发生这种情况。

上图为1.92TB SSD寿命测试记录,一年内寿命损失大约1%。

5、闪存阵列相对传统阵列的巨大优势

1)以3PAR SS8450为例:

  • 2U空间内,双控制器,24块SFF尺寸的3.84TB SSD盘;
  • 总计大约120000 IOPS;
  • 92TB裸容量,RAID后大约60TB可用;
  • 功耗大约400 W;

2)价格和92TB的15K SAS磁盘阵列基本相同;

3)客户的使用成本大幅度降低,空间、能耗等;

4)这样一台2U的存储可以满足大多数企业级用户的全部主存储需求;

所以在发达国家,大部分项目都是全闪存配置。

6、闪存阵列的销售信息

各厂商的入门级一般只有十几万,几个TB的容量;所以实际上闪存的应用已经非常普及。在中国,惠普的闪存销售量是30%,磁盘70%,这个比例变得很快,今年的券商几乎都是只买闪存了。比如最大的券商,中信证券,一次采购了十台惠普闪存阵列,替换了三个数据中心的所有高端存储;

而一些小规模的客户,比如江苏省的几个县人民医院,也采购全闪存做HIS/PACS的核心存储。

以上是存储产品部分,下面讨论存储方案


企业规划的要点

 

存储规划要点 :

1)用户都是从容量开始谈起,逐渐提高需求层次;

2)容量、性能、可靠性都是静态指标,第一次就可以讨论清楚;

3)可扩展性和可管理性都是动态指标,要经过很多个项目才能反映出来;

4)可用性是规划的重点和难点。

比如用户要买轿车,普桑、别克、宝马三个档次里面,如果只关心容量,其实没有区别。性能理论上有区别,但是实际运行中,差别很小。主要区别是安全性,普桑没有安全气囊,完全不考虑安全性。宝马比别克的优势就体现在操控性,可以理解为可管理性和应用集成度,这是大多数IT系统规划的考量点。

我们和用户沟通需求,在了解业务和应用背景之后,主要就是围绕这些要点做讨论。

下图是存储性能的技术点

数据库的文件类型有很多,日志、索引、基准数据、历史数据等;
 

不同类型对存储的性能、容量要求不同,所以传统的固定RAID架构下,数据文件的布局往往需要优化;
 

采用虚拟化RAID后,数据在同一存储池,性能和容量都可以最大化利用;
 

如果要人为设定不同数据的性能、可靠性的硬件隔离,当然也可以把阵列划分为多个存储池,并设定每个卷的QoS;


重点不是方案,而是分析风险的来源,判断风险的损害程度。开个玩笑:用户经常问我,楼塌了如何容灾,我直接回复,楼塌了,人已经死光了,不需要容灾。这个听起来可怕的风险,其实不需要考虑。那么存储风险有哪些

逻辑风险是最大的风险。很多存储专家满脑子想的是物理风险,最近多起故障已经证明了逻辑风险的可怕。

存储如何应对这些风险,中高端存储的设计出发点就是数据保护和数据管理,纯粹的数据存储不需要高端存储。

存储有三种手段,快照、克隆、远程复制。代价从低到高,实用性从高到低

快照是最适合防范逻辑风险的。

而流行的“双活”。最怕逻辑错误,很容易变成“双死”。

反过来,号称能防逻辑错误的CDP,其致命伤就是物理错误,如果阵列磁盘组坏了,那么CDP就没有用武之地了;那么存储保护和数据库自身的机制有何关系。比如DG,ADG。存储保护不能代替数据库保护,但是由于存储在底层工作,比如上层的DG之类,性能要强太多。存储保护必须结合数据库保护。那么存储保护的价值何在:由于存储在底层工作,比起上层的DG之类,性能要强太多。

比如3PAR存储可以对一个数据库同时生成512个快照,其中256个可写,每一个都可以被主机挂载,创建一个独立的实例来运行。采用快照克隆相结合,可以瞬间回到几天前的数据库状态。

数据库的FlashBack之类技术,虽然可以精确到每一个事务,但是需要耗费时间和主机资源。

存储只能保证IO一致性,不能保证事务一致性,这个要靠数据库自身的日志系统。

存储采用快照、克隆、远程复制技术保障数据的物理安全;多个卷之间可以设置为一致性组来保障IO一致性;但是存储无法保障数据库的事务一致性;只能依靠数据库的检查点;比如先在Oracle中运行”Begin backup”,等到IO完全刷到盘后,创建快照,然后”End Backup”恢复正常IO;这个快照就是一个完整的数据库,可以直接Mount的。

所以中高端阵列都提供Oracle OEM管理的插件,从数据库角度发起备份和恢复,存储只是在底层发挥性能和容量利用率的优势。

不管是何种存储技术,快照、克隆、远程复制、CDP等等,要想保证数据库可以恢复,都必须生产IO一致的检查点,在实际生产中,一般要用5-10分钟,等待"Begin Backup"执行完毕。

所以存储的备份粒度很难再细化,CDP可以恢复每一个IO对数据库应用是没用的;但是好处是存储备份不占用主机资源,也很少占用空间,性能极高。

时间: 2024-09-28 20:17:59

存储和数据库不得不说的故事的相关文章

树结构-如何将各个级别的menu菜单存储到数据库中

问题描述 如何将各个级别的menu菜单存储到数据库中 如何将各个级别的menu菜单存储到数据库中.这些菜单类似一个树结构. 解决方案 很简单,存储菜单id,上一层菜单的id和菜单信息,这三个字段,就可以实现树型的菜单了. 解决方案二: 其中顶层菜单的上一层菜单的id为null

关于存储到数据库中的内容的加密问题

问题描述 关于存储到数据库中的内容的加密问题 使用JAVA语言编写的一个管理系统,考虑到安全因素,想把存储至MYSQL数据库中的内容(文本内容)进行加密存放,有没有比较好的办法?最好能给出一个不容易被破解的算法. 解决方案 aes des算法都可以. 解决方案二: 不知道AES DES效率怎么样?数据库的支持怎么样? 解决方案三: 数据库中存储文件路径问题

导出 word模板-做一个题库管理系统,怎么将存储在数据库中的试卷内容导出到word模板中呢

问题描述 做一个题库管理系统,怎么将存储在数据库中的试卷内容导出到word模板中呢 C#2008,access2003,做一个题库管理系统,怎么将存储在数据库中的试卷内容导出到word模板中呢,求助各位大神,求代码 解决方案 用npoi操作数据库http://my.oschina.net/yangxiaoguang/blog/264948 解决方案二: 用npoi操作word文档http://my.oschina.net/yangxiaoguang/blog/264948 解决方案三: http

数据库导入-如何将数据存储到数据库?

问题描述 如何将数据存储到数据库? 我们要做的事json编辑器,已经解析好了,可是每次上传都失败,出现java.net.SocketException: Connection reset报错.求指教 package com.lzw; import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java

分布式文件存储的数据库——Mongodb

什么是mongodb MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和 非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

好友体系里边的好友怎么存储在数据库呢?

问题描述 好友体系里边的好友怎么存储在数据库呢? 自己做一个带有好友体系的软件,数据库中存储一个用户的好友时是用一个字段来存储 该用户的所有好友么?在Java中我用String类型的字段来唯一标记每一个用户,那好友 字段记成String [] ,数据库里咋存呢,varchar类型肯定还得短呢 解决方案 正好拿楼主这个问题说一下数据库设计需要满足的三范式 name friendsName 张三 李四,王五,赵六 类似这样的数据库设计违反了数据库设计的第一范式 数据库设计第一范式是:数据库表中的所有

c# 用streamreader 读取txt文件后 ,并将内容存储到数据库。

问题描述 c# 用streamreader 读取txt文件后 ,并将内容存储到数据库. 例如txt文件中数据 1 张三 老师 a级 1546 45555 : 2 李四 白领 b级 4566 12244 : .....等 数据库中一个表 属性为 num name grade a b : 分别对应上面6个数据 如何将数据分别存储到数据库表对应属性中 最好有完整点的代码 解决方案 reader就是readline或readallline,读出后,按你的规则解析成你需要的数据,至于如何写到数据库,你就别

加速Oracle RAC性能 软件定义存储的数据库云化实践

编辑手记:软件定义存储是行业发展的趋势,可以保证系统的存储访问在精准的水平上更灵活地管理,本文分享软件定义存储的数据库云化实践,来自上周四大讲堂分享整理. 作者简介: 刘振宇 云和恩墨基础架构软件研发负责人. 拥有10年以上电信.金融.保险.政府机关以及制造业等多个行业的架构和管理经验.现在负责云和恩墨软件定义存储zData及私有云产品的研发工作,跟云和恩墨专家一道共同致力于推动行业信息化建设的发展与进步 什么是软件定义存储(SDS) 软件定义存储(Software-defined storag

分布式文件存储的数据库开源项目MongoDB

MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: 面向集合存储,易存储对象类型的数据. 模式自由. 支持动态查询. 支持完全索引,包含内部对象. 支持查询. 支持复制和故障恢复. 使用高效的二进制数据存储,包括大型对象(如视频等). 自动处理碎片,以支持云计算层次的扩展性 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言. 文件存储格式