设为首页 收藏本站
查看: 1618|回复: 0

[经验分享] [转]KVM中使用LVM快照技术

[复制链接]

尚未签到

发表于 2016-1-8 11:43:33 | 显示全部楼层 |阅读模式
前几天玩玩kvm感觉挺有意思的,于是乎就想像vmarve中那样给kvm虚拟机来个快照,这样今后自己实验就很方便了。对于整个虚拟机的迁移也是很有意义的。
       由于使用的是ubuntu9.10平台,接下来就在ubuntu中做相关的LVM快照。在redhat平台也是类似,就是使用root身份做如下操作。
       在安装虚拟机的过程当中我们使用lvm逻辑卷作为kvm虚拟机的硬盘,这样才能使用LVM的快照功能:
       创建LVM逻辑卷:sudo fdisk /dev/sda(分区,这里就不在详细介绍)
                                    sudo partprobe
                                    sudo pvcreate /dev/sdaX
                                    sudo vgcreate vg00 /dev/sdaX
                                    sudo lvcreate -L 10G -n centos vg00       (创建一个centos的逻辑卷给装系统使用)

       安装kvm虚拟机:
                                   使用virt-manager来管理kvm虚拟机。
                                   




使用LVM逻辑卷创建虚拟机:




       在安装完centos虚拟机后,创建centos逻辑卷的快照:
lvcreate -L 2G -s -n centosBackup /dev/vg00/centos
(一般快照大小只要为被快照的逻辑卷的15~20%就可以了)


      最后修改kvm的配置文件: vim /etc/libvirt/qemu/centos.xml
<domain type=’kvm’>
  <name>centos01</name>
  <uuid>c64ae5f9-143a-0234-f4f6-dcf7cfdb830d</uuid>
  <memory>262144</memory>
  <currentMemory>262144</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch=’i686′ machine=’pc-0.12′>hvm</type>
    <boot dev=’hd’/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset=’utc’/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type=’block’ device=’disk’>
      <driver name=’qemu’/>
    ######<source dev=’/dev/vg00/centosB’/>把这行修改成快照的逻辑卷#######
      <source dev=’/dev/vg00/centosBackup’/>
      <target dev=’vda’ bus=’virtio’/>
    </disk>
    <disk type=’block’ device=’cdrom’>
      <driver name=’qemu’/>
      <target dev=’hdc’ bus=’ide’/>
      <readonly/>
    </disk>
    <interface type=’bridge’>
      <mac address=’52:54:00:20:93:fa’/>
      <source bridge=’br0′/>
      <model type=’virtio’/>
    </interface>
    <console type=’pty’>
      <target port=’0′/>
    </console>
    <console type=’pty’>
      <target port=’0′/>
    </console>
    <input type=’mouse’ bus=’ps2′/>
    <graphics type=’vnc’ port=’-1′ autoport=’yes’ keymap=’en-us’/>
    <video>
      <model type=’cirrus’ vram=’9216′ heads=’1′/>
    </video>
  </devices>
</domain>

         最后,重新启动计算机,这样你就能使用快照的虚拟机,如果当虚拟机坏了,你可以直接在拉一个centos的逻辑卷的快照就可以恢复到安装好以后的状态。当然,接下来的LVM的迁移技术就可以实现容灾方面的内容。还是很强大的,有谁在玩这方面的可以交流经验。


之前看到某篇文章对snapshot的注解如下:

-snapshot       write to temporary files instead of disk image files

意思是不更改镜像文件,启动后的所有改动均不会往镜像文件上写。临时文件存放在内存中了,具体是cached

感觉这个解释有点问题,晚上闲来无事,就简单做了个测试,实验过程如下:


使用libvirt创建的虚拟机,默认格式为raw,要想使用快照功能,需要先将其转换格式。

1:qemu-img  snapshot  -c   base_sys_centos5.564bit.img   CentOS5.5_64bit.img
在现有镜像基础上创建一个快照。
报如下错误:
emu-img: Could not create snapshot 'base_sys_centos5.564bit.img': -95 (Operation not supported)

2:怀疑是文件格式不对,查看一下。
qemu-img   info    CentOS5.5_64bit.img
image: CentOS5.5_64bit.img
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 3.4G

果然是raw格式

