应用华云对象存储服务实现网站存储的平滑迁移实践
网站的图片资源访问速度慢?网站存储服务需要扩容?网站的后端存储运维成本高?网站数据丢失?是时候把网站的存储迁移到云上了!
华云将为你提供一套靠谱的网站存储上云方案,你可以不费吹灰之力、不停一秒服务就将网站的后端存储平滑迁移到华云对象存储之上,进而享受诸如弹性扩容、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(转载)
应用华云对象存储服务实现网站存储的平滑迁移实践相关推荐
- 如何设计云存储服务端数据存储加密机制
云存储是一种新型的网络存储形式.随着云存储的广泛使用,云存储中的数据安全问题,如数据泄漏.数据篡改,如何设计云存储服务端数据存储加密机制也成了用户广泛关注的问题.云存储可以分为访问层.应用接口层.基础 ...
- 提供在线存储服务的网站
现在提供在线存储服务的网站还真不少,国内的,国外的都有.但具体的服务细则都不一样.我还是主要使用BestSharing.其它的等有时间了再试试. Best Sharing http://www.bes ...
- Windows/Linux搭建ISCSI协议存储服务(IPSAN存储)并对接给虚拟化平台
Linux/Windows搭建ISCSI协议存储服务(IPSAN存储)并对接给虚拟化平台 1. Windows Server系统部署ISCSI存储服务 2. Linux系统部署ISCSI存储服务 2. ...
- 达沃时代发布分布式块存储服务系统 启动存储生态圈
10月27日,达沃时代在北京召开主题为"打造数据沃土,营造千亿生态"的新闻发布会,发布存储新品逸存B系列(YeeStor B serials)分布式块存储服务系统,同时宣告了&qu ...
- 2016.05.07华为网盘-将会暂停服务的网站一览 - 做好数据迁移的准备哦
1.抓虾 - http://www.zhuaxia.com 2.阿里巴巴酷盘 - https://kanbox.com 3.搜狗邮箱 - http://mail.sogou.com 4.UC云网盘 - ...
- 近期将会暂停服务的网站一览 - 做好数据迁移的准备哦^_^
1.抓虾 - http://www.zhuaxia.com 2.阿里巴巴酷盘 - https://kanbox.com 3.搜狗邮箱 - http://mail.sogou.com 4.豆瓣九点 - ...
- 阿里云对象存储服务OSS前后联调
阿里云对象存储服务OSS前后联调 1.为什么要引入阿里云对象存储服务(OSS)?有什么好处? 1.1.什么是对象存储OSS 1.2.OSS工作原理 2.阿里云对象存储-普通上传方式 2.1.时序图 2 ...
- 华为云对象存储OBS,助力企业降本增效
信息化时代,互联网信息技术在企业发展中扮演着越来越重要的角色,对于网络信息数据的依赖程度也在不断提高.企业可以通过使用计算机进行信息管理,将各种资源有效利用起来.但是每天产生的大量数据信息,需要花费很 ...
- 华云数据吴迦德:构建多云融合的行业场景服务
2018年3月21-22日,由中国信息通信研究院主办.中国通信标准化协会支持的"OSCAR云计算开源产业大会"在国家会议中心举行. 混合云论坛作为"OSCAR云计算开源产 ...
- TiKV 在京东云对象存储元数据管理的实践
京东云对象存储是在 2016 年作为公有云对外公开的,主要特点是可靠.安全.海量.低成本,应用于包括一些常用的业务场景,比如京东内部的京东商城视频/图片云存储,面向京东云公有云外部的开发者的服务,和面 ...
最新文章
- C++拾趣——使用多态减少泛型带来的代码膨胀
- 浅入浅出 Android 安全:第三章 Android 本地用户空间层安全
- MYSQL的深入学习--优化步骤
- python进阶书籍的推荐 知乎-推荐几本Python3相关书籍?最好分一下基础、进阶、高级...
- Veeam Backup Replication试用(三):配置备份(Backup Job)与恢复(Restore)
- (*长期更新)软考网络工程师学习笔记——Section 2 数字传输系统
- 用户体验设计的五个原则(转)
- 【牛客 - 331D】炫酷路途(二进制枚举 或 建图方式+最短路 或 dfs)
- 生命太短暂,我没时间讨厌你
- 卷积神经网络CNN结构
- 双击java安装包没有反应_win7系统双击JeR安装包没有任何反应的解决方法
- 哈佛大学公开课《幸福课》笔记
- 阿里云常见热门问题解答汇总
- 论找对客服妹子对修改邓白氏码的公司信息的重要性
- 三菱PLC之间通信概要
- 程序员从新手变成大佬的成长之路
- 无光驱安装原版 windows server2008,win7 的方法,64位的
- 简单的Java代码实现给QQ邮箱发邮件
- 一张表带你了解S3系列接触式芯片卡读写器的差异
- 基于图正则化的贝叶斯宽度学习系统
热门文章
- Python version 3.3 required, which was not found in the registry
- CRM中多张关联表join的报表
- 桶排序,冒泡排序,快速排序三者比较(例子说名)
- 如何使用Cisdem Video Converter在Mac上将MTS批量转换为MP4
- TOONTRACK Electronic Edge EZX(Toontrack打击乐扩展包)
- JavaScript静态页面值传递之URL篇
- 光声光谱技术和激光、红外技术的优劣势对比
- debounce函数的实现
- Tomcat配置文件server.xml(转)
- CacheCloud运维管理平台学习笔记