UCloud彭晶鑫:如何打造120万IOPS云盘

2019年5月下旬,UCloud在京举办用户大会,此次大会上发布了许多新品,同时介绍了一些对原有产品的更新和强化。

UCloud技术副总裁杨镭在大会现场谈到云计算产品时,特别提到了云主机的市场地位,有数据显示云主机产品贡献了云计算市场65%的营收,确实,云主机通常是上云要接触的第一个产品,云主机作为云计算基础产品非常很重要,2019年的此次发布会上,围绕云主机相关的有几项更新,其中笔者最感兴趣的还是RSSD的云盘产品,为此笔者现场采访了UCloud块存储研发总监彭晶鑫,就这款120万IOPS的云盘产品进行了深度交流。

云盘的优势与局限

RSSD是一款云盘,云盘作为供云主机使用的随机可读写的块设备存储,需要具备持久化、高可靠、低延迟的特性,分布式的系统设计可以避免单点故障,需要以多副本冗余保证数据的可靠性和可用性,用户基本的使用方式跟硬盘一样,但云环境下又有很多便利性。

通常在云环境下,云盘存储与云主机相互独立,这样设计的好处是在线迁移和宕机恢复中体现的最为明显,由于数据就在独立的云盘块存储里,无需硬盘数据迁移,只需迁移内存和寄存器中的数据即可快速完成在线迁移;当宕机故障发生的时候,可以快速在另外一台虚拟机上分配CPU和内存,整体的恢复速度会快很多。

另外,由于云盘通常采用的池化设计,用户可以自己按照需求定义云盘的大小,可以轻易做到非常大的容量,比如UCloud能做到100TB,大容量的好处非常明显,用户在使用中就不需要在一个主机里同时挂载多块云盘了,只用这一块盘就可以了,降低了管理的复杂度,同时单盘容量越大对应性能也会有一定比例的提升。

图:UCloud块存储研发总监彭晶鑫

想把容量做大并不是一件简单的事儿,UCloud块存储研发总监彭晶鑫解释说,单盘容量变大的技术挑战主要在于元数据管理,元数据的存储和读取效率是主要问题,2017年,UCloud块存储研发团队重新设计了元数据模型,大大减少了元数据的数据量,最终可以把单盘容量做到很大,于是才有了现在从32TB到100TB的单盘容量。

据悉,UCloud可提供两种类型的云盘:一种是普通的云盘,用的是机械硬盘,另外一种是SSD云盘,普通云盘的IOPS大概是1000左右,时延大概是5-10ms之间,而SSD云盘的IOPS能轻松达到2.4万,而且时延能降低到0.5-3ms左右。

不过,这样的性能表现在一些场景下仍然是不够用的,与物理机的NVMe固态盘所提供的动辄百万IOPS的性能相比,仍有不少差距,如果云端性能仅限于此,那么,这样的云显然是不完整的,用户需要性能更强的云盘。

百万IOPS的RSSD

在UCloud的存储产品家族中,RSSD是一款增强版的SSD云盘,IOPS能达到120万,时延能降低到0.1ms,在128队列压测性能时,时延低至400us, 它是UCloud云服务产品能力的重要支撑,也是市面上极具竞争力的产品。

RSSD是一款块存储,头文字“R”一语双关,R既可以代表Rapid,强调快的特性,高IOPS低延迟,因为这是一款基于企业级NVMe SSD打造的性能型云盘,“R”的另外一个含义是RDMA,因为在优化过程中在RDMA层面做了很多创新。

本质上,RSSD用的是企业级的NVMe SSD,所以,价格上相比原来基于SATA SSD的普通SSD云盘会贵出一截,NVMe SSD开放出了很多能力,所以也留出了很多优化空间,不过,性能想进一步提升其实面临很多技术障碍。

在RSSD中,UCloud使用的并非标准的NVMe协议,但硬件本身并没有太多定制化的成分,主要还是标准化的NVMe SSD。在一些实现上,为了优化性能表现都采用了优化过的私有协议,在发布会现场,彭晶鑫总结了4个技术方面的要点。

  1. 在Client侧利用了vhost user技术,通过vring共享内存,最终让虚拟机与存储客户端之间实现了零拷贝;
  2. 网络层,用RoCE(RDMA over Converged Ethernet)替代了原来的TCP协议,绕开了系统内核,提升了传输效率,使得4K网络包收发延迟降低到了10微秒内的级别;
  3. 存储方面,用SPDK替代了libaio完成存储IO读写,可以以用户态IO读写,即使是在高并发下,依然可以保持比较低的时延;
  4. 整体的IO路径都工作在用户态,RSSD还使用了线程轮询的模式,减少用户态内核态切换,也就减少中断带来的损耗。

RSSD的软硬协同设计带来结果非常显著,最终在128队列时,4K IOPS达到了120万。UCloud提供的实测数据显示,在与一些友商的同类产品相比时,在IOPS和延迟方面,均有好几倍的优势。

从技术实现的思路来看,每当需要极致性能的时候,系统设计通常会选择进行offload,从系统层,到内核层,到直接绕开CPU,通过极致的专有设计提升性能,这一思路在如今的许多创新架构中都非常常见。

当前,云盘性能进一步提升的瓶颈主要还受限硬盘本身,如今随着基于闪存的技术和创新的闪存存储方案越来越多,优化的空间还有很多。彭晶鑫表示,下一阶段,将考虑采用一些基于Open-Channel协议的SSD,以及一些持久内存等创新性的存储方案,也就是说,还会进一步努力降低延迟,提升IO体验。

性能以外,数据安全至关重要

性能以外,RSSD对应有数据方舟来提供数据安全服务,彭晶鑫介绍说,数据方舟是为UCloud 云主机磁盘提供连续数据保护的服务,采用异构解耦的方式将数据复制到另外一个集群,当原有的集群受到影响时,备份集群没有任何干扰,这是数据方舟方案的一大特点。

数据方舟可以记录实时的IO流,可以恢复到一定时间段内的任意一秒,比如当用户误删除操作之后,可以用数据方舟进行恢复。彭晶鑫介绍说,数据方舟的应用其实已经非常普遍了,几年前的勒索病毒横行,数据被加密之后都不可用了,而UCloud的数据方舟能将数据恢复到中毒前的状态,还意外破解了勒索病毒。

从RSSD的优化表现上,我们已经看到UCloud在基础设施层面的创新能力,相信未来还会看到UCloud团队在软硬件协同领域有更多的探索,持续优化产品性能。(文/朱朋博)