港泊 对象存储系统 需求规格说明书

对象存储系统 软件需求规格说明书

1.引言

在当今的数字化时代,数据已成为企业最宝贵的资产之一。随着云计算、大数据处理和内容分发等技术的飞速发展,对象存储子系统作为高效管理和存储大规模非结构化数据的关键组件,其重要性日益凸显。本文档旨在详细描述对象存储子系统的软件需求,确保开发人员和相关利益相关者对系统的预期功能、性能和约束条件有清晰的理解。
对象存储子系统以其独特的优势,如高可扩展性、灵活性以及强大的数据处理能力,在众多领域得到了广泛应用。无论是云服务提供商需要存储海量的用户数据,还是企业需要处理和分析大规模的业务数据,亦或是内容分发网络需要高效地存储和传输多媒体内容,对象存储子系统都能提供强有力的支持。
本文档将全面阐述对象存储子系统的软件需求,包括系统的功能需求、性能需求、约束条件以及与其他系统的集成要求等。通过详细的描述和说明,希望为开发人员提供一个清晰、准确的开发指南,确保他们能够准确地理解和实现系统的各项功能。同时,本文档也将为其他利益相关者提供一个参考,帮助他们更好地了解对象存储子系统的应用场景和价值,从而做出更加明智的决策。

1.1目的

本软件规格需求说明书的目的是为对象存储子系统的开发和实施提供详尽的指导文件。通过系统地定义对象存储子系统的功能需求、性能指标、约束条件和集成要求,确保开发团队和相关利益相关者对系统的预期功能、性能和接口有一致的理解。具体目的如下:
指导开发过程:提供明确的系统需求描述,确保开发人员能够依据需求设计和实现符合业务目标的对象存储子系统。
统一需求理解:确保开发团队、测试人员、产品管理人员及其他利益相关者对系统需求和限制条件达成一致理解,避免因需求不清晰导致的开发偏差或误解。
支持项目管理:为项目进度管理、资源规划和风险控制提供基于需求的参考依据,使管理人员能够更高效地配置资源并推进项目进展。
辅助决策支持:为利益相关者(如技术管理层、业务部门)提供全面的需求信息,以支持在系统设计、资源分配、预算和技术选型方面的决策。
本说明书旨在为对象存储子系统的开发和使用提供清晰统一的框架,确保系统既能满足当前业务需求,又具备应对未来变化和增长的可扩展性和灵活性。

1.2适用范围

本软件规格需求说明书适用于生物数据对象存储子系统的开发、部署和维护,范围涵盖系统的功能需求、性能指标、约束条件以及与其他子系统的集成要求。适用范围具体包括以下内容:
系统功能模块:文档详细定义了生物数据对象存储子系统的六大核心模块,包括底层存储模块、数据访问服务模块、数据访问客户端模块、异地容灾备份模块、负载均衡与监控模块、以及日志和流量统计模块。子系统提供多种数据访问方式,支持HTTP API(兼容AWS S3)、FTP、Web页面和本地挂载的访问方式,并面向用户和管理员分别实现不同功能。
应用场景:本子系统为生物数据提供大规模分布式存储服务,适用于需要海量数据存储和多样化访问方式的场景,特别是在生命科学研究、基因组数据管理、医疗影像分析等领域。该系统支持PB级数据存储和高并发访问,保障数据的高效存储、访问和管理。
用户角色:适用于开发团队、测试团队、运维团队、产品管理人员以及其他相关利益相关者,为各角色在子系统的设计、实现和维护过程中提供统一的需求依据。普通用户通过数据访问模块使用对象存储服务,管理员则负责系统监控、备份管理、负载均衡及日志分析等操作。
集成要求:本子系统需与相关的分布式存储系统、异地备份系统、监控与日志管理系统集成,确保实现无缝的数据访问和灾备功能。本子系统兼容多种访问方式,并在接口和性能方面满足跨系统调用和高并发处理要求,支持10GB以上大文件的并发传输和断点续传,并满足多节点集群快速部署、监控告警和多线程备份等功能需求。
本说明书不涉及底层硬件需求或具体的网络部署方案,但所有提及的需求和限制条件应在子系统的部署和运行环境中得到满足,确保生物数据对象存储子系统在高并发环境下具备高效、稳定和可靠的服务能力。

