忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 965 | 回复: 7

[OpenStack] 在OpenStack平台下,实例虚拟机如何备份和恢复 [复制链接]

论坛徽章:
18
IT运维版块每日发帖之星
日期:2016-06-07 06:20:0015-16赛季CBA联赛之北控
日期:2016-06-30 21:19:06IT运维版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-06-28 06:20:00IT运维版块每日发帖之星
日期:2016-06-28 06:20:00数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00每日论坛发贴之星
日期:2016-06-22 06:20:00IT运维版块每日发帖之星
日期:2016-06-22 06:20:00IT运维版块每日发帖之星
日期:2016-06-21 06:20:00wusuopu
日期:2016-06-17 17:43:45IT运维版块每日发帖之星
日期:2016-06-16 06:20:00IT运维版块每日发帖之星
日期:2016-06-15 06:20:00
发表于 2016-06-30 01:37 |显示全部楼层
openstack中,虚拟机实例一般是放在nova/instances目录底下.

该目录的典型结构如下所示:

root@node77:~# ls /opt/stack/nova/instances/

_base instance-0000001a



其中

_base目录中存放的是虚拟机实例的base image

而instance-0000001a存放的是虚拟机实例镜像的增量部分。



instance-0000001a目录有如下的一些文件:

root@node77:~# ls /opt/stack/nova/instances/instance-0000001a/

console.log disk disk.local libvirt.xml



其中

console.log 保存虚拟机启动的日志信息

disk 和 disk.local为虚拟机实例的镜像文件

libvirt.xml为配置文件。



这其中需要注意的是,disk和disk.local并没有包含该虚拟机的所有数据,它们只是基于base image的增量部分

我们通过kvm-image 工具可以查看该信息,如下:

root@node77:/opt/stack/nova/instances/instance-0000001a# kvm-img info disk

image: disk

file format: qcow2

virtual size: 50G (53687091200 bytes)

disk size: 1.6G

cluster_size: 2097152

backing file: /opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10 (actual path: /opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10)



root@node77:/opt/stack/nova/instances/instance-0000001a# kvm-img info disk.local

image: disk.local

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 4.0M

cluster_size: 2097152

backing file: /opt/stack/nova/instances/_base/ephemeral_0_40_None (actual path: /opt/stack/nova/instances/_base/ephemeral_0_40_None)

其中backing file 即是base image



因此我们在备份虚拟机实例的时候,不仅要备份instance-0000001a目录下的数据,而且要备份该虚拟机相关的base image数据,即backing file给出的文件。



对于该例子:

我们需要备份如下的文件:

(1)console.log

(2)disk

(3)disk.local

(4)libvirt.xml

(5)/opt/stack/nova/instances/_base/ephemeral_0_40_None

(6)/opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10



如何根据备份的文件,在另外一台机器上恢复该虚拟机:

方法1:

我们将disk 和 disk.local磁盘文件分别和它们的base image合并,生成两个新的磁盘文件,那么这两个磁盘文件将包含虚拟机所有的数据。

qemu-img convert [-c] [-f format] [-o options] [-O output_format] filename output_filename
qemu-img convert disk –O qcow2 newdisk
qemu-img convert disk.local –O qcow2 newdisk.local



方法2:

我们修改disk和disk.local文件中backing file的位置,为当前base image的位置

qemu-img rebase [-f format] [-u] -b backing_file [-F backing_format] filename
正确处理完磁盘文件后,剩下的工作就是按照libvirt.xml文件的设置,启动虚拟机了。
这一部分,网上有很多的文档可供参考。



  



openstack中,虚拟机实例一般是放在nova/instances目录底下.

该目录的典型结构如下所示:

root@node77:~# ls /opt/stack/nova/instances/

_base instance-0000001a



其中

_base目录中存放的是虚拟机实例的base image

而instance-0000001a存放的是虚拟机实例镜像的增量部分。



instance-0000001a目录有如下的一些文件:

root@node77:~# ls /opt/stack/nova/instances/instance-0000001a/

console.log disk disk.local libvirt.xml



其中

console.log 保存虚拟机启动的日志信息

disk 和 disk.local为虚拟机实例的镜像文件

libvirt.xml为配置文件。



这其中需要注意的是,disk和disk.local并没有包含该虚拟机的所有数据,它们只是基于base image的增量部分

我们通过kvm-image 工具可以查看该信息,如下:

root@node77:/opt/stack/nova/instances/instance-0000001a# kvm-img info disk

image: disk

file format: qcow2

virtual size: 50G (53687091200 bytes)

disk size: 1.6G

cluster_size: 2097152

backing file: /opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10 (actual path: /opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10)



root@node77:/opt/stack/nova/instances/instance-0000001a# kvm-img info disk.local

image: disk.local

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 4.0M

cluster_size: 2097152

backing file: /opt/stack/nova/instances/_base/ephemeral_0_40_None (actual path: /opt/stack/nova/instances/_base/ephemeral_0_40_None)

