导言
Vastcube G3000数据库一体机采用存算分离架构。存储节点为分布式资源池架构设计,无集中接入组件及模块,消除单个组件、模块导致的性能瓶颈问题;存储节点分布式哈希数据路由算法,资源池中所有磁盘进行均衡打散并将业务数据分布存放,避免出现单个组件/模块成为访问热点,同时资源池内所有空间均可用作资源池热备资源,在组件、硬件发生故障时能够快速恢复,保障业务系统服务性能。
在Vastcube G3000数据库一体机分布式存储中,各个存储节点配置的固态磁盘组建成为一个共享的分布式SSD Cache资源池,供所有业务系统共同所用,有效提升系统的 I/O 性能。同时,Vastcube G3000数据库一体机在存储资源中引入性能更高的NVMe SSD 固态磁盘以及网络时延更低的RoCE网络设备。
分布式 I/O 环
Vastcube G3000 数据库一体机采用分布式哈希表(Distributed Hash Table)路由技术,实现从业务 I/O 快速定位到磁盘数据存放位置,避免在数据中进行重复查找和计算,分布式哈希表路由技术不仅能保证数据在各个磁盘的分布均衡性,而且在硬件故障或扩容时,能够实现自动快速调整,保障数据自动快速自愈,实现自动资源均衡。
分布式SSD Cache加速
传统的机械硬盘受到机械工作原理的影响,一直以来虽然在存储容量上有较大增长,但在性能方面基本没有改善,随机I/O时延从几毫秒到十几毫秒,严重影响性能发挥及用户体验。而固态磁盘虽然相对于机械硬盘性能有很大的提升,但其价格比较昂贵。目前业界普遍使用SSD作为系统Cache或Tier层,实现了性能与成本之间的平衡。
Vastcube G3000数据库一体机将分布在各存储节点上的SSD组建成为一个共享的分布式Cache资源池,供所有的业务共同所用,充分利用了所有的SSD资源。
Read/Write Cache
Read Cache
Vastcube G3000数据库一体机存储节点读缓存采用分层机制。第一层为内存Cache,内存Cache采用LRU (Least Recently Used)机制缓存数据;第二层为SSD Cache,SSD Cache采用热点读机制,系统会统计每个读取的数据,并统计热点访问因子,当达到阈值时,系统会自动缓存数据到SSD中,同时会将长时间未被访问的数据移出 SSD。
step 1 ► 从内存“Memory Write Cache”中查找是否存在所需I/O数据,如果存在,则直接返回,同时调整该I/O数据到“读 Cache”LRU 队首,否则执行Step 2;
step 2 ► 从内存“Memory Read Cache”中查找是否存在所需I/O数据,如果存在,则直接返回,同时增加该I/O数据的热点访问因子,否则执行Step 3;
step 3 ►从 SSD 的“SSD Write Cache”中查找是否存在所需I/O数据,如果存在,则直接返回,如果不存在,执行Step 4;
step 4 ►从 SSD 的“SSD Read Cache”中查找是否存在所需I/O数据,如果存在,则直接返回, 同时增加该I/O数据的热点访问因子;如果热点访问因子达到阈值,则会被缓存在 SSD 的“SSD Read Cache”中,如果不存在,执行Step 5;
step 5 ► 从硬盘中查找到所需I/O数据并返回,同时增加该 I/O 数据的热点访问因子,如果热点 访问因子达到阈值,则会被缓存在 SSD 的“SSD Read Cache”中。
Write Cache
主机发送的写 IO 操作(图中 Write IO From Host)时,会将 Write IO在 Memory Write Cache 内存中保存一份,同时同步以日志的方式(采用固定的 2+2 小分片 EC)记录到 SSD WAL Cache 中并返回成功完成本次写操作,这个流程通常称为 Host Write IO 流 程。通常 SSD Disk Cache 分为两个部分:SSD Write Cache 和 SSD Read Cache。
Memory Write Cache 中的数据会进行 IO 排序重整并等待满分条以副本或 EC 的方式直接写入到 SSD Write Cache 中并返回;对于大块 IO 则直接由 Memory Write Cache 直通写到 HDD 中,而不驻留在 SSD Write Cache 里;SSD Write Cache 中的保存数据水位达到 40%时,则由 SSD Write Cache 往 HDD 中 搬迁。
随着 Memory Write Cache 中的数据逐步刷盘到 SSD Write Cache 时,SSD WAL(Write Ahead Log) Cache中的数据将逐步淘汰掉,我们通常会进行异步的垃圾回收。
相较传统的副本方式写入SSD Cache,然后异步再从SSD Cache中读出满分条到持久化存储层 HDD,Vastcube G3000的SSD WAL Cache 方案带来 4 大优势:
► Vastcube G3000 的 SSD WAL(Write Ahead Log) Cache 的写放大比较小,2+2 的 EC的Overhead为2;而副本方式的 SSD Cache,Overhead 最低必须为 2
►由于写放大较小,Vastcube G3000 对网络的带宽消耗也较低
►Vastcube G3000 的 SSD WAL Cache 可靠性高,是+2 的冗余保护
►Vastcube G3000的数据向主存储刷盘通常是由RAM中触发完成的,相较传统的后台异步先从SSD Cache读出再写到主存储中效率高
大数据块 Pass Throught
下图为不同介质的性能对比数据,对于随机小 I/O,SSD 比 HDD 存在几十到上百倍的性能优势,但是相对顺序I/O来说,优势其实并不明显。
1
HDD磁盘的性能数据是关闭HDD写Cache数据,对于组建存储系统的HDD来说,必须要关闭HDD的写Cache,确保可靠性
2
HDD磁盘原理相差不大,不同厂商的性能有变化,但是变化并不大,一般在 10%之内
3
SSD 磁盘和SSD卡相差比较大,上图只以一款作为示例。SSD盘带宽性能无法提高的主要原因是受制于SAS/SATA 接口带宽(测试使用目前最常用的 6Gb/s SATA 接口)
4
从上图性能数据看,对于小块随机IOPS,SSD对HDD存在明显的性能优势, 但是在大块顺序IO的场景下,虽然SSD卡存在较大带宽优势,但SSD盘受SAS/SATA 接口带宽的影响,和HDD相比,优势并不明显。考虑到一个 SSD磁盘会同时给多个硬盘作为 Cache 使用,当一个SSD同时给超过5个HDD作为Cache时,直接操作HDD反而性能会更高
Vastcube G3000支持大块I/O直接 bypass SSD Cache,直接操作HDD,由此带来如下好处:
大块 I/O 性能会更佳。释放原大块I/O占用的Cache空间,可以缓存更多的随机小块 I/O,提高了随机小块I/O的Cache 命中率,提升系统整体性能,提高写I/O操作次数,提升SSD卡使用寿命。
关于海量数据
北京海量数据技术股份有限公司(股票代码:603138.SH)成立于2007年,是国内首家以数据库为主营业务的主板上市企业。公司十余年来秉承“专注做好数据库”的初心,始终致力于数据库产品的研发、销售和服务。核心产品海量数据库Vastbase系列、数据库一体机Vastcube系列,全栈国产化,应用满足度高,目前广泛应用于政务、制造、金融、通信、能源、交通等多个重点行业,已成为国产企业级数据库的首选之一。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!