1.3术语和缩略语

对象存储:对象存储是一种以非结构化格式(称为对象)存储和管理数据的技术。
API:应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
FTP:文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议。
S3:Amazon Simple Storage Service(Amazon S3)是一种对象存储服务,Amazon 是最早提供对象存储服务的厂商,制定推出S3协议标准,S3 提供一套S3协议标准的RESTful API以编程方式实现与该服务的交互。
SDK: Software Development Kit的缩写,软件开发工具包。

2.系统概述

2.1系统描述

生物数据对象存储子系统提供大规模分布式存储服务,专注于支持生物数据的高效存储与管理。该系统采用纠删码技术实现PB级数据的分布式云存储,结合分布式元数据管理,为海量数据的存储与快速访问提供了坚实的技术支撑。通过http API(兼容AWS S3)、FTP、Web、挂载等多种访问方式,满足用户不同场景的需求。同时,系统设计了系统级和数据库级负载均衡,保证数据的高速访问体验。此外,提供异步备份、监控、日志记录和流量统计等管理功能,以便服务用户和运维人员更方便地管理和维护数据。

2.2功能简介

生物数据对象存储子系统提供一系列功能,以支持高效、可靠的数据存储和管理。系统功能主要包括数据存储、数据访问、数据备份与恢复、监控和管理等模块。以下是系统功能的具体描述:

2.2.1系统用例模型

系统用例模型描述了不同用户角色与生物数据对象存储子系统之间的交互关系,主要包括以下几类用户:
普通用户:
用例1:上传数据
描述用户通过HTTP API、FTP或Web页面上传数据至对象存储桶。
用例2:下载数据
描述用户通过多种访问方式下载存储在对象存储桶中的数据。
用例3:管理数据
描述用户对存储的数据进行查看、删除和更新操作。
管理员:
用例4:监控系统
描述管理员使用监控模块实时查看集群运行状态和性能指标。
用例5:配置备份
描述管理员设置异地备份的策略和执行备份任务。
用例6:查看日志
描述管理员查看系统日志和流量统计,进行日志分析和故障排查。
运维人员:
用例7:故障处理
描述运维人员接收系统监控报警并进行故障排查和处理。

2.2.2业务流程模型

业务流程模型描述了用户在生物数据对象存储子系统中进行数据存储和管理的主要流程,包括以下几个关键步骤:
用户认证:用户通过系统进行身份验证,确保安全访问。
数据上传:用户选择数据文件,通过HTTP API、FTP或Web界面上传数据至指定对象存储桶。
系统进行数据完整性校验,确保上传的数据无损坏。
数据存储:系统将上传的数据分为多个对象,使用纠删码技术进行存储,并在分布式存储中分散存储。元数据被管理和存储在分布式元数据库中,便于后续快速访问。
数据访问:用户通过多种访问方式(HTTP、FTP、Web等)对存储在对象存储桶中的数据进行下载、管理等操作。系统提供负载均衡以确保数据访问的高效性和稳定性。
数据备份:管理员设定异地备份策略,系统自动执行异步备份任务,将数据备份到远程位置。备份过程支持数据压缩,提升备份效率。
监控与维护:系统实时监控各节点的运行状态,管理员通过监控界面查看性能指标和故障警报。运维人员根据监控信息进行故障排查和维护,确保系统稳定运行。
通过上述用例模型和业务流程模型的设计,生物数据对象存储子系统能够高效支持用户在数据存储、访问和管理过程中的各项需求。

3.功能需求

