KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理。
1. 查看KVM虚拟机配置文件及运行状态
(1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/
autostart目录是配置kvm虚拟机开机自启动目录。
(2) virsh命令帮助
# virsh -help
或直接virsh命令和,再执行子命令。如下所示。
# virsh欢迎使用 virsh,虚拟化的交互式终端。
输入:'help' 来获得命令的帮助信息'quit' 退出
virsh # help……
(3) 查看kvm虚拟机状态
# virsh list --all
2. KVM虚拟机开机
# virsh start kvm008
3. KVM虚拟机关机或断电
(1) 关机
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。
在安装KVM linux虚拟机之前必须配置此服务。
# chkconfig acpid on# service acpid restart
virsh关机
# virsh shutdown kvm008
(2) 强制关闭电源
# virsh destroy kvm08
4. 通过配置文件启动虚拟机
# virsh create /etc/libvirt/qemu/kvm008.xml
5. 配置开机自启动虚拟机
# virsh autostart kvm008
autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。
6. 导出KVM虚拟机配置文件
虚拟机要关机 不然会操作 失败哦~
# virsh dumpxml/etc/libvirt/qemu/kvm008 > /etc/libvirt/qemu/kvm.xml
KVM虚拟机配置文件可以通过这种方式进行备份。
7. 添加与删除KVM虚拟机
(1) 删除kvm虚拟机
# virshundefinekvm008
说明:该命令只是删除kvm008的配置文件,并不删除虚拟磁盘文件。如下图所示。
(2) 重新定义虚拟机配置文件
通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。
# mv /etc/libvirt/qemu/kvm.xml /etc/libvirt/qemu/kvm008.xml
# virshdefine/etc/libvirt/qemu/kvm008.xml
8. 编辑KVM虚拟机配置文件
# virsh edit kvm08
virsh edit将调用vi命令编辑/etc/libvirt/qemu/kvm08.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。
可以但不建议直接通过vi编辑。
9. virsh console 控制台管理linux虚拟机
虚拟机要开机 才可以
# virsh console kvm08
10. 其它virsh命令
(1) 挂起服务器
# virsh suspend kvm08
(2) 恢复服务器
# virsh resume kvm08
virsh命令丰富。可以执行各种维护任务,本文只是从维护与管理的角度例举了常用的命令,为该命令的使用提供一个思路。
virsh 命令:
virsh # help
Grouped commands:
Domain Management (help keyword 'domain'):
attach-device 从一个XML文件附加装置
attach-disk 附加磁盘设备
attach-interface 获得网络界面
autostart 自动开始一个域
blkdeviotune Set or query a block device I/O tuning parameters.
blkiotune Get or set blkio parameters
blockcommit Start a block commit operation.
blockcopy Start a block copy operation.
blockjob Manage active block operations
blockpull Populate a disk from its backing p_w_picpath.
blockresize Resize block device of domain.
change-media Change media of CD or floppy drive
console 连接到客户会话
cpu-baseline compute baseline CPU
cpu-compare compare host CPU with a CPU described by an XML file
cpu-stats show domain cpu statistics
create 从一个 XML 文件创建一个域
define 从一个 XML 文件定义(但不开始)一个域
desc show or set domain's description or title
destroy destroy (stop) a domain
detach-device 从一个 XML 文件分离设备
detach-disk 分离磁盘设备
detach-interface 分离网络界面
domdisplay domain display connection URI
domhostname print the domain's hostname
domid 把一个域名或 UUID 转换为域 id
domif-setlink set link state of a virtual interface
domiftune get/set parameters of a virtual interface
domjobabort abort active domain job
domjobinfo domain job information
domname 将域 id 或 UUID 转换为域名
dompmsuspend suspend a domain gracefully using power management functions
dompmwakeup wakeup a domain from pmsuspended state
domuuid 把一个域名或 id 转换为域 UUID
domxml-from-native Convert native config to domain XML
domxml-to-native Convert domain XML to native config
dump 把一个域的内核 dump 到一个文件中以方便分析
dumpxml XML 中的域信息
edit 编辑某个域的 XML 配置
inject-nmi Inject NMI to the guest
send-key Send keycodes to the guest
managedsave managed save of a domain state
managedsave-remove Remove managed save of a domain
maxvcpus connection vcpu maximum
memtune Get or set memory parameters
migrate 将域迁移到另一个主机中
migrate-setmaxdowntime set maximum tolerable downtime
migrate-setspeed Set the maximum migration bandwidth
migrate-getspeed Get the maximum migration bandwidth
numatune Get or set numa parameters
reboot 重新启动一个域
reset reset a domain
restore 从一个存在一个文件中的状态恢复一个域
resume 重新恢复一个域
save 把一个域的状态保存到一个文件
save-p_w_picpath-define redefine the XML for a domain's saved state file
save-p_w_picpath-dumpxml saved state domain information in XML
save-p_w_picpath-edit edit XML for a domain's saved state file
schedinfo 显示/设置日程安排变量
screenshot take a screenshot of a current domain console and store it into a file
setmaxmem 改变最大内存限制值
setmem 改变内存的分配
setvcpus 改变虚拟 CPU 的号
shutdown 关闭一个域
start 开始一个(以前定义的)非活跃的域
suspend 挂起一个域
ttyconsole tty 控制台
undefine undefine a domain
update-device update device from an XML file
vcpucount domain vcpu counts
vcpuinfo detailed domain vcpu information
vcpupin control or query domain vcpu affinity
emulatorpin control or query domain emulator affinity
vncdisplay vnc 显示
Domain Monitoring (help keyword 'monitor'):
domblkerror Show errors on block devices
domblkinfo domain block device size information
domblklist list all domain blocks
domblkstat 获得域设备块状态
domcontrol domain control interface state
domif-getlink get link state of a virtual interface
domiflist list all domain virtual interfaces
domifstat 获得域网络接口状态
dominfo 域信息
dommemstat get memory statistics for a domain
domstate 域状态
list 列出域
Host and Hypervisor (help keyword 'host'):
capabilities 性能
freecell NUMA可用内存
hostname 打印管理程序主机名
node-memory-tune Get or set node memory parameters
nodecpustats Prints cpu stats of the node.
nodeinfo 节点信息
nodememstats Prints memory stats of the node.
nodesuspend suspend the host node for a given time duration
qemu-attach QEMU Attach
qemu-monitor-command QEMU Monitor Command
qemu-agent-command QEMU Guest Agent Command
sysinfo print the hypervisor sysinfo
uri 打印管理程序典型的URI
version 显示版本
Interface (help keyword 'interface'):
iface-begin create a snapshot of current interfaces settings, which can be later committed (iface-commit) or restored (iface-rollback)
iface-bridge create a bridge device and attach an existing network device to it
iface-commit commit changes made since iface-begin and free restore point
iface-define define (but don't start) a physical host interface from an XML file
iface-destroy destroy a physical host interface (disable it / "if-down")
iface-dumpxml interface information in XML
iface-edit edit XML configuration for a physical host interface
iface-list list physical host interfaces
iface-mac convert an interface name to interface MAC address
iface-name convert an interface MAC address to interface name
iface-rollback rollback to previous saved configuration created via iface-begin
iface-start start a physical host interface (enable it / "if-up")
iface-unbridge undefine a bridge device after detaching its slave device
iface-undefine undefine a physical host interface (remove it from configuration)
Network Filter (help keyword 'filter'):
nwfilter-define define or update a network filter from an XML file
nwfilter-dumpxml network filter information in XML
nwfilter-edit edit XML configuration for a network filter
nwfilter-list list network filters
nwfilter-undefine undefine a network filter
Networking (help keyword 'network'):
net-autostart 自动开始网络
net-create 从一个 XML 文件创建一个网络
net-define 从一个 XML 文件定义(但不开始)一个网络
net-destroy destroy (stop) a network
net-dumpxml XML 中的网络信息
net-edit 为网络编辑 XML 配置
net-info network information
net-list 列出网络
net-name 把一个网络UUID 转换为网络名
net-start 开始一个(以前定义的)不活跃的网络
net-undefine 取消定义一个非活跃的网络
net-update update parts of an existing network's configuration
net-uuid 把一个网络名转换为网络UUID
Node Device (help keyword 'nodedev'):
nodedev-create create a device defined by an XML file on the node
nodedev-destroy destroy (stop) a device on the node
nodedev-detach detach node device from its device driver
nodedev-dumpxml XML 中的节点设备详情
nodedev-list 这台主机中中的枚举设备
nodedev-reattach reattach node device to its device driver
nodedev-reset 重置节点设备
Secret (help keyword 'secret'):
secret-define define or modify a secret from an XML file
secret-dumpxml secret attributes in XML
secret-get-value Output a secret value
secret-list list secrets
secret-set-value set a secret value
secret-undefine undefine a secret
Snapshot (help keyword 'snapshot'):
snapshot-create Create a snapshot from XML
snapshot-create-as Create a snapshot from a set of args
snapshot-current Get or set the current snapshot
snapshot-delete Delete a domain snapshot
snapshot-dumpxml Dump XML for a domain snapshot
snapshot-edit edit XML for a snapshot
snapshot-info snapshot information
snapshot-list List snapshots for a domain
snapshot-parent Get the name of the parent of a snapshot
snapshot-revert Revert a domain to a snapshot
Storage Pool (help keyword 'pool'):
find-storage-pool-sources-as 找到潜在存储池源
find-storage-pool-sources 发现潜在存储池源
pool-autostart 自动启动某个池
pool-build 建立池
pool-create-as 从一组变量中创建一个池
pool-create 从一个 XML 文件中创建一个池
pool-define-as 在一组变量中定义池
pool-define 在一个 XML 文件中定义(但不启动)一个池
pool-delete 删除池
pool-destroy destroy (stop) a pool
pool-dumpxml XML 中的池信息
pool-edit 为存储池编辑 XML 配置
pool-info 存储池信息
pool-list 列出池
pool-name 将池 UUID 转换为池名称
pool-refresh 刷新池
pool-start 启动一个(以前定义的)非活跃的池
pool-undefine 取消定义一个不活跃的池
pool-uuid 把一个池名称转换为池 UUID
Storage Volume (help keyword 'volume'):
vol-clone clone a volume.
vol-create-as 从一组变量中创建卷
vol-create 从一个 XML 文件创建一个卷
vol-create-from create a vol, using another volume as input
vol-delete 删除卷
vol-download download volume contents to a file
vol-dumpxml XML 中的卷信息
vol-info 存储卷信息
vol-key returns the volume key for a given volume name or path
vol-list 列出卷
vol-name returns the volume name for a given volume key or path
vol-path returns the volume path for a given volume name or key
vol-pool returns the storage pool for a given volume key or path
vol-resize resize a vol
vol-upload upload file contents to a volume
vol-wipe wipe a vol
Virsh itself (help keyword 'virsh'):
cd change the current directory
connect 连接(重新连接)到 hypervisor
echo echo arguments
exit 退出这个非交互式终端
help 打印帮助
pwd print the current directory
quit 退出这个非交互式终端