应用华云对象存储服务实现网站存储的平滑迁移实践

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,标准 - 同城冗余存储 20GB 3个月
简介:

网站的图片资源访问速度慢?网站存储服务需要扩容?网站的后端存储运维成本高?网站数据丢失?是时候把网站的存储迁移到云上了!

华云将为你提供一套靠谱的网站存储上云方案,你可以不费吹灰之力、不停一秒服务就将网站的后端存储平滑迁移到华云对象存储之上,进而享受诸如弹性扩容、CDN加速、富媒体处理、防盗链等一系列优质服务。

概念介绍:

为了理解如何实现平滑迁移,首先让我们学习几个基本概念:

1. 华云对象存储(COS:ChinaC Object Storage) —— 提供高可用、高可靠、高可扩展的对象存储服务。你可以将任何非结构化数据,如图片、文档、音视频等存储到属于你创建的桶中。

2. 镜像存储 —— 网站平滑迁移的基础。将COS的一个桶的镜像存储源站设置为你的后端存储服务器后,当用户访问该桶的数据时,如果数据不存在,都将去镜像存储源站(即你的后端存储服务器)上抓取内容并返回用户,同时存储到COS的桶中。下一次再访问到该对象时,将不再需要去源站抓取,这样即实现了网站数据的平滑迁移。

3. 域名绑定 —— 将一个特定的域名和华云对象存储的一个桶进行关联,通过将特定域名CNAME到COS的特定桶的域名,可以实现当访问该特定域名时,等价于访问COS的一个桶。

这几个基本概念可能一时不好理解,不过接下来在我们介绍网站存储迁移的过程中,会再进一步说明这些概念。

迁移步骤

1. 迁移背景

一个简化的网站架构如下图所示:

说明:

1. 一个网站内部依赖包括存储服务器,其他服务器(如逻辑处理服务、数据库服务等)。在图1所示场景下,我们只讨论图片服务器(image servers)的平滑迁移方案;

2. 假设由于存储容量、访问速度、运维成本等的考虑,网站管理员想要将图片服务迁移到第三方云存储服务上,期望可以带来更高的可靠性、更好的扩展性和更快的访问速度;

3. 因此,一个基本的迁移方法是,将网站的数据迁移到第三方云存储服务,并将网站的读写操作也切到新的存储服务上,如图2所示:

然而这样简单的迁移方法存在如下问题:

1. 当读写操作从mysite后端的存储服务器(源站:image servers)迁移到第三方云存储服务器(新站:cloud storage service)时,为了保证服务的可用性,至少需要保证所有的数据都已经从源站迁移到了新站,而对于一个持续写入的系统来说,这点是很难做到的,即在读写操作切到新存储的瞬间(可能持续几十秒到几分钟),需要暂停源站的写服务并等待所有数据迁移完成,这对网站的可用性会带来一定的影响;

2. 读写迁移到新存储的操作不容易回滚,如果发现问题再回滚,新站和源站可能都存在用户已经写入的数据,这种一致性问题并不容易解决;

3. 如果网站的图片文件的链接对用户暴露,例如,用户的手机客户端需要访问image.mysite.com/image1.jpg这张图片,则即使完成了数据迁移,同样的URL也无法访问到对应的图片;

4. 需要网站维护人员实现数据迁移工具,而对于数据不断更新与变化的场景,这种迁移工具并不容易实现。

为了解决以上种种问题,华云对象存储(COS:ChinaC Object Storage)推出了镜像存储与域名绑定功能,可以实现网站静态数据平滑迁移到COS中。

2. 如何使用华云对象存储

进行数据迁移的第一步,即申请使用华云对象存储系统:

1. 在www.chinac.com注册并登录

2. 在“对象存储”服务创建Bucket

概念说明

· 对象(Object)—— 对象是存储在COS中的基本数据单位,用户的每个文件都是一个Object,单块上传接口每个文件最大100M。大于100M的文件使用大对象分块上传接口,最多可达10000个分块(100M * 10000 ≈ 1T)。Object包含Key、Data和MetaData。其中,Key是Object的名称,在桶内唯一标识一个对象;Data是Object的数据;MetaData是对该Object的描述信息。

