KVM虚拟机的常用操作命令整理


    1,创建虚拟机
    复制代码
    代码如下:
    [root@localhost ~]# virt-install --name=centos1 \ #生成一个虚拟机
    --ram 1024 --vcpus=1 \
    --disk path=/root/centos1.img,size=10 \
    --accelerate --cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \
    --graphics vnc,port=5921 --network bridge=br0
    2,virsh的其他操作
    复制代码
    代码如下:
    [root@localhost /]# virsh start centos1 #启动虚拟机
    [root@localhost /]# virt-viewer centos1 #如果有图形界面的话,可以进入虚拟机的界面
    [root@localhost ~]# virsh shutdown centos1 #关闭虚拟机
    [root@localhost /]# virsh reboot centos1 #重启虚拟机
    [root@localhost /]# virsh suspend centos1 #暂停虚拟机
    [root@localhost /]# virsh resume centos1 #恢复虚拟机
    [root@localhost /]# virsh autostart centos1 #自动加载虚拟机
    virsh参数如下:
    autostart         #自动加载指定的一个虚拟机 
    connect           #重新连接到hypervisor 
    console           #连接到客户会话 
    create            #从一个SML文件创建一个虚拟机 
    start             #开始一个非活跃的虚拟机 
    destroy           #删除一个虚拟机 
    define            #从一个XML文件定义一个虚拟机 
    domid             #把一个虚拟机名或UUID转换为ID 
    domuuid           #把一个郁闷或ID转换为UUID 
    dominfo           #查看虚拟机信息 
    domstate          #查看虚拟机状态 
    domblkstat        #获取虚拟机设备快状态 
    domifstat         #获取虚拟机网络接口状态 
    dumpxml           #XML中的虚拟机信息 
    edit              #编辑某个虚拟机的XML文件 
    list              #列出虚拟机 
    migrate           #将虚拟机迁移到另一台主机 
    quit              #退出非交互式终端 
    reboot            #重新启动一个虚拟机 
    resume            #重新恢复一个虚拟机 
    save              #把一个虚拟机的状态保存到一个文件 
    dump              #把一个虚拟机的内核dump到一个文件中以方便分析 
    shutdown          #关闭一个虚拟机 
    setmem            #改变内存的分配 
    setmaxmem         #改变最大内存限制值 
    suspend           #挂起一个虚拟机 
    vcpuinfo          #虚拟机的cpu信息 
    version           #显示virsh版本 
    3,virt-clone,如果我们要建几个一样的虚拟机,这个命令,非常有用
    复制代码
    代码如下:
    # virt-clone --connect=qemu:///system -o centos1 -n centos3 -f /root/centos3.img #克隆centos1
    正在克隆 centos1.img | 10.0 GB 00:07
    Clone 'centos3' created successfully.
    libguestfs-tools是虚拟机一个管理包,很有用的工具
    [root@localhost ~]# yum -y install libguestfs-tools #安装工具包
    4,未登录的情况下,查看镜像目录
    复制代码
    代码如下:
    [root@localhost ~]# virt-ls centos.img /home #查看centos.img镜像文件中/home目录
    tank
    5,未登录的情况下,将镜像文件中的文件copy出来
    复制代码
    代码如下:
    [root@localhost ~]# virsh list --all #查看所有的虚拟机名称
     Id 名称 状态
    ----------------------------------------------------
     1 centos1 running
     2 centos6.5 running
     - arch 关闭
     - arch1 关闭
     - arch2 关闭
     - arch3 关闭
     - arch5 关闭
     - centos3 关闭
     - ubuntu 关闭
     - ubuntu1 关闭
    [root@localhost ~]# virt-copy-out -d centos1 /etc/passwd /tmp #将centos1中的文件copy到tmp下面
    6,查看虚拟机的分区情况
    复制代码
    代码如下:
    [root@localhost ~]# virt-filesystems -d centos1
    /dev/sda1
    /dev/VolGroup/lv_root
    [root@localhost ~]# virt-list-partitions /root/centos.img
    /dev/sda1
    /dev/sda2
    [root@localhost ~]# virt-df centos.img
    Filesystem 1K-blocks Used Available Use%
    centos.img:/dev/sda1 495844 34510 435734 7%
    centos.img:/dev/VolGroup/lv_root 8780808 2842056 5492700 33%
    7,mount虚拟机
    复制代码
    代码如下:
    [root@localhost ~]# guestmount -a /root/centos.img -m /dev/VolGroup/lv_root --rw /mnt/usb
    [root@localhost ~]# cd /mnt/usb/
    [root@localhost usb]# ls
    bin dev home lib64 media mnt opt root selinux sys usr
    boot etc lib lost+found misc net proc sbin srv tmp var
    8,修改kvm中虚拟机的内存大小
    复制代码
    代码如下:
    [root@nfs ~]# virsh edit vm01 ##注意vi直接编辑不生效
    
    vm01
    df8604c1-dcf3-fa98-420f-6eea7b39c395
    1048576 ###本来开始设置为1G,现在这个单位是k
    1048576
    修改为1.5G
    复制代码
    代码如下:
    [root@nfs ~]# expr 1536 \* 1024
    1572864</p> <p>[root@nfs ~]# virsh list
     Id Name State
    ----------------------------------
    1 win2003 running
    3 vm01 running</p> <p>[root@nfs ~]# virsh shutdown vm01 ###修改配置文件后需要重新启动下虚拟机,先关闭它
    Domain vm01 is being shutdown</p> <p>[root@nfs ~]# virsh list ###确认已经被关闭
     Id Name State
    ----------------------------------
    1 win2003 running</p> <p>[root@nfs ~]# virsh start vm01 ###启动它
    Domain vm01 started</p> <p>[root@nfs ~]# virsh list
     Id Name State
    ----------------------------------
    1 win2003 running
    3 vm01 running
    到机器上查看内存大小:
    复制代码
    代码如下:
    [root@vm01 liuxiaojie]# free -m
     total used free shared buffers cached
    Mem: 1505 618 886 0 29 361
    -/+ buffers/cache: 227 1277
    Swap: 2000 0 2000
    9,删除一个虚拟机(vm01)
    复制代码
    代码如下:
    [root@nfs qemu]# virsh undefine vm01
    [root@nfs qemu]# rm -f /home/data/vm01.img
    10,删除一个域
    复制代码
    代码如下:
    [root@nfs web01]# virsh list --all
     Id Name                 State
    ----------------------------------
      1 web01                running  ##处于工作状态
      - myweb01              shut off
      - myweb03              shut off
      - mywin2003            shut off
      - myxp                 shut off
      - xp                   shut off
    复制代码
    代码如下:
    [root@nfs web01]# virsh undefine web01 ##处于工作状态也能删除!
    Domain web01 has been undefined
    复制代码
    代码如下:
    [root@nfs web01]# virsh list
     Id Name                 State
    ----------------------------------
      1 web01                running
    复制代码
    代码如下:
    [root@nfs web01]# virsh destroy web01
    Domain web01 destroyed
    复制代码
    代码如下:
    [root@nfs web01]# virsh list --all ##web01已经没有了!
     Id Name                 State
    ----------------------------------
      - myweb01              shut off
      - myweb03              shut off
      - mywin2003            shut off
      - myxp                    shut off
      - xp                        shut off
    复制代码
    代码如下:
    [root@nfs web01]# virsh define web01
    error: Failed to open file 'web01': No such file or directory