MySQL到OpenStack Swift的备份与恢复

日期: 2014-11-25 作者:Tushar Katarki翻译:杨宏玉 来源:TechTarget中国 英文

在OpenStack中MySQL数据库的使用很普遍。OpenStack核心服务计算(Nova),存储(Cinder),Neutron(网络),镜像(Glance)和认证(Keystone)都使用MySQL数据库。

MySQL是世界上最流行的数据库,它运行在OpenStack虚拟机内部作为数据库后台支撑OpenStack基于云的应用。MySQL实例可以手工配置到虚拟机环境运行(只需要简单地在在虚拟机中安装MySQL并运行就可以了),也可以通过OpenStack数据库即服务(Trove)按需创建。

在任何情况下,保护MySQL的数据都是最关键的任务。OpenStack云管理员和云客户或租户需要备份和恢复MySQL数据库的功能支持。Mysqldump命令是做MySQL备份和恢复的传统方式。然而,根据MySQL社区以前的经验,mysqldump有广为人知的局限性,尤其是在数据库增长变大以后备份和恢复速度都很不理想。

Percona XtraBackup克服了这些问题,可以更快无阻塞地完成更大数据集MySQL数据库的备份和恢复。它还提供了其它重要功能,比如流处理和加密。它在MySQL及其流行分支产品Percona Server和MariaDB上都运行的非常好。而且它是开源且免费的。Percona XtraBackup在MySQL社区非常流行并被广泛使用。最近该产品已经被采纳到了OpenStack上下文中使用,这是Rackspace云数据库即服务备份和恢复的核心部件。OpenStack数据库即服务(Trove)把Percona XtraBackup用于数据库备份和恢复,部署为可插拔后台。

然而,直到现在Percona XtraBackup仍然没有实现MySQL数据库到云式存储(比如OpenStack Swift或者Amazon WEB服务S3)的流式备份和恢复。Xbcloud工具是Percona为此实现的新版本。从基本层面上来看,该工具应该可以支持MySQL备份到OpenStack Swift。

OpenStack Swift是OpenStack的对象服务。它提供高可用数据存储平台,支持横向扩展并提供跨数据中心和地域的数据灾备。这是OpenStack云平台中默认的基础设施和租户数据存储备份方案,也是最流行的选择。

Xbcloud工具如何工作呢?Xbcloud向OpenStack Swift上传和从OpenStack Swift下载xbstream归档的完整包或者部分包。那么xbstream是什么呢?Xbstream是Percona XtraBackup中支持的一种流格式,它可以克服传统归档格式(比如tar包,cpio和其它不支持流式动态生成文件的格式)的一些局限性,例如动态压缩文件。

归档上传会对Swift中的大对象采用多部分上传的方式进行。采用这种方式,xbstream归档索引文件上传时会包含文件列表,以及其它各部分文件和各自在xbstream归档中的偏移量。该索引只需要根据需要下载部分归档文件(从备份中获取一个或几个表的归档)。

详细用法示例如下:

备份过程:

view sourceprint?
1.innobackupex--stream=xbstream/tmp|xbcloud[options]put<name>

示例:

view sourceprint?
1.innobackupex--stream=xbstream--extra-lsndir=/tmp/tmp|
2.xbcloud put--storage=Swift
3.--swift-container=test
4.--swift-user=test:tester
5.--swift-url=http://192.168.8.80:8080/
6.--swift-key=testing
7.--parallel=10
8.full_backup

恢复过程:

view sourceprint?
1.xbcloud[options]get<name>[<list-of-files>]|xbstream-x

示例:

view sourceprint?
1.xbcloud get--storage=Swift
2.--swift-container=test
3.--swift-user=test:tester
4.--swift-url=http://192.168.8.80:8080/
5.--swift-key=testing
6.full_backup|xbstream-xv-C/tmp/downloaded_full
7.innobackupex--apply-log/tmp/downloaded_full
8.innobackupex--copy-back/tmp/downloaded_full

好玩吧!你也可以来试试。Percona XtraBackup和xbcloud都是开源而且免费的。你可以在这里找到PXB2.3 alpha版(包含了xbcloud)的下载,使用手册和发布说明。

那么我们的下一步是什么呢?我们对xbcloud这个新工具和Percona XtraBackup感到很兴奋,很乐意听到关于该产品的使用情况,可能出现什么问题的信息。我们下一步主要关注社区使用反馈,处理bug和问题,尽快发布正式版本。

除此之外,我们在寻求扩展xbcloud支持其它云平台的方案,比如AWS S3和谷歌云引擎。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

杨宏玉
杨宏玉

TechTarget特邀编辑。北京邮电大学计算机科学与技术专业硕士。熟悉软件开发流程,对系统管理,网络配置,数据库应用等方面有深入的理解和实践经验。现就职于IBM(中国)投资有限公司,从事IBM服务器相关软件的开发工作。业余时间喜欢游泳登山,爱健身,喜欢结交朋友。

相关推荐