其中backing file 即是base image



因此我们在备份虚拟机实例的时候,不仅要备份instance-0000001a目录下的数据,而且要备份该虚拟机相关的base image数据,即backing file给出的文件。



对于该例子:

我们需要备份如下的文件:

(1)console.log

(2)disk

(3)disk.local

(4)libvirt.xml

(5)/opt/stack/nova/instances/_base/ephemeral_0_40_None

(6)/opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10



如何根据备份的文件,在另外一台机器上恢复该虚拟机:

方法1:

我们将disk 和 disk.local磁盘文件分别和它们的base image合并,生成两个新的磁盘文件,那么这两个磁盘文件将包含虚拟机所有的数据。

qemu-img convert [-c] [-f format] [-o options] [-O output_format] filename output_filename
qemu-img convert disk –O qcow2 newdisk
qemu-img convert disk.local –O qcow2 newdisk.local



方法2:

我们修改disk和disk.local文件中backing file的位置,为当前base image的位置

qemu-img rebase [-f format] [-u] -b backing_file [-F backing_format] filename
正确处理完磁盘文件后,剩下的工作就是按照libvirt.xml文件的设置,启动虚拟机了。

论坛徽章:
26
CU十二周年纪念徽章
日期:2013-10-24 15:41:342014年中国系统架构师大会
日期:2014-10-14 15:59:00技术图书徽章
日期:2014-07-11 16:27:52双子座
日期:2014-09-26 11:00:04巨蟹座
日期:2014-10-27 08:21:10申猴
日期:2014-12-08 10:16:282015年辞旧岁徽章
日期:2015-03-03 16:54:15NBA常规赛纪念章
日期:2015-05-04 22:32:03IT运维版块每日发帖之星
日期:2016-01-29 06:20:00IT运维版块每日发帖之星
日期:2016-04-22 06:20:00辰龙
日期:2014-09-04 13:40:43白羊座
日期:2014-09-09 12:51:55
发表于 2016-07-06 12:34 |显示全部楼层
支持。。。。。。。。。。

论坛徽章:
18
IT运维版块每日发帖之星
日期:2016-06-07 06:20:0015-16赛季CBA联赛之北控
日期:2016-06-30 21:19:06IT运维版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-06-28 06:20:00IT运维版块每日发帖之星
日期:2016-06-28 06:20:00数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00每日论坛发贴之星
日期:2016-06-22 06:20:00IT运维版块每日发帖之星
日期:2016-06-22 06:20:00IT运维版块每日发帖之星
日期:2016-06-21 06:20:00wusuopu
日期:2016-06-17 17:43:45IT运维版块每日发帖之星
日期:2016-06-16 06:20:00IT运维版块每日发帖之星
日期:2016-06-15 06:20:00
发表于 2016-07-06 23:34 |显示全部楼层
回复 2# cryboy2001


    谢谢,我发帖也是为了带动大家发帖

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-02-13 06:20:00每日论坛发贴之星
日期:2016-02-13 06:20:00
发表于 2016-08-11 13:06 |显示全部楼层
可以看看smaug项目,已经进入到openstack官方项目了,专门做备份与恢复的,不过现在好像改名Karbor了。晕。

论坛徽章:
18
IT运维版块每日发帖之星
日期:2016-06-07 06:20:0015-16赛季CBA联赛之北控
日期:2016-06-30 21:19:06IT运维版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-06-28 06:20:00IT运维版块每日发帖之星
日期:2016-06-28 06:20:00数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00每日论坛发贴之星
日期:2016-06-22 06:20:00IT运维版块每日发帖之星
日期:2016-06-22 06:20:00IT运维版块每日发帖之星
日期:2016-06-21 06:20:00wusuopu
日期:2016-06-17 17:43:45IT运维版块每日发帖之星
日期:2016-06-16 06:20:00IT运维版块每日发帖之星
日期:2016-06-15 06:20:00
发表于 2016-08-13 07:03 |显示全部楼层
回复 4# vinchin


    嗯嗯,先去看看再说

论坛徽章:
0
发表于 2017-02-03 16:47 |显示全部楼层
openstack是不是有备份和恢复的专用模块

论坛徽章:
0
发表于 2017-02-14 15:25 |显示全部楼层
不错 大家要是遇到虚拟化识别USB加密狗问题可以看下这个链接http://blog.itpub.net/29524377/viewspace-1102847/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

久等啦!10张门票开启你的DTCC2017之旅

2017中国数据库技术大会将于2017年5月11-13日如约而至,本届大会以“数据驱动•价值发现”为主题,共设定2大主场和21个技术专场,云集海内外120+位技术大牛,共同探讨Oracle、MySQL、NoSQL、云端数据库、区块链、深度学习等领域的前瞻性热点话题。
即日起,填写DTCC2017会前调查问卷,即有机会赢取价值2600元的大会门票1张!仅限10张!
----------------------------------------
活动截止时间:2017年5月5日统一公布

问卷入口>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP