`

[转]KVM中使用LVM快照技术

 
阅读更多
前几天玩玩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 查看虚拟机的信息
分享到:
评论

相关推荐

    KVM虚拟机的应用

    总之,KVM虚拟机不仅提供了强大的虚拟化能力,还通过`virsh`、LVM和qcow2等工具和技术,为虚拟机的管理、存储和部署提供了灵活多样的解决方案。掌握这些技术,对于构建和维护高效、稳定的虚拟化环境至关重要。

    linux使用快照制作虚拟机.docx

    在Linux环境中,使用快照制作...总的来说,Linux环境下使用LVM快照制作虚拟机涉及了磁盘管理、系统配置、虚拟机模板以及快照操作等多个环节,这些知识点对于IT管理员来说是必备的技能,能够提升系统的灵活性和效率。

    KVM Virtualization Cookbook (True PDF)-Packt Publishing(2017) [英文]

    - 如何在KVM环境中配置使用LVM和RAID等存储技术。 - 理解虚拟机的存储池和卷管理。 5. 虚拟网络 - KVM支持多种网络模式,包括桥接、NAT、内部网络等。 - 配置和管理虚拟网络设备,如虚拟交换机、网桥等。 - ...

    kvm管理系统(shell脚本)

    在IT行业中,KVM(Kernel-based Virtual Machine)是一种流行的开源虚拟化技术,它允许用户在Linux内核上创建和管理虚拟机。KVM管理系统通常通过自动化脚本进行操作,以提高效率和减少人为错误。本项目提供的“kvm...

    KVM-OpenVZ虚拟化和使用Proxmox-VE进行云计算.doc

    安装完成后,系统会自动使用LVM进行磁盘分区,以支持虚拟机的快照功能。首次启动后,通过Web界面进行管理和控制。 【集群创建】 创建Proxmox VE集群,需要至少两台服务器,分别作为Master(主节点)和Slave(从...

    bloinck:块级 - 增量备份 - KVM、LVM、SSH、PLZIP

    布隆克 块增量块块块块块块块块块块块块块块块块块块块块块块块块块... 注意:它会在执行备份之前尝试做一个 LVM 快照。 如果文件不是 LVM 卷,它只会进行备份。 去备份使用 解压版本的快照到标准输出 ./de-bloinck ssh

    KVM安装与IMAGE制作过程及注意事项

    在实际操作中,BCE项目主要使用qcow2格式,这种格式支持快照和磁盘大小动态扩展。 2. **创建虚拟机磁盘**:使用`qemu-img`工具创建虚拟机磁盘文件,例如`qemu-img create -f qcow2 centos_x86_64.img 5G`,指定格式...

    KVM学习\安装 、虚拟化的定义

    存储虚拟化指的是在物理存储设备上创建虚拟层,比如通过RAID或LVM技术,从而将物理存储抽象为虚拟硬盘,提供给虚拟机使用。网络虚拟化则是通过虚拟交换机、虚拟网络接口和网络地址转换等技术,实现虚拟机之间的网络...

    KVM Virtualization in RHEL 6 made easy 2

    本技术白皮书旨在深入探讨KVM(Kernel-based Virtual Machine)虚拟化技术在Red Hat Enterprise Linux 6(RHEL 6)系统中的应用实践。通过一系列详细的技术指南,帮助读者更好地理解和掌握如何在RHEL 6环境中高效地...

    4-启动第一个 KVM 虚机1

    在IT领域,虚拟化技术是不可或缺的一部分,KVM(Kernel-based Virtual Machine)是Linux内核中的一个模块,它允许Linux操作系统成为一个hypervisor,提供高效、安全的虚拟化环境。本节我们将深入探讨如何使用KVM和`...

    Proxmox VE中文初级学习手册

    Proxmox VE 是一个开源的企业级虚拟化环境解决方案,它结合了KVM虚拟化技术和LXC容器技术。KVM是一种通过内核模块化的方式实现在Linux操作系统上运行的全虚拟化技术,而LXC是一种轻量级的虚拟化技术,允许在同一主机...

    proxmox ve中文手册

    Proxmox VE是一款开源的虚拟化平台,既支持虚拟机(KVM)技术,也支持容器(LXC)技术。其系统版本是5.2,可运行于单机或构建为多节点集群,便于管理并以Web界面形式提供访问,让用户能够轻松上手和使用。 知识点...

    Linux 50问面试常问问题

    LVM的优势包括磁盘空间的优化、方便的数据迁移和快照支持。 30. 什么是NFS(网络文件系统)?如何在Linux中配置NFS服务器和客户端?答:NFS是一种分布式文件系统,允许不同计算机之间的共享文件和目录。在Linux中,...

    linux笔记.zip

    6. **高级存储管理**:包括RAID配置,LVM快照和镜像,以及文件系统修复。 在学习过程中,你需要深入理解Linux命令行界面,熟悉常用命令,例如`ls`, `cd`, `cp`, `mv`, `rm`, `mkdir`, `vi/vim`等。同时,理解文件...

    RHEL8配置和管理虚拟化

    18. **诊断问题**:使用日志分析、性能监视工具和故障排除技术来识别和解决虚拟化环境中的问题。 19. **功能支持和限制**:了解RHEL8虚拟化在不同场景下的功能完整性和可能的限制,以做出合理的设计决策。 通过...

    IT运维工程师的23个细节进阶.docx

    12. **备份与恢复**: 使用如mysqldump、Xtrabackup等工具进行数据备份,LVM快照提供快速恢复选项。 13. **故障排查与性能优化**: 系统性能分析工具如Systemtap和Sysdig有助于定位问题,Percona's TPCC-MYSQL Tool...

    libguestfs-1.50.1.tar.gz - 开源虚拟化工具包下载

    安装完成后,可以使用 `guestfish` 命令行工具直接操作虚拟机镜像,或者通过编程接口在应用程序中调用其功能。 例如,以下是一个简单的 `guestfish` 使用示例,用于列出虚拟机镜像中的文件: ```bash sudo ...

Global site tag (gtag.js) - Google Analytics