KVM虚拟化之基本命令管理虚拟机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟化之基本命令管理虚拟机相关的知识,希望对你有一定的参考价值。

KVM基本功能管理

  • 查看KVM的配置文件存放目录(c01.xml 是虚拟机系统实例的配置文件)
    [[email protected] ~]# ls /etc/libvirt/qemu
    c01.xml  networks
  • 查看查看虚拟机的状态
    [[email protected] ~]# virsh list --all
    Id    名称                         状态
    ----------------------------------------------------
    1     c01                            running
  • 虚拟机的关机与开启
    
    [[email protected] ~]# virsh shutdown c01
    域 c01 被关闭

[[email protected] ~]# virsh start c01
域 c01 已开始

[[email protected] ~]# virsh create /etc/libvirt/qemu/c01.xml #通过配置文件启动

- 挂起、恢复虚拟机

[[email protected] ~]# virsh suspend c01
域 c01 被挂起

[[email protected] ~]# virsh list --all
Id 名称 状态

2 c01 暂停

[[email protected] ~]# virsh resume c01
域 c01 被重新恢复

[[email protected] ~]# virsh list --all
Id 名称 状态

2 c01 running

- 导出虚拟机配置

[[email protected] ~]# virsh dumpxml c01 > /etc/libvirt/qemu/c02.xml
[[email protected] ~]# ls /etc/libvirt/qemu
c01.xml c02.xml networks

- 虚拟机的删除与添加

[[email protected] ~]# virsh shutdown c01
[[email protected] ~]# virsh undefine c01
域 c01 已经被取消定义
[[email protected] ~]# ls /etc/libvirt/qemu
c02.xml networks

- 通过备份的配置文件重新定义虚拟机

[[email protected] ~]# cd /etc/libvirt/qemu/
[[email protected] qemu]# mv c02.xml c01.xml
[[email protected] qemu]# virsh define c01.xml
[[email protected] qemu]# ls
c01.xml networks

- 修改虚拟机配置信息(系统内存大小、磁盘文件等信息)

[[email protected] ~]# vim /etc/libvirt/qemu/c01.xml #直接通过vim命令修改

[[email protected] ~]# virsh edit c01 #通过virsh命令修改

### KVM文件管理

通过文件管理可以直接查看、修改、复制虚拟机的内部文件。虚拟机的磁盘文件有raw与qcow2两种格式,KVM虚拟机默认使用raw格式,raw格式性能最好、速度快,其确定是不支持一些新的功能,如镜像、ZLib磁盘压缩、AFS加密等。针对两种格式的文件有不同的工具可供选择。这里介绍本地YUM安装libguestfs-tools后产生的命令行工具(这个工具可以直接读取qcow2格式的磁盘文件,因此需要将raw格式的磁盘文件转换成qcow2的格式)。

1.转换raw格式磁盘文件至qcow2格式

- 查看当前磁盘格式

[[email protected] ~]# qemu-img info /vdir/c01.img
image: /vdir/c01.img
file format: raw
virtual size: 30G (32212254720 bytes)
disk size: 940M

- 关闭虚拟机

[[email protected] ~]# virsh shutdown c01

- 转换磁盘格式

[[email protected] ~]# qemu-img convert -f raw -O qcow2 /vdir/c01.img /vdir/c01.qcow2
[[email protected] ~]# ls /vdir/c01.qcow2
/vdir/c01.qcow2

2.修改c01的xml配置文件

[[email protected] ~]# virsh edit c01
.....//省略
<disk type=‘file‘ device=‘disk‘> #39行
<driver name=‘qemu‘ type=‘qcow2‘/> #40行 这里的type从raw改成qcow2
<source file=‘/vdir/c01.qcow2‘/> #41行 将源文件类型也要修改

3.通过yum安装libguestfs-tools后,可以使用一些命令行工具查看qcow2文件。

[[email protected] vdir]# yum install libguestfd-tools -y

[[email protected] vdir]# virt-cat -a /vdir/c01.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
MAC="52:54:00:AE:FC:8A"

4.虚拟机克隆

[[email protected] vdir]# virsh list --all
Id 名称 状态

  • c01 关闭
    #保证虚拟机已经关闭
    [[email protected] vdir]# virt-clone -o c01 -n c02 -f /vdir/c02.qcow2
    WARNING 设置图形设备端口为自动端口,以避免相互冲突。
    WARNING 当卷已经被全部分配后,需要的卷容量将超过可用池空间。(20480 M 需要的容量 > 12822 M 可用容量)
    正在分配 ‘c02.qcow2‘ | 20 GB 00:00:32

成功克隆 ‘c02‘。

[[email protected] vdir]# virsh list --all
Id 名称 状态

  • c01 关闭
  • c02 关闭
    
    5.虚拟机快照
  • KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2,下面对c01创建快照。
    [[email protected] vdir]# virsh snapshot-create c01
    已生成域快照 1533777836
  • 查看虚拟机快照版本信息。
    [[email protected] vdir]# virsh snapshot-current c01
    <domainsnapshot>
    <name>1533777836</name>
    <state>shutoff</state>
    <creationTime>1533777836</creationTime>
    <memory snapshot=‘no‘/>
    <disks>
    .....省略
  • 查看快照信息
    [[email protected] vdir]# virsh snapshot-list c01
    名称               生成时间              状态
    ------------------------------------------------------------
    1533777836           2018-08-09 09:23:56 +0800 shutoff
  • 恢复虚拟机至指定的快照状态。
    [[email protected] vdir]# virsh snapshot-revert c01 1533777836

以上是关于KVM虚拟化之基本命令管理虚拟机的主要内容,如果未能解决你的问题,请参考以下文章

Linux之部署KVM虚拟化平台

KVM 虚拟机基本管理及常用命令

实操干货KVM命令管理虚拟机与性能优化

Linux下KVM虚拟机基本管理及常用命令(转)

虚拟化技术之kvm管理工具virsh常用基础命令

KVM命令集管理虚拟机