生物数据对象存储子系统总体目标为实现海量数据存储以及异步备份、监控、日志与流量统计功能,为用户提供支持http API、ftp、web等方式的数据访问服务。因此需要具备以下六个主要功能:底层存储功能、数据访问服务功能、数据访问客户端功能、异地容灾备份功能、负载均衡与监控功能、日志与流量统计功能。生物数据对象存储子系统面向所有用户通过Web负载均衡进行访问控制,用户可通过 HTTP 接口、FTP、Web 页面和挂载到本地目录的方式访问数据;面向底层存储提供数据库负载均衡;面向管理员提供监控服务、日志分析和流量统计。以下为各功能的详细描述。

3.1底层存储功能

(1)纠删码存储集群
1)纠删码存储
采用36+4的纠删码存储规则,最大支持4台服务器发生故障而不丢失数据。支持PB级大规模数据文件的分布式存储。
2)磁盘空间利用率
实现高达90%的存储空间利用率,确保硬件资源的最优使用。
3)数据分布与均衡
根据集群硬件配置情况,控制器组件负责监控集群状态,进行数据均衡分布和放置组管理,确保数据存储的高效与安全。
(2)分布式元数据管理
1)分布式关系型数据存储模型
本单元构建对象存储子系统的底层分布式关系型数据存储模型,以满足高可靠性、高可用性、可扩展性和高容灾能力的需求。依托Raft协议实现数据一致性和分布式存储,采用三副本存储机制保障数据可靠性。部分机器出现故障时系统可自动切换备份。
2)数据存储与分布
确保数据在存储节点间的均匀分布,避免存储热点问题。
3)SQL语言支持
数据库支持SQL语言,可为对象存储系统提供快速、高效的元数据操作服务。

3.2数据访问服务功能

(1)http API接口服务
在为web前端UI、用户和应用程序提供标准RESTful HTTP API,提供认证、存储桶管理、文件对象管理、目录管理、数据检索、共享、存储桶容量统计及管理功能。
(2)S3 API接口服务
在提供 S3 API接口服务,实现与 AWS S3 部分接口的兼容。该服务将支持存储桶管理、对象管理、分片上传等功能,能够为客户端提供与 AWS S3 类似的操作接口,确保用户能够无缝接入并进行对象存储相关的操作。
(3)ftp服务
支持用户使用ftp/ftps客户端连接对象存储ftp服务器,并访问对象存储桶,实现对桶内数据的增删改查等基础操作,便于用户在Windows/Linux等平台完成对文件的大规模处理。
(4)分布式http服务运行环境
为用户提供一种简便的服务配置方案,使用户快速搭建对象存储系统服务。

3.3数据访问客户端功能