· 桶(Bucket)—— 桶是对象的容器,桶名全局唯一,通过桶名和对象名可以唯一定位到具体资源。COS允许每个用户最多创建10个桶,而桶里面的对象个数无限制。

更多关于华云对象存储COS的介绍请参见:

1. 华云对象存储服务COS

http://gitbook.hz.chinac.com/COS/public/index.html

2. 开始使用COS

http://gitbook.hz.chinac.com/COS/public/quick-start/get-started.html

3. 设置镜像存储

举例,假设用户创建了名为bucket1的桶,在Bucket管理的桶设置页面,可以设置桶的镜像回源地址为image.mysite.com,则此时的系统状态如下图所示:

注意:此时mysite的读写操作并没有迁移到COS上,因此对于mysite来说,到目前为止的所有操作对其服务没有任何影响。

在完成桶的镜像存储源站设置后:

1. 若用户访问image.mysite.com/image1,则直接去源站图片服务器读取数据;

2. 若用户访问bucket1.cos-cn-guangzhou.chinac.com/image1,则请求发送到COS对应的桶中。

此时COS的逻辑是:

i. 检查COS的桶中是否有image1的对象;

ii. 若对象存在,则直接返回给用户,否则继续执行;

iii. 根据桶bucket1源站配置,去其对应的源站image.mysite.com/image1读取数据并返回给用户,同时将该对象异步迁移到COS对应的桶中(这样用户下次再访问到该数据时,即不需要去源站抓取)。

因此对于用户来说,image.mysite.com/image1 和 bucket1.cos-cn-guangzhou.chinac.com/image1 这两个URL是等价的,可以访问到一样的数据。这就是镜像存储的概念。

然而现在还有一个问题并没有解决,即用户期望的最终结果通常是,可以直接通过访问image.mysite.com/image1这个域名,将请求直接发送给COS对应的桶,并实现数据的平滑迁移。为了实现这种用户完全无感知的迁移方案,需要依赖COS的域名绑定功能。

4. 设置域名绑定

在Bucket管理的桶设置页面,设置桶的域名绑定为www.mysite.com。此时的系统状态如下图:

注意:如果你有设置域名绑定的需求,则必须为存储源站再申请一个迁移域名(如图4中的image2.mysite.com),并设置桶的镜像回源地址为迁移域名(如图4中Bucket1的回源地址设置为image2.mysite.com)

在完成桶的域名绑定设置后:

1. 对于COS来说,当看到Host:www.mysite.com的请求后,会默认把它定向到bucket1.cos-cn-guangzhou.chinac.com;

2. 若在客户端配置Host文件,即设置www.mysite.com直接访问到COS的前端服务器(114.67.58.99),即可马上验证域名绑定的效果。此时若用户访问www.mysite.com/image2,请求将直接发送到COS前端,并根据域名绑定的映射规则,定向到bucket1.cos-cn-guangzhou.chinac.com进行处理;再根据镜像回源的设置,在桶中对象不存在时进行对象的迁移。

到此刻为止,整个系统的设置对源站依然没有任何影响,而如果要验证整个迁移系统的有效性,只需要简单设置Host文件即可。

5. CNAME

在完成了迁移逻辑的验证后,管理员只需要像域名管理服务器中添加新的CNAME记录,例如: CNAME image.mysite.com bucket1.cos-cn-guangzhou.chinac.com

这样,等域名全网生效后,所有的用户再访问image.mysite.com时,请求会直接发送到bucket1.cos-cn-guangzhou.chinac.com,并按照对应的逻辑迁移数据。

其他说明:

1. 什么时候可以将写操作迁移到COS?

只要完成了域名绑定的CNAME过程并在域名全网生效后,即可将写操作迁移到COS上,这个过程也不会对用户产生任何影响。

2. 什么时候可以下线源站存储服务器?

由于镜像迁移是被动迁移,即当用户访问时才做迁移,为了保证所有数据均可以访问,需要对源站数据做一次主动的完整迁移之后才能下线源站存储服务器,不过该过程也不会对用户的访问产生影响。


