2016
05-31

PCIe SSD介绍及其应用(二)

PCIe SSD应用
从应用角度来看,用户使用PCIe SSD就像使用普通硬盘即可,同时宝存PCIe SSD也支持Vmware ESXi虚拟机应用。宝存科技除专注于PCIe SSD卡本身技术开发外,还推出了一系列基于PCIe SSD的高性能数据库一体机解决方案:
数据库一体机方案
以Oracle应用为例,如上图两台服务器asnode1和asnode2,均运行集群管理软件,一条直连通信的以太网用做心跳监测,集群管理软件保证其中一台服务器运行用户业务,另外一台实时同步数据。用户业务oracle、listener、服务IP等运行在asnode1上,asnode2通过Infiniband网络直连接受来自asnode1的数据同步,业务运行产生的任何数据都会同时写入到asnode1和asnode2上的SSD上,Infiniband连接保证高吞吐低延时的数据同步。若asnode1宕机,业务自动切换到asnode2上;若asnode2宕机,不会影响业务,修理好asnode2后,数据自动与asnode1同步。这种方案不挑上层数据库类型,包括Oracle、MySQL在内的多种数据库都可使用。
Oracle RAC数据库一体机方案

RAC计算节点由2台PC Server组成,底层存储由宝存PCIe SSD卡来实现,为了保证数据的安全性和容量的需求,存储节点用3台Shannon PCIe Server来做冗余,每台Server上放一张或数张PCIe卡,磁盘组冗余级别为normal,即数据保留2份,后期如果需要扩容,只需要在SSD Server上继续添加SSD卡即可,或者进一步扩充存储节点数。数据库节点和存储节点通过Infiniband(IB)高速网络进行连接,RAC节点之间的通信也通过Infiniband高速网络进行。在一些应用中,光纤通道(FC)网络互联也是一个不错的选择。
MySQL数据库一体机方案

集群中有一个master和shadow master,master节点提供应用读写服务,以及slave的复制服务;shadow master节点仅提供应用的读服务,并在master节点无法提供应用服务时,接管master的所有服务;集群中可有多个slave,仅用于提供应用的读服务,当业务读压力增加的时候,可以通过增加slave节点来解决读压力。
PCIe SSD之RAID技术
对一些企业使用者来说,用户担心的另外一个问题是SATA/SAS接口的磁盘和SSD可以使用RAID卡做RAID以保护数据,PCIe SSD因无统一的标准,目前业界并无针对PCIe SSD的RAID卡,Linux操作系统自带的软RAID固然可以部分的解决问题,但是因效率及无厂家技术支持等原因,一般用户并不愿意使用。再者,不论是RAID卡还是软RAID都是基于逻辑sector的RAID技术,都会存在写入放大及掉电数据安全问题。

如上图,四块存储设备组成RAID5,假设用户在进行随机写入:第1笔数据写在A2位置,第2笔数据写在C3位置,在写完A2切换至C3写入之前,RAID必须读取A1、A2或根据预先读取的A2旧数据重新计算校验值写入Ap位置。同理在写完C3切换至别的位置之前,RAID也必须读取C1、C2数据或根据预先读取的C3旧重新计算校验值写入Cp。可见,用户的一笔数据写入操作带来了额外的数笔数据读写操作,大大降低了存储的性能。另外一个严重的漏洞是,如果在写入Parity数据之前系统掉电了,将造成校验数据是错误的,一旦某块盘发生错误将永远丢失数据,更可怕的是这个漏洞是潜伏的,这个现象叫做Write Hole,是RAID5的天然缺陷,无法解决。
目前宝存科技开发的基于物理sector地址重映射的RAID技术,一方面可以解决PCIeSSD无RAID的尴尬局面,另一方面,基于物理sector的RAID技术不会带来额外的读写操作及Write Hole缺陷,大大提高RAID的的效率及安全性,这种技术也是闪存阵列的基础。另外,宝存的这种卡间RAID技术和卡内Flash间RAID技术组成的二维RAID将极大的增强用户数据的安全性,宝存强大的技术支持也会令客户无后顾之忧。顺便提及一下,这种基于物理sector地址重映射的卡间RAID技术是Host-Based的PCIe SSD的先天性优势。
结语
PCIe SSD看似离我们很远,其实很近,甚至每时每刻它都躲在喧闹的企业服务器机房默默的为我们每个人服务:当你google、baidu时,当你淘宝、京东时,当你焦急的查询快递物流信息时,当你与远方的亲人通话聊天时。