(1)、基于 Web 浏览器的用户访问界面
1)登录与认证
多种认证方式,支持用户名 / 密码、电子邮件验证、第三方认证(如 OAuth、SAML 等)登录。强制用户设置符合强度要求的密码,并提供密码找回和重置功能。
2)界面布局与导航
直观的菜单结构,以清晰的层次结构展示功能菜单,方便用户快速找到所需的操作选项。自适应不同屏幕尺寸(包括桌面、平板和手机),确保在各种设备上都能提供良好的用户体验。
3)数据展示与操作
以表格形式展示数据列表,点击可查看详细信息,并支持分页、排序和搜索功能。允许用户直接在界面上编辑数据,提供实时的数据验证和错误提示。支持用户上传文件到服务器,并能够下载服务器上的数据到本地。
4)通知与消息
实时推送重要的系统通知,如数据更新、任务提醒等。
(2)、本地目录挂载客户端
研发适配的客户端软件。挂载客户端,支持用户将存储桶挂载到本地目录,实现文件系统级访问
1)目录挂载
客户端能够自动发现可挂载的目录,并在本地显示。本地目录与服务器目录保持实时同步,确保用户在本地所做的更改能及时反映到服务器上,反之亦然。
2)性能优化
利用缓存机制,采用智能缓存策略,减少对服务器的频繁请求,提高数据访问速度。同时,通过数据压缩技术,在数据传输过程中进行压缩,节省网络带宽,提高传输效率。
3)支持多种数据源连接
能够连接到各种常见的数据库管理系统,如 MySQL、Oracle、SQL Server 等,以及新兴的 NoSQL 数据库,如 MongoDB、Cassandra 等。自动管理数据库连接池,优化连接的创建和复用,提高系统性能,减少因频繁创建和关闭连接带来的资源消耗。
4)支持安全连接
允许用户设置加密连接选项,如 SSL/TLS 证书验证,以确保数据传输的安全性。同时,支持身份验证机制,如用户名 / 密码、OAuth 等。
5)数据查询与检索
提供界面让用户输入标准的结构化查询语言(SQL)语句,并执行查询操作。同时,具备可视化查询功能,为不熟悉 SQL 的用户,提供可视化的查询构建工具,通过拖放表、字段,设置条件和关系,自动生成相应的 SQL 语句。查询结果的展示要以清晰、易读的方式展示查询结果,支持分页、排序和筛选结果集,方便用户快速找到所需数据。
6)数据编辑与操作
允许用户直接在客户端中对数据库中的数据进行插入、更新和删除操作,并提供相应的确认和错误处理机制。支持批量插入、更新和删除数据,提高数据操作的效率。支持数据的导出与导入操作。
7)脚本执行与任务调度
支持用户执行自定义的数据库脚本,如数据库初始化脚本、数据迁移脚本等。允许用户设置定时任务,如定期执行数据备份、数据同步、数据清理等操作。
8) 权限管理
根据用户在服务器端的权限设置,限制本地对挂载目录的操作权限,如只读、读写等,进行精细化权限控制。
9) 错误处理与日志
在遇到连接错误、权限错误等情况时,向用户提供清晰易懂的错误提示信息。通过详细日志记录,记录客户端的操作日志和错误日志,方便用户和管理员进行故障排查和审计。

3.4异地容灾备份功能

异地容灾备份实现源对象存储与目的端对象存储的高效备份。研发备份任务控制页面,提供设置源/目标存储桶、开启/关闭备份任务、备份进程查看等功能。备份数据传输时支持多种备份压缩算法选择,提升传输性能。
(1)增/改/删备份任务
新建备份任务:输入或选择源端/目的端对象存储的存储桶名称、访问密钥、所在数据中心、备份开始时间等关键参数。
修改备份任务:修改备份任务的开始时间。
删除备份任务:删除备份任务。
(2)控制备份任务
开启备份:启动备份流程,系统后台进行源与目标配置检验,按预设规则开始数据传输。
关闭备份:终止备份任务,终止后系统停止数据传输。传输完成后备份任务关闭或用户主动终止备份任务。
暂停备份:备份任务暂停,会记录中断点以便后续恢复。
重启备份:将处于暂停状态的备份任务重启,从断点处继续进行数据传输。
(3)备份进程
以表格形式展示正在进行及历史备份任务,包含任务名称、开始时间、结束时间、进度百分比、预估完成时间、状态(运行中、已完成、失败)等关键信息,进行备份任务状态实时更新。
点击单个任务,可展开详细信息,展示传输的数据量、传输速率、备份压缩算法选用情况,以及过程中出现的错误日志(若有),方便运维人员排查问题。
(4)备份执行
通过读取备份点元数据信息,并根据命令操作是否采用多线程使子节点执行文件传输策略,充分调动子节点的计算能力。
错误处理与恢复:备份过程若出现网络中断、存储桶权限变更等错误,系统立即暂停任务,记录断点、错误详情到日志文件;待问题修复后,可从断点处继续数据传输。
(5)备份数据压缩
压缩算法适配:在数据传输前,根据用户选定的压缩算法,进行数据压缩处理。例如,若选gzip,将数据按gzip标准压缩后再发送至目的端;同时,在接收端提前配置好解压机制,确保数据能顺利还原。

3.5负载均衡与监控功能

