1、LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 1 页 共 14 页云存储总体设计方案编号:10 HOM 2102 0002拟稿 审核 批准签名 覃永才日期 2013-09-09LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 2 页 共 14 页目 录1. 目的.42. 适用范围.43. 定义.44. 系统总体部分.54.1 系统概述 .54.2 系统功能、性能 .54.3 系统总体结构 .74.4 关键技术 .94.5 系统配置 .104.6 外包、外购子系统规格
2、.104.7 产品升级 .104.8 用户支持(可选) .104.9 可靠性规格 .105. 软件设计.115.1 功能设计 .116. 测试系统设计.156.1 单元测试设计 .156.2 集成测试设计 .156.3 系统测试设计 .15LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 3 页 共 14 页修订履历序号 版本号 修订内容 修订人 修订日期A V1.00.000 初稿 覃永才 2013-09-09BCDEFGHIJKLMNOPQR1. 目的云存储设计方案用来存储 RCU-U(车云平台)终端设备所采集的数据,以及对采集
3、数据简LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 4 页 共 14 页单的查询功能,是对软件及测试概要设计和详细设计的约束。2. 适用范围对于此设计方案设计多方面的内容,使用范围:软件代表、测试代表、设计代表。3. 定义缩略语 英文 中文描述Hadoop Hadoop Apache 基金会下面的一个开源项目,这个项目包含很多子项目Zookeeper Zookeeper Hadoop 子项目之一,大型分布式系统的可靠协调系统HBase HBase Hadoop 子项目之一,分布式的、面向列的开源数据库HDFS Hadoop Di
4、stributed File System 是一个分布式文件系统。HDFS 有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上VIN Vehicle Identification Number 车辆识别码UBI Usage-Based Insurance 基于驾驶行为的保险GPS Global Position System 全球定位系统GSM Global System for Mobile Communication 全球移动通讯系统GIS Geography Information System 地理信息系统GPRS General P
5、acket Radio Service) 通用分组无线服务3G 3rd-generation 第三代移动通信技术G-Sensor Gravity-sensor 重力传感器GYRO Gyroscope 陀螺仪LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 5 页 共 14 页4. 系统总体部分4.1 系统概述 4.1.1 名称、型号、版本、保密代号 此项目为云存储,简称LaunchCloud,云存储,版本V1.00.000。 4.1.2 版本描述 4.1.3 云存储主要是设计一个存储亿级记录的分布式云存储系统,整个系统 大致包含2大
6、部分:(1)云存储:RCU-U终端采集行驶数据的存储,RCU-U终端部分分析后的数据存储,MapReduce分析后的结果存储。(2)云存储门户网站:设备管理,用户管理,用户操作日志记录,第三方应用的API(预留)。该系统存储的数据主要是为以后的业务应用(如:UBI、汽车租赁等)提供原始的数据,以及提供大数据分析的技术扩展4.2 系统功能、性能4.2.1 功能特性4.2.1.1 云存储功能有以下几个方面系统部分:1. 使用业内比较成熟的,开源的Hadoop+Zookeeper+Hbase云存储来存储汽车原始的行驶记录,2. 设备资料,用户资料等亿级以下的数据使用开源的数据库mysql来存储3.
7、基于Linux操作系统具体业务部分:1. GPS信息存储2. G-SENSOR(加速/减速)信息存储3. 陀螺仪信息存储4. 速度信息存储5. 发动机转速信息存储6. 安全带指示信息存储7. 气囊信息存储LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 6 页 共 14 页8. 胎压信息存储9. 里程计信息存储10. 车门信息存储11. 油耗信息存储12. 点火信息存储13. 转向信息存储14. 远程诊断信息存储15. 超速信息存储16. 急刹信息存储17. 急加速信息存储18. 旅程行驶距离信息存储19. 碰撞事故信息存储20.
8、意外事故信息存储21. 用户操作日志记录存储22. 设备信息存储23. 用户信息存储24. 用户汽车阀值存储(电子栏栅,超速阀值,各种数据采集的频度等)25. 软件下载26. 系统日志27. 第三方应用的API(预留)4.3 系统总体结构4.4.1 云存储系统方框图4.4.1.1 云存储功能性系统方框图LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 7 页 共 14 页Linux 服务器集群Hadoop 集群 Mysql 开源数据库GPS信息存储G-SENSOR信息存储陀螺仪信息存储速度信息存储发动机转速信息存储气囊信息存储安全带
9、指示信息存储胎压信息存储里程计信息存储车门信息存储油耗信息存储点火信息存储远程诊断信息存储转向信息存储超速信息存储急刹信息存储急加速信息存储旅程行驶距离信息存储意外事故信息存储碰撞事故信息存储用户操作日志记录存储设备信息存储用户信息存储用户汽车阀值存储系统日志软件下载Zookeeper 集群Hbase 集群数据高速缓存Nginx 主备热切换动/静分离负载均衡Tomcat 集群第三方应用API4.4.1.2 RCU-U 物理性系统方框图通讯集群 Nginx-Master/负载均衡/动静分离 Nginx-SlaveHBase-Slave HBase- MasterNameNodeNameNode-
10、SecondaryHRegion-1Zookeeper-1Datanode-1WebServer-1 WebServer-2 WebServer-n数据缓存层-1 数据缓存层-2 数据缓存层-nMysql-Master Mysql-SlaveWeb 集群层HRegion-2Zookeeper-2Datanode-2HRegion-nZookeeper-nDatanode-n云存储集群层云存储门户网站LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 8 页 共 14 页4.4.1.3 对应关系云存储层: GPS信息存储、G-SENSO
11、R(加速/减速)信息存储、陀螺仪信息存储、速度信息存储、发动机转速信息存储、安全带指示信息存储、气囊信息存储、胎压信息存储、里程计信息存储、车门信息存储、油耗信息存储、点火信息存储、转向信息存储、远程诊断信息存储、超速信息存储、急刹信息存储、急加速信息存储、旅程行驶距离信息存储、碰撞事故信息存储、意外事故信息存储、用户操作日志记录存储云存储门户网站:设备信息存储、用户信息存储、用户汽车阀值存储(电子栏栅,超速阀值,各种数据采集的频度等)、软件下载、系统日志、第三方应用的API(预留)4.4.2 可测性设计的整体结构描述:测试过程一般按3个步骤进行,即单元测试、组装(集成)测试,系统测试,为了支
12、持这些测试在下面的软件设计中作了如下考虑: 软件模块以及内部子模块的对外接口标准化,整个软件流程系统化,以支持单元测试中的模块接口测试、出错处理测试,并使测试用例测试,同时使集成测试方便容易;软件模块内部采用清晰明了的判断分支结构。以方便白盒方式的路径测试;软件模块保证可理解性。使用有意义的数据名和函数名,充分的注释。以方便测试用例的生成、以及走查等软件评审。在关键的地方增加LOG信息,以方便出问题的时候知道问题出在哪里。4.4 关键技术1. 高可靠性云存储底层的HDFS是一个分布式文件系统。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost
13、 )硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序2. 高扩展性Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。假如想扩展云存储系统中的存储容量,运算能力,直接水平添加机器,修改配置即可实现,上层程序不需要做任何修改。LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 9 页 共 14 页云存储门户网站前端采用高性能的nginx服务器做负载均衡,动静分离,静态资源缓存,经典的mast
14、er-slave热备切换,不间断提供服务;Web集群层同样也可以按照集群的负担情况动态添加物理机器;数据缓存层是提供快速响应的重要保障;数据库Mysql存储层可以随着访问量的增大,按照业务垂直切分3. 高效性Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。基本上系统的关键点上都采用分布式部署,当系统访问量增大时,可以通过添加服务器来持续保证整个集群的高效性。4. 高容错性Hadoop能够自动保存数据的多个副本,并且能够智能地将失败的任务重新分配。基本上系统的关键点上都采用分布式部署,即使有部分服务器可能因为网络、硬盘、cpu、主板等物理损坏,也不会导致整
15、个集群不可用4.5 系统配置4.5.1 硬件配置( 比较节省的配置 )5台服务器(1台server1:24GB内存+2TB硬盘7200 RPM,其他4台:8GB内存+2TB硬盘7200 RPM),其他千兆交换机把这5台服务器连接起来4.5.2 软件配置Linux操作系统、Nginx软件、Tomcat、Hadoop、Zookeeper、Hbase、Mysql4.5.3 具体部署server1: NameNode+DataNode+HRegionserver2: DataNode+Zookeeper+HMaster+HRegionserver3: NameNodeSecondary+DataNod
16、e+HMasterSlave+Zookeeper+HRegionserver4: DataNode+Zookeeper+HRegion+NginxSlave+Tomcat+MysqlSlaveserver5: DataNode+HRegion+NginxMaster+Tomcat+MysqlMaster4.6 外包、外购子系统规格无LAUNCH 云存储总体设计方案 10 HOM 2102 0002 密级:绝密 2013 年 9 月 9 日第 10 页 共 14 页4.7 产品升级4.7.1 版本升级规格由于整个系统都是运行在我们的服务器上,直接按照升级步骤来升级即可4.7.2 系统可扩充性设计
17、 整个系统都是分成多个小模块,多层架构来开发。方便产品的有效的维护和升级。4.8 用户支持(可选)4.8.1 资料提供可以在存储门户网站明显的位置放使用快速入门,在需要用户填写的表单位置有提示行说明4.8.2 联机帮助暂无要求4.9 可靠性规格无5. 软件设计5.1 功能设计5.3.1 软件基本设计思想 云存储系统要求工作稳定,性能达到相关标准规定。程序架构多层分模块设计,分布式、高可靠、高可用、高扩展架构。5.3.2 软件开发平台Linux开源稳定高性能的开源服务器操作系统;Hadoop是大数据存储分析的事实上的标准,开源免费,目前仍然在快速的发展;Nginx是一个高性能的HTTP和 反向代理服务器,同样是免费开源的;Mysql是目前最流行的开源免费数据库5.3.3 软件系统描述I 软件系统结构描述、总体软件框图