KVM 常用命令 1.查看vm运行状况 virsh list 列出所有在运行的VM virsh list –all 列出节点所有VM virsh dominfo < vm名字> 显示VM的基本信息 virsh dumpxml < vm名字> 显示VM的当前xml配置文件

2.改变VM状态 virsh start < vm名字> 启动VM virsh reset < vm名字> 重启VM virsh shutdown < vm名字> 关闭VM 调用系统关机 virsh destroy < vm名字> 强制关闭VM virsh suspend < vm名字> 暂停VM virsh resume < vm名字> 恢复暂停VM

3.创建VM与编辑VM配置 visrh define < vm配置文件> 通过配置文件定义一个VM virsh undefine < vm名字> 删除VM 其中virsh undefine –help 可以查看有更多的参数删除VM的 virsh edit < vm名字> 编辑VM配置文件

简单的vm配置文件如下: < domain type=’kvm’>

< name>test_Ubuntu <

ame> //虚拟机名称

< memory unit=’KiB’>2097152 < /memory> //最大内存,单位Kib

< currentMemory unit=’KiB’>2097152 < /currentMemory> //可用内存,单位Kib

< vcpu>8 < /vcpu> //虚拟cpu个数

< os>

< type arch=’x86_64’ machine=’rhel6.2.0’>hvm < /type>

< boot dev=’cdrom’/> // 光盘启动为首选启动项

< boot dev=’hd’/> // 硬盘启动为次要启动项

< /os>

< features>

< acpi/>

< apic/>

< pae/>

< /features>

< clock offset=’localtime’/>

< on_poweroff>destroy < /on_poweroff>

< on_reboot>restart < /on_reboot>

< on_crash>destroy < /on_crash>

< devices>

< emulator>/usr/libexec/qemu-kvm < /emulator>

< disk type=’file’ device=’disk’>

< driver name=’qemu’ type=’qcow2’/>

< source file=’/var/lib/libvirt/images/test.qcow2’/> //目的镜像路径

< target dev=’hda’ bus=’ide’/> //bus值还可以设置为virtio

< /disk>

< disk type=’file’ device=’cdrom’>

< source file=’/var/lib/libvirt/images/ubuntu.iso’/> //光盘镜像路径

< target dev=’hdb’ bus=’ide’/>

< /disk>

< interface type=’bridge’> //虚拟机网络连接方式

< source bridge=’kvmbr0’/> //当前主机网桥的名称

< mac address=”00:16:3e:5d:aa:a8”/> //为虚拟机分配mac地址,务必唯一

< /interface>

< input type=’mouse’ bus=’ps2’/>

< graphics type=’vnc’ port=’-1’ listen = ‘0.0.0.0’ keymap=’en-us’/>//vnc方式登录,端口号自动分配,自动加1,可以通过virsh vncdisplay来查询

< /devices> < /domain> 4.vnc连接vm virsh vncdisplay < vm名字> 显示VNC端口,如:9 VNC连接时候vnc端口就是5900+9 即5909

5.在线迁移 virsh migrate –persistent –undefinesource –live –unsafe < vm名字> qemu+tcp:// < 目标机名或IP地址>/system 其中参数 –live 是热迁移 –unsafe 即使迁移过程是不安全的也要迁移 (个人理解) –persistent 一般迁移到新机后,如果关闭VM,这个VM就会被删除,使用这个选项是在新机上永久保留这个VM –undefinesource 迁移后在原来的机器删除VM –copy-storage-all 将VM的虚拟磁盘文件也复制到新机器里,这对于非共享存储的迁移很有用,但速度很慢

6.vm网卡管理 virsh domiflist < vm名字> 查看vm网卡信息 attach-interface < vm名字> –type bridge –source < sourcename> 临时添加一个网卡 visrh domif-setlink < vm名字> < 网卡mac地址> < up|down> 禁用和启动vm的网卡 限制VM带宽 virsh domiftune < vm名称> < 网卡MAC地址> –live –config –inbound -1, < 峰值KByte/s>, < 突发值KByte/s> virsh domiftune < vm名称> < 网卡MAC地址> –live –config –outbound -1, < 峰值KByte/s>, < 突发值KByte/s>

7.快照备份 virsh snapshot-create-as –domain < VM名字> –name < 快照名> –no-metadata virsh snapshot-list < vm名字> 列出存储设备 virsh domblklist < vm名字> 8.挂载或卸载光盘 挂载或变更光盘iso virsh attach-disk < vm名字> < iso地址> < 设备名如hda> –mode readonly –type cdrom 卸载光盘iso virsh attach-disk < vm名字> “ “ < 设备名如hda> –mode readonly –type cdrom

9.动态挂载或卸载硬盘 动态挂载硬盘 virsh attach-disk < VM名字> < 硬盘绝对路径> vdb –driver qemu –subdriver qcow2 动态卸载硬盘 virsh detach-disk < vm名字> < 设备名如hda>

  1. qemu-img 修改硬盘 qemu info < 硬盘路径> 查看磁盘的内容 qemu-img create -f < qcow2|raw> < 硬盘路径> < size> 创建硬盘 qemu-img create -f < qcow2|raw> < 硬盘路径> -b < 基本盘路径> 派生创建硬盘 qemu-img resize < 硬盘路径> < 新的硬盘容量> 修改硬盘的容量大小只能增加不能减少容量,另外还必须destroy后开机才能显示 qemu-img snapshot -l < 硬盘路径> 列出快照 qemu-img snapshot -a < 快照TAG名字> < 硬盘路径> 应用一个快照 qemu-img snapshot -d < 快照TAG名字> < 硬盘路径> 删除一个快照 qemu-img convert -f < 旧磁盘格式:qcow2|raw|vmdk|vpc|vdi> -O < 新磁盘格式:qcow2|raw|vmdk|vpc|vdi> < 旧文件> < 新文件> 转换硬盘的格式

11.重启KVM服务 service libvirtd restart