attach-device 从XML文件附加设备
attach-disk 附加磁盘设备
attach-interface 连接网络接口
autostart 自动启动一个域
blkdeviotune 设置或查询块设备I/O调整参数。
blkiotune 获取或设置blkio参数
blockcommit 开始块提交操作。
blockcopy 开始一个块复制操作。
blockjob 管理活动的块操作
blockpull 从其背景图像填充磁盘。
blockresize 调整域的块设备。
change-media 更换CD或软驱的媒体
console 连接到访客控制台
cpu-baseline 计算基准CPU
cpu-compare 比较主机CPU和由XML文件描述的CPU
cpu-stats 显示域的CPU统计信息
create 从XML文件创建一个域
define 从XML文件中定义(但不要启动)域
desc 显示或设置域的描述或标题
destroy 摧毁(停止)一个域名
detach-device 从XML文件中分离设备
detach-disk 分离磁盘设备
detach-interface 分离网络接口
domdisplay 域显示连接URI
domfsfreeze 冻结域的挂载文件系统。
domfsthaw 解冻域的安装文件系统。
domfsinfo 获取域安装的文件系统的信息。
domfstrim 在域的挂载文件系统上调用fstrim。
domhostname 打印域的主机名
domid 将域名或UUID转换为域ID
domif-setlink 设置虚拟接口的链路状态
domiftune 获取/设置虚拟接口的参数
domjobabort 中止活动的域名工作
domjobinfo 域名工作信息
domname 将域ID或UUID转换为域名
domrename 重命名一个域
dompmsuspend 使用电源管理功能优雅地暂停域
dompmwakeup 从pmsuspended状态唤醒一个域
domuuid 将域名或ID转换为域UUID
domxml-from-native 将本地配置转换为域XML
domxml-to-native 将域XML转换为本地配置
dump 将域的核心转储到文件进行分析
dumpxml XML中的域信息
edit 编辑域的XML配置
event 域名事件
inject-nmi 向客人注入NMI
iothreadinfo 查看域名IOThreads
iothreadpin 控制域IOThread亲和力
iothreadadd 将IOThread添加到来宾域
iothreaddel 从来宾域中删除一个IOThread
send-key 将密钥发送给客人
send-process-signal 发送信号给进程
lxc-enter-namespace LXC访客输入名称空间
managedsave 管理域名状态保存
managedsave-remove 删除管理的域名保存
memtune 获取或设置内存参数
perf 获取或设置perf事件
metadata 显示或设置域的自定义XML元数据
migrate 将域迁移到其他主机
migrate-setmaxdowntime 设置最大可容忍的停机时间
migrate-compcache 获取/设置压缩缓存大小
migrate-setspeed 设置最大迁移带宽
migrate-getspeed 获得最大的迁移带宽
migrate-postcopy 切换运行从预复制到后复制的迁移
numatune 获取或设置numa参数
qemu-attach QEMU附件
qemu-monitor-command QEMU监视器命令
qemu-monitor-event QEMU监控事件
qemu-agent-command QEMU访客代理命令
reboot 重新启动一个域
reset 重置一个域
restore 从文件中保存的状态恢复域
resume 恢复一个域名
save 将域状态保存到文件
save-image-define 重新定义一个域的保存状态文件的XML
save-image-dumpxml 保存XML中的状态域信息
save-image-edit 编辑域的已保存状态文件的XML
schedinfo 显示/设置调度程序参数
screenshot 截取当前的域控制台并将其存储到文件中
set-user-password 在域内设置用户密码
setmaxmem 改变最大内存限制
setmem 改变内存分配
setvcpus 更改虚拟CPU的数量
shutdown 正常关闭域
start 启动一个(以前定义的)非活动域
suspend 暂停域名
ttyconsole tty控制台
undefine 取消定义一个域
update-device 从XML文件更新设备
vcpucount 域的vcpu数量
vcpuinfo 详细的域名vcpu信息
vcpupin 控制或查询域vcpu亲和力
emulatorpin 控制或查询域模拟器亲和力
vncdisplay vnc显示
guestvcpus 查询或修改guest虚拟机中的vcpu状态(通过代理)
setvcpu 附加/分离vcpu或线程组
domblkthreshold 为给定块设备或其支持链元素设置块阈值事件的阈值
通过 virsh 管理虚拟机,虚拟机的状态显示为以下几种:
runing 是运行状态
idel 是空闲状态
pause 暂停状态
shutdown 关闭状态
crash 虚拟机崩坏状态
daying 垂死状态
shut off 不运行完全关闭
pmsuspended客户机被关掉电源中中断
首先看下 create 和 define 创建虚拟机异同:
create 创建虚拟机
[[email protected] ~]#virsh list --all
Id Name State
----------------------------------------------------
76 centos running
[[email protected] ~]#virsh create cirros.xml
Domain cirros created from cirros.xml
[[email protected] ~]#virsh list --all
Id Name State
----------------------------------------------------
76 centos running
79 cirros running
define 创建虚拟机
[[email protected] ~]#virsh list --all
Id Name State
----------------------------------------------------
76 centos running
[[email protected] ~]#virsh define cirros.xml
Domain cirros defined from cirros.xml
[[email protected] ~]#virsh list --all
Id Name State
----------------------------------------------------
76 centos running
- cirros shut off
create 是通过 xml 格式文件创建虚拟机,创建完毕启动。当关闭虚拟机时,create创建的虚拟机消失。
define 是通过 xml 格式文件创建虚拟机,创建完毕不启动。当关闭虚拟机时,define 在 list 中依然能查看到。
开启、重启、关闭虚拟机
开启:
virsh start domain
重启:
virsh reboot domain
关闭:
virsh shutdown domain - 正常关闭虚拟机
virsh destroy domain - 直接断电关闭虚拟机
cpu-stats 宿主机和虚拟机cpu 运行时间状态
[[email protected] ~]#virsh cpu-stats centos
CPU0:
cpu_time 131.344620748 seconds
vcpu_time 78.559064700 seconds
CPU1:
cpu_time 145.769793063 seconds
vcpu_time 81.011781142 seconds
CPU2:
cpu_time 132.633396527 seconds
vcpu_time 12.782286092 seconds
CPU3:
cpu_time 49.708745382 seconds
vcpu_time 11.473885669 seconds
Total:
cpu_time 459.456555720 seconds
user_time 8.220000000 seconds
system_time 17.180000000 seconds
vcpucount 查看虚拟机 vcpu 的配置数量
[[email protected] ~]#virsh vcpucount centos
maximum config 2
maximum live 2
current config 2
current live 2
vcpuinfo 查看 vcpu 详细信息,vcpu0 运行在宿主机的 cpu0 上。
[[email protected] ~]#virsh vcpuinfo cirros
VCPU: 0
CPU: 3
State: running
CPU time: 8.1s
CPU Affinity: yyyy
1.3.1 vcpu 亲和性绑定
使用 virsh vcpuinfo 命令查看实例 vcpu 和 物理 cpu 的对应关系
[[email protected] ~]#virsh vcpuinfo cirros
VCPU: 0
CPU: 2
State: running
CPU time: 3.5s
CPU Affinity: yyyy
VCPU: 1
CPU: 3
State: running
CPU time: 1.0s
CPU Affinity: yyyy
可以发现, vcpu0 绑定到物理 cpu2 上, vcpu1 绑定到物理 cpu3 上。
使用 emulatorpin 命令可以查看虚拟机可以使用哪些物理逻辑 cpu
[[email protected] ~]#virsh emulatorpin cirros
emulator: CPU Affinity
----------------------------------
*: 0-3
宿主机本身有 4个 cpu。 意味着 cirros 虚拟机可以随意在这 4个cpu上切换。
在线绑定虚拟机 cpu
可以强制将虚拟机绑定到一个 cpu 区间。例如,将虚拟机 cirros 的 vcpu 绑定在 1-3 区间调度。
[[email protected] ~]#virsh emulatorpin cirros 1-3
[[email protected] ~]#virsh emulatorpin cirros
emulator: CPU Affinity
----------------------------------
*: 1-3
这样,就绑定了虚拟机在 1-3 cpu 区间之类切换。
上面是为虚拟机设置一个物理 cpu 区间,如果要一对一绑定就需要使用 vcpupin
[[email protected] ~]#virsh vcpuinfo cirros
VCPU: 0
CPU: 3
State: running
CPU time: 3.6s
CPU Affinity: yyyy
VCPU: 1
CPU: 2
State: running
CPU time: 1.0s
CPU Affinity: yyyy
# 将vcpu0 绑定到 cpu0
[[email protected] ~]#virsh vcpupin cirros 0 0
# 将 vcpu1 绑定到 cpu1
[[email protected] ~]#virsh vcpupin cirros 1 1
[[email protected] ~]#virsh vcpuinfo cirros
VCPU: 0
CPU: 0
State: running
CPU time: 3.6s
CPU Affinity: y---
VCPU: