需永远在线的游戏公司,如何在线替换开源存储?

2fc582f52548cff21dcecf7585eb7ad1.jpeg

小帅是一个酷爱游戏的玩家,他玩一款游戏已经很久了,始终乐在其中。

这款游戏风靡全球,在中国手游出海榜单中,长期位居榜首。

他不知道的是,就在他玩游戏的过程中,这款游戏的出品公司,其实已经实现了旧有存储系统到全新存储系统的平滑迁移和无缝扩容。

在整个切换的过程中,作为出海成绩优秀、像小帅这样的玩家遍布全球多个国家的游戏,其游戏从未中断、流畅性也从未受到影响。

这种给处于高速发展且玩家众多的游戏公司,在线替换和扩容存储系统的行为,无异于给高速行进的动车更换全部发动机

其难度可想而知。

那么,该游戏公司的存储系统平滑迁移、过渡和无缝扩容,是怎么做到的呢?


游戏行业的存储架构部署

有何不同?


互联网和游戏行业的业务和 IT 模式与传统行业有着比较大的差异,无法进行充分的规划后再建设,而是需要快速开发上线验证,同时又可能面临着短期内指数级增长的可能,对基础架构和业务开发都带来了比较大的挑战。

前面提及的这家游戏公司就面临着这样的挑战。他们以创新的游戏玩法、精美的画面和深入的故事受到全球玩家的喜爱。

该公司致力于为玩家提供丰富多样的娱乐体验,并不断推出新的游戏内容和活动,与玩家保持良好的互动。他们在全球范围内拥有庞大的粉丝群体,是中国游戏产业的重要力量之一。

在业务建设的初期,由于只有图片和文档需要存储,该公司自然想到了使用对象存储来承接非结构化数据的存储。又由于没有足够的时间进行完整的商业化存储产品评估,并且前期数据规模不大,他们选择了开源对象存储。

但随着数据规模的快速增长和接入业务的增加,该公司在使用开源对象存储方案时,出现了一系列问题,如:

  • 各个部门自行搭建和管理开源对象存储,导致管理复杂,权限难以统一管理;

  • 各个部门独立搭建资源池,导致存储资源无法统一规划,也不利于进行跨部门的资源调度;

  • 开源存储方案的性能不足,无法满足业务发展的要求;

  • 开源方案缺乏企业级服务支持,导致故障和需求无人支撑;

在互联网和游戏行业中,这其实是非常典型的场景,而星辰天合针对这样的场景设计了完善的方案,也很快获得了该公司的信任。

该游戏公司选择与星辰天合合作,以星辰天合的备受市场认可的对象存储 XEOS V6 来替换原有的开源存储系统


如何实现新旧存储系统的

平滑迁移?


那么问题来了,怎么才能够实现平滑迁移?

在存储方案中,搭建和使用一套全新的存储并不是最难的,最大的挑战是保证新旧存储的平滑迁移和无缝切换。

这也是该游戏公司最关注的点。

在该公司中,由于多套开源存储已经对接了众多业务平台,要求业务平台进行统一的停机和切换是无法接受的,全球众多小帅那样的玩家也不可能接受。

好在,对于多年处于市场领先地位的星辰天合对象存储 XEOS 而言,应对这样的需求已经是驾轻就熟。

对象存储 XEOS V6,可以提供重建迁移的方案,帮助该游戏公司实现平滑的数据迁移,其流程如下,只需要四步:

79fdfbda4e484469811ac0750065cfe6.jpeg

该网游公司的存储迁移方案步骤演示


  • 配置透明访问:确保对旧存储中数据的透明访问,保持业务的连续性;

  • 切换业务到XEOS V6:将业务逐步切换到XEOS V6上,确保业务平稳过渡;

  • 扫描重建元数据:对旧存储中的元数据进行扫描和重建,确保元数据的准确性和完整性;

  • 迁移数据:通过数据迁移机制,将数据从旧存储迁移到XEOS V6上,实现无缝过渡。

其实,客户另外还有一个头痛许久的问题,就是他们此前部署的开源存储性能已经满足不了业务要求,经常出现响应慢和负载高的情况,比如在业务高峰期查看用户高清头像时经常需要等待十几秒,这对于玩家来说,是非常不爽的游戏体验。

考虑迁移动作可能给开源存储带来新的元数据和数据访问的负载,该公司十分关注如何避免这部分新负载进一步影响开源存储的性能。

在方案交流过程中,星辰天合推荐了 XEOS V6 提供的迁移 QoS 控制的功能,让客户进一步感受到 XEOS 针对该场景的周全考虑。通过 QoS 控制,XEOS 可以合理调节迁移过程中的负载,确保业务访问和数据迁移的平衡,提高系统的性能和稳定性。


怎么把所有的业务

都迁移到新存储平台?


