Openstack_通用模块_Oslo_vmware 创建 vCenter 虚拟机快照

创建虚拟机快照

vSphere Create Snapshot 文档

Snapshot 是虚拟机磁盘文件(VMDK)在某个点及时的复本。包含了虚拟机所有虚拟磁盘上的数据状态和这个虚拟机的电源状态(on/off/suspended)。你可以在虚拟机起电, 关电, 挂起的状态下创建一个 Snapshot。

当你创建了一个 Snapshot, 系统会为其在 Datastore 上创建了一个 delta 磁盘文件并且写入所有变化到这个 delta 磁盘文件中。

vSphere 的 MO 对象 VirtualMachine 提供了创建快照, 恢复到 snapshot_tree 上任何快照点和移除快照的方法。

VirtualMachine.CreateSnapshot_Task 方法可以创建一个虚拟机的新快照, 并且附带的, 当前快照会变成这个新快照的父级快照。该方法允许设置快照名, 同时也需要设置 memory 和 quiesce 属性。

    • memory: 若为 true, 则虚拟机内存状态 dump(memory dump) 被包含在快照里。内存快照会消耗时间和资源, 需要较长的时间来创建。若为 false, 则快照电源状态被设置成关闭, 无需处理内存快照。
    • quiesce: 若为 true 且创建快照时虚拟机处于开机状态, VMware Tools 通常会用于静默虚拟机中的文件系统, 确保磁盘快照和 GuestOS 文件系统状态是一致。假如 
      虚拟机的电源状态为关闭状态或 VMware Tools 不可用, 那么 quiesce 会被忽略。
 1 from oslo_vmware import api
 2 from oslo_vmware import vim_util
 3
 4 # Create the vmware session
 5 session = api.VMwareAPISession(
 6             ‘<vCenter_server_ip>‘,
 7             ‘<vCenter_server_username>‘,
 8             ‘<vCenter_server_password>‘,
 9              1,
10              0.1)
11
12 # Get the instances list with vmware SDK
13 instances  = session.invoke_api(
14                             vim_util,
15                             ‘get_objects‘,
16                             session.vim,
17                             ‘VirtualMachine‘,
18                             100)
19
20 # Select a instance if you want to create snapshot
21 instance = instances.objects[2].obj
22
23 # Start to create the snapshot
24 session.invoke_api(session.vim,
25                    "CreateSnapshot_Task",
26                    instance,
27                    name="JMILKFAN",
28                    description=‘Just Create‘,
29                    memory=False,
30                    quiesce=False)

NOTE: 方法 session.invoke_api() 的第一个参数为提供函数调用的模块, 第二个参数为要从中调用的函数, 其余的参数会作为实参传入第二个参数(函数)中. 至于这些被传入的实参是怎么来确定的呢? 我们可以通过查看 vSphere SDK 文档来确定.

EXAMPLE:

从上图可以看出 CreateSnapshot_Task() 函数需要传入 _this/name/description/memory/quiesce 等 5 个参数. 其含义分别为:

  • _this: 需要创建快照的虚拟机
  • name: 指定快照的名称
  • description: 指定快照的描述
  • memory/quiesce: 在上文中已经提到了

最后

    • 恢复一个快照

      • VirtualMachine.RevertToSnapshot_Task 
        恢复快照的方法需要指定一个目标 Host 和指定虚拟机是否开机, 当恢复一个快照的电源状态为 True 的虚拟机时, 就必须指定一个目标的 Host 或者将 SupressPowerOn 指定为 True.
    • 删除一个快照
      • VirtualMachine.RemoveAllSnapshots 
        删除一个虚拟机的所有快照.
      • VirtualMachineSnapshot.RemoveSnapshot_Task 
        删除一个虚拟机指定的快照, 其中 VirtualMachineSnapshot 是创建快照函数 CreateSnapshot_Task 返回的对象.

转自:

http://blog.csdn.net/jmilk/article/details/53174277

时间: 2024-10-10 02:24:38

Openstack_通用模块_Oslo_vmware 创建 vCenter 虚拟机快照的相关文章

Powercli批量创建删除虚拟机快照

注意事项: 1.客户端需要安装vmware powercli client 2.连接vcenter或esxi主机的用户需要具有连接和创建删除快照权限 1.创建虚拟机快照 #添加vmware module command Add-PSSnapin -Name *vmware* #填写连接相关信息,按要求输入vcenter/esxi 服务器ip 用户名 密码 $vcenterip = Read-Host "请输入vcenter/esxi服务器ip......" $domainname = 