本文转自d1net(转载)

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
1月前
|
存储 人工智能 Cloud Native
阿里云渠道商:OSS与传统存储系统的差异在哪里?
本文对比传统存储与云原生对象存储OSS的架构差异,涵盖性能、成本、扩展性等方面。OSS凭借高持久性、弹性扩容及与云服务深度集成,成为大数据与AI时代的优选方案。
|
3月前
|
存储 运维 安全
阿里云国际站OSS与自建存储的区别
阿里云国际站对象存储OSS提供海量、安全、低成本的云存储解决方案。相比自建存储,OSS具备易用性强、稳定性高、安全性好、成本更低等优势,支持无限扩展、自动冗余、多层防护及丰富增值服务,助力企业高效管理数据。
|
6月前
|
存储 人工智能 Kubernetes
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,是用户在云上存储的高性价比选择…
|
7月前
|
存储 Kubernetes 对象存储
StrmVol存储卷:如何解锁K8s对象存储海量小文件访问性能新高度?
如何提升海量文件的数据读取速率,对于AI训练集管理、量化回测、时序日志分析等场景尤为重要。阿里云容器服务(ACK))支持StrmVol类型存储卷,基于底层虚拟块设备及内核态文件系统,显著降低海量小文件访问延迟。
|
7月前
|
存储 Kubernetes 对象存储
StrmVol 存储卷:解锁 K8s 对象存储海量小文件访问性能新高度
本文介绍了阿里云容器服务(ACK)支持的StrmVol存储卷方案,旨在解决Kubernetes环境中海量小文件访问性能瓶颈问题。通过虚拟块设备与内核态文件系统(如EROFS)结合,StrmVol显著降低了小文件访问延迟,适用于AI训练集加载、时序日志分析等场景。其核心优化包括内存预取加速、减少I/O等待、内核态直接读取避免用户态切换开销,以及轻量索引快速初始化。示例中展示了基于Argo Workflows的工作流任务,模拟分布式图像数据集加载,测试结果显示平均处理时间为21秒。StrmVol适合只读场景且OSS端数据无需频繁更新的情况,详细使用方法可参考官方文档。
793 145
|
7月前
|
存储 弹性计算 数据管理
阿里云对象存储oss怎么收费?存储费用+流量收费标准
阿里云对象存储OSS收费标准包含存储费、流量费及请求费等,支持按量付费与包年包月两种模式。标准型本地冗余存储按量付费价格为0.09元/GB/月,包年包月500GB预留空间优惠价118元/年。流量费仅收取公网出方向费用,忙时0.50元/GB,闲时0.25元/GB。更多详情可参考官方页面。
1557 91
|
6月前
|
存储 人工智能 测试技术
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
OSSFS 2.0通过轻量化协议设计、协程化技术及FUSE3低级API重构,实现大文件顺序读写与小文件高并发加载的显著提升,在实际测试中表现出高达数十倍的吞吐量增长。适用于机器学习训练、推理等对高带宽低延迟要求严苛的场景,同时支持静态和动态挂载方式,方便用户在ACK集群中部署使用。
706 34
|
5月前
|
存储 关系型数据库 MySQL
成本直降30%!RDS MySQL存储自动分层实战:OSS冷热分离架构设计指南
在日均订单量超500万的场景下,MySQL数据年增200%,但访问集中在近7天(85%)。通过冷热数据分离,将历史数据迁移至OSS,实现存储成本下降48%,年省72万元。结合RDS、OSS与Redis构建分层架构,自动化管理数据生命周期,优化查询性能与资源利用率,支撑PB级数据扩展。
348 3
|
9月前
|
消息中间件 监控 数据挖掘
【有奖实践】轻量消息队列(原 MNS)订阅 OSS 事件实时处理文件变动
当你需要对对象存储 OSS(Object Storage Service)中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时,你可以通过设置 OSS 的事件通知规则,自定义关注的文件,并将 OSS 事件推送到轻量消息队列(原 MNS)的队列或主题中,开发者的服务即可及时收到相关通知,并通过消费消息进行后续的业务处理。
209 95

热门文章

最新文章