KVM常用操作

  1. 查看虚拟机列表

    $ virsh list --all

  2. 编辑虚拟机配置文件

    $ virsh edit vm1

    可以通过mac地址联合arp -a查找虚拟机ip

    1
    2
    3
    4
    5
    6
    <interface type='bridge'>
    <mac address='52:54:00:60:e9:32'/>
    <source bridge='br0'/>
    <model type='rtl8139'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
  3. 启动虚拟机

    $ virsh start vm1

  4. 查看虚拟机信息

    $ virsh dominfo vm1

  5. 查看虚拟机cpu信息

    $ virsh vcpuinfo vm1

  6. 关闭虚拟机

    $ virsh shutdown vm1

    KVM虚拟机默认是无法用virsh shutdown|reboot的,如果要想使用该命令,则必须在kvm虚拟机上安装acpid acpid-sysvinit两个包,启动acpid服务,并且设置随机启动

    $ virsh destroy vm1

    强制关机

  7. 重启虚拟机

    $ virsh reboot vm1

  8. 删除虚拟机

    $ virsh undefine vm1

  9. 挂起/恢复虚拟机

    $ virsh suspend vm1

    $ virsh resume vm1

  10. 设置虚拟机自动启动

    $ virsh autostart vm1

  11. 关闭虚拟机自动启动

    $ virsh autostart --disable vm1

  12. 登陆虚拟机控制台

    $ virsh console vm1

    只对指定了console的虚机才管用

    退出: ctrl + ]

  13. 将iso镜像挂载到cdrom光驱(即时生效)

    $ virsh attach-disk vm1 iso_file_path hdc --type cdrom --mode readonly

  14. 增加新的网卡

    $ virsh attach-interface vm1 --type bridge --source br1 --model virtio

  15. 查看支持的cpu类型

    $ kvm -cpu \?

  16. 虚拟机批量管理脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #! /bin/sh
    # /etc/init.d/recall
    #

    # Some things that run always
    touch /var/lock/recall

    # Carry out specific functions when asked to by the system
    case "$1" in
    start)
    shift

    waits=0
    # /var/run/libvirt/libvirt-sock
    sockf=/var/run/libvirt/libvirt-sock
    while ! test -e $sockf; do
    waits=$((waits+1))
    echo "Waiting for $sockf" $waits $@
    [ $waits -ge 60 ] && break
    sleep 1
    done

    # set default list
    [ $# -eq 0 ] && set -- vm1 vm2 vm3
    echo "List:" $# [$@]

    while [ $# -ge 1 ]; do
    ( ! virsh list | grep "$1" > /dev/null ) && echo 'Starting' $# [$1] && virsh start $1 && sleep 1
    shift
    done
    virsh list --all
    echo "Started.\n"
    ;;

    stop)
    shift
    while [ $# -ge 1 ]; do
    ( virsh list | grep "$1" > /dev/null ) && echo 'Stopping' $# [$1] && virsh destroy $1 && sleep 1
    shift
    done
    virsh list --all
    echo "Stopped.\n"
    ;;

    *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;

    esac

    exit 0

参考资料:
kvm 使用入门详解
KVM之五:KVM日常管理常用命令
kvm 四种简单的网络模型
KVM-网络配置