在完成数据和业务迁移方案的规划后,该游戏公司又针对现网情况提出了新的要求。因为原有的多套开源存储接入了众多不同业务和部门的访问,要求所有业务在同一时间点切换到新存储是不合理的,需要星辰天合提供一个平滑的业务过渡方案。

为解决这个问题,星辰天合在该客户的实践中采取了以下方法,利用了 XEOS 已有的相关能力:

49debee8dd199dac0bb9f8cd37b628c0.jpeg

实现从开源存储到 XEOS 的平滑过渡


  • 业务 1 首先完成开源存储迁移和替代,数据读写都在 XEOS V6 上进行;

  • 业务 2 尚未完成切换,同时又需要访问业务 1 产生的新数据;

  • XEOS V6 利用桶复制功能,将业务 1 写入和删除的 IO 操作复制到开源存储中,业务 2 仍然可以通过访问开源存储来获取已经切换的业务产生的新数据,实现了业务之间的无缝连接和互通。

这种方案允许该游戏公司的部分业务先切换到 XEOS V6 上,确保其数据的正常读写,同时保留了与其他业务的数据互通能力

在看到 XEOS V6 提供的完善的企业级功能和极高的性能后,各个业务和部门也快速推进改造和切换,随着其他业务逐步切换到 XEOS V6 上,整个系统将实现完全的平稳过渡和无缝切换。


如何才能够实现无缝扩容

服务更多游戏玩家?


该游戏公司的多款游戏备受海外玩家青睐,接入到其存储系统的业务也逐渐增多,数据也在加速增长,存储系统必须能够轻松扩容以提供更完善的服务。

但是,开源对象存储的扩容,一直是老大难问题。

这正是促使该游戏公司跟星辰天合沟通,试图进行专业存储方案建设的重要因素之一。

在完成对开源对象存储的替换后,利用星辰天合提供的平滑扩容和非结构化统一存储的方案,该客户轻松实现了无缝的扩容并构建了统一的数据湖。

通过星辰天合的平滑扩容方案,该游戏客户既能够按需扩展存储容量,也无需中断现有业务的运行。这为业务提供了充分的灵活性和可持续增长的存储能力,满足了不断增长的业务需求,让来自全球的小帅们能够轻松享受该游戏公司构筑的虚拟世界

此外,星辰天合的非结构化统一存储方案为该公司提供了统一的存储资源池。在这一资源池上,该游戏公司不仅完成了 XEOS V6 对开源对象存储的替换,还搭建了 XGFS 文件存储服务。

通过统一的数据湖架构,该游戏公司不同的数据源和业务系统可以集中存储和管理数据,实现了数据的统一视图和共享,方便了数据的分析、挖掘和利用。


选择XEOS

轻松应对挑战


在很多企业的业务创新初期,由于缺乏时间进行完整的商业化存储产品评估,并且业务规模不大,企业选择采用开源搭建的方式可以快速满足业务需求。

而开源方案提供了灵活性和快速部署的优势,适合初期业务的快速迭代和试验。

然而,随着业务的发展到一定阶段,开源方案的问题开始显现。此时,已经建立的开源方案已经承接了生产业务,如何平滑地迁移和替换成为一个挑战。

XEOS V6是星辰天合提供的专业存储解决方案,它能够解决上述挑战,就像本文中的游戏公司一样,在线完成存储系统的替换和升级,轻松实现对更多客户的更优服务。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/104303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​人机交互中的反馈与前馈

人机交互中的反馈和前馈,是指在用户与机器进行交互的过程中,人机二者对输入的信息做出回应的方式。 反馈:反馈是从机器到人的信息传递过程,主要用于告知用户他们的操作或请求的结果。当用户执行某个操作时,机器通过适当…

云原生之使用Docker部署ServerBee服务器监控工具

云原生之使用Docker部署ServerBee服务器监控工具 一、ServerBee介绍1.1 ServerBee简介1.2 ServerBee特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载serverbee镜像五、…

oracle、mysql、postgresql数据库的几种表关联方法