3:使用如下命令将raw格式的镜像转化为qcow2格式。
qemu-img   convert   -f  raw   -O qcow2    CentOS5.5_64bit.img    CentOS5.5_64bit_basesys_qcow2.img

4:转换成功后,再次对镜像创建一个快照

qemu-img snapshot -c CentOS5.5_64bit_Qcow2_basesys.img CentOS5.5_64bit_Qcow2.img

OK,创建成功。

该步并不会创建一个新的镜像,可以使用如下命令来查看指定的镜像上是否存在快照,并在合适的时候,恢复快照。

qemu-img  snapshot -l CentOS5.5_64bit_Qcow2.img

Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         CentOS5.5_64bit_Qcow2_basesys.img      0 2011-07-21 23:17:38   00:00:00.000

恢复快照:

qemu-img  snapshot   -a   CentOS5.5_64bit_Qcow2_basesys.img    CentOS5.5_64bit_Qcow2.img

其他操作:

  'snapshot' is the name of the snapshot to create, apply or delete
  '-a' applies a snapshot (revert disk to saved state)
  '-c' creates a snapshot
  '-d' deletes a snapshot
  '-l' lists all snapshots in the given image


一、kvm快照与恢复
1、为原虚拟机所在的lv做一个快照。
lvcreate -L 2G -sn kvmSS /dev/vg/kvm  (一般快照大小是宿主的15-20%)
2、修改/etc/libvirt/qemu/虚拟机名.xml,将此配置文件里虚拟机lv名,改成虚拟机快照名。
vim /etc/libvirt/qemu/虚拟机名.xml
    <source dev=‘虚拟机快照名’>
3、重启动计算机,即可使用快照虚拟机。
4、恢复,当快照虚拟机弄乱或弄坏了,可以直接用回原始的虚拟机做一个快照,再用上面同样的方法,指向这新建的快照。

二、快速制造多台虚拟机
1、为原虚拟机所在的lv做一个快照。
lvcreate -L 2G -sn kvmSS /dev/vg/kvm  (一般快照大小是宿主的15-20%)
2、复制/etc/libvirt/qemu/虚拟机名.xml并改名为/etc/libvirt/qemu/虚拟机名1.xml
cp /etc/libvirt/qemu/虚拟机名.xml /etc/libvirt/qemu/虚拟机名1.xml
3、修改 /etc/libvirt/qemu/虚拟机名1.xml
vim /etc/libvirt/qemu/虚拟机1.xml (修改一下几项,随便改只要与原来不一样就可以了。)比如:
<name>1kvmSS</name>
<uuid>395ae05e-c118-e460-4de4-7f58e08f8aa1</uuid>
<source dev=‘虚拟机快照名’>
<mac address='52:54:00:a7:11:cb'/>
4、virsh define 虚拟机名1.xml (定义虚拟机)
5、virsh start 虚拟机名1 (新的虚拟机就可以使用啦。呵呵)

如果遇到虚拟机网卡启动失败提示device eth0 does not seem
可以ifconfig -a 查看网卡的名字是否不是eth0.
如果不是,ip link set ethX name eth0


virsh常用命令一览表
命令说明
help显示该命令的说明
quit结束 virsh,回到 Shell
connect连接到指定的虚拟机服务器
create启动一个新的虚拟机
destroy删除一个虚拟机
start开启(已定义的)非启动的虚拟机
define从 XML 定义一个虚拟机
undefine取消定义的虚拟机
dumpxml转储虚拟机的设置值
list列出虚拟机
reboot重新启动虚拟机
save存储虚拟机的状态
restore回复虚拟机的状态
suspend暂停虚拟机的执行
resume继续执行该虚拟机
dump将虚拟机的内核转储到指定的文件,以便进行分析与排错
shutdown关闭虚拟机
setmem修改内存的大小
setmaxmem设置内存的最大值
setvcpus修改虚拟处理器的数量

查看Domain信息执行的命令
命令说明
domid查看虚拟机的标识符
domname查看虚拟机的名称
domuuid查看虚拟机的 UUID
domstate查看虚拟机目前的状态
dominfo查看虚拟机的信息

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161836-1-1.html 上篇帖子: qemu-kvm 使用内存的大页 下篇帖子: Installing and Configuring Fedora KVM Virtualization
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表