“ OSS,对象存储,Simple Storage Service 等解决的是——面向业务场景的存储问题。”
xSTORE,解决的就是面向业务场景的存储问题。
不用再考虑 IDC、硬件、网络、如何存,也不用想跨域、容量节省等等一系列复杂问题,只需要考虑你的应用或产品的业务逻辑,剩下的xSTORE搞定。
整个产品生命周期,从弱小到强大,不需要切换技术架构;而且, AWS S3 标准兼容也无需更多的学习成本。
安全、可靠与高性能
一般来说,在对象存储领域提到“安全”或“可靠”会有一个概念叫“几个9”的问题,或者叫SLA,“9”的数量越多,说明安全性或可靠性越好。
下面是我们的SLA指标:
类型 |
数持久性 |
可用性 |
首字节响应 |
标准 |
99.99...9%(11个9) |
99.95% |
P99<=100ms |
低频 |
99.99...9%(11个9) |
99.90% |
P95 <=100ms |
智能 |
99.9999%(11个9) |
99.90% |
P95 <=100ms |
值得注意的是,我们在技术架构上我们将会最大限度的分散风险,即使任何一个IDC出现致命故障时,亦不影响正常服务(读+写)。
由上述架构可以看到,xstore基本组成有“API service”、“Meta 集群”和“Datum 集群”三个部分;
“API service” 提供 AWS S3 接口兼容支持,是完全无状态的,它承担用户流量的入口和出口,当然也是数据存储“落地”的逻辑实现。
当上传一个 Object 时,会被切分为若干个小 Block 存储到 Datum 集群中,而这个分片在哪里的信息,就称之为元数据,这些数据将被存储在 “Meta集群” 中。
在实际业务场景中,元数据将是海量且必须可被实时访问的,因此,我们使用 Cassandra 来作为核心元数据存储,完全无中心的对等设计、可平滑完成横向拓展、支持多DC策略等等特性,可以使得我们在任一节点或任一数据中心出现问题时,依旧可以正常服务。
“Datum 集群” 则存储实际数据,这是一个要求大量存储数据空间的角色;考虑到场景与成本的平衡,我们采用了两种选型:
Cassandra 多副本,定位为标准存储等级的存储类型,多副本、多DC策略,也就是任一数据中心出现问题也可正常提供服务;
HBase 1.4 副本,定位低频存储等级的存储类型,使用纠删码技术,节约资源,可配置远端replication功能,进行异地双活备份,注意这里是可配的,也就是可以基于成本考虑,放弃多DC保障,仅使用一个数据中心。
而 “区域/Region” 是xstore的最小服务单元,每个区域互相独立,业务可以选择距离自己主要用户群最近的的xstore区域,从而降低网络开销,提高访问性能,提升用户体验。
目前,我们公共区域已经支持华北地区(北京)和华东地区(上海)。
除此之外,360是一家安全公司,在硬核安全等方面专业水准不需多说,不但有N个团队的现实版“韩商言”,也有多维立体的安全大脑这样的AI神器加持;这些都将提供不同维度的全方位安全与可靠性保障。
兼容、通用与易用性
首先,“S3标准”是什么?
S3, Simple Storage Service ,最初由 AWS 实现,主要是希望屏蔽掉后端复杂的各类系统,提升业务开发效率,它并不是一种理论标准,而是而是一种事实标准,更多时候我们会叫它—— 对象存储。
它有简单的 Web 服务界面,可用于存储和检索 Web 上任何位置、任意数量的数据,应用程序开发人员可以使用它存储数据资产,包括图片、视频、音乐和文档;技术上,提供一个 RESTful API 以编程方式实现与该服务的交互。
使用简单,通过Web的控制台可以轻松访问S3,还提供完整的 REST API 和各种语言SDK,易于集成第三方技术;
安全, S3 支持签名权限控制,通过安全通道进行数据传输,并支持自动保护上传的数据;
可扩展,扩容方便,可根据需求扩容/缩容,用户无感知。
Fuse,本地目录;可以将某个bucket挂载到一个目录上,向操作本地目录一样操作这个bucket对它进行上传下载;使用goofys(是一个golang实现的软件),可以将s3协议转换为POSIX语义规范的可以通过fuse挂载为文件系统,这样就可以把它当作一个无限的本地目录用了。
最后,支持功能的详情对比。
功能 |
说明 |
AWS |
阿里云 |
xstore |
存储桶操作 |
存储桶操作 |
创建、查询、删除 |
创建、查询、删除 |
创建、查询、删除 |
存储类型 |
多种存储类型: |
S3 标准 S3 智能分层 S3 标准–IA S3 单区–IA S3 Glacier |
标准存储 低频访问存储 归档存储 |
xstore标准存储 xstore低频访问存储 xstore智能分层 |
对象操作 |
对象的基本操作 |
上传 查询 下载 分享 复制 删除 自定义headers |
上传 查询 下载 分享 复制 删除 自定义headers 预览内容 |
上传 查询 下载 分享 复制 删除 自定义headers |
日志管理 |
将存储桶的详细访问日志以文件形式存储在指定存储桶。 |
支持 |
支持 |
支持 |
跨域访问 |
提供 HTML5 标准中的跨域访问设置,帮助实现跨域访问。 |
支持 |
支持 |
支持 |
访问控制 |
请求时检查相应的 ACL 以验证请求者是否拥有所需的访问权限。 |
支持 |
支持 |
支持 |
多种管理工具 |
实用工具,可方便用户进行数据管理或数据迁移,详情请参见 |
aws-cli 命令行管理工具; fuse工具,第三方插件。 |
阿里自研工具 |
aws-cli 兼容aws的命令行工具; fuse 工具,第三方插件。 |
多种 API 和 SDK |
API:提供丰富的 API 接口,包括功能接口的使用方法和参数,提供请求示例、响应示例以及错误码介绍 提供多种开发语言SDK。 |
AWS 标准SDK |
自研SDK |
兼容常用 AWS API。兼容 AWS SDK |
聊聊成本
xstore 不用考量基础设施的事情,只考虑哪个区域距离业务的主要用户群比较近,从而获得更好的体验就好。
xstore在产品层面提供三种数据存储类型,用户可以根据业务需要使用如下存储类型中的一种任何一种:
xstore 标准 :提供高可靠性、高可用、高性能的对象存储服务,适用于实时、热点数据访问的业务场景。
xstore 低频 :提供较高的持久性、较高的吞吐量以及较低访问延迟对象存储服务,适用于访问频次较低(平均每月1到2次访问频率)的业务场景;
xstore 智能 :在保障服务质量的前提下,自动将数据移至成本较优的访问层,适用于访问频率未知或不可预测,但需要长期保存的数据。
写在最后
xstore是我们的基础技术项目名和私有云项目名,若您私有云需求可以联系我们qilin@360.cn
当然,也可以让一切简单一点,直接使用我们的公有云产品 —— 智汇云 https://zyun.360.cn/
奇麟大数据 ,360大数据分舵,专注于大数据领域的技术、实践、运维、产品和数据使用方面的分享和交流
想要了解 大数据 方面知识的初学者,深入技术的研发或运维大神,寻找技术解决方案的传统企业主均可食用
点击阅读原文,关注 奇麟大数据
往期精彩回顾
360技术公众号
技术干货|一手资讯|精彩活动
扫码关注我们