分享人:朱贤文 成都文武信息技术有限公司
正文:本文简单介绍了在Hunghu RDS上面PolarDB的部署。
1. About PolarDB
我们有主节点从节点主节点对外提供读写,从节点提供只读,底层的存储对于数据库来看就是一份共享的存储,那共享存储的好处其实对于业务来说是非常好的,如果主节点死掉,从节点可以很快的切换成主节点,切换过程中不会有数据丢失的,这种共享存储的架构对于业务的运行还是是比较友好的。
2. About Hunghu RDS
这是我们自己的产品Hunghu RDS。最开始是让数据库本身做私有化的部署,现在我们支持oracle、PostgreSQL、Greenplum,后续也会把国内主流的数据库纳入进来。
我们产品本身有什么特点呢?虚拟化除了计算虚拟化、存储的虚拟化、网络虚拟化,在现有很多技术架构上面,他们都是基于这个open stack的这一套架构来,客户端要去访问底层的存储,会经过IO层面,IO可能衰减比较大,数据库对负载延迟是非常敏感的。
我们曾经在客户的项目里做过实际的测试,比如说24个盘,用read 10用压车的工具去压它的iOS,我们用8k可以达到七八千最多到2万个IOPS左右,这是比较恒定的值。如果用传统的虚拟化技术,我们在OS上面运行Kiven再用压车的工具去压, IOPS是8k可能在开始的时候性能非常好,但是要持续的压一个小时或者是半个小时,后面的数据可能就比较难堪,原因是因为前面改的数据在内存里面,后面要刷盘,IOPS的衰减就非常的明显,数据库在系统里要求延迟低,在虚拟化的路径下去做数据库是有问题的。在真正的企业级关键的业务系统里面,如果把关键业务放到虚拟化环境里面去运行,大负载是支撑不了的。
客户很多实际的场景里面然也部署了私有云,但是大负载或者重要的业务还是用的物理裸机,我们私有化的系统就是来解决这个问题的:第一可以做虚拟化的部署,第二可以降低IO的延迟提升主机的性能。
3. Arch
上图是个简单的图形,黑色的是节点Computing node物理主机,物理主机上运行了一层虚拟机的管理层Hypervisor,在这个上面虚拟画出来OS,在上面运行数据库,对于Polar FS用法的话是TCP IP,不管系统有多少个节点,对最上层的数据库来是统一的命名空间,再从上层Polar DB层面看,Polar DB在系统里只有一个主节点,它对外提供读写,负载均衡做只读的节点,最上层是UI。
4. Plan for
当前支持HVM,在平台里支持虚拟化技术,同时在线比较多的Bhyve和KVM,可能运行虚拟化的平台之后用了KVM的技术,上面只有KVM,我们KVM是全虚拟化的技术,Bhyve和KVM是可以同时支持在上面的,我们也可以支持这个Linux的Container和Docker,可以一台物理机运行起来,同时支持好多种虚拟化技术,这是我们平台跟其他平台的技术特点。
当前是在HVM层面,下一步是想把Native OS Suport的来做PFS层面的工作,因为PFS是基于Linux,所以要做很多的工作。未来把这些都实现了,要把机器之间的节点延迟降低下来,可能会引入RDM的技术,降低计算机之间数据传输访问的节点,来提高性能。