kvm虚拟机日常操作命令梳理

KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理。废话不多说,下面列出kvm日常管理中的命令

1)查看KVM虚拟机配置文件及运行状态KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/autostart目录是配置kvm虚拟机开机自启动目录。 virsh命令帮助# virsh -help或直接virsh命令和,再执行子命令。如下所示。# virsh欢迎使用 virsh,虚拟化的交互式终端。输入:'help' 来获得命令的帮助信息'quit' 退出virsh # help....... 查看kvm虚拟机状态#virsh list --all 2)KVM虚拟机开机# virsh start oeltest01 3)KVM虚拟机关机或断电关机默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。# chkconfig acpid on# service acpid restartvirsh关机# virsh shutdown oeltest01 强制关闭电源# virsh destroy wintest01 4)通过配置文件启动虚拟机# virsh create /etc/libvirt/qemu/wintest01.xml 5)配置开机自启动虚拟机# virsh autostart oeltest01 autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。 6)导出KVM虚拟机配置文件# virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml KVM虚拟机配置文件可以通过这种方式进行备份。 7)添加与删除KVM虚拟机删除kvm虚拟机# virsh undefine wintest01说明:该命令只是删除wintest01的配置文件,并不删除虚拟磁盘文件。 重新定义虚拟机配置文件通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。# mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml# virsh define /etc/libvirt/qemu/wintest01.xml 8)编辑KVM虚拟机配置文件# virsh edit wintest01virsh edit将调用vi命令编辑/etc/libvirt/qemu/wintest01.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。可以但不建议直接通过vi编辑。# vim /etc/libvirt/qemu/wintest01.xml 9)irsh console 控制台管理linux虚拟机配置virsh console见下文kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置# virsh console oeltest01 10)其它virsh命令挂起服务器# virsh suspend oeltest01 恢复服务器# virsh resume oeltest01 virsh命令丰富。可以执行各种维护任务,本文只是从维护与管理的角度例举了常用的命令,为该命令的使用提供一个思路。  -------------------------------------------其他命令-------------------------------------------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        #重新连接到hypervisorconsole        #连接到客户会话create         #从一个SML文件创建一个虚拟机start          #开始一个非活跃的虚拟机destroy        #删除一个虚拟机define         #从一个XML文件定义一个虚拟机domid          #把一个虚拟机名或UUID转换为IDdomuuid        #把一个郁闷或ID转换为UUIDdominfo        #查看虚拟机信息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 running2 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.imgFilesystem 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]# lsbin dev home lib64 media mnt opt root selinux sys usrboot etc lib lost+found misc net proc sbin srv tmp var 8)修改kvm中虚拟机的内存大小[root@nfs ~]# virsh edit vm01 ##注意vi直接编辑不生效vm01df8604c1-dcf3-fa98-420f-6eea7b39c3951048576 ###本来开始设置为1G,现在这个单位是k1048576 修改为1.5G[root@nfs ~]# expr 1536 \* 10241572864</p> <p>[root@nfs ~]# virsh listId Name State----------------------------------1 win2003 running3 vm01 running[root@nfs ~]# virsh shutdown vm01         ###修改配置文件后需要重新启动下虚拟机,先关闭它Domain vm01 is being shutdown>[root@nfs ~]# virsh list                 ###确认已经被关闭Id Name State----------------------------------1 win2003 running[root@nfs ~]# virsh start vm01 ###启动它Domain vm01 started[root@nfs ~]# virsh listId Name State----------------------------------1 win2003 running3 vm01 running 到机器上查看内存大小:[root@vm01 liuxiaojie]# free -mtotal used free shared buffers cachedMem: 1505 618 886 0 29 361-/+ buffers/cache: 227 1277Swap: 2000 0 2000 9)删除一个虚拟机(vm01),可以删除一个状态为“shut off”的虚拟机[root@nfs qemu]# virsh undefine vm01[root@nfs qemu]# rm -f /home/data/vm01.img 10)删除一个域[root@nfs web01]# virsh list --allId 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 listId Name State----------------------------------1 web01 running[root@nfs web01]# virsh destroy web01Domain 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 web01error: Failed to open file 'web01': No such file or directory -------------------------------------------virsh相关命令-------------------------------------------1)安装libvirt#yum install kvm virt-* libvirt2)检查是否安装成功#lsmod |grep kvm3)相关命令#virsh -c qemu:#/system list#virsh list#virsh list --all                  #查看所有状态的虚拟机#virsh shutdown myWin7             #关闭myWin7虚拟机#virsh destroy myWin7          #删除myWin7虚拟机#virsh start node4                     #开机虚拟机#virsh define /etc/libvirt/qemu/node5.xml        #根据主机配置文档添加虚拟机#virsh dumpxml node4 > /etc/libvirt/qemu/node6.xml      #将node4虚机的配置文件保存至node6.xml#virsh edit node6             #修改node6的配置文件#virsh suspend vm_name          #暂停虚拟机#virsh resume vm_name          #恢复虚拟机4)vm配置文件路径/etc/libvirtd/qemu/***.xml 可以通过vim对配置文件进行管理,编辑后需要#service libvirtd restart(不会对现有VM有影响。)
©著作权归作者所有:来自51CTO博客作者80民工的原创作品,如需转载,请注明出处,否则将追究法律责任