论文部分内容阅读
数据是当今互联网时代最核心最具价值的产物之一,个人在消费和使用互联网产品的同时产生了大量需要持久化存储的数据,个体存储设备的解决方式在这样一个存储量和存储要求日益增长的条件下不再能够满足个人用户的要求,因此越来越多的个人用户成为了云存储的受众。云计算几十年的发展使得公有云环境下的存储技术已然十分成熟,商业环境下诞生了许多优秀的云盘产品,但其核心技术是对外封闭的,而对于这种面向大量个人用户的公有云盘系统,开源社区也并没有完善可靠的整体解决方案。本文基于上述原因将公有云盘涉及的各个关键模块和技术点进行逐个研究和设计,提出了一整套可靠的云盘系统实现架构。首先对云盘的远程文件系统操作机制的原理和技术进行了分析,研究并设计出CFSRPC协议,给出了协议的客户端和服务端的具体格式定义和二者的通信机制,云盘系统通过对该协议的实现,可以透明化远程文件操作的细节,方便客户端和服务端上层业务的实现。与此同时为该协议设计了事务机制以颗粒化文件传输服务,设计了CSDA算法在协议级别动态调节文件传输的分块大小,增加了该协议对云盘系统性能的优化。接着对云盘系统的核心业务流程进行分析,针对云盘系统依赖的多个关键模块进行了分析和整合设计,总结出以访问层、管理层、存储层为核心的整体软件架构。基于Ceph分布式文件系统设计核心存储模块,研究分析CephFS和MDS的实现原理并根据云盘系统架构和CFSRPC协议的定义,结合多路IO复用机制设计实现了Ceph的接入模块CCD。将云盘系统的请求分化为文件系统操作请求和管理功能操作请求,分别以CCD模块和管理功能模块来接受和处理,中间加入LVS+Keepalived的负载机制使得CCD节点和管理功能节点支持横向扩展。参考Keystone的令牌认证机制设计实现了独立认证系统。以NW.js为框架根据CFSRPC协议的定义设计实现了客户端。最后将整套云盘系统在测试环境下进行部署,完成了认证流程和云盘基本操作的测试,并对单点CCD进行了性能测试,确认整体系统能够达到公有云生产环境的性能要求。