(1)、Web 访问负载均衡
1)通过请求分发策略实现负载均衡
基于轮询:将请求依次轮流分配到不同的 Web 服务器,确保各服务器负载相对均衡。
加权轮询:根据服务器的性能和配置为其分配不同的权重,权重高的服务器接收更多请求。
最少连接:将新请求分配到当前连接数最少的服务器,以充分利用服务器资源。
2)会话保持
通过识别用户请求中的特定 Cookie 值,将同一用户的后续请求定向到同一台 Web 服务器。IP 会话保持:基于用户的源 IP 地址,确保来自同一 IP 的请求始终路由到同一台服务器。
3)健康检查
定期 HTTP/HTTPS 检查,向 Web 服务器发送定期的 HTTP 或 HTTPS 请求,检查服务器的响应状态。定期页面内容检查,验证返回页面的特定内容或关键字,以确认服务器正常运行。
4)SSL 卸载
在负载均衡器上处理 SSL 加密和解密操作,减轻 Web 服务器的加密运算负担。
(2)、数据库访问负载均衡
1)读 / 写分离
自动识别读 / 写操作,将读操作分配到多个只读副本数据库,写操作分配到主数据库。实时监测副本数据库与主数据库的数据同步状态,确保数据一致性。
2)连接池管理
优化数据库连接创建和释放,减少频繁创建和关闭连接的开销,提高数据库访问效率。通过对连接数的限制,对每个数据库服务器设置最大连接数,防止过载。
3)智能分担负载
根据数据库服务器的 CPU、内存、IO 等负载指标,动态分配请求,分担数据库的负载;根据数据库的数据分区策略,将请求路由到对应的数据分区所在的服务器。
(3)、监控功能
1)实时性能监控
实时采集和展示负载均衡器及后端服务器的关键性能指标,如请求处理速率、响应时间、错误率、流量吞吐量等,以直观的图表形式(如折线图、柱状图、饼图等)呈现,帮助管理员快速了解系统的运行状态。
2)资源使用监控
监控服务器的资源使用情况,包括 CPU 使用率、内存使用率、磁盘 I/O 、网络带宽等,当资源使用率超过预设的阈值时,及时发出告警通知,以便管理员及时采取措施进行优化或扩容。
3)日志分析
记录负载均衡器和服务器的访问日志、错误日志等,提供强大的日志分析功能,能够快速检索和统计特定时间段、特定用户、特定请求的相关信息,帮助排查故障和进行安全审计。
4)告警通知
支持多种告警方式,如邮件、短信、即时通讯工具等,当系统出现异常情况(如服务器故障、负载过高、安全事件等)时,能够及时向管理员发送告警信息,确保问题能够得到及时处理。
5)历史数据存储与分析
长期存储系统的性能数据和日志信息,支持对历史数据进行深度分析,以便管理员发现潜在的性能瓶颈、趋势和规律,为系统的优化和规划提供数据支持。
通过强大的负载均衡和全面的监控功能,系统能够实现高效的资源利用、稳定的服务提供以及及时的问题发现与处理,为业务的持续发展提供有力的技术支撑。

3.6日志和流量统计功能

日志和流量统计功能,实现异常实时告警。其中,日志需记录用户关键行为的详细信息,提供分段检索、报表导出功能;通过日志统计对象存储系统上传、下载流量,分析用户行为,以折线图、柱状图、饼图等可视化形式实时呈现流量走势。
(1)日志采集
采集对象存储系统不同服务节点的日志数据,并进行汇聚。可通过日志查询语言,进行日志数据查询汇总。
(2)日志管理
日志记录:记录用户上传、下载、登录、登出等关键行为,每条日志需包含时间戳、用户ID、IP地址、请求状态、请求详情,确保行为可追溯。
分段检索:根据时间范围进行范围检索,根据请求状态查询异常访问情况,快速定位所需信息。
报表导出:支持一键导出Excel格式报表,报表内容涵盖日志记录。
(3)流量统计
通过日志统计对象存储系统上传、下载流量,分析用户行为,以折线图、柱状图、饼图等可视化形式实时呈现流量走势。

Recent Comments

您尚未收到任何评论。