KVM虚拟化学习总结
虚拟化技术介绍
什么是虚拟化
在计算机技术中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的 各自实体资源。予以抽象、转换后呈现出来并可供分割、组合为一个或多个计算机配置环境,并重新分割、重新组合、以达到最大化合理利用物理资源的目的;
虚拟化的优势
- 降低硬件设备资金成本和运维成本;
- 最大限度的减少或消除停机;
- 提高IT部门的工作效率、效益、敏捷性和响应能力。
- 加快应用和资源的调配速度;
- 提高业务连续性和灾难恢复能力
什么是虚拟机
虚拟机计算机也称为虚拟机(VM、Virtual Machine),它是一种严密隔离且内含操作系统和应用的软件容器。每个自暴寒虚拟机都是完全独立的。用过将多台虚拟机放置在一台宿主机上,可仅在一台物理服务器或“主机”上运行多个操作系统和多种应用,名为“hyperVisor”的精简软件层可将虚拟机和主机分离开来,并根据需要为每个虚拟机动态分配计算资源。
虚拟机的主要特性
特性名称 | 说明 |
共享硬件 | 可在一台物理机上运行多个操作系统;可在虚拟机之间分配系统硬件资源; |
相互隔离 | 各虚拟机相互隔离互补影响; |
封装 | 可将虚拟机的完整状态保存在文件中;移动和复制虚拟机就如移动文件般轻松; |
独立于硬件 | 可将任意虚拟机调配或迁移到其他服务器上; |
虚拟化分类
服务器虚拟化
- 服务器虚拟化支持将多个擦欧总系统作为搞笑的虚拟机在单个物理服务器上运行,主要优势:
- 提升IT效率
- 降低运维成本
- 更快的部署工作负载
- 提高应用性能
- 提高服务器的可用性
- 消除服务器数量剧增情况和复杂性
网络虚拟化
- 通过软件定义网络,即网络的创建不在依赖于物理设备,如公有云厂商允许用户自己创建新的网络,在kubernetes、opennstack等平台中都会使用到网络虚拟化技术;
桌面虚拟化
- 桌面部署为代管服务使IT组织能够更快的响应不断编号的工作场所需求和新出现的机会。还可以将虚拟化桌面和应用快速的、批量的部署给分支机构的PC或者使用移动设备的员工;
应用虚拟化:
- 应用虚拟化是将应用程序与操作系统 解耦合,为应用程序提供了一个虚拟的运行环境。 在这个环境中,不仅包括应用程序的可执行文件,还包括它所需要的运行时环境。
存储虚拟化
- SAN/NAS/CEPH等
库虚拟化
- 在linux上允许window程序使用wine,在mac系统上允许window程序使CrossOver等;
容器技术
- 当前应用比较广泛的虚拟化技术,典型的就是docker,linux Container、pouch、RKT等;
KVM虚拟化与XEN虚拟化技术的对比
XEN | KVM | |
出现时间 | 2003 | 2007 |
支持的企业 | Cirtix、Novell、Oracle、Sun、Rethat、Virtual lron | redhat、Ubuntu |
支持的虚拟化技术 | 全虚拟化、半虚拟化 | 全虚拟化 |
支持的架构 | X86、IA64、AMD、Fujtsu、IBM、Sun | 支持虚拟化的CPU |
支持的操作系统类型 | UNIX、Linux、Microsoft windows | UNIX、Linux、Microsoft windows |
动态迁移 | 支持 | 支持 |
内核支持 | 需要额外对内核打补丁 | 内置在内核中 |
Hypervisor类型与说明
- Hypervisor是一种允许在基础物理服务器和操作系统之中间的软件层,其可以允许多个操作系统和应用共享底层的内存、CPU、磁盘等物理硬件,也可以叫做VMM(virtual machine monitor),即虚拟机监视器;
- Hypervisor是所有虚拟化技术的核心技术,非中断的支持多工作负载迁移的能力是hypervisor的基本功能,当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的操作系统;
直接运行到物理机的虚拟化
- Vmwrae Exsi
- rhev
需要运行在操作系统内的虚拟化:
- KVM
- XEN
- vmware workstation
- paralles desktop
- Microsoft hyper-V
- VirtualBox
常见的Hypervisor类型:
- 类型1-裸机型:
直接运行在硬件设备上,这种架构搭建的虚拟机环境称为裸机虚拟化环境 - 类型2-主机托管型:
运行在具有虚拟化功能的操作系统上,构建的是主机虚拟化环境 - kvm虚拟化被redhat划分到类型1的裸机型中;
KVM虚拟化技术介绍
KVM是硬件辅助的虚拟化技术,主要负责比较繁琐的CPU和内存虚拟化,而Qemu则负责I/O虚拟化,二者合作各自发挥自身的优势:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uAkykwuj-1668762793360)(ImageDB/image-20221118163734972.png)]
什么是KVM
官网:https://www.redhat.com/zh/topics/virtualization/what-is-KVM
- 基于内核的虚拟机 Kernel-based Virtual Machine(KVM)是一种内建于 Linux® 中的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。
- KVM 是 Linux 的一部分。Linux 2.6.20 或更新版本包括 KVM。KVM 于 2006 年首次公布,并在一年后合并到主流 Linux 内核版本中。由于 KVM 属于现有的 Linux 代码,因此它能立即享受每一项新的 Linux 功能、修复和发展,无需进行额外工程。
KVM是如何运行的
KVM 将 Linux 转变为 1 类(裸机恢复)虚拟机监控程序。所有虚拟机监控程序都需要一些操作系统层面的组件才能运行虚拟机,如内存管理器、进程调度程序、输入/输出(I/O)堆栈、设备驱动程序、安全管理器以及网络堆栈等。由于 KVM 是 Linux 内核的一部分,因此所有这些组件它都有。每个虚拟机都像普通的 Linux 进程一样实施,由标准的 Linux 调度程序进行调度,并且使用专门的虚拟硬件,如网卡、图形适配器、CPU、内存和磁盘等。
KVM的资源限制
官方介绍:https://access.redhat.com/articles/rhel-kvm-limits
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-peeocMbM-1668762793361)(ImageDB/image-20221118164301466.png)]
KVM结构组件构成
组件名称 | 功能说明 |
Guest | 客户机系统,包括cpu(vcpu)、内存、驱动、被KVM置于一种受限制的CPU模式下运行 |
KVM | 运行在内核空间,提供CPU和内存的虚拟化,以及客户机的I/O拦截,Guset的部分I/O被KVM拦截后交给qemu处理 |
Qemu | 纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们所熟悉的一台能独立运行操作系统的虚拟机,虚拟机认为是与硬件交互,但实际上是与Qemu模拟出来的硬件交互,然后Qemu将这些指令转译给真正的硬件;正因需要转发所以性能会有一定损耗,所以在生产中,大多数做法都是配合KVM来完成虚拟化的工作,KVM完成复杂及要求较高的设备虚拟化,而Qemu完成输入输出设备的虚拟化; |
安装KVM软件
安装前说明
如何判断CPU是否支持硬件虚拟化
grep -i -E '(vmx|svm|lm)' /proc/cpuinfo
- vmx:Intel VT-x
- svm:AMD AMD-v
KVM工作栈与相关软件包
- qemu: 对应的包 qemu-kvm、 qemu-kvm-tools
- qemu-kvm
- qemu-img
- qemu-io
- libvirt:对应的包 libvirt、 libvirt-daemon-kvm 、virt-install 、virt-manager、libvirt-client
- GUI:virt-manager, virt-viewer
- CLI: virsh, virt-install
软件包功能说明
- qemu-kvm(用户空间的工具程序 )
- qemu-kvm-tools(qemu-img qemu-kvm 工具包)
- libvirt-daemon-kvm(守护进程工具)
- libvirt(virt库)
- virt-manager(KVM图形化管理工具)
- libvirt-client
相关命令
#安装kvm软件包:
yum -y install qemu-kvm qemu-kvm-tools libvirt-daemon-kvm libvirt libvirt-client
#启动守护进程:
systemctl enable --now libvirtd.service
systemctl status libvirtd.service
#安装VNC:
yum -y install tigervnc tigervnc-server
systemctl enable --now vncserver@\:1.service
安装流程
#KVM-虚拟机安装
创建流程:
安装kvm相关软件包,与VNC连接包--->创建磁盘映像文件--->创建模板虚拟机--->根据虚拟机模板创建虚拟机配置文件(.xml)--->复制默认网络模板创建网络文件--->修改虚拟机配置文件,并生成虚拟机--->搭建kimich管理平台
网络配置方案:
1.创建nat网络--->手动配置iptables规则;
2.创建桥接网络
RPM包方式安装
#环境安装:
yum -y install qemu-kvm qemu-kvm-tools libvirt-daemon-kvm libvirt libvirt-client libguestfs libguestfs-tools virt-install
#创建磁盘映像:
qemu-img create -f 磁盘属性(raw|qcow2|qcow ) 磁盘路径/磁盘映像文件 size大小;
#创建虚拟磁盘镜像文件:(ISO创建)
virt-install --virt-type kvm --name ${Vhost_name} --ram 1024 --vcpus 2 --cdrom=${Cdrom} --disk path=/var/lib/libvirt/images/${Vhost_name}.img --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
#创建桥接网络(与外互通的网络/nmcli):
rpm -q bridge-utils || yum -y install bridge-utils
nmcli con add type bridge con-name br0 ifname br0
nmcli con modify br0 ipv4.addresses $Nat_ip/24 ipv4.method manual gw4 $Gw ipv4.dns 114.114.114.114
nmcli con up br0
nmcli con add type bridge-slave con-name br0-port ifname $Nat_Prot master br0
nmcli con up br0-port
#创建Nat网络(与外互通的网络/brctl):
brctl addbr mybr0
brctl stp mybr0 on
brctl show mybr0
安装脚本
KVM管理命令详解
virsh命令
- 查看帮助(有中文支持包的话有翻译):virsh help
- 子命令分类主要分为九组:
域管理: | Domain Management (help keyword ‘domain’) |
监控管理: | Domain Monitoring (help keyword ‘monitor’) |
宿主机管理: | Host and Hypervisor (help keyword 'host) |
网络接口管理: | Interface (help keyword ‘interface’) |
网络管理: | Networking (help keyword ‘network’) |
网络规则管理: | Network Filter (help keyword ‘filter’) |
节点设备管理: | Node Device(help keyword ‘nodedev’) |
快照管理: | Snapshot (help keyword ‘snapshot’) |
存储池管理: | Storage Pool (help keyword ‘pool’) |
存储卷管理: | Storage Volume (help keyword ‘volume’) |
密钥管理: | Secret (help keyword ‘secret’) |
域管理:Domiain Management(虚拟机实例管理)子命令说明
子命令名称 | 功能说明 |
attach-device | 从一个XML文件附加装置 |
attach-disk | 附加磁盘设备 |
attach-interface | 获得网络界面 |
autostart | 自动开始一个域 |
blkdeviotune | 设定或者查询块设备 I/O 调节参数。 |
blkiotune | 获取或者数值 blkio 参数 |
blockcommit | 启动块提交操作。 |
blockcopy | 启动块复制操作。 |
blockjob | 管理活跃块操作 |
blockpull | 使用其后端映像填充磁盘。 |
blockresize | 创新定义域块设备大小 |
change-media | 更改 CD 介质或者软盘驱动器 |
console | 连接到客户会话 |
cpu-stats | 显示域 cpu 统计数据 |
create | 从一个 XML 文件创建一个域 |
define | 从一个 XML 文件定义(但不开始)一个域 |
desc | 显示或者设定域描述或者标题 |
destroy | 销毁(停止)域 |
detach-device | 从一个 XML 文件分离设备 |
detach-device-alias | detach device from an alias |
detach-disk | 分离磁盘设备 |
detach-interface | 分离网络界面 |
domdisplay | 域显示连接 URI |
domfsfreeze | Freeze domain’s mounted filesystems. |
domfsthaw | Thaw domain’s mounted filesystems. |
domfsinfo | Get information of domain’s mounted filesystems. |
domfstrim | 在域挂载的文件系统中调用 fstrim。 |
domhostname | 输出域主机名 |
domid | 把一个域名或 UUID 转换为域 id |
domif-setlink | 设定虚拟接口的链接状态 |
domiftune | 获取/设定虚拟接口参数 |
domjobabort | 忽略活跃域任务 |
domjobinfo | 域任务信息 |
domname | 将域 id 或 UUID 转换为域名 |
domrename | rename a domain |
dompmsuspend | 使用电源管理功能挂起域 |
dompmwakeup | 从 pmsuspended 状态唤醒域 |
domuuid | 把一个域名或 id 转换为域 UUID |
domxml-from-native | 将原始配置转换为域 XML |
domxml-to-native | 将域 XML 转换为原始配置 |
dump | 把一个域的内核 dump 到一个文件中以方便分析 |
dumpxml | XML 中的域信息 |
edit | 编辑某个域的 XML 配置 |
event | Domain Events |
inject-nmi | 在虚拟机中输入 NMI |
iothreadinfo | view domain IOThreads |
iothreadpin | control domain IOThread affinity |
iothreadadd | add an IOThread to the guest domain |
iothreaddel | delete an IOThread from the guest domain |
send-key | 向虚拟机发送序列号 |
send-process-signal | 向进程发送信号 |
lxc-enter-namespace | LXC 虚拟机进入名称空间 |
managedsave | 管理域状态的保存 |
managedsave-remove | 删除域的管理保存 |
managedsave-edit | edit XML for a domain’s managed save state file |
managedsave-dumpxml | Domain information of managed save state file in XML |
managedsave-define | redefine the XML for a domain’s managed save state file |
memtune | 获取或者数值内存参数 |
perf | Get or set perf event |
metadata | show or set domain’s custom XML metadata |
migrate | 将域迁移到另一个主机中 |
migrate-setmaxdowntime | 设定最大可耐受故障时间 |
migrate-getmaxdowntime | get maximum tolerable downtime |
migrate-compcache | 获取/设定压缩缓存大小 |
migrate-setspeed | 设定迁移带宽的最大值 |
migrate-getspeed | 获取最长迁移带宽 |
migrate-postcopy | Switch running migration from pre-copy to post-copy |
numatune | 获取或者数值 numa 参数 |
qemu-attach | QEMU 附加 |
qemu-monitor-command | QEMU 监控程序命令 |
qemu-monitor-event | QEMU Monitor Events |
qemu-agent-command | QEMU 虚拟机代理命令 |
reboot | 重新启动一个域 |
reset | 重新设定域 |
restore | 从一个存在一个文件中的状态恢复一个域 |
resume | 重新恢复一个域 |
save | 把一个域的状态保存到一个文件 |
save-image-define | 为域的保存状态文件重新定义 XML |
save-image-dumpxml | 在 XML 中保存状态域信息 |
save-image-edit | 为域保存状态文件编辑 XML |
schedinfo | 显示/设置日程安排变量 |
screenshot | 提取当前域控制台快照并保存到文件中 |
set-lifecycle-action | change lifecycle actions |
set-user-password | set the user password inside the domain |
setmaxmem | 改变最大内存限制值 |
setmem | 改变内存的分配 |
setvcpus | 改变虚拟 CPU 的号 |
shutdown | 关闭一个域 |
start | 开始一个(以前定义的)非活跃的域 |
suspend | 挂起一个域 |
ttyconsole | tty 控制台 |
undefine | 取消定义一个域 |
update-device | 从 XML 文件中关系设备 |
vcpucount | 域 vcpu 计数 |
vcpuinfo | 详细的域 vcpu 信息 |
vcpupin | 控制或者查询域 vcpu 亲和性 |
emulatorpin | 控制火车查询域模拟器亲和性 |
vncdisplay | vnc 显示 |
guestvcpus | query or modify state of vcpu in the guest (via agent) |
setvcpu | attach/detach vcpu or groups of threads |
domblkthreshold | set the threshold for block-threshold event for a given block device or it’s backing chain element |
监控管理: Domain Monitoring(管理监控虚拟机资源使用情况)
子命令名称 | 功能说明 |
domblkerror | 在块设备中显示错误 |
domblkinfo | 域块设备大小信息 |
domblklist | 列出所有域块 |
domblkstat | 获得域设备块状态 |
domcontrol | 域控制接口状态 |
domif-getlink | 获取虚拟接口链接状态 |
domifaddr | Get network interfaces’ addresses for a running domain |
domiflist | 列出所有域虚拟接口 |
domifstat | 获得域网络接口状态 |
dominfo | 域信息 |
dommemstat | 获取域的内存统计 |
domstate | 域状态 |
domstats | get statistics about one or multiple domains |
domtime | domain time |
list | 列出域 |
宿主机管理: Host and Hypervisor(管理宿主机相关状态信息)
子命令名称 | 功能说明 |
allocpages | Manipulate pages pool size |
capabilities | 性能 |
=cpu-baseline | 计算基线 CPU |
cpu-compare | 使用 XML 文件中描述的 CPU 与主机 CPU 进行对比 |
cpu-models | CPU models |
domcapabilities | domain capabilities |
freecell | NUMA可用内存 |
freepages | NUMA free pages |
hostname | 打印管理程序主机名 |
hypervisor-cpu-baseline | compute baseline CPU usable by a specific hypervisor |
hypervisor-cpu-compare | compare a CPU with the CPU created by a hypervisor on the host |
maxvcpus | 连接 vcpu 最大值 |
node-memory-tune | 获取或者设定节点内存参数 |
nodecpumap | 节点 cpu 映射 |
nodecpustats | 输出节点的 cpu 状统计数据。 |
nodeinfo | 节点信息 |
nodememstats | 输出节点的内存状统计数据。 |
nodesuspend | 在给定时间段挂起主机节点 |
sysinfo | 输出 hypervisor sysinfo |
uri | 打印管理程序典型的URI |
version | 显示版本 |
网络接口管理: Interface(管理网络接口相关信息)
子命令名称 | 功能说明 |
iface-begin | 生成当前接口设置快照,可在今后用于提交 (iface-commit) 或者恢复 (iface-rollback) |
iface-bridge | 生成桥接设备并为其附加一个现有网络设备 |
iface-commit | 提交 iface-begin 后的更改并释放恢复点 |
iface-define | define an inactive persistent physical host interface or modify an existing persistent one from an XML file |
iface-destroy | 删除物理主机接口(启用它请执行 “if-down”) |
iface-dumpxml | XML 中的接口信息 |
iface-edit | 为物理主机界面编辑 XML 配置 |
iface-list | 物理主机接口列表 |
iface-mac | 将接口名称转换为接口 MAC 地址 |
iface-name | 将接口 MAC 地址转换为接口名称 |
iface-rollback | 恢复到之前保存的使用 iface-begin 生成的更改 |
iface-start | 启动物理主机接口(启用它请执行 “if-up”) |
iface-unbridge | 分离其辅助设备后取消定义桥接设备 |
iface-undefine | 取消定义物理主机接口(从配置中删除) |
网络规则管理: Network Filter (管理iptables规则)
子命令名称 | 功能说明 |
nwfilter-define | 使用 XML 文件定义或者更新网络过滤器 |
nwfilter-dumpxml | XML 中的网络过滤器信息 |
nwfilter-edit | 为网络过滤器编辑 XML 配置 |
nwfilter-list | 列出网络过滤器 |
nwfilter-undefine | 取消定义网络过滤器 |
nwfilter-binding-create | create a network filter binding from an XML file |
nwfilter-binding-delete | delete a network filter binding |
nwfilter-binding-dumpxml | XML 中的网络过滤器信息 |
nwfilter-binding-list | list network filter bindings |
网络管理:Networking(管理虚拟机网络相关信息)
子命令名称 | 功能说明 |
net-autostart | 自动开始网络 |
net-create | 从一个 XML 文件创建一个网络 |
net-define | define an inactive persistent virtual network or modify an existing persistent one from an XML file |
net-destroy | 销毁(停止)网络 |
net-dhcp-leases | print lease info for a given network |
net-dumpxml | XML 中的网络信息 |
net-edit | 为网络编辑 XML 配置 |
net-event | Network Events |
net-info | 网络信息 |
net-list | 列出网络 |
net-name | 把一个网络UUID 转换为网络名 |
net-start | 开始一个(以前定义的)不活跃的网络 |
net-undefine | undefine a persistent network |
net-update | 更新现有网络配置的部分 |
net-uuid | 把一个网络名转换为网络UUID |
节点设备管理:Node Device(管理节点上的设备信息管理)
子命令名称 | 功能说明 |
nodedev-create | 根据节点中的 XML 文件定义生成设备 |
nodedev-destroy | 销毁(停止)节点中的设备 |
nodedev-detach | 将节点设备与其设备驱动程序分离 |
nodedev-dumpxml | XML 中的节点设备详情 |
nodedev-list | 这台主机中中的枚举设备 |
nodedev-reattach | 重新将节点设备附加到他的设备驱动程序中 |
nodedev-reset | 重置节点设备 |
nodedev-event | Node Device Events |
密钥管理:Secret(管理连接虚拟机的认证密钥信息)
子命令名称 | 功能说明 |
secret-define | 定义或者修改 XML 中的 secret |
secret-dumpxml | XML 中的 secret 属性 |
secret-event | Secret Events |
secret-get-value | secret 值输出 |
secret-list | 列出 secret |
secret-set-value | 设定 secret 值 |
secret-undefine | 取消定义 secret |
快照管理: Snapshot(虚拟机快照信息管理)
子命令名称 | 功能说明 |
snapshot-create | 使用 XML 生成快照 |
snapshot-create-as | 使用一组参数生成快照 |
snapshot-current | 获取或者设定当前快照 |
snapshot-delete | 删除域快照 |
snapshot-dumpxml | 为域快照转储 XML |
snapshot-edit | 编辑快照 XML |
snapshot-info | 快照信息 |
snapshot-list | 为域列出快照 |
snapshot-parent | 获取快照的上级快照名称 |
snapshot-revert | 将域转换为快照 |
存储池管理: Storage 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 | define an inactive persistent storage pool or modify an existing persistent one from an XML file |
pool-delete | 删除池 |
pool-destroy | 销毁(删除)池 |
pool-dumpxml | XML 中的池信息 |
pool-edit | 为存储池编辑 XML 配置 |
pool-info | 存储池信息 |
pool-list | 列出池 |
pool-name | 将池 UUID 转换为池名称 |
pool-refresh | 刷新池 |
pool-start | 启动一个(以前定义的)非活跃的池 |
pool-undefine | 取消定义一个不活跃的池 |
pool-uuid | 把一个池名称转换为池 UUID |
pool-event | Storage Pool Events |
存储卷管理: Storage Volume(管理存储卷相关信息)
子命令名称 | 功能说明 |
vol-clone | 克隆卷。 |
vol-create-as | 从一组变量中创建卷 |
vol-create | 从一个 XML 文件创建一个卷 |
vol-create-from | 生成卷,使用另一个卷作为输入。 |
vol-delete | 删除卷 |
vol-download | 将卷内容下载到文件中 |
vol-dumpxml | XML 中的卷信息 |
vol-info | 存储卷信息 |
vol-key | 为给定密钥或者路径返回卷密钥 |
vol-list | 列出卷 |
vol-name | 为给定密钥或者路径返回卷名 |
vol-path | 为给定密钥或者路径返回卷路径 |
vol-pool | 为给定密钥或者路径返回存储池 |
vol-resize | 创新定义卷大小 |
vol-upload | 将文件内容上传到卷中 |
vol-wipe | 擦除卷 |
Virsh本身的交互命令:Virsh itself
子命令名称 | 功能说明 |
cd | 更改当前目录 |
echo | echo 参数 |
exit | 退出这个非交互式终端 |
help | 打印帮助 |
pwd | 输出当前目录 |
quit | 退出这个非交互式终端 |
connect | 连接(重新连接)到 hypervisor |
virsh命令-常用命令
virsh-list
参数名称 | 功能 | 使用方法 |
–inactive | 列出不活跃的域 | virsh list --inactive |
–all | 不活跃和活跃的域列表 | virsh list --all |
–transient | 列出临时域 | virsh list --transient |
–persistent | 列出持久域 | virsh list --persistent |
–with-snapshot | 列出现有快照的域 | virsh list --with-snapshot |
–without-snapshot | 列出没有快照的域 | virsh list --without-snapshot |
–state-running | 运行状态的域列表 | virsh list --state-running |
–state-paused | 列出暂停状态的域 | virsh list --state-paused |
–state-shutoff | 列出关闭状态的域 | virsh list --state-shutoff |
–state-other | 列出其他状态的域 | virsh list --state-other |
–autostart | 列出启用 autostart 的域 | virsh list --autostart |
–no-autostart | 列出禁用 autostart 的域 | virsh list --no-autostart |
–with-managed-save | 列出有管理的保存状态的域 | virsh list --with-managed-save |
–without-managed-save | 列出没有管理的保存状态的域 | virsh list --without-managed-save |
–uuid | 只列出 uuid | virsh list --uuid |
–name | 只列出域名 | virsh list --name |
–table | 列出表格(默认) | virsh list --table |
–managed-save | 标记有管理的保存状态的域 | virsh list --managed-save |
–title | show domain title | virsh list --title |
virsh dumpxml
参数名称 | 功能 | 使用方法 |
–inactive | 显示不活跃定义的 XML | virsh dumpxml filename.xml–inactive |
–security-info | 包括 XML 转储中与安全性相关的信息 | virsh dumpxml filename.xml --security-info |
–update-cpu | 根据主机 CPU 更新虚拟机 CPU | virsh dumpxml filename.xml --update-cpu |
–migratable | 为迁移提供 XML 可用性 | virsh dumpxml filename.xml --migratable |
–domain | 查看domin的xml内容 | virsh dumpxml filename.xml --domain |
virsh create:(创建虚拟机)
参数名称 | 功能 | 使用方法 |
[–file] <string> | 文件包括一个 XML 域描述 | virsh create filename.xml |
–console | 创建后附加到控制台 | virsh create filename.xml --console |
–paused | 生成后让虚拟机保持暂停状态 | virsh create filename.xml --paused |
–autodestroy virsh | 断开连接时自动销毁虚拟机 | virsh create filename.xml --autodestroy virsh |
–pass-fds <string> | 向虚拟机传递文件描述符 N、M… | virsh create filename.xml --pass-fds |
–validate | validate the XML against the schema | virsh create filename.xml --validate |
virsh define
参数名称 | 功能 | 使用方法 |
[–file] <string> | 文件包括一个 XML 域描述 | virsh define filename.xml |
–validate | validate the XML against the schema | virsh define filename.xml --validate |
virsh start:(启动虚拟机)
参数名称 | 功能 |
[–domain] <string> | 非活跃域的名称 |
–console | 创建后附加到控制台 |
–paused | 生成后让虚拟机保持暂停状态 |
–autodestroy | virsh 断开连接时自动销毁虚拟机 |
–bypass-cache | 载入时避免文件系统缓存 |
–force-boot | 采用忽略所有管理保存的方式强制刷新引导 |
–pass-fds <string> | 向虚拟机传递文件描述符 N、M… |
|
| --validate | validate the XML against the schema | virsh define filename.xml --validate |
virsh start:(启动虚拟机)
参数名称 | 功能 |
[–domain] <string> | 非活跃域的名称 |
–console | 创建后附加到控制台 |
–paused | 生成后让虚拟机保持暂停状态 |
–autodestroy | virsh 断开连接时自动销毁虚拟机 |
–bypass-cache | 载入时避免文件系统缓存 |
–force-boot | 采用忽略所有管理保存的方式强制刷新引导 |
–pass-fds <string> | 向虚拟机传递文件描述符 N、M… |