KVM-6、virsh 命令及功能详解

1. 虚拟机管理操作

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              为给定块设备或其支持链元素设置块阈值事件的阈值

1.1 虚拟机状态

通过 virsh 管理虚拟机,虚拟机的状态显示为以下几种:

runing 是运行状态
idel 是空闲状态
pause 暂停状态
shutdown 关闭状态
crash 虚拟机崩坏状态
daying 垂死状态
shut off 不运行完全关闭
pmsuspended客户机被关掉电源中中断

1.2 虚拟机的创建、开机、重启、关机

首先看下 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 - 直接断电关闭虚拟机

1.3 虚拟机 CPU 的操作

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:           

你可能感兴趣的:(docker,k8s,linux,KVM,运维)