创建可用实验快照(一)

创建可用实验快照 一:快照概述 1.1 :什么是快照 "快照"是虚拟机磁盘文件(VMDK)在某个点及时的复本.系统崩溃或系统异常,你可以通过使用恢复到快照来保持磁盘文件系统和系统存储.VMware快照是VMware Workstation里的一个特色功能. 1.2 :快照类型 当你创建一个虚拟机快照时,这是一个特定的文件.它也是redo-log日志.delta文件是在基础VMDK(虚拟机磁盘)上的变更位图,因此,它不能增长到比VMDK还大.为虚拟机创建每一个快照时,都会创建一个delt

KVM虚拟机快照链创建,合并,删除及回滚研究

1 QEMU,KVM,libvirt关系 QEMU QEMU提供了一个开源的服务器全虚拟化解决方案,它可以使你在特定平台的物理机上模拟出其它平台的处理器,比如在X86 CPU上虚拟出Power的CPU,此时的guest OS感觉不到虚拟机的存在,就像运行在物理机上,QEMU可以单独使用模拟CPU和各种外设,也可以作为一个用户空间工具和运行在内核中的KVM结合使用以充分发挥KVM的功能,QEMU的wiki KVM KVM是一个基于内核的虚拟机(Linux中一个可加载模块),在硬件支持虚拟化(int

kvm 虚拟机快照备份

raw相比qcow2就缺乏的三个功能,但都能通过别的方式解决:1.加密功能:把raw本身就当普通文件加密之搞定2.快照功能:把raw加入版本管理目录中,具体需要的设置可能稍微有点多.3.宿主机不支持按需打孔模式(hole):这个可以自己根据使用情况来扩展raw的最大值4.硬盘压缩:就当普通电脑文件压缩之即可 而raw有qcow2所无法媲美的功能:1.效率高于qcow22.直接读写虚拟机硬盘里面的文件,这比较"暴力",但既然可以这么暴力,那么也就不怕虚拟机出任何问题了.3.通用性好,是转

KVM虚拟机快照研究(二)

使用Python脚本操作快照 上一篇中介绍了KVM虚拟机各种快照的原理和命令行操作方法,由于磁盘外部快照最实用,所以本篇主要讲怎么利用Libvirt api操作磁盘外部快照.其中会涉及一些Libvirt api的基本用法,也会一起介绍. 操作环境 环境同上篇.Python与libvirt服务交互用的是libvirt模块:操作虚拟机的XML描述文件用的是xml.dom模块. 创建快照 我们要完成的功能是,给出一个虚拟机的名称,创建这个虚拟机的磁盘快照. 首先建立与libvirt服务的连接,然后根据

CentOS 5.6下创建KVM虚拟机

首先要保证你的CPU支持虚拟化.执行以下命令查看CPU的flag信息,里面包含svm的flag就说明支持虚拟化: [[email protected] ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxe

存储过程运行日志记录通用模块

目标 实现记录执行存储过程的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,存储调用函数 源码 存储过程模版 CREATE OR REPLACE PROCEDURE proc_xx IS --修改标志返回值 V_AFFECT_LINE NUMBER; PROID NUMBER; BEGIN --调用更改标志函数,将进程改为运行中'S' V_AFFECT_LINE := INSERT_LOG(PROID,'proc_xx',WIFI.GLOBAL_PARAM.STATUS_ST

kvm+libvirt虚拟机快照浅析[转]

浅析snapshots, blockcommit,blockpull 作者:Kashyap Chamarthy <kchamart#redhat.com> Date: Tue, 23 Oct 2012 15:28:06 +0530 这是一篇关于snapshots, blockpull, blockcommit的的介绍.作者和with Eric Blake, Jeff Cody,Kevin Wolf以及很多IRC和mailing lists里面的同学大量讨论以及作者大量的特向测试的基础之上总结出

Hyper-V Server虚拟机快照(检查点)

Windows Server 2012/R2 通过使用微软Volume Copy Service 技术,可对Hyper-V 上运行的虚拟机制作实时快照,快照内容为虚拟机的状态.数据.硬件配置.每一部虚拟机最多可以制作50 份快照. 快照主要用于测试对现有虚拟机环境的改动,在必要的时候,作为返回之前状态或时间的手段.如果需要重建某个特定状态或者重现某个特定条件,以便对一个问题进行故障排除,则有一个更方便的方法将虚拟机恢复,会非常有用. 在实际生产环境中,快照可以协助管理员针对服务器做系统更新或对某