存储的分类设计考虑

现实中,对于存储的需求基本上可以归为3类

 

1: Offline数据分析用的数据,如网站的访问日志分析,Online数据库里的数据的统计分析

这类数据的量一般很大,对于大型互联网站来说是PB级单位,一般使用类似Hadoop/Hive之类的技术来分析

是Offline分析,对于响应时间要求比较低。

对于这类数据的存储在设计的时候考虑使用SATA盘,每台机器配6~12块1(2)TB的SATA盘,由于单块SATA盘的顺序读写能力基本上可以

达到60MB/s以上,所以系统设计的时候需要充分考虑磁盘的利用;最好的算法是单个磁盘同一时刻只有一个进程进行读/写操作

另外尽量减少网络传输(一般配置网络是<60MB/s),而磁盘的处理能力则为60*N(磁盘数目)

 

2:Online 类的非结构化数据

如图片,邮件之类的保存好后不再修改的数据,这类数据量也很大,以PB为单位;但这类数据的响应时间是比较高的,一般要求200MS

之内。

对于这类系统响应时间高,QPS要求很高的情况下,建议使用多级存储的方式(Mem+SSD+SATA),最终数据存储在SATA上;写的中间数据可以存储在Memory或SSD;然后异步写入到SATA盘上。为避免某台机器Down或则DiskFail导致数据丢失,建议使用多份Copy。

 

3: Online方面的结构化数据

如 Mail的Index,联系人,个人Profile,商品交易信息之类的数据;这类数据一般是有关系的,传统上是存在DB里

因为数据之间有可能存在TX,以及Index(PageIndex,QueryIndex,Uniqindex...);

或者是简单的无关系的数据,可以使用KV类简单搞定;另外应用场景里存在大量的随机读,以及Range(Index)方式的读取,而且对于

响应时间要求很高,一般是小于20ms.

但这类数据的量一般不会很大,小于1PB,一般情况下,一个DB最大200TB。

这时候最好使用SSD(若性能要求非常高,且数据量不是特别大)或则SAS 500G(15K);或则SSD+SAS混合的方式。这类组合可以处理

非常高的随机读操作

 

另外对于机房的网络部署时,千万不要把Offline和Online的交换机部署在一起,以免网络流量冲突导致Online的响应出问题

 

你可能感兴趣的:(云计算,存储,磁盘,网络,数据分析,数据库,互联网)