YDB1.1.9.3支持异构存储,大幅度节省您的SSD成本

YDB1.1.9.3支持异构存储,大幅度节省您的SSD成本

众所周知SSD的性能是普通SATA 盘的百倍以上,但是SSD真是太太贵贵了.
100T的存储用sata可能才五六万块钱,即使最廉价的三星SSD也需要5060万才能下来,如果是十台呢?二十台呢?
如何用近似SATA的成本,让延云YDB有着近似SSD 的性能呢?
答案就是异构存储,让我们先来了解下如果通过异构存储来节省我们的存储.

YDB的存储由两部分组成,分别为数据部分与索引部分

索引部分对整体的数据检索性能起着至关重要的影响,而数据则相对来说差一些.
如果:将数据部分存储在SATA,而将索引部分存储在SSD盘上, 这样就可以有效的降低存储

以某生产项目为例,索引部分只占整体存储的五分之一,如果做2份冗余,冗余部分只需要存储在SATA按上,那么SSD部分仅需整体存储的十分之一,如果数据可以按照冷热数据区分,近期的数据可以使用SSD,时间比较久的数据可以只使用SATA

YDB1.1.9.3里配置异构存储的方法

 

第一:先配置HADOOP的异构存储

 

关于hadoop异构使用请参考该篇文章

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html

第二:HDFS中的如下路径设置为存储在SSD之上

hadoop fs -mkdir /data/ycloud/ydb/ydbpath/ssdindex

 hdfs storagepolicies  -setStoragePolicy -path /data/ycloud/ydb/ydbpath/ssdindex -policy One_SSD

注意 实测One_SSD 的方式没用,HDFS并没有优先从SSD盘读取,而是从本地的SATA盘读取.HADOOP的这种策略性能并不好

针对这种情况,YDB是绕过了HDFS的读取的方式,SSD盘会优先读取SSD,该功能默认是开启的,当然如果需要也是可以禁用的

 

第三:ydb_site.yaml里设置,索引部分存储在SSD路径上

ydb.index.ssd.ext: "tim,skp"

如果想只配置具体的某一个表,可以

ydb.index.ssd.ext.xxx表名: "tim,skp"

 

每种拓展名的解释

 

 

大功告成,HDFS里看下时候是期望的存储方式

 

 

 

第四:建议定期执行hdfs mover,如每天执行一次,以便分配策略均衡

hdfs mover -p /data/ycloud/ydb/ydbpath