简介 在数据开发过程中,常常需要判断几个表直接的数据包含关系,便需要使用到一些特定的关键词进行处理。在数据库中常见的几种关联关系,本文以oracle、mysql、postgresql三种做演示 创建测试数据 oracle -- 创建表 p1 CREATE TABLE p1 (tx…

Java 序列化2

Java 序列化 目录 Java 序列化 序列化对象 反序列化对象 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。 将序列化对象写入文…

当你在 Tubi 是一位 Tech Lead

在过去,我们邀请了 Tubi 技术团队的许多资深工程师,听他们分享了作为资深工程师的一些故事。今天,我们将镜头转向那些在 Tubi 担任 Tech Lead 的工程师,他们选择了在独立开发之外,承担一定的技术管理工作: …

rust宏

宏看起来和函数很像,只不过名称末尾有一个感叹号 ! 。 宏并不产生函数调用,而是展开成源码,并和程序的其余部分一起被编译。 Rust宏和C不同,Rust的宏会展开为抽象语法树(AST,abstract syntax tree&#xff…

SAP PP cs62 提示 输入更改号 - BOM 有历史需求

以上是业务操作人员的 账户 但是IT aLL 这边是warning 不是error 遂去查OSS suim 找 C_STUE_NOH权限对象 赋予权限后 解决了

Hadoop高可用集群(HA)一键启动脚本

高可用集群启动时,需要分别在每个节点上都执行zkServer.sh start启动zookeeper,这个过程比较麻烦,并且当我们节点增多时,这个过程无疑不增加了我们的工作量,因此我们可以写一个一键启动所有节点zookeeper的脚本 脚本实…

Excel 数学

SUM(C1:J1) SUM加總/加法公式=SUM(要加總的範圍)(加總快捷鍵 Alt ) SUM(Sheet1:Sheet4!A1) 跨頁加總公式SUM (分頁:分頁!各分頁要加總的儲存格)SUMIF(D1:D16,"大名",F1:F16) …

XXL-Job分布式任务调度框架-单机模式和分片模式执行任务4

一 调度模式分类 1.1 调度模式 1.单个任务:一个任务实例便可完成 a)单机单任务:单机模式下任何路由模式都只有一个实例执行 b)集群单任务:由路由策略(广播模式除外)选择其中一个实例完成 2.集群部署:每个实例都同时执行一部分…

【c++源码】老飞飞源码完整v15源码(包含数据库前端后端源文件)

老飞飞源码完整v15源码(包含数据库前端后端源文件)整套程序未加密,资源开放。对于研究游戏流程开发非常有帮助,程序仅供参考学习游戏开发流程。以及框架内容。 测试环境搭建 Visual Studio 2013 SQL Server 2008r Windows 10 和 1…

ArduPilot开源飞控之AP_AHRS

ArduPilot开源飞控之AP_AHRS 1. 源由2. 框架设计2.1 启动代码2.2 任务代码 3. 重要例程3.1 init3.2 update 4. 外部AHRS传感模块4.1 init4.2 update 5. 参考资料 1. 源由 AHRS(Attitude Heading Reference System): 飞控最为重要的一个任务就是姿态、位置、方向计算。 本章节…

有趣的 scanf()

限制接收内容 这里的意思是直接收a、b、c作为ch的内容,遇到其它字符放入缓冲区中。 【scanf("%[...]",ch);只接收[]中的内容作为字符串的内容,将其它的内容放入缓冲区中】 这里将aaa后面的h放入缓冲区,但是没有抛弃掉,故而无法接收…

unity 实现拖动ui填空,并判断对错

参考:https://ask.csdn.net/questions/7971448 根据自己的需求修改为如下代码 使用过程中,出现拖动ui位置错误的情况,修改为使用 localPosition 但是吸附到指定位置却需要用的position public class DragAndDrop : MonoBehaviour, IBeginDr…

如何使用C/C++刷新在终端上已经打印的内容

写本文的起源是因为在安装一些工具的时候,发现在终端上并行安装的情况下,显示安装信息是会修改之前已经打印出来的内容,这是怎么做到的呢?抱着对这个问题的好奇我进行了一些探索。 终端是如何运行的 首先是最关键的问题&#xf…

算法通过村第十四关-堆|青铜笔记|堆结构

文章目录 前言堆的概念和特征堆的构成过程插入操作删除操作总结 前言 若执于空,空亦为障。 --彼得马西森《雪豹》 堆结构是一种非常重要的基础数据结构,也是算法的重要内容,很多题目甚至只能通过用堆来进行,所以我们必须明确什么类…

运维 | 如何在 Centos7.x 上安装 telnet 命令行工具

运维 | 如何在 Centos7.x 上安装 telnet 命令行工具 简介 Telnet 是用于通过TCP/IP网络远程登录计算机的协议。一旦与远程计算机建立了连接,它就会成为一个虚拟终端且允许你与远程计算机通信 快速安装 检测是否安装 rpm -qa telnet-server rpm -qa telnet执行安…

centos-apache-简易搭建静态网页服务器-总结

文章目录 1.XShell2.使用命令安装启动服务器3.上传静态文件4.配置文件5.总结 1.XShell 使用命令行工具连接目标CentOS服务器: 2.使用命令安装启动服务器 使用时注意不要复制注释(#符号后面) yum install httpd #安装 systemctl start htt…

android 与 flutter 之间的通信

文章目录 前言集成 flutter 混合开发android 与 flutter 之间的通信总结 一、前言 因为flutter 具有跨平台的属性,既可以在android上跑,也能在ios 上跑,所以为了节约开发的成本,减少人力,势必就会用到它。然而已有的…

Matlab地理信息绘图—数据诊断

文章目录 数据诊断分析(均值方差)Matlab代码实现结果展示 数据诊断分析(均值方差) 均值方差检测是一种简单但有效的异常检测方法,主要基于样本的均值和方差的统计信息。该方法的核心思想是假设正常的样本